选自量子杂志
作者:Ben Brubaker
机器之心编译
编辑:赵阳
即便大语言模型的参数规模日渐增长,其模型中的参数到底是如何发挥作用的还是让人难以琢磨,直接对大模型进行分析又费钱费力。针对这种情况,微软的两位研究员想到了一个绝佳的切入点,用生成简练但是又涵盖各种常见逻辑和语法的童话故事来作为模型的生成任务,这样做能在减少模型的学习负担的同时,保留模型对逻辑和语法的学习能力,进而用小模型来分析参数发挥的作用。这种方法可能会开创一条新的研究道路。
人们都知道,学英语不是一件容易的事。但假如「学生」是一台计算机,就可以这样高效地学英语:只需将互联网上堆积如山的文本,输入一个名为神经网络的巨大数学模型即可。
这就是像 OpenAI 的 ChatGPT 这样的生成式大模型背后的工作原理,在过去的一年里,它能够面向广泛的主题连贯地交谈(即便会存在「幻觉」),效果让所有人都感到惊讶。
但这种方法也有缺点:首先,将庞大的文本档案转化为语言模型所需的训练语料,成本高昂且耗时。另一方面,即使是训练大语言模型的人也很难理解它们的内部工作原理,这反过来又使得人们很难避免设计上的失败。
面对这些困难,一些研究人员选择在较小的数据集上训练较小的模型,然后研究模型行为。布朗大学语言模型研究员 Ellie Pavlick 说:「这就像果蝇基因组测序与人类基因组测序的关系一样。」
现在,在近期发布的一篇论文中,微软的两名研究人员介绍了一种训练微小语言模型的新方法:用童话故事训练模型。
论文链接:https://arxiv.org/pdf/2305.07759.pdf
为 ChatGPT 接口提供动力的大型语言模型 GPT-3.5 有近 2000 亿个参数,它是在由数千亿个单词组成的数据集上训练的(OpenAI 尚未发布 GPT-4 的相应数据)。训练这样的大型模型通常需要至少 1000 个称为 GPU 的专用处理器,并行运行数周。只有少数公司能够筹集到如此的资源,更不用说训练和比较不同的模型了。
这两位研究人员的研究表明,比当今最先进的系统小数千倍的语言模型在接受这种基于童话故事的训练后,能迅速学会讲述连贯且符合语法的故事。他们的研究成果指明了新的研究方向,可能有助于训练更大的模型并理解它们的行为。
艾伦人工智能研究所(Allen Institute for Artificial Intelligence)的语言模型研究员 Chandra Bhagavatula 说:「我发现这篇论文信息量很大,这个概念本身就超级有趣」。
从童话故事说起
作为语言模型核心的神经网络是一种数学结构,其灵感来源于人脑。每个神经网络都包含许多按层排列的人工神经元,相邻层的神经元之间存在连接。神经网络的行为受这些连接点(称为参数)的控制。在语言模型中,根据初始提示词(prompt)和已经生成的单词,参数控制着模型下一步可能吐出的单词。
只有在训练中,当模型反复将自己的输出与训练数据集中的文本进行比较,并调整参数以提高相似度时,模型才会真正 「活 」起来。一个未经训练、参数随机的网络很容易通过几行代码组装起来,但它只会产生胡言乱语。经过训练后,它通常可以「似是而非」地继续处理陌生文本。较大的模型通常会进行进一步的微调,使其学会回答问题和遵循指令,但训练的主要内容是掌握单词预测。
单词预测的成功需要语言模型掌握多种不同的技能。例如,根据英语语法规则,「going」一词之后的下一个词很可能是 「to」,而与文章主题无关。此外,完成 「the capital of France is」(法国的首都是__)需要系统掌握事实知识,而完成包含 「not」一词的段落则需要系统掌握基本的逻辑。
「原始语言非常复杂,」DeepMind 的机器学习研究员 Timothy Nguyen 说。「为了让有趣的语言能力出现,人们采用了数据越多越好的方法。」
Ronen Eldan 是一位数学家,2022 年加入微软研究院研究生成语言模型。要想做到这一点,最直观的方法是使用小数据集,而这又意味着必须训练专攻特定任务的模型,这样它们就不会过于分散。起初,他想训练模型解决某一类数学问题,但一天下午,在与 5 岁的女儿相处时,他意识到童话故事非常适合。
他说:「在我给她读了一个故事后,我就想到了这个点子。」
Ronen Eldan。
为了生成连贯的童话故事,语言模型需要学习世界性的事实,跟踪人物和事件,并遵守语法规则这些都是大型模型所面临的挑战的简单版本。但是,在海量数据集上训练的大型模型在学习真正重要的规则的同时,也学习了无数无关紧要的细节。Eldan 希望,儿童故事的简洁性和有限的词汇量能让小型模型的学习变得更容易管理使它们更容易训练,也更容易理解。
不过,在语言模型的世界里,「泄是相对的:比用于训练 GPT-3.5 的数据集小一千倍的数据集仍然需要包含数百万个故事。
Nguyen 说:「我不知道你想花多少钱,但我猜你不会雇专业人士来写(几百万个)短篇故事。」
要满足如此贪婪的读者,需要一位非常多产的作家,但 Eldan 心里有几个候选:有谁能比大语言模型更适合为小语言模型写作呢?
Toy Stories
Eldan 立即着手创建一个由大语言模型生成的合成童话故事库。但他很快发现,即使是最先进的模型,也不是「天生」就很有创造力。他意识到,如果你只是告诉 GPT-4 编写适合 4 岁儿童的故事,「大约五分之一的故事都会是关于去公园的孩子害怕滑梯的」。在互联网看来,这显然就是最典型的学龄前故事。
解决的办法是在 prompt 中加入一点随机性。首先,Eldan 使用 GPT-4 生成了一份包含 1500 个 4 岁儿童可能知道的名词、动词和形容词的列表,这个列表非常简短,他可以很容易地自行检查。然后,他编写了一个简单的计算机程序,反复提示 GPT-3.5 或 GPT-4 生成一个适合该年龄段的故事,其中包括从列表中随机抽取的三个单词,还包括一个的随机选择的细节类型,如大团圆结局或情节转折。令人欣慰的是,生成的故事并不会充满恐怖情节。
Eldan 现在有了一套按需提供训练数据的程序,但他不知道训练一个功能模型需要多少故事,也不知道这个模型需要多大。这时,他与微软和卡内基梅隆大学的机器学习研究员李远志合作,利用小型模型可以快速训练的优势,尝试了不同的可能性。
李远哲与 Eldan 合作,比较了在合成儿童故事上训练的不同模型。他们发现,小得出奇的模型也能学会讲连贯的故事。
第一步是决定如何评估他们的模型。就像在课堂上一样,在语言模型研究中,评分也是一个充满争议的话题。没有一个完美的评分标准能囊括研究人员想知道的一切,在某些任务中表现出色的模型在另一些任务中往往会大败而归。随着时间的推移,研究人员根据答案明确的问题制定了各种标准基准,如果要评估特定技能,这是一种很好的方法。
但 Eldan 和李对一些更模糊的问题很感兴趣:如果尽可能简化语言,语言模型到底需要多大?Eldan 说:「为了直接测试模型是否会说英语,我认为唯一能做的就是让模型以开放的方式生成英语内容。」
要衡量模型在此类定性问题上的表现,只有两种方法:依靠人类评分员,或者再次求助于 GPT-4。两位研究人员选择了后者,实际上是让大型模型既编写教科书,又进行批改。
Bhagavatula 说,他希望看到 GPT-4 的评价与人类审稿人的评价相比如何 GPT-4 可能偏向于它帮助训练的模型,而语言模型的不透明性使得这种偏向难以量化。但他认为这些微小之处不会影响不同模型之间的比较,这些模型是在类似的合成故事集上训练出来的,而这正是 Eldan 和李的工作重点。
Eldan 和李采用了两步程序来评估训练后的每个小型模型。首先,他们向小型模型 prompt 一个与训练数据集不同的故事的前半部分,使其产生一个新的结尾,并用 50 个不同的测试故事重复这一过程。其次,他们指示 GPT-4 根据创意、语法和与故事开头的一致性这三个类别对小模型的每个结尾进行评分。然后,他们对每个类别的分数进行平均,最后得出每个模型的三个最终等级。
有了这个程序,Eldan 和李终于可以比较不同的模型,找出哪些是「明星学生」了。
测试结果
经过初步探索,两位研究人员确定了一个包含约 200 万个故事的训练数据集。然后,他们使用这个被称为 TinyStories 的数据集来训练参数规模介于 100 万到 3000 万的、层数各不相同的模型。这个工作并不耗时:仅使用了四块 GPU,其中最大的模型的训练时间不超过一天。
模型太小也不行。例如,一个测试故事的开头是一个长相凶恶的男人对一个女孩说他要带走她的猫。一个百万级参数的模型陷入了一个死循环,女孩反复告诉男人她想和他做朋友。但更大一点的模型(仍然比 GPT-3.5 小数千倍)却表现出人意料的好。2800 万参数的版本讲述了一个连贯的故事,尽管结局很悲惨:「凯蒂开始哭泣,但那个男人并不在意。他把猫带走了,凯蒂再也没见过她的猫。这就是结局」。
除了测试他们自己的模型,Eldan 和李还向 OpenAI 的 GPT-2 提出了同样的挑战,这是一个在 2019 年发布的拥有 15 亿个参数的模型。它的表现要糟糕得多在故事戛然而止之前,男子威胁要把女孩送到法庭、监狱、医院、太平间,最后送进火葬常
研究简介
Nguyen 说,如此微小的模型都能如此流畅地工作,真是让人惊讶,但 GPT-2 在这项任务中的表现也许并不令人惊讶:它是一个较大的模型,但还远未达到最先进的水平,而且它是在一个非常不同的数据集上进行训练的。他指出:「一个小孩子只接受幼儿任务训练,比如玩玩具,可能会比你我做得更好。但是我们没有专攻这个简单的东西。」
不同 TinyStories 模型之间的比较并不存在相同的干扰因素。Eldan 和李观察到的提示是,层数较少但每层神经元较多的网络更善于回答需要事实知识的问题;相反,层数较多且每层神经元较少的网络更善于追踪故事早期的人物和情节点。巴加瓦图拉发现这一结果特别有趣。他说,如果能在更大的模型中复制这一结果,「那将是这项工作产生的一个非常酷的结果。」
Eldan 和李还研究了他们的小模型的能力与训练期的长短的关系。多次实验表明,模型都是先掌握语法,后掌握一致性。Eldan 认为,这种模式说明了奖励结构的差异决定神经网络和儿童之间语言习得模式的差异。对于通过预测单词来学习的语言模型来说,「对『我想要』这个单词的奖励和对『冰淇淋』这个单词的奖励一样大,」他说。另一方面,儿童 「并不在乎他们说的是『我想吃冰淇淋』还是『冰淇淋、冰淇淋、冰淇淋』」
定性分析与定量分析
Eldan 和李希望这项研究能激励其他研究人员在 TinyStories 数据集上训练不同的模型,并比较它们的能力。但通常很难预测小型模型的哪些特征也会出现在大型模型中。
「也许小鼠视力模型确实是人类视力的很好替代品,但小鼠抑郁模型是人类抑郁的可借鉴模型吗?」Pavlick 说。「每种情况都有些不同。」
TinyStories 模型的成功还提供了一个更广泛的启示。编译训练数据集的标准方法不只包括从互联网上收集文本,然后过滤掉垃圾信息。由大型模型生成的合成文本可以提供另一种方法来建立高质量的数据集,同时不必如此庞大。
Eldan 说:「我们有越来越多的证据表明,这不仅在 TinyStories 这样大小的模型中非常有效,在更大的模型中也是如此。」
这些证据来自 Eldan、李和其他微软研究人员关于十亿参数模型的两篇后续论文。在第一篇论文中,他们利用 GPT-3.5 生成的代码片段和从互联网上精心挑选的代码,训练了一个学习 Python 编程语言的模型。在第二篇论文中,他们用涵盖广泛主题的合成「教科书」扩充了训练数据集,以训练通用语言模型。在测试中,这两个模型都优于在较大数据集上训练的较大模型。但是,语言模型的评估总是很棘手,合成训练数据的方法仍处于起步阶段,需要进行更多的独立测试。
虽然最先进的语言模型越来越大,但在它们的小型同类上的惊人发现却提醒我们,即使是最简单的模型,我们也还有很多不了解的地方。Nguyen 希望看到更多论文探讨 TinyStories 首创的方法。
「当前的问题是:参数规模该多大、为什么参数规模如此重要?这应该是一门科学,而这篇论文有望成为一系列研究的开端。」