输入“/”快速插入内容

1. 通俗解构语言大模型的工作原理

2023年9月12日修改
作者|Tim Lee、Sean Trott
OneFlow 编译
📌
语言大模型内部究竟是如何工作的?本文用最少的数学知识和术语进行解释。
本文作者 Tim Lee 曾任职科技媒体 Ars Technica,他近期推出了一份 Newsletter《Understanding AI》,主要探讨人工智能的工作原理。Sean Trott 是加利福尼亚大学圣迭戈分校助理教授,他在研究人类语言理解和语言模型。
ChatGPT 在去年秋天推出时,在科技行业乃至世界范围内引起了轰动。当时,机器学习研究人员尝试研发了多年的语言大模型LLM),但普通大众并未十分关注,也没有意识到它们变得多强大。
如今,几乎每个人都听说过 LLM,并有数千万人用过它们,但是,了解工作原理的人并不多。你可能听说过,训练 LLM 是用于“预测下一个词”,而且它们需要大量的文本来实现这一点。但是,解释通常就止步于此。它们如何预测下一个词的细节往往被视为一个深奥的谜题。
其中一个原因是,这些系统的开发方式与众不同。一般的软件是由人类工程师编写,他们为计算机提供明确的、逐步的指令。相比之下,ChatGPT 是建立在一个使用数十亿个语言词汇进行训练的神经网络之上。
因此,地球上没有人完全理解 LLM 的内部工作原理。研究人员正在努力尝试理解这些模型,但这是一个需要数年甚至几十年才能完成的缓慢过程。
然而,专家们确实对这些系统的工作原理已有不少了解。本文的目标是将这些知识开放给广大受众。我们将努力解释关于这些模型内部工作原理的已知内容,而不涉及技术术语或高级数学。
我们将从解释词向量(word vector)开始,它是语言模型表示和推理语言的一种令人惊讶的方式。然后,我们将深入探讨构建 ChatGPT 等模型的基石 Transformer。最后,我们将解释这些模型是如何训练的,并探讨为什么要使用庞大的数据量才能获得良好的性能。
1、词向量
要了解语言模型的工作原理,首先需要了解它们如何表示单词。人类用字母序列来表示英文单词,比如 C-A-T 表示猫。语言模型使用的是一个叫做词向量的长串数字列表。例如,这是一种将猫表示为向量的方式:
代码块
[0.0074, 0.0030, -0.0105, 0.0742, 0.0765, -0.0011, 0.0265, 0.0106, 0.0191, 0.0038, -0.0468, -0.0212, 0.0091, 0.0030, -0.0563, -0.0396, -0.0998, -0.0796, …, 0.0002]
(注:完整的向量长度实际上有 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)”中的一个点,具有相似含义的词的位置会更接近彼此。例如,在向量空间中与猫最接近的词包括狗、小猫和宠物。用实数向量表示单词(相对于“C-A-T”这样的字母串)的一个主要优点是,数字能够进行字母无法进行的运算。
单词太复杂,无法仅用二维表示,因此语言模型使用具有数百甚至数千维度的向量空间。人类无法想象具有如此高维度的空间,但计算机完全可以对其进行推理并产生有用的结果。
几十年来,研究人员一直在研究词向量,但这个概念真正引起关注是在 2013 年,那时 Google 公布了 word2vec 项目。Google 分析了从 Google 新闻中收集的数百万篇文档,以找出哪些单词倾向于出现在相似的句子中。随着时间的推移,一个经训练过的神经网络学会了将相似类别的单词(如狗和猫)放置在向量空间中的相邻位置。
Google 的词向量还具有另一个有趣的特点:你可以使用向量运算“推理”单词。例如,Google 研究人员取出最大的(biggest)向量,减去大的(big)向量,再加上小的(small)向量。与结果向量最接近的词就是最小的(smallest)向量。
你可以使用向量运算来做类比!在这个例子中,大(big)与最大的(biggest)的关系,类似于小(small)与最小的(smallest)的关系。Google 的词向量捕捉到了许多其他的关系:
瑞士人与瑞士类似于柬埔寨人与柬埔寨——国籍