从一场神学争论到 next-token 预测

[这不是典型的博客文章,我正在测试这种格式,非常感谢你的反馈。]

人工智能发展如此迅速,甚至五年前也仿佛是史前时代。每隔几个月就有新模型、新产品和缩写出现,每一波都让上一波看起来异常原始。

感谢您的阅读,Kilo博客!免费订阅以接收新文章并支持我的工作。

但当我开始思考“下一个符号预测”的理念究竟从何而来时,我发现自己回到了不是五年前,而是一个多世纪前——两位俄罗斯数学家之间的神学争论。

我想弄明白我们是如何从普希金作品中数元音,发展到能够写作、翻译、生成代码并进行对话的机器。我发现的不是单一的发明时刻,也不是一条必然通向ChatGPT的直路。

而是一系列出于截然不同原因发展的理念,最终汇聚在一起。

这是我试图连接这些点的尝试——不是通过每一个技术突破,而是通过那些让现代语言模型成为可能的几个重大理念。

关于自由意志的争论

20世纪初,俄罗斯数学家安德烈·马尔科夫与同为数学家、最初受过神学训练的帕维尔·涅克拉索夫发生了长期争论。

他们的分歧源于数学,但也涉及宗教、政治和自由意志问题。涅克拉索夫属于一群试图利用概率论支持人类选择独立观点的俄罗斯知识分子。

马尔科夫是无神论者,也是教会的直言批评者,他认为这是对数学的滥用。

数学问题在于可靠的统计定律是否要求事件必须独立。一个熟悉的独立性例子是掷硬币:一次公平掷硬币的结果不决定下一次。但世界上很多地方并非如此。

明天的天气与今天的天气息息相关。国际象棋局中的下一步行动取决于棋盘上已有的位置。句子中的下一个字母受前一个字母的影响。

马尔可夫试图证明依赖事件仍能产生数学可描述的模式。一个事件可以被之前发生的事情塑造,而整个序列不会变得不可知。

这个想法最终成为我们现在所说的马尔可夫链的基础。但马尔可夫并不是想创建一个语言模型,更别说一个聊天机器人了。他试图赢得关于概率的争论。

元音计数叶甫盖尼·奥涅金

为了展示他的观点,马尔科夫选择了一个不寻常的数据集:亚历山大·普希金的诗体小说,叶甫盖尼·奥涅金.

1913年,他对文本中2万个字母进行了分析。他手工将字母分类为元音或辅音,并计算一个字母接着另一个字母的频率。他想知道下一个字母出现的概率是否会因前一个字母而变化。

确实如此。

元音并非在每个点都出现的可能性相同。元音出现的概率在另一个元音之后与辅音之后不同。马尔可夫证明,书面语言包含可测量的依赖链。

这距离文本生成还有很长的路要走。马尔可夫并没有让机器继续普希金的句子,也没有预测整个单词。他用文学作为数学论证的证据。

即便如此,他的实验提出了贯穿语言模型历史的一个问题:

我们能从过去的历史中学到多少关于未来的内容?

香农把猜测变成了一门科学

几十年后,这个问题在贝尔实验室的克劳德·香农的工作中再次出现。

香农最初并不是想让计算机说话或写字。他试图理解通信。一个通道能传输多少信息?信号噪声时会发生什么?信息能从周围环境中重建多少内容?

要回答这些问题,他必须考虑可预测性。

在他1948年关于信息论的奠基性论文中,香农提出了几种英语近似。随机选择的字母看起来像噪声。根据英语中字母的频率选择的字母则显得稍微熟悉一些。

当每个新符号的选择考虑了之前的符号时,开始出现类似英语的片段。

使用越多的语境,结果就越像语言。

香农后来进行了实验,让人们猜测英语段落中的下一个字符。有些字符容易预测;另一些则更具惊喜感。这帮助他估算书面语言的冗余性——即即使缺少部分信息,信息仍能被理解。

马尔可夫证明了序列中的符号可以相互依存。香农则证明了这种依赖性可以用来衡量信息。可预测性不再只是对语言的观察。它已成为一般交流理论的一部分。

当机器通过计数来学习语言时

在接下来的半个世纪里,统计语言技术主要围绕计数而构建。

系统可以浏览大量文本,并记录哪些单词通常会同时出现。如果“peanut butter and”后面经常跟“jelly”,那么“jelly”作为下一个单词的概率很高。

这种模型被称为n-gram:它们通过一串短暂的前置单词或符号进行预测。

这些模型逐渐融入了日常技术:

  • 语音识别
  • 拼写纠正
  • 早期机器翻译
  • 手机上的预测性打字
  • 搜索框中熟悉的自动补全建议

早在ChatGPT出现之前,数百万人已经在与试图预测他们接下来要说什么或打什么的系统互动。

计数效果显著,但存在明显的局限。语言可以产生几乎无穷无尽的组合。许多完全合理的短语可能只出现一次,甚至根本不会出现在构建模型的材料中。

模型们也难以识别相似性。“狗”和“小狗”与我们关系密切,但在字数表中它们只是两个不同的条目。学习其中一个词条并不自动教会系统关于另一个词条的知识。

旧系统能够记住共同的序列。下一代将开始学习单词的共同点。

从数字到表示

这正是神经网络介入的地方。

神经语言模型不再将每个词都视为孤立的符号,而是学习词的数值表示。在这些表示中,以相似方式使用的词语可能获得相似特征。“巴黎”、“伦敦”和“罗马”不必存储在完全相同的语境中,模型也能注意到它们扮演着相关角色。

2003年,Yoshua Bengio及其同事发表了一篇有影响力的论文,描述了一个神经网络在学习这些词表征的同时,学习预测下一个词。

训练过程无需深入数学即可解释。模型被展示部分文本,并被要求猜测接下来会发生什么。它将预测结果与实际单词进行比较,稍作调整后再次尝试。

通过在大量样本中重复这一过程,模型逐渐提升了预测能力。

重要的转变是从将短语存储在巨大的计数表中,转向学习可重复使用的模式。模型在一句话中学到的内容可以帮助它理解另一个从未见过的句子。

后来,神经网络在传递信息于序列中变得更好。但它们在处理长篇段落时仍然存在困难。句子开头的信息在模型到达结尾时可能会逐渐淡化。

逐步处理文本也使这些系统在大规模训练时变慢。

下一个突破始于一个看似简单的想法:也许模型不应该试图一视同仁地记住所有事情。

学习该注意哪里

请考虑这句话:

那只动物没有过马路,因为它累了。

解释“它”时,我们自然会将该词与“动物”联系起来。句子中其他词对该关系影响较小。

注意力为神经网络提供了类似的操作。在生成或解释一个词时,模型可以检查文本的不同部分,并赋予当时看起来相关的部分更多重要性。

注意力最初作为机器翻译问题的解决方案而变得突出。早期系统试图在翻译前将整句话的含义压缩到单一内部表示中。这对短句有效,但随着句子变长,信息很容易丢失。

只要有注意力,系统可以在生成翻译的每个部分时回溯原句的不同部分。它不再完全依赖逐渐模糊的记忆,而是可以决定关注哪里。

这一理念为变压器铺平了道路。

变压器——以及异常短的上市之路

2017年,一组谷歌研究人员发表了一篇名为“Will”的论文注意力就是你所需要的全部.它引入了变压器,一种以注意力为核心的架构,而非传统的逐步重复性方法。

变换器可以在现代计算硬件上更高效地训练,同时研究单词之间的关系。这一实际优势极为重要。研究人员现在可以在更大规模的文本集合上训练更大的模型。

变换金刚最初是一个机器翻译架构,而非通用聊天机器人的计划。然而,从研究论文到广泛使用的产品的过程异常迅速。

2018年,GPT和BERT证明,训练于大量文本的变换器可以获得可转移至多种语言任务的能力。2019年,GPT-2证明了训练更多数据的更大模型能够生成出意想不到的连贯段落。

到2020年,GPT-3能够根据提示词中直接包含的指令和示例执行一系列任务,这些能力通过API向开发者开放。

随后,在2022年底,ChatGPT为这项技术配备了对话界面,几乎让任何人都能访问。

变压器从一篇研究论文到商业化平台大约花了三年时间,成为大众消费产品则花了大约五年时间。这种速度有助于解释为什么五年在人工智能领域会让人感觉像是史前时代。

但变换器只是其中一个因素。现代语言模型之所以成为可能,是因为多种因素共同出现:架构、庞大的数字文本集合、强大的计算基础设施、改进的训练技术,以及愿意探索规模性能能被推到多远的态度。

变压器并没有发明语言预测。它让语言预测变得可扩展。

当预测开始变得更为重要时

GPT式模型训练的任务听起来几乎令人失望地简单。它看到文本的一部分,试图预测下一个标记。标记可以是一个完整的单词、单词的一部分、数字或一段标点符号。

称之为“自动补全”并非完全错误,但这可能掩盖任务的难度。

要继续一个配方,模型必须学习配方中的模式。要继续写一份法律文件,它必须掌握一些法律语言。为了预测计算机程序的下一行,它必须学习代码中的重复结构。

为了继续历史讨论,它必须吸收人物、事件、地点和日期之间的关联。

该模型直接训练以预测词汇。但当它在多种文本类型中预测能力非常强时,会促使它构建文本背后结构的内部表征:语法、风格、概念、关系和推理模式。

这并不能解决语言模型是否“理解”于人类意义上的问题。也不能使其输出自动为真。一个合理的延续仍然可能在事实上是错误的。但它有助于解释为什么“仅仅预测下一个标记”就能产生看起来比预测更广泛的能力。

同样的方法在软件领域也被证明非常有效。代码和散文一样,是一系列标记——而真实程序高度重复。研究人员通过在公共代码上训练语言模型,同时辅以注释和文档,教会它们从任务描述转向可能实现的过程。

2021年,这一想法通过GitHub Copilot传达到开发者手中,该平台由OpenAI的Codex生产版本驱动:下一标记预测已成为实用的编码工具。

语言模型还不是助手

还有一个区别很容易被忽视。

一个训练用于预测文本的模型本质上是一个延续引擎。如果它看到了许多问题和答案,它可能会学会回答问题。但仅靠下一个令牌训练并不能告诉它它应该总是有帮助、遵循用户意图、承认不确定性或避免有害指令。

需要额外的训练,才能将基础语言模型转变为更接近助手的存在。人们提供理想答案的例子,比较不同的回答,并帮助塑造系统应偏好的行为类型。

这一训练层是用户体验到对话式AI产品的个性和实用性的重要部分。底层模型预测了延续;助手也被训练将延续解读为对人类请求的回应。

这一最后一步也提醒我们,ChatGPT不仅仅是一个变压器放在聊天窗口里。它是架构、规模、数据、人类反馈、界面设计和工程的结合。

回到马尔科夫

很容易用马尔科夫与内克拉索夫的争执直接联系到ChatGPT来结束这个故事。但历史很少会那么整齐。

马尔科夫并没有发明下一个令牌预测。香农也没有在构建聊天机器人。引起关注的研究人员试图改进翻译,而变换器本身最初并未被作为通用助手的基础。

每个小组都在解决眼前的问题。这种联系只有事后才能显现。

马尔可夫提供了依赖性的数学。香农将可预测性与信息联系起来。统计语言模型将预测转化为实用的工程技术。神经网络学会了单靠计数无法捕捉的表征。

注意力为模型提供了更好的上下文利用方式,变换器使过程可扩展。庞大的数据集和计算能力使该机制远远超出其最初的应用范围。

故事始于关于依赖事件是否仍能遵守数学定律的争论。一个多世纪后,同样的广泛见解仍潜藏于全球使用的系统之下:接下来发生的事情受前人影响,这些关系是可以学习的。

马尔可夫数元音和辅音,是为了说明概率问题。他几乎无法想象这个问题最终会引向何方。

资料来源与延伸阅读

感谢您的阅读,Kilo博客!免费订阅以接收新文章并支持我的工作。

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论