跳到正文
Hacker News· AndrewKemendo·· 6 天前AI 评分22

为什么说“没人理解 LLM 如何工作”是错的

Yes I Understand How LLMs Work

AI 导读

针对 MIT Technology Review、TIME、WIRED 等媒体“没人知道 AI 如何工作”的说法,一位亲手训练过模型的研究者指出,LLM 是纯机械系统:文本先转为 token,再经 Transformer 各层的矩阵乘法、注意力计算、归一化和非线性变换,最终输出下一个 token 的概率分布。

正文 · AI 翻译

<--返回

我不断听到有人经常提出这样的说法:“没有人知道大型语言模型是如何工作的”,我想最终终结这个说法。

这不仅仅是我从那些从未训练过模型的人那里听到的。MIT Technology Review 发表了一篇标题为“没有人知道 AI 如何工作”的文章。TIME 发表了另一篇标题为“没有人真正知道 AI 系统如何工作”的文章。WIRED 将神经网络描述为即使对其创造者来说也是神秘的,而 IBM 在其自己的教育材料中重复了类似的说法。这些都是主要出版物,它们将当前可解释性研究的局限呈现得好像它们确立了人类理解的局限。它们并没有。

我理解大型语言模型是如何工作的。成千上万其他花费数年研究、设计、训练和实施它们的人也是如此。你不理解它们如何工作,或者你个人不认识任何理解它们的人,并不意味着没有人理解它们。

大型语言模型是机械系统。它们由人类设计、实施并在我们工程化的计算机上执行的数学函数和软件构建而成。这个过程中任何地方都不涉及魔法。我们知道信息如何进入系统、如何被转换、训练期间参数如何调整,以及这些参数如何用于计算输出。

考虑一下当你向语言模型提问时实际发生了什么。

你的符号(自然文本)被转换为另一种符号格式(token)中的不同代表性数据,这些数据以数值方式表示给计算开关,并通过一系列数学运算传递。在“transformer”架构中,这些运算序列化多个数学函数:矩阵乘法、注意力计算、归一化和非线性变换。得到的数值,或“激活”,通过这个过程的连续版本(称为“层”)传递,直到模型产生可能下一个 token 的分布,然后根据其解码过程从中选择一个输出。在训练期间,模型的预测使用损失函数进行评估,有时结合来自人类或其他软件的标签或反馈,并且得到的误差信号用于调整其参数。对已部署模型的普通查询不会自动改变这些参数。

这些操作中的每一个都可以被检查。如果你能访问模型和适当的仪器,我们可以记录每一层的激活,检查单个注意力头,检查权重和偏差,并追踪产生特定输出的数值计算。我们可以修改组件、移除它们、替换它们,并观察变化。

此外,我们足够理解这些过程,以至于人们不断对它们进行改进。我们开发新架构、修改训练程序、识别计算瓶颈、改变注意力计算方式,并有意改变模型行为。这些改进之所以可能,正是因为理解这些系统如何工作,并能够调查我们尚未理解的部分。

我自己训练过模型,亲手编写过学习算法,并且职业生涯中大部分时间都在从事人工智能方面的工作。我还为那些想了解这些系统从何而来的人写过一份关于人工智能历史与原理的说明。我并非对每个模型的一切都了如指掌,其他人也是如此。这从来都不是我们用来判断一个人是否理解某项技术的标准。

已经有完整的研究项目专门在做这件事。Transformer Circuits 研究项目研究神经网络的内部计算机制,而关于电路追踪的研究则开发出识别和测试特定模型行为所对应通路的方法。这项工作正在进行之中,你可以自己去阅读相关资料,因为与其它科学学科中的许多实验工作不同,其中大部分都是公开的,而且有免费的方法可以利用现有计算机自己构建模型。

就语言模型而言,我们可以比几乎任何其它技术走得更远,因为复现其生成过程相对便宜。不像例如试图复现商用飞机制造过程那样——毕竟外面并没有多少自制的客机在飞。

如果我能获取训练数据、架构、优化过程、初始条件和计算环境,我就可以随心所欲地训练模型并对其进行刻画,这正是我们用来确立多次训练运行之间稳定性、并在评估和模型卡中记录所得模型特征的方法。我可以更改随机种子、改变训练样本的顺序、修改架构,或移除部分训练数据。我可以重复这些实验并比较所得模型,以确定哪些行为会一致地出现,哪些依赖于特定的训练条件。

在存在随机性或非确定性的地方,我们可以通过实验来刻画它。我们可以测量分布、分离变量,并研究训练条件与所得行为之间的因果关系。我们甚至可以比较独立训练的模型所学到的内部表征,以研究相似的计算结构是否会通过不同的训练历史而出现。

我所描述的这一切,正是实验科学运作的方式。

我们尚未开发出一套便捷的流程,能把每一项内部计算都转化为一个对未经任何训练的任意他人都可理解的解释——这一事实并不能证明该系统是不可理解的。这种解读可能很困难,对大多数人来说难以企及,而现代世界中的几乎每一项技术都是如此。

我此前写过关于信念以及我们从他人那里继承来的对世界的理解何其庞大的文章。大多数人从未亲自验证过他们每天使用的技术背后的物理原理。他们依赖的是由那些做过实验、发展出理论并构建出可用系统的人所积累起来的庞大知识体系。

核技术一直是我惯用的对比对象。相对而言,很少有人了解核反应堆的详细工程原理,而能够接触到理解特定核武器设计所需的机密信息的人则更少。那么,有人在说没有人理解核链式反应吗?没有,社会只是接受了这样一个事实:除非你接受专业教育并获得实践经验,否则你在操作层面上不会理解太多(费曼关于量子理解的观点是另一回事)。

人工智能同样是专业化的,尽管其基础科学对于任何愿意研究它的人来说,比大多数实验学科都更容易获得。随着这些系统变得越来越复杂,能够掌握详细理解其构建和运行所需技术知识的人将越来越少。

说你不理解某件事,和宣称没有人理解它,这两者之间有着巨大的差别。在做出这种断言之前,你应该有一些相当非凡的证据。

当然,关于人工智能有无数未解的问题,这正是我们一直在密集研究它的全部原因,而且关于智能本身还有一些开放性问题,远远超出了人工智能的范畴。正如我在关于以科学严谨性作为人工智能基准的讨论中所论证的,进步取决于可衡量的假设和实验。每一个成熟的科学学科都有未解的问题。物理学家并不理解物理学的全部。生物学家并不理解生物学的全部。没有人因此得出结论说没有人理解物理学或生物学。这就是科学的意义所在。它永远不会结束。

2019年,我与东北大学计算哲学实验室的一些哲学家进行了长时间的交谈,其中最大的收获之一与人工智能或计算无关。结论是,哲学不回答问题;它把问题分解成更多的问题,以便获得更好的清晰度。

这就是科学的本质,也是人工智能和所有其他技术学科取得进步的方式。当你说没有人理解大型语言模型(或任何其他技术)如何工作时,你看起来像个傻瓜。如果你遇到这些系统中真正不被理解的东西,那太好了。你发现了一个值得研究的科学问题。提出一个假设,设计一个实验,看看你能学到什么。我反对的是将个人的无知随意转化为关于人类知识的普遍性断言,尤其是当这种断言被用来暗示人工智能在某种程度上是神秘的或超出科学解释的时候。

这些是我们建造、训练和检查的机器。我们可以重现它们的行为,修改它们的内部操作,并研究它们学习的过程。理解这个领域的基础知识都需要数年时间,而获取这些知识的难度并不能证明不存在拥有这些知识的人。

来源:Hacker News · kemendo.com