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

编译:OneFlow
作者|Tim Lee、Sean Trott

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

文章插图
图片来源:由无界 AI生成
语言大模型内部究竟是如何工作的?本文用最少的数学知识和术语进行解释 。
本文作者Tim Lee曾任职科技媒体Ars Technica , 他近期推出了一份Newsletter《Understanding AI》 , 主要探讨人工智能的工作原理 。Sean Trott是加利福尼亚大学圣迭戈分校助理教授 , 他在研究人类语言理解和语言模型 。(以下内容经授权后由OneFlow编译发布 , 转载请联系OneFlow获得授权 。原文:https://www.understandingai.org/p/large-language-models-explained-with)
当ChatGPT在去年秋天推出时 , 在科技行业乃至世界范围内引起了轰动 。当时 , 机器学习研究人员尝试研发了多年的语言大模型(LLM) , 但普通大众并未十分关注 , 也没有意识到它们变得多强大 。
如今 , 几乎每个人都听说过LLM , 并有数千万人用过它们 , 但是 , 了解工作原理的人并不多 。你可能听说过 , 训练LLM是用于“预测下一个词” , 而且它们需要大量的文本来实现这一点 。但是 , 解释通常就止步于此 。它们如何预测下一个词的细节往往被视为一个深奥的谜题 。
其中一个原因是 , 这些系统的开发方式与众不同 。一般的软件是由人类工程师编写 , 他们为计算机提供明确的、逐步的指令 。相比之下 , ChatGPT是建立在一个使用数十亿个语言词汇进行训练的神经网络之上 。
因此 , 地球上没有人完全理解LLM的内部工作原理 。研究人员正在努力尝试理解这些模型 , 但这是一个需要数年甚至几十年才能完成的缓慢过程 。
然而 , 专家们确实对这些系统的工作原理已有不少了解 。本文的目标是将这些知识开放给广大受众 。我们将努力解释关于这些模型内部工作原理的已知内容 , 而不涉及技术术语或高级数学 。
我们将从解释词向量(word vector)开始 , 它是语言模型表示和推理语言的一种令人惊讶的方式 。然后 , 我们将深入探讨构建ChatGPT等模型的基石Transformer 。最后 , 我们将解释这些模型是如何训练的 , 并探讨为什么要使用庞大的数据量才能获得良好的性能 。
词向量
要了解语言模型的工作原理 , 首先需要了解它们如何表示单词 。人类用字母序列来表示英文单词 , 比如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新闻中收集的数百万篇文档 , 以找出哪些单词倾向于出现在相似的句子中 。随着时间的推移 , 一个经训练过的神经网络学会了将相似类别的单词(如狗和猫)放置在向量空间中的相邻位置 。


推荐阅读