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]