微信扫码
与创始人交个朋友
我要投稿
LLM的工作原理对大多数人来说是个谜。虽然它们本质上在于“预测下一个词”,并需要大量文本进行训练,但具体细节往往令人困惑。原因在于这些系统独特的开发方式:基于数十亿词汇训练的神经网络,不同于传统的人类编写的软件。尽管没人完全理解其内部机制,但研究人员正努力探索。
本文旨在以非技术、非数学的方式解释LLM的工作原理,包括词向量、Transformer模型及其训练方式,以及为何需要海量数据来取得良好性能。
理解语言模型工作原理,首要了解它如何表示单词。人类用字母序列表示单词,如"cat"为C-A-T。语言模型用长词向量列表表示单词,如"cat"表示为:[0.0074, 0.0030, -0.0105, ... , 0.0002]。
为什么要使用这样的复杂表示法呢?这里举个类比。华盛顿特区位于北纬38.9度、西经77度。我们可以使用向量表示法来表示它:
Washington DC is at [38.9, 77]
New York is at [40.7, 74]
London is at [51.5, 0.1]
Paris is at [48.9, -2.4]
空间推理对判断地点间距离至关重要。38.9与40.7,77与74的接近性表明纽约与华盛顿特区相近,而巴黎与伦敦相近,但与华盛顿特区远离。
语言模型采用类似方法,将词向量视为“词空间”中的点,含义相近的单词在空间中更靠近。如,“cat”的相近词为“dog”、“kitten”和“pet”。实数向量(非字母序列)能执行字母无法实现的操作。
由于单词复杂性,语言模型使用数百甚至数千维度的向量空间。人类难以想象,但计算机能推理并得出有用结果。
词向量概念自20世纪70年代已有,但真正流行始于2013年谷歌的word2vec项目。谷歌分析数百万份Google新闻文档,学习预测共现单词,将相似词放置在靠近位置。其特性之一是使用向量算术推理单词,如“biggest”向量减去“big”加上“small”得“smallest”。
可以使用向量算术进行类比,如big对应biggest,small对应smallest。谷歌的词向量捕捉到了多种关系,如nationalities、capitals、opposites、plurals和gender roles。
这些向量根据人类使用单词的方式构建,反映了语言中的偏见,如doctor-man+woman=nurse。减轻偏见是研究的一个方向。词向量对语言模型是有用的构建模块,因为它们编码了单词间关系的微妙信息。语言模型若学到猫的一些情况,同样适用于小猫或狗;若学到巴黎和法国的关系,则柏林和德国、罗马和意大利也可能存在相同情况。
词义取决于上下文
词向量方案不能全面捕捉自然语言的多义性。例如,“bank”可以是金融机构或河岸,“杂志”在“John picks up a magazine”和“Susan works for a magazine”中含义微妙不同。这是多义性(polysemy)或同音异义词(homonyms)的体现。语言模型如ChatGPT能根据上下文以不同向量表示相同单词。对于“bank”和“杂志”,它们会有不同的向量表示,以区分其不同含义。这种向量表示对理解语言模型的工作方式至关重要。
传统软件处理明确数据,但自然语言存在歧义。如“the customer asked the mechanic to fix his car”中的“his”,“the professor urged the student to do her homework”中的“her”,以及“fruit flies like a banana”中的“flies”。人们依赖上下文解决这些歧义,但无确定规则。词向量为语言模型提供了在特定上下文中表示单词精确含义的灵活方式。现在,我们来探究它们如何实现这一点。
二、将词向量转化为词语预测
GPT-3,即ChatGPT原始版本背后的模型,由数十个层组成。每个层以一系列向量作为输入,输入文本中每个单词对应一个向量,并添加信息来澄清该单词的含义,并更好地预测接下来可能出现的单词。
让我们从一个简化的例子开始
LLM(语言模型)每层都是transformer,这种神经网络架构由Google在2017年首次引入。模型的输入是句子的一部分,这些单词被表示为word2vec风格的向量,并输入到第一个transformer中。Transformer能推断出单词的词性,生成新的向量称为隐藏状态,传递给下一个transformer。后续的层对整个段落进行高层次的理解。
LLM的层数通常远不止两个,例如GPT-3有96个层。前几层主要关注理解句子的语法和解决歧义,后续层致力于对整个段落进行高层次的理解。例如,当LLM“阅读”短篇小说时,它会跟踪性别、年龄、关系、位置、个性和目标等信息。
研究人员不完全理解LLM如何跟踪这些信息,但模型通过在层与层之间传递时修改隐藏状态向量来实现。现代LLM使用的词向量非常大,例如GPT-3使用具有12,288个维度的词向量。这些额外的维度为模型提供了对每个单词的上下文进行记录的“临时空间”。后续层次可以读取和修改早期层次所做的记录,使模型逐渐加深对整个段落的理解。
96层的LLM的目标是输出包含所有必要信息的最终词的隐藏状态,以预测下一个词。这种模型通过多层transformer实现对句子和段落的深层次理解,并通过大维度的词向量记录每个单词的上下文信息。
三、Transformer的注意力机制
让我们聚焦Transformer内部的工作机制。Transformer通过两步过程更新输入段落中每个单词的隐藏状态:
注意力步骤:单词寻找与其上下文相关的其他单词并共享信息。
前馈步骤:单词思考注意力步骤中收集的信息,并尝试预测下一个单词。
执行这些步骤的是网络,而不是单词本身。这种以单词为基本单位的分析方法充分利用了现代GPU的大规模并行处理能力,使得语言模型能够处理数千个单词的段落,克服了之前模型的限制。
注意力机制类似于单词之间的媒婆服务。每个单词创建一个查询向量,描述它寻找的单词特征,以及一个键向量,描述它自身的特征。网络通过比较查询和键向量来找到最佳匹配的单词,并传递信息。
例如,假设Transformer推断出“his”指的是“John”。his的查询向量可能表示“我正在寻找描述男性的名词”,而John的键向量表示“我是描述男性的名词”。网络检测到匹配后,将John的信息转移到his的向量中。
每个注意力层有多个注意力头,每个头专注于不同的任务,如代词与名词匹配、同音异义词解析或短语链接。这些头按顺序操作,每层的结果成为下一层的输入。例如,GPT-3有96层,每层96个注意力头,每次预测执行9,216个注意力操作。
一个完整的案例
在最后两部分中,我们了解了注意力头如何工作。现在,让我们探究真实语言模型内部的工作机制。去年,Redwood Research的科学家研究了GPT-2(即ChatGPT的前身)预测下一个单词的方式。他们使用了句子:“When Mary and John went to the store, John gave a drink to.”作为样本。
研究发现,GPT-2使用三种类型的注意力头来预测下一个单词为Mary。首先,“Name Mover Heads”从Mary的向量中复制信息到最终输入向量。其次,“Subject Inhibition Heads”通过标记第二个John向量,阻止“Name Mover Heads”复制John。最后,“Duplicate Token Heads”将第二个John向量标记为第一个John向量的重复,帮助“Subject Inhibition Heads”做出决策。
这九个注意力头使GPT-2推断出“John gave a drink to John”无意义,而选择了“John gave a drink to Mary”。这个例子展示了理解语言模型的困难性。Redwood团队的论文详细解释了他们如何识别和验证这些注意力头,但即使如此,我们仍未能全面解释GPT-2为何选择Mary。
例如,模型如何知道下一个单词应该是人名而非其他类型的词?类似句子中,Mary可能不是好的预测。科学家们仍在努力揭示GPT-2推理过程的其他步骤。然而,要全面理解GPT-2的决策可能需要数月甚至数年的努力。
ChatGPT背后的GPT-3.5和GPT-4更为庞大和复杂。因此,完全解释这些系统的工作原理将是一项巨大的任务,可能在短时间内无法完成。
前馈步骤(模型推理的过程)
在注意力头之间传递信息后,有一个前馈网络进行思考每个词向量,并尝试预测下一个单词。在这个阶段,词之间不进行信息交换:前馈层独立分析每个单词。然而,前馈层可以访问之前由注意力头复制的任何信息。以下是GPT-3最大版本中前馈层的结构。
绿色和紫色圆圈代表神经元,这些神经元通过计算输入的加权和来进行数学运算。前馈层的强大之处在于其庞大的连接数。GPT-3的前馈层规模庞大,输出层有12,288个神经元,隐藏层有49,152个神经元。每个前馈层有大约12亿个权重参数,总共有96个前馈层,总参数数达到1160亿,占据GPT-3总参数的三分之二。
前馈层通过模式匹配工作,每个神经元匹配输入文本中的特定模式。随着层数的增加,模式变得更加抽象。早期的层匹配特定单词,而后期的层匹配更广泛的语义类别,如电视节目或时间间隔。这很有趣,因为前馈层一次只检查一个单词,但它能够将上下文信息移入向量中,从而判断单词与某个类别相关。
当神经元匹配这些模式之一时,它会向词向量添加信息,这些信息可以视为关于下一个单词的初步预测。布朗大学的研究揭示了前馈层如何使用向量运算进行推理来预测下一个单词。例如,他们发现GPT-2在前几层之后开始预测下一个单词,而在更高层时,预测变得越来越准确。布朗大学研究人员发现,通过向模型中添加一个向量,第20个前馈层能够将波兰转换为华沙,中国转换为北京。同时,该层也能将小写单词转换为大写,现在时转换为过去时。注意力层和前馈层在GPT-2中有不同任务:注意力层基于提示预测,而前馈层依赖训练数据中的信息。禁用前馈层,模型无法预测华沙;但添加“波兰的首都是华沙”后,GPT-2又能回答。这表明注意力层从提示中检索信息,前馈层则提供训练数据中的信息。因此,可将前馈层视为模型的数据库,早期层编码简单事实,如“特朗普与唐纳德常同时出现”,而后期层则编码更复杂的关系,如国家与首都间的转换。
语言模型是如何训练的(模型训练的过程)
早期的机器学习算法需要人工标记的训练数据,这限制了模型的规模和训练成本。然而,语言模型的创新在于它们可以利用未标记的文本数据进行学习。这种模型可以从大量的书面材料中学习,如维基百科页面、新闻文章和计算机代码。
语言模型通过预测下一个单词来学习,初始的模型表现会很差,因为其权重参数是随机设置的。随着模型接触到更多的示例,这些权重参数会逐渐调整以改进预测。这一过程可以类比为调整水龙头的温度,直到找到合适的水温。在语言模型中,这个过程更为复杂,因为它需要调整数百亿的阀门(权重参数),以控制信息的流动。
虽然这个概念听起来很复杂,但由于计算机的性能不断提高,这种规模的运算在现实中是可行的。所有的语言模型部分,如前馈层中的神经元和注意力头,都被实现为简单的数学函数,这些函数的行为由权重参数决定。训练算法通过增加或减少这些权重参数来控制信息在神经网络中的流动。
训练过程分为两个步骤:前向传递和反向传递。在前向传递中,模型会检查预测是否准确。然后,在反向传递中,模型会调整权重参数以改进预测。这个过程需要大量的数学运算,训练像GPT-3这样的大型模型需要数十亿次的前向和反向传递。尽管计算量大,但由于计算机性能的提升,这种训练在数月内即可完成。
GPT-3的惊人表现
您可能会对ChatGPT的表现感到惊讶,它能够执行撰写论文、类比推理和编写计算机代码等复杂任务。那么,为什么这样一个简单的学习机制能够产生如此强大的模型呢?
其中一个重要原因是规模。像GPT-3这样的模型所接触到的例子数量庞大,其在大约5000亿个单词的语料库上进行训练,相比之下,一个10岁的孩子大约只接触到1亿个单词。
过去五年,OpenAI逐渐扩大了其语言模型的规模。据2020年论文报道,模型准确性与其规模、数据集规模和训练计算量呈幂律关系,趋势跨越七个数量级以上。
随着模型规模的增大,其在语言任务上的表现也逐渐提升。但前提是,训练数据量也需要以类似比例增加,这就需要更多的计算能力。
OpenAI从2018年的GPT-1开始,逐步增加了模型的规模。GPT-1有117万个参数,而GPT-2的最大版本则有15亿个参数。到了2020年的GPT-3,参数数量更是达到了1750亿个。今年发布的GPT-4,虽然具体细节尚未公布,但普遍认为其规模远超GPT-3。
这样的模型规模,使得ChatGPT等语言模型能够在各种任务中展现出强大的能力。
每个模型不仅学到了比其较小的前身更多的事实,而且在需要某种形式的抽象推理的任务上表现更好:
例如,考虑以下故事:
这是一个装满爆米花的袋子。袋子里没有巧克力。然而,袋子上的标签却写着“巧克力”而不是“爆米花”。Sam找到了这个袋子。她以前从未见过这个袋子。她无法看到袋子里面的东西。她读了标签。
Sam相信袋子里有巧克力,发现爆米花时会惊讶。这是"心智理论",人类从小就具备,但对非人类动物有争议。今年,斯坦福大学研究了大型语言模型的心智理论能力。GPT-1和GPT-2失败了,但GPT-3准确率约为40%,与三岁儿童相当。最新版的GPT-3准确率提高到90%,与七岁儿童相当,而GPT-4则有95%的准确率。
Kosinski认为,没有证据表明心智理论能力被特意设计进模型中,且科学家也不清楚如何实现。这种能力可能是随着模型语言能力的增强自然涌现的。不过,并非所有研究者都认同这一观点,他们认为GPT-3在某些任务中的表现可能受到混淆效应的影响。尽管存在争议,GPT-3在一些衡量心智理论的任务上展现出近乎人类的能力,这与大型模型在高级推理任务上表现更佳的观点相符。此外,GPT-4也展现了类似人类的复杂思考方式,如在TiKZ图形编程语言中绘制独角兽的任务中,尽管结果略显粗糙,但显示出GPT-4对独角兽外观的理解。
研究人员认为GPT-4可能以某种方式从其训练数据中记住了绘制独角兽的代码,所以他们给它一个后续挑战:他们修改了独角兽的代码,将犄角移除,并移动了其他一些身体部位。然后他们要求GPT-4将犄角放回去。GPT-4的回答是将犄角放在了正确的位置上:
尽管GPT-4的训练数据未包含图像,它仍能从文本中推理出独角兽的身体形状。这引发了关于模型是否真正理解单词含义的辩论。尽管此辩论深具哲学性,我们仍应关注模型的实际表现。若模型能在特定问题上给出正确答案,且已控制混淆因素,那么无论其理解方式是否与人类相同,这都是有趣且重要的结果。
语言模型使用下一个令牌预测的原因之一是语言本身的可预测性。语言中的规律通常与物理世界中的规律相关,因此模型在学习单词关系时也在学习世界关系。预测是生物智能和人工智能的基础,良好的预测需要良好的表示方式。
传统上,语言模型的挑战在于如何最佳表示词语,尤其是词语含义随上下文变化的情况。下一个词语预测方法使研究人员能绕过这一难题,通过提供足够数据和计算能力,模型最终能学到很多关于人类语言如何工作的知识。然而,这些系统的内部工作机制并不完全理解。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-13
2024-08-21
2024-07-09
2024-08-04
2024-04-11
2024-06-13
2024-07-18
2024-07-01