【人工智能】万字通俗讲解大语言模型内部运行原理 | LLM | 词向量 | Transformer | 注意力机制 | 前馈网络 | 反向传播 | 心智理论
Summary
TLDR本文深入探讨了大语言模型的工作原理,通过词向量、Transformer结构和训练过程的详细解释,揭示了这些模型如何理解和生成语言。文章指出,尽管大语言模型如GPT-3和GPT-4在预测下一个词方面表现出色,但其内部机制仍不为人类完全理解。模型通过学习大量文本数据,自发发展出高级推理能力,但其是否真正理解语言仍是哲学争论的焦点。
Takeaways
- 📚 大语言模型的火爆起源于其内部独特的工作原理,其不同于传统软件的开发方式,而是基于庞大神经网络的训练。
- 🧠 语言模型通过词向量(Word Vector)来表示单词,将单词转换为数字序列,从而能够进行数学运算和推理。
- 🌐 词向量在向量空间中的位置反映了词与词之间的相似性,相似含义的词在空间中距离更近。
- 🔍 Google的word2vec项目通过分析大量文档,学习单词之间的相似性和关系,引起了词向量领域的关注。
- 🤖 大语言模型如GPT-3使用多层神经网络,每一层都会进一步细化词向量,以更好地预测下一个词。
- 🔄 Transformer结构是大语言模型的核心,通过注意力机制和前馈网络处理和预测单词序列。
- 💡 注意力机制允许模型中的每个单词根据上下文与其他单词交互,共享信息,从而更好地理解语言。
- 📈 大语言模型的训练不依赖于显式标记的数据,而是通过预测大量文本中的下一个单词来学习。
- 🚀 随着模型规模的增加,大语言模型在处理语言任务上的表现越来越好,且能够执行更复杂的推理任务。
- 🧠 一些研究表明,大语言模型可能自发地发展出类似人类心智理论的能力,尽管这一观点仍有争议。
- 🌟 大语言模型的成功部分归因于语言的可预测性和其与现实世界的关联,以及模型在大规模数据集上的训练。
Q & A
大语言模型的工作原理是什么?
-大语言模型通过预测文本中的下一个词来学习,使用神经网络处理语言数据。它们基于大量文本数据进行训练,通过调整数以亿计的参数来优化预测的准确性。
词向量在大语言模型中起什么作用?
-词向量是大语言模型用来表示单词的一种方式,它将单词转换为一串数字,这串数字能够捕捉到单词之间的相似性和关系。通过词向量,模型可以在高维空间中对单词进行计算和推理。
什么是Transformer结构?
-Transformer是一种神经网络结构,它是构建大语言模型如GPT的基石。Transformer通过注意力机制和前馈网络处理输入文本,逐层深化对语言的理解,并预测下一个词。
大语言模型如何理解和处理歧义词?
-大语言模型通过上下文信息来处理歧义词。模型会根据单词在句子中的不同位置和周围的词汇来调整其词向量,从而为每个特定上下文中的单词赋予不同的意义。
大语言模型的训练过程是怎样的?
-大语言模型的训练过程包括前向传播和反向传播两个步骤。在前向传播中,模型尝试预测下一个词;在反向传播中,模型根据预测结果调整权重参数以优化性能。这个过程需要大量的数据和计算资源。
大语言模型的规模和性能有什么关系?
-大语言模型的规模和性能呈幂率关系。模型越大,性能越好,前提是训练数据量也要相应增加。随着模型规模的增大,它们在处理语言任务时展现出更强大的能力和更高级的推理能力。
大语言模型如何处理多义词和同音异义词?
-大语言模型能够根据上下文为多义词和同音异义词分配不同的词向量。这样,模型就能区分同一个词在不同上下文中的不同含义,并作出相应的预测。
大语言模型的注意力机制是如何工作的?
-注意力机制通过为每个单词创建查询向量和关键向量来工作。通过计算这些向量的点积,模型可以确定哪些词与当前单词最相关,并将相关信息传递给当前单词,帮助模型更好地理解上下文。
大语言模型如何使用前馈层进行预测?
-前馈层通过模式匹配进行工作。每个神经元都能匹配输入文本中的特定模式,并根据这些模式添加信息到词向量中。这些信息可以帮助模型进行临时预测,从而预测下一个词。
大语言模型在心智理论任务上的表现如何?
-最新的大语言模型如GPT-3和GPT-4在心智理论任务上的表现接近于人类。它们能够处理涉及理解他人思维状态的复杂任务,尽管这种能力可能是自发出现的,而不是被有意设计进去的。
大语言模型是否真正理解语言?
-这是一个有争议的问题。一些人认为大语言模型通过大量训练能够真正理解语言的含义,而另一些人则认为它们只是在重复复杂的单词序列,并没有真正理解它们。目前还没有定论,但模型的表现和能力仍在不断增强。
Outlines
🤖 介绍大语言模型的工作原理
本段落介绍了大语言模型的基本概念和工作原理。提及了蒂姆·李和肖恩·特洛特的文章,该文章用简单的语言解释了大语言模型的内部机制。文章强调了大语言模型的火爆程度,以及大众对其工作原理的普遍不了解。同时,介绍了大语言模型的两个关键技术:词向量和Transformer,以及大语言模型如何通过预测下一个词来进行训练。
📈 词向量和向量空间
这一段深入探讨了词向量的概念,即用数字列表表示单词的方法,并解释了向量空间中相似含义的词会彼此靠近。通过类比地理坐标,说明了词向量如何帮助模型理解和推理语言。同时,提到了Google的word2vec项目,该项目通过分析大量文档来学习单词之间的关系,并通过向量运算展示了模型的推理能力。
🌐 多义词和上下文的理解
本段落讨论了自然语言中的多义词问题,即同一个词在不同上下文中可以有不同的含义。大语言模型能够根据上下文用不同的向量表示同一个词,从而理解词的准确含义。这需要模型理解单词在特定段落中的上下文,而不仅仅是单词本身的意义。
🧠 Transformer结构和神经网络层
这一段详细介绍了Transformer结构和神经网络层在大语言模型中的作用。每个Transformer层通过修改词向量来存储关于词的附加信息,帮助模型更好地预测接下来的词。文章通过一个简单的例子解释了Transformer如何工作,并提到了GPT-3模型的多层结构,以及每一层如何专注于理解句子的不同方面。
🔍 注意力机制和前馈网络
本段落解释了Transformer内部的注意力机制和前馈网络如何工作。注意力机制通过匹配查询向量和关键向量来传递信息,而前馈网络则独立分析每个单词向量并尝试预测下一个词。文章通过具体的例子展示了注意力头如何帮助模型进行预测,并讨论了前馈层如何通过模式匹配来处理信息。
📚 大语言模型的训练过程
这一段详细介绍了大语言模型的训练方式,强调了不需要显式标记数据,而是通过预测文本中的下一个词来学习。通过一个洗澡调整水温的类比,解释了训练过程中的前向传播和反向传播。同时,提到了训练大模型所需的巨大计算量和时间。
🚀 模型规模与性能的关系
本段落探讨了模型规模、数据集规模和计算量与大语言模型性能之间的关系。提到了OpenAI发布的一系列越来越大的模型,如GPT-1、GPT-2、GPT-3和GPT-4,并讨论了这些模型在处理语言任务上的性能提升。同时,提到了大模型在高级推理任务上的表现,以及它们在心智理论等任务上的进展。
🌟 总结与展望
最后一段总结了整个视频的内容,强调了大语言模型的工作原理和它们在理解语言方面的能力。同时,提出了关于大语言模型是否真正理解语言的哲学争论,并指出了这些模型在特定问题上始终得到正确答案的重要性。最后,呼吁观众对视频进行点赞、评论和转发,以帮助更多人理解大语言模型。
Mindmap
Keywords
💡大语言模型
💡词向量
💡Transformer
💡自注意力机制
💡训练数据
💡心智理论
💡前馈层
💡反向传播
💡神经网络层
💡算力
Highlights
大飞介绍大语言模型的火爆背景
蒂姆·李和肖恩·特洛特联合编写解释大语言模型的文章
文章旨在用最少的数学知识解释大语言模型
大语言模型通过预测下一个词来进行训练
大语言模型的开发与一般软件开发的区别
词向量在语言模型中的重要性
Transformer结构是构建大语言模型的基石
大量数据对于训练大语言模型性能的重要性
大语言模型如何处理单词的多重含义
Google的word2vec项目对词向量研究的影响
大语言模型的训练过程和挑战
GPT-3的引入和其对科技界的影响
大语言模型如何在不同层次上理解和处理信息
语言模型的注意力机制如何工作
大语言模型的前馈层是如何预测下一个单词的
Transcripts
大家好这里是最佳拍档我是大飞
这半年时间啊
大语言模型无疑是最火爆的
但是我们呢一直没有好好的去讲一下
大语言模型内部究竟是如何工作的
不过最近啊
蒂姆·李(Tim Lee)和肖恩·特洛特(Sean Trott)
联合编写了一篇文章
用最少的数学知识和术语
对大语言模型进行了解释
先简单对文章作者做一下介绍啊
蒂姆·李曾经任职于科技媒体Ars Technica
他最近呢也推出了一份newsletter
《Understanding AI》
主要是探讨人工智能的工作原理
而肖恩特洛特呢
是加里福尼亚大学圣迭戈分校的助理教授
主要研究人类语言理解和语言模型
好了以下是我翻译的文章内容
咱们看看当你看完视频之后
究竟能否理解大语言模型的内部机制
全文呢几乎没有太复杂的数学概念、公式和运算
所以我觉得呢
对于很多初学者来说也是非常友好的
当ChatGPT在去年秋天推出的时候
在科技行业乃至全世界的范围内引起了轰动
当时呢机器学习的研究人员
已经研发了多年的大语言模型
但是普通大众并没有十分的关注
也没有意识到他们会变得有多强大
如今呢几乎每个人都听说过大语言模型了
并且呢有数千万人用过他们
但是了解他们工作原理的人并不多
你可能听说过
训练大语言模型是用来预测下一个词
而且呢他们需要大量的文本来实现这一点
但是一般的解释呢通常也就是止步于此
他们究竟如何预测下一个词的细节
往往被大家视为一个深奥的谜题
其中一个原因是
大语言模型的开发方式非常与众不同
一般的软件呢都是由人类工程师所编写的
他们为计算机提供明确的逐步的指令
而相比之下
ChatGPT是建立在一个
使用了数十亿个语言词汇
进行训练的神经网络之上
因此呢到现在为止
地球上也没有人完全理解
大语言模型的内部工作原理
研究人员正在努力尝试理解这些模型
但是这是一个需要数年
甚至几十年才能够完成的缓慢过程
不过呢专家们确实对这些系统的工作原理
已经有了不少的了解
我们的目的呢是将这些知识开放给广大的受众
我们将在不涉及技术术语或者高级数学的前提下
努力解释已知的大语言模型内部的工作原理
我们将从解释词向量Word Vector开始
这是语言模型表示和推理语言的一种令人惊讶的方式
然后我们将深入探讨Transformer
它是构建ChatGPT等模型的基石
最后呢我们将解释这些模型是如何训练的
并且探讨为什么要使用庞大的数据量
才能够获得良好的性能
要了解语言模型的工作原理
首先需要了解他们如何来表示单词
人类呢是用字母序列来表示英文单
词的比如说C-A-T cat表示猫
而语言模型呢使用的是一个叫做词向量的
一长串数字的列表
比如说这是一种将猫表示为向量的方式
完整的向量长度呢实际上有300个数字
那为什么要用这么复杂的表示方法呢
这里边啊有个类比
比如说华盛顿区位于北纬38.9度西经77度
我们可以用向量表示法表示为
华盛顿区的坐标是38.9和77
纽约的坐标呢是40.7和74
伦敦的坐标呢是51.5和0.1
巴黎的坐标呢是48.9和-2.4
这对于推理空间关系很有用
你可以看出纽约离华盛顿区很近
因为坐标中的38.9接近于40.7
而77呢接近于74
同样呢巴黎离伦敦也很近
但是巴黎离华盛顿区很远
大语言模型呢正是采用了类似的方法
每个词向量代表了词空间word space中的一个点
具有相似含义的词的位置互相会更为接近
比如说在向量空间中
与猫cat最接近的词就包括dog、kitten和pet
用实数向量来表示像cat这样的单词
它的一个主要优点就是
数字能够进行字母无法进行的运算
单词太过于复杂了
无法只使用二维来表示
因此大语言模型使用了具有数百甚至数千维度的向量空间
人们无法想象具有如此高维度的空间
但是计算机完全可以对它进行推理
并产生有用的结果
几十年来研究人员一直在研究词向量
但是这个概念呢真正引起关注的是在2013年
那时候Google公布了word2vec项目
Google分析了从Google新闻中收集的数百万篇文档
为了找出哪些单词倾向于出现在相似的句子中
随着时间的推移
一个经过训练的神经网络
学会了将相似类别的单词
比如说dog和cat
放置在向量空间中的相邻位置
Google的词向量还具有另一个有趣的特点
你可以使用向量运算来推理单词
比如说
Google研究人员取出biggest的向量
减去big的向量再加上small的向量
与结果向量最接近的词就是smallest
也就是说
你可以使用向量运算来进行类比
在这个例子中
big与biggest的关系类似于small与smallest的关系
Google的词像量还捕捉到了许多其他的关系
比方说瑞士人与瑞士这类似于柬埔寨人与柬埔寨
巴黎于法国类似于柏林与德国
不道德的与道德的类似于可能的与不可能的
mouse与mice类似于dollar与dollars
男人与女人类似于国王与女王
等等等等
因为这些向量是从人们使用语言的方式中构建的
所以他们反映了许多存在于人类语言中的偏见
比如说在某些词项链的模型中
医生减去男人再加上女人等于护士
减少这种偏见呢是一个很新颖的研究领域
尽管如此
词向量是大语言模型的一个基础
他们编码了词与词之间微妙但是重要的关系信息
如果一个大语言模型学到了关于cat的一些知识
比方说他有时候会去看兽医
那同样的事情呢很可能也适用于kitten或者dog
如果模型学到了关于巴黎和法国之间的关系
比方说他们使用了同一种语言
那么柏林和德国以及罗马和意大利的关系
很可能也是一样的
但是像这样简单的词向量方案
并没有捕获到自然语言的一个重要事实
那就是一个单词通常有多重的含义
比如说
单词bank可以指金融机构或者是河岸
或者以这两个句子为例
在这两个句子中magazine的含义相关但是又有不同
约翰拿起的是一本杂志
而苏珊为一家出版杂志的机构工作
当一个词有两个无关的含义时
语言学家称之为同音异义词(homonyms)
当一个词有两个紧密相关的意义时
比如说这个magazine
语言学家呢称之为多义词(polysemy)
像ChatGPT这样的大语言模型
能够根据单词出现的上下文
用不同的向量来表示同一个词
有一个针对于机构的bank的向量
还有一个针对于河岸的bank的向量
有一个针对于杂志的magazine的向量
还有一个针对于杂志社的magazine的向量
对于多义词的含义啊 正如你预想的那样
大语言模型使用的向量会更相似
而对于同音异义词的含义
使用的向量呢则不太相似
到目前为止
我们还没有解释语言模型是如何做到这一点的
我们很快呢会进入这个话题
不过详细说明这些向量表示
这对于理解大语言模型的工作原理非常重要
在传统软件的设计中数据处理呢是明确的
比如说你让计算机计算2+3
关于2、加号或者3的含义呢都不存在歧义问题
但是自然语言中的歧义
远不止于同音异义词和多义词
比方说顾客请修理工修理他的车
这句话中his是指顾客还是指修理工
教授催促学生完成她的家庭作业中
her是指教授还是学生
第三句中的flies
到底是一个动词在空中飞
还是一个名词果蝇呢
在现实中人们会根据上下文来解决这类歧义
但是并没有一个简单或者明确的规则
相反呢这就需要理解关于这个世界的实际情况
你需要知道
修理工经常会修理顾客的汽车
学生呢通常会完成自己的家庭作业
而水果呢通常不会飞
因此呢词向量为大语言模型提供了一种灵活的方式
用来在特定段落的上下文中
表示每个词的准确含义
现在让我们来看看
他们是究竟如何做到这一点的
ChatGPT最初版本背后的GPT-3
模型是由数十个神经网络层组成的
因为输入文本中的每个词会对应着一个向量
所以这些神经网络中的每一层
都会接受一系列的向量作为输入
并添加一些信息来帮助澄清这个词的含义
从而更好的预测接下来可能出现的词
让我们从一个简单的示例说起
大语言模型的每个层呢都是一个Transformer
2017年Google在一篇里程碑式的论文中
首次介绍了这种神经网络结构
在这张图的底部
模型的输入文本是John wants his back to catch the
翻译过来就是约翰想让他的银行兑现
这些单词呢被表示为word2vec的风格的向量
并传提给第一个Transformer
这个Transformer确定了wants和cash都是动词
我们用小括号内的红色文本表示这个附加的上下文
但实际上模型会通过修改词向量的方式来存储这个信息
这种方式对于人类来说很难解释
这些新的向量被称为隐藏状态hidden state
并传递给下一个Transformer
第二个transformer添加了另外两个上下文信息
他澄清了bank是金融机构financial institution
而不是河岸
并且his是指代John的代词
第二个Transformer产生了另一组隐藏状态向量
这组向量反映的是这个模型之前所学习的所有信息
这张图表描绘的是一个纯粹假想的大语言模型
所以大家呢不要对细节过于较真
真实的大圆模型往往有更多的层
比如说最强大的GPT-3版本有96层
有研究表明
前几层的神经网络会专注于理解句子的语法
并且解决上面所表示的歧义
而后面的层则致力于对整个文本段落的高层次的理解
比如说当大语言模型阅读一篇短篇小说的时候
他似乎会记住关于故事角色的各种信息
包括性别和年龄、与其他角色的关系
过去和当前的位置个性和目标等等
研究人员呢并不完全了解
大语言模型是如何跟踪这些信息的
但是从逻辑上来讲
模型在各层之间传递信息时候
必须通过修改隐藏状态的向量来实现
现代大语言模型中的向量维度极为庞大
这有利于表达更为丰富的语义信息
比如说GPT-3最强大的版本使用了有12,288个维度的词向量
也就是说每个词是由一个包含了12,288个的数字序列表示
这比Google在2013年提出的word2vec的方案要大20倍
你可以把所有这些额外的维度看作是GPT-3
可以用来记录每个词的上下文的一种暂存空间Scratch space
较早的层所做的信息笔记可以被后来的层读取和修改
从而使得模型逐渐加深对整篇文章的理解
因此假设我们将之前的图表改为描述一个96层的语言模型
来解读一个1,000字的故事
那么第60层可能会包含一个用于John的向量
带有一个表示为主角、男性、娶了谢利尔唐、纳德的表弟
来自于明尼斯达州、目前在博伊希、试图找到他丢失的钱包
这样一整套的括号注释
同样呢所有这些以及更多的事实
都会以一个包含12,288个数字列表的形式进行编码
这些数字都对应着这个词John
或者说这个故事中的其他词
比方说谢利尔、唐纳德、伯伊希、钱包
或者是其他的词
他们的某些信息也会被编码在12,288维的向量中
这样做的目标是让网络的第96层和最后一层
输出一个包含所有必要信息的隐藏状态
从而来预测下一个单词
现在我们来谈谈每个Transformer内部发生的情况
Transformer在更新输入段落的每个单词的隐藏状态时候
有两个处理过程
第一个呢是在注意力的步骤中
词汇会观察周围
查找具有相关背景并彼此共享信息的其他的词
第二呢在前馈步骤中
每个词会思考之前注意力步骤中收集到的信息
并尝试预测下一个词
当然了执行这些步骤的是整个网络
而不是个别的单词
但是我们用这种方式来表述是为了强调
Transformer是以单词作为这一个分析的基本单元
而不是整个句子或者是段落
这种方法使得大语言模型能够充分的利用
现代GPU芯片的大规模并行处理能力
它还可以帮助大语言模型
扩展到包含成千上万个词的长段落
而这两个方面都是早期大语言模型所面临的挑战
你可以将注意力机制
看作是单词之间的一个撮合服务
每个单词呢都会制作一个检查表称为查询向量
来描述他寻找的词的特征
每个词呢还会制作一个检查表称为关键向量
描述他自己的特征
神经网络通过将每个关键向量与每个查询向量进行比较
通过计算他们的点积来找到最佳匹配的单词
一旦找到匹配项
他就会从产生关键向量的单词
把相关信息传递给产生查询向量的单词
比如说在前面的部分中
我们展示了一个假想的Transformer模型
他发现在“John wants his bank to cash the”这个句子中
his指的就是John
在系统内部
过程可能是这个样子
his的查询向量可能会有效的表示为
我正在寻找一名描述男性的名词
而John的关键向量可能会有效的表述为
我是一个描述男性的名词
然后网络就会检测到这两个向量是匹配的
并将关于John的向量信息转移给his的向量
每个注意力层都有几个注意力头
这意味着这个信息交换的过程在每一层上会并行的进行多次
每个注意力头呢都会专注于不同的任务
比方说其中一个注意力头
可能会将代词与名词进行匹配
另外一个注意力头
可能会处理解析类似于bank这样的一词多义的含义
第三个注意力头
可能会将Joe Biden这样的两个单词连接在一起
诸如这类的注意力头经常会按照顺序来操作
一个注意力层中的注意力操作结果
会成为下一层中的另一个注意力头的输入
事实上呢
我们刚才列举的每个任务可能都需要多个注意力头
而不仅仅是一个
GPT-3的最大版本呢有96个层
每个层有96个注意力头
因此每次预测一个新词的时候
GPT-3将执行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 Head)
将信息呢从Marry向量复制到了最后的输入向量
也就是to这个词所对应的向量
GPT-2使用这个最右向量中的信息来预测下一个单词
那么神经网络又是如何来决定Marry是正确的复制词呢
通过GPT-2的计算过程进行逆向的推导
科学家们发现了一组他们称之为主语抑制头的四个注意力头(Subject Inhibition Head)
它们标记了第二个John向量
阻止了名称移动头来复制John这个名字
主语抑制头又是如何知道不应该复制John的呢
团队进一步向后推导
发现了他们称为重复标记头的两个注意力头
(Duplicate Token Heads)
他们将第二个John向量
标记为第一个John向量的重复副本
这帮助主语抑制头来决定不应该复制John
简而言之
这9个注意力头使得GPT-2能够理解
“John gave a drink to John”是没有意义的
而选择“John gave a drink to Mary”
这个例子呢也侧面说明了
要完全理解大语言模型会有多么困难
由五位研究人员组成的Redwood团队
曾经发表了一篇25页的论文
解释了他们是如何识别和验证这些注意力头的
然而即使他们完成了所有这些工作
我们离对于为什么GPT-2决定
预测Mary作为下一个单词的全面解释
还有很长的路要走
比如说模型是如何知道下一个单词应该是某个人的名字
而不是其他类型的单词
很容易想到在类似的句子中
Mary不会是一个好的下一个预测词
比如说
在句子“when Mary and John went to the restaurant, John gave his keys to”这个句子中
逻辑上呢下一个词应该是“the valet”
即代客停车员
假设计算机科学家们进行了充足的研究
也许他们可以揭示和解释
GPT-2推理过程中的其他步骤
最终呢他们可能能够全面理解GPT-2
是如何决定Marry是句子最可能的下一个单词
但是这可能需要数个月甚至数年的努力
才能够理解一个单词的预测情况
而ChatGPT背后的语言模型
GPT-3和GPT-4 比GPT-2呢更加的庞大和复杂
相比于Redwood团队研究的简单句子
他们能够完成更复杂的推理任务
因此完全解释这些系统的工作将是一个巨大的项目
人类不太可能在短时间内完成
我们继续回到注意力头的部分
当注意力头在词向量之间传输信息之后
前馈网络会思考每个词向量并且尝试预测下一个词
在这个阶段单词之间没有交换任何的信息
前馈层会独立的去分析每个单词
但是前馈层可以访问之前由注意力头复制的任何信息
这个是GPT-3最大版本的前馈层结构
其中绿色和紫色的圆圈表示神经元
他们是计算其输入加权和的数学函数
前馈层之所以强大是因为它有大量的连接
在图上呢我们使用了三个神经元作为输出层