1.什么是大型语言模型?
大型语言模型,也称为 预训练模型 ,是一种 使用大量数据来学习语言特征 的人工智能。这些模型用于生成基于语言的数据集,并可用于各种任务,例如语言理解和生成。

大型语言模型的关键特征之一是它们能够生成类似人类的文本。这些模型可以生成连贯、语法正确,有时甚至幽默的文本。
他们还可以将文本从一种语言翻译成另一种语言,并根据给定的上下文回答问题。
2.大型语言模型如何工作?
Step1: 将单词转换为向量
语言的基本单位主要是单词 ,因此,大语言模型(LLM)工作的第一步,就是将 单词 转换为 数字组合。
例如:

为什么要将单词转换为数字组合?因为这样就可以进行后续的电脑运算。
例如,"Cat(猫)"与"Dog(狗)"的数字组合,相比"Cat(猫)"与"Computer(电脑)"的数字组合在数学上更为接近。
因为在日常语言中,Cat与Dog相邻出现的几率更高。再例如,"King(国王)"-"Man(男人)"+"Woman(女人)"="Queen(女王)
这一步,在LLM的术语里,叫做"Word Vector"(词向量)以及"Token"(词元),就是将语言的基本单位(单词,标点,数字,等)转换为数字组合。

Step2: 解析句子,预测下一个单词
大语言模型里设置了一层一层的规则,一步一步地,从不同角度理解与分析句子,在此基础上,试图预测下一个将要出现的单词。
这就像是家用的多级净水器,第一级用棉纱来过滤泥沙,第二级用活性炭来吸附杂质和异味,第三级用反渗透膜过滤掉有害物质,等等,最后得到净水。
同样地,LLM里也设置了多层或多级的语言规则理解器。比如:
第一层规则,致力于 理解句子中每个单词和短语的含义。
例如,如果看到单词"雨",就知道它与天气有关。
第二层规则,致力于 理解句子中每个单词是怎样关联的 。
例如,如果看到句子以"乌云密布"开头,则预测下个单词很可能是"雨",因为乌云通常意味着雨。

第三层规则,致力于 回忆前面句子中的内容,用来理解下个句子。
例如,如果看到之前的句子提到"乌云"和"雨伞",根据上句的这些线索,预测下句很可能出现"雨"这个单词。
这一步,在LLM的术语里,叫做"Transformer"(转换器),这也是ChatGPT最后一个字母T的含义。
(ChatGPT的英文全称为 Chat Generative Pre-trained Transformer)GPT-3(第三代GPT)中,包含了96层的Transformer,参数总量高达1750亿个!
Step3: 使用大数据训练模型,提高语言的准确度
使大语言模型(LLM)接触到大量来自互联网的文本,通过阅读和分析这些文本,LLM可以识别单词和句子的使用方式,它们的含义,以及它们之间的关系,从而不断提高语言的准确度。
这就像训练一只狗。当类似场景重复出现,狗就会建立联系,想想巴甫洛夫的条件反射实验,只要摇铃,狗就会淌口水。

狗的动作正确,就会得到奖励;动作错误,就会被纠正。同样地,重复出现的语言模式,LLM就会记住。
预测正确,LLM会得到正反馈;预测错误,LLM则收到负反馈。
LLM通过调整其内部设置来学习(想想它有多达1750亿个参数可以调节),这有点像狗的大脑变得更善于理解命令。
它学会了预测在特定情境下接下来应该出现哪些单词。
例如,当它看到"The sunisshining,"时,它学会了"shining"后面可能会跟着"brightly"或"today"。
"量变引起质变",这句话用在LLM的训练上,相当贴切。当我们惊艳于ChatGPT的出色表现时,不要忽视了它所经历的训练量。
GPT-3是在大约5000亿个单词的语料库上进行训练的。相比之下,一个典型的人类儿童到10岁时,大约会接触到1亿个单词左右。

3.相关技术知识
3.1 词向量
要了解语言模型的工作原理,首先需要了解它们如何表示单词。人类用字母序列来表示英文单词,比如C-A-T表示猫。
语言模型使用的是一个叫做 词向量的长串数字列表。例如,这是一种将猫表示为向量的方式:

语言模型采用类似的方法: 每个词向量代表了"词空间(word space)"中的一个点,具有相似含义的词的位置会更接近彼此。
例如,在向量空间中与猫最接近的词包括狗、小猫和宠物。
用 实数向量表示单词(相对于"C-A-T"这样的字母串)的一个主要优点是,数字能够进行字母无法进行的运算。

3.2 词的意义取决于上下文
像这样简单的词向量方案并没有捕获到自然语言的一个重要事实: 词通常有多重含义。例如:

这些句子中,"magazine"的含义相关但又有不同。约翰拿起的是一本实体杂志,而苏珊为一家出版实体杂志的机构工作。
传统软件的设计被用于处理明确的数据。如果你让计算机计算"2+3",关于2、+或3的含义不存在歧义问题。但自然语言中的歧义远不止 同音异义词 和 多义词:
在"the customer asked the mechanic to fixhis car(顾客请修理工修理他的车)"中,"his"是指顾客还是修理工?
词向量为语言模型提供了一种灵活的方式,以在特定段落的上下文中表示每个词的准确含义。

3.3 将词向量转化为词预测
ChatGPT原始版本背后的GPT-3模型,由数十个神经网络层(transformer)组成。
每一层接受一系列向量作为输入(输入文本中的每个词对应一个向量),并添加信息以帮助澄清该词的含义,并且更好地预测接下来可能出现的词。

4. Transformer
LLM的每个层都是一个 Transformer,2017年,Google在一篇里程碑的论文中首次介绍了这一神经网络结构。
Transformer模型架构如下:

研究表明,前几层专注于理解句子的语法并解决上面所示的歧义。
后面的层(为保持图表大小的可控性上述图标没有显示)则致力于对整个段落的高层次理解。
例如:
当LLM"阅读"一篇短篇小说时,它似乎会记住关于故事角色的各种信息:性别和年龄、与其他角色的关系、过去和当前的位置、个性和目标等等。
研究人员并不完全了解LLM是如何跟踪这些信息的,但从逻辑上讲,模型在各层之间传递时信息时必须通过修改隐藏状态向量来实现。
现代LLM中的向量维度极为庞大,这有利于表达更丰富的语义信息。

4.1 输入词向量化
例如:
GPT-3最强大的版本使用有12288个维度的词向量,也就是说,每个词由一个包含12288个的数字列表表示。
这比Google在2013年提出的word2vec方案要大20倍。你可以把所有这些额外的维度看作是GPT-3可以用来记录每个词的上下文的一种"暂存空间(scratchspace)"。
较早层所做的信息笔记可以被后来的层读取和修改,使模型逐渐加深对整文章的理解。
因此,假设我们将上面的图表改为,描述一个96层的语言模型来解读一个1000字的故事。
第60层可能包括一个用于约翰(John)的向量,带有一个表示为"(主角,男性,嫁给谢丽尔,唐纳德的表弟,来自明尼苏达州,目前在博伊西,试图找到他丢失的钱包)"的括号注释。
同样,所有这些事实(可能还有更多)都会以一个包含12288个数字列表的形式编码,这些数字对应于词John。

或者,该故事中的某些信息可能会编码在12288维的向量中,用于谢丽尔、唐纳德、博伊西、钱包或其他词。
这样做的目标是,让网络的第96层和最后一层输出一个包含所有必要信息的隐藏状态,以预测下一个单词。
现在让我们谈谈每个Transformer内部发生的情况。Transformer在更新输入段落的每个单词的隐藏状态时有两个处理过程:
a.在注意力步骤中,词汇会"观察周围"以查找具有相关背景并彼此共享信息的其他词。
b.在前馈步骤中,每个词会"思考"之前注意力步骤中收集到的信息,并尝试预测下一个单词。

4.2 注意力机制
你可以将 注意力机制 看作是单词之间的一个撮合服务。每个单词都会制作一个检查表(称为 查询向量,q),描述它寻找的词的特征。
每个词还会制作一个检查表(称为 关键向量,k),描述它自己的特征。 神经网络通过将每个关键向量与每个查询向量进行比较(通过计算点积)来找到最佳匹配的单词。
一旦找到匹配项,它将从产生关键向量的单词传递相关信息到产生查询向量的单词。例如:
在前面的部分中,我们展示了一个假设的 Transformer模型,它发现在部分句子"John wantshis bank to cash the"中,"his(他的)"指的是"John(约翰)"。
在系统内部,过程可能是这样的:"his"的 查询向量 可能会有效地表示为"我正在寻找:描述男性的名词"。

"John"的 关键向量 可能会有效地表示为"我是一个描述男性的名词"。网络会检测到这两个 向量匹配 ,并将关于"John"的向量信息转移给"his"的向量。
每个注意力层都有几个"注意力头",这意味着,这个信息交换过程在每一层上会多次进行(并行)。每个注意头都专注于不同的任务:
··一个注意头可能会将代词与名词进行匹配,就像我们之前讨论的那样。
··另一个注意头可能会处理解析类似"bank"这样的一词多义的含义。
··第三个注意力头可能会将"Joe Biden"这样的两个单词短语链接在一起。

诸如此类的注意力头经常按顺序操作,一个注意力层中的注意力操作结果成为下一层中一个注意力头的输入。
事实上,我们刚才列举的每个任务可能都需要多个注意力头,而不仅仅是一个。
GPT-3的最大版本有96个层(transformer),每个层有96个注意力头(每个transformer有96个self-attention堆叠)
因此,每次预测一个新词时,GPT-3将执行9216个注意力操作。