微型语言模型的成熟

2023-10-07 16:17

习英语并不是一件容易的事,无数学生都知道。但当学生是一台计算机时,有一种方法效果出人意料地好:只需将互联网上的大量文本输入到称为神经网络的巨型数学模型中即可。这就是 OpenAI 的 ChatGPT 等生成语言模型背后的操作原理,在过去的一年里,它能够就广泛的主题进行连贯(如果不是总是真实)的对话,这让研究人员和公众感到震惊。

但这种方法有其缺点。一方面,将大量文本档案转化为最先进的语言模型所需的“训练”过程成本高昂且耗时。另一方面,即使是训练大型语言模型的人也发现很难理解其内部运作方式;反过来,这又使得人们很难预测他们可能失败的多种方式。

面对这些困难,一些研究人员选择在较小的数据集上训练较小的模型,然后研究它们的行为。“这就像对果蝇基因组进行测序与对人类基因组进行测序一样,”布朗大学语言模型研究员埃莉·帕夫利克 (Ellie Pavlick)说。

现在,在最近发布到科学预印本服务器 arxiv.org 上的一篇论文中,两位微软研究人员介绍了一种训练微型语言模型的新方法:通过严格的儿童故事来培养它们。

机器学习研究人员已经接受了这一教训。GPT-3.5 是为 ChatGPT 界面提供支持的大型语言模型,拥有近 2000 亿个参数,并且是在包含数千亿单词的数据集上进行训练的。(OpenAI 尚未发布其后继产品 GPT-4 的相应数据。)训练如此大型的模型通常需要至少 1,000 个称为 GPU 的专用处理器,一次并行运行数周。只有少数公司能够聚集必要的资源,更不用说训练和比较不同的模型了。

两位研究人员表明,通过这种方式训练,比当今最先进的系统小数千倍的语言模型很快就能学会讲述一致且符合语法的故事。他们的结果暗示了新的研究方向,可能有助于训练更大的模型和理解它们的行为。

“我发现这篇论文内容非常丰富,”西雅图艾伦人工智能研究所的语言模型研究员钱德拉·巴加瓦图拉 (Chandra Bhagavatula)说。“这个概念本身非常有趣。”

曾几何时

语言模型核心的神经网络是松散地受人脑启发的数学结构。每一层都包含许多分层排列的人工神经元,相邻层的神经元之间有连接。神经网络的行为由这些连接的强度(称为参数)控制。在语言模型中,在给定初始提示和它已经生成的单词的情况下,参数控制模型接下来可能会吐出哪些单词。

模型只有在训练期间才能真正发挥作用,即反复将自己的输出与其训练数据集中的文本进行比较,并调整其参数以增加相似度。具有随机参数的未经训练的网络很容易通过几行代码组装起来,但它只会产生乱码。经过训练后,它通常可以振振有词地继续不熟悉的文本。较大的模型通常会经过进一步的微调,教它们回答问题并遵循指令,但大部分训练是掌握单词预测。

单词预测的成功需要一个语言模型来掌握许多不同的技能。例如,英语语法规则表明,无论文本的主题如何,“going”一词之后的下一个词很可能是“to”。此外,一个系统需要事实知识来完成“法国的首都是”,而完成包含“不是”一词的段落则需要对逻辑有初步的掌握。

“原始语言非常复杂,” DeepMind 机器学习研究员Timothy Nguyen说。“为了产生有趣的语言能力,人们求助于‘数据越多越好’。”

Ronen Eldan是一位数学家,于 2022 年加入微软研究院研究生成语言模型,他希望开发一种更便宜、更快速的方法来探索他们的能力。做到这一点的自然方法是使用一个小数据集,这反过来意味着他必须训练模型专门从事特定任务,这样它们就不会分散得太薄。最初,他想训练模型来解决某一类数学问题,但有一天下午,在与 5 岁的女儿相处后,他意识到儿童故事非常适合。

“在我给她读了一个故事后,我真的想到了这一点,”他说。

为了生成连贯的儿童故事,语言模型需要了解世界的事实,跟踪人物和事件,并遵守语法规则——大型模型面临的挑战的简单版本。但在海量数据集上训练的大型模型会学习无数不相关的细节以及真正重要的规则。埃尔丹希望儿童故事的简洁性和有限的词汇量可以让小模型的学习更容易管理——让它们更容易训练,也更容易理解。

然而,在语言模型的世界中,“小”是相对的:比用于训练 GPT-3.5 的数据集小一千倍的数据集仍然需要包含数百万个故事。“我不知道你想花多少钱,但我猜你不会聘请专业人士来写(几百万)短篇小说,”阮说。

需要一位非常多产的作家才能满足如此贪婪的读者,但埃尔丹心中有几个候选人。谁比大型语言模型更适合为小型语言模型的受众编写?

玩具总动员

埃尔丹立即着手创建一个由大型语言模型生成的合成儿童故事库。但他很快发现,即使是最先进的模型也不是天生就很有创造力。埃尔丹说,如果你只是让 GPT-4 写适合 4 岁孩子的故事,“大约五分之一的故事将是关于孩子们去公园害怕滑梯的故事。” 就互联网而言,这显然是典型的学前故事。

解决方案是在提示中添加一点随机性。首先,Eldan 使用 GPT-4 生成了 4 岁孩子可能知道的 1,500 个名词、动词和形容词的列表 - 足够短,他可以轻松地自己检查。然后,他编写了一个简单的计算机程序,该程序会反复提示 GPT-3.5 或 GPT-4 生成一个适合年龄的故事,其中包括列表中的三个随机单词,以及额外的随机选择的细节,例如幸福结局或情节转折。幸运的是,最终的故事并没有那么集中于可怕的幻灯片。

埃尔丹现在有了一个按需生成训练数据的程序,但他不知道需要多少个故事来训练功能模型,或者该模型需要有多大。就在那时,他与微软和卡内基梅隆大学的机器学习研究员Yuanzhi Li合作,利用小模型可以很快训练的事实,尝试不同的可能性。第一步是决定如何评估他们的模型。

在语言模型研究中——就像在每个课堂上一样——评分是一个令人担忧的话题。没有一个完美的标准能够囊括研究人员想知道的所有内容,在某些任务上表现出色的模型往往在其他任务上表现得很失败。随着时间的推移,研究人员根据具有明确答案的问题制定了各种标准基准,如果您想评估特定技能,这是一个很好的方法。但埃尔丹和李对一些更模糊的东西感兴趣:如果尽可能简化语言,语言模型到底需要多大?

“为了直接测试模型是否会说英语,我认为唯一能做的就是让模型以开放式的方式生成英语,”埃尔丹说。

衡量模型在此类定性问题上的表现只有两种方法:依靠人工评分者,或者再次转向 GPT-4。两位研究人员选择了后一条路线,有效地让大模型既写教科书又给论文评分。

Bhagavatula 表示,他希望了解 GPT-4 的评估与人类评审员的评估相比如何——GPT-4 可能会偏向于它帮助训练的模型,而语言模型的不透明性使得很难量化这种偏差。但他认为这种微妙之处不会影响在相似的合成故事集上训练的不同模型之间的比较——这是埃尔丹和李工作的主要焦点。

Eldan 和 Li 使用两步程序在训练后评估每个小模型。首先,他们用与训练数据集中的故事不同的前半部分提示小模型,以便生成新的结局,并用 50 个不同的测试故事重复此过程。其次,他们指示 GPT-4 根据三个类别对每个小模型的结局进行评分:创造力、语法以及与故事开头的一致性。然后,他们对每个类别的得分进行平均,最终得出每个模型的三个最终成绩。

有了这个程序,埃尔丹和李终于准备好比较不同的模型并找出哪些是明星学生。

检测结果

经过一些初步探索,两位研究人员确定了包含大约 200 万个故事的训练数据集。然后,他们使用这个名为 TinyStories 的数据集来训练模型,参数大小从 100 万到 3000 万个参数不等,层数也不同。工作速度很快:仅使用四个 GPU,其中最大的模型训练时间不超过一天。

最小的模型也举步维艰。例如,一个测试故事以一个看起来很卑鄙的男人告诉一个女孩他会带走她的猫开始。一个百万参数模型陷入了一个循环,女孩反复告诉男人她想成为朋友。但较大的——仍然比 GPT-3.5 小数千倍——表现出奇的好。2800 万参数的版本讲述了一个连贯的故事,尽管结局很残酷:“凯蒂开始哭泣,但那个男人不在乎。他把猫带走了,凯蒂再也没有见过她的猫。结束。”

除了测试自己的模型外,Eldan 和 Li 还向 OpenAI 2019 年发布的 GPT-2 提出了同样的挑战,这是一个 15 亿参数的模型。结果更糟——在故事戛然而止之前,男人威胁要带走女孩法庭、监狱、医院、太平间,最后火葬场。

Nguyen 表示,令人兴奋的是,如此微小的模型如此流畅,但 GPT-2 难以完成这项任务也许并不奇怪:它是一个更大的模型,但距离最先进的水平还很远,而且它是在一个非常不同的数据集上进行训练的。“一个只接受幼儿任务训练的幼儿,比如玩一些玩具,可能会比你或我做得更好,”他指出。“我们并不专注于这个简单的事情。”

不同 TinyStories 模型之间的比较不会受到相同的混杂因素的影响。埃尔丹和李观察到,层数较少但每层神经元较多的网络更能更好地回答需要事实知识的问题;相反,具有更多层和每层神经元更少的网络更能更好地跟踪故事早期的人物和情节点。Bhagavatula 发现这个结果特别有趣。他说,如果它可以在更大的模型中复制,“这将是一项非常酷的结果,可能源于这项工作。”

埃尔丹和李还研究了他们的小模型的能力如何取决于训练时间的长短。在每种情况下,模型首先掌握语法,然后才是一致性。对于埃尔丹来说,这种模式说明了奖励结构的差异如何导致神经网络和儿童之间语言习得模式的差异。对于通过预测单词来学习的语言模型来说,“‘我想要拥有’这个词的激励与‘冰淇淋’这个词的激励一样大,”他说。另一方面,孩子们“并不关心他们是说‘我想要一些冰淇淋’还是只是‘冰淇淋,冰淇淋,冰淇淋’。”

质量与数量

Eldan 和 Li 希望这项研究能够激励其他研究人员在TinyStories 数据集上训练不同的模型并比较它们的能力。但通常很难预测小型模型的哪些特征也会出现在大型模型中。

“也许小鼠的视觉模型确实是人类视觉的良好代表,但小鼠的抑郁症模型是人类抑郁症的良好模型吗?” 帕夫利克说道。“对于每种情况,情况都略有不同。”

TinyStories 模型的成功还提供了更广泛的教训。编译训练数据集的标准方法包括从互联网上清理文本,然后过滤掉垃圾。由大型模型生成的合成文本可以提供另一种方法来组装不必那么大的高质量数据集。

“我们有越来越多的证据表明这非常有效,不仅在 TinyStories 大小的模型中,而且在更大的模型中,”埃尔丹说。这些证据来自 Eldan、Li 和其他微软研究人员发表的两篇关于十亿参数模型的后续论文。在第一篇论文中,他们使用 GPT-3.5 生成的代码片段以及来自互联网的精心策划的代码训练了一个模型来学习编程语言 Python。在第二个,他们用涵盖广泛主题的合成“教科书”增强了训练数据集,以训练通用语言模型。在他们的测试中,这两种模型都优于在更大数据集上训练的更大模型。但评估语言模型总是很棘手,而且合成训练数据方法仍处于起步阶段——需要更多的独立测试。

随着最先进的语言模型变得越来越大,它们的小表亲的令人惊讶的发现提醒我们,即使是最简单的模型,我们仍然有很多不了解的地方。Nguyen 期望看到更多探索 TinyStories 首创方法的论文。

“问题是:规模在哪里以及为何重要?” 他说。“这应该是一门科学,这篇论文希望是一个丰富故事的开始。”