# 热门搜索 #
搜索
用童话训练AI模型:微小语言模型进入成熟期
4766点击    2024-03-10 16:28

微软找到了探索语言生成模型参数的新切入点!


神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:今年初,ChatGPT引爆全球。作为以自然语言处理为核心的大型语言模型,其训练成本非常昂贵。据不准确估算,大型语言模型训练成本高达上百万美元。为解决这一困难,微软研究人员使用儿童故事来训练微小模型以此更好地理解神经网络是如何学习模拟写作的。文章来自翻译,希望能对你有所启示。


学习英语并非易事,无数学生都深有体会。想象一下,假设我们是一台电脑,有一种方法出奇地有效: 只需将互联网上堆积如山的文本输入一个巨大的神经网络模型即可。这就是OpenAI推出的ChatGPT 等生成语言模型背后的操作原理,在过去的一年里,ChatGPT 就广泛的话题与人类进行连贯对话的能力(即便会存在「幻觉」)令研究人员和公众感到惊讶。


但这种方法也有缺点。首先,将庞大的文本档案转化为语言模型所需的训练语料,成本高昂且耗时。另外,即使是训练大型语言模型的操作人员也很难理解这些模型的内部运作机制;这反过来又使得人们很难避免设计上的失败。


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


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


两位研究人员的研究表明,比当今最先进系统小数千倍的语言模型在接受这种训练后,能迅速学会讲述连贯且符合语法的故事。他们的研究成果暗示了新的研究方向,可能有助于训练更大的模型并理解它们的行为。


西雅图艾伦人工智能研究所(Allen Institute for Artificial Intelligence)的语言模型研究员钱德拉·巴加瓦图拉(Chandra Bhagavatula)说:“我发现这篇论文信息量很大,这个概念本身就超级有趣。”


从儿童故事说起


作为语言模型核心的神经网络是一种数学结构,其灵感来源于人脑。每个神经网络都包含许多按层排列的人工神经元,相邻层的神经元之间存在连接。神经网络行为受这些连接强度(称为参数)的控制。在语言模型中,在给定初始提示和它已经生成的单词的情况下,参数控制着模型下一步可能输出的单词。


只有在训练过程中,当模型反复将自己的输出与训练数据集中的文本进行比较,并调整参数以提高相似度时,模型才能真正发挥作用。具有随机参数的未经训练的网络很容易通过几行代码组装起来,但它只会产生乱码。只有经过训练后,它通常才能处理陌生文本。较大型的模型通常还要经过进一步的微调,使其学会回答问题和遵循指令,但训练的主要内容是单词预测。


单词预测的成功需要语言模型掌握许多不同的技能。例如,根据英语语法规则,无论文本主题如何,与“going”想搭配的介词很可能是“to”。此外,回答某些问题需要系统掌握事实知识,比如“the capital of France is”(法国的首都是哪里),而回答包含“not”一词的相关问题则需要系统掌握基本的逻辑知识。


“语言非常复杂,”DeepMind 的机器学习研究员 Timothy Nguyen 说。“为了提高模型理解和生成语言的能力,人们基于大量文本数据训练语言模型。”


机器学习研究人员接受了这一教训。为ChatGPT界面提供支持的大型语言模型GPT-3.5拥有近2,000亿个参数,它是在包含数千亿个单词的数据集上训练出来的。(训练这样的大型模型通常需要至少1000个名为GPU的专用处理器并行运行数周。只有少数几家公司能够调集必要的资源,更不用说训练和比较不同的模型了。



罗南·埃尔丹 意识到,他可以利用大型语言模型生成的儿童故事来快速训练小型语言模型。魏兹曼科学研究院(Weizmann Institute of Science)


罗南·埃尔丹(Ronen Eldan)是一位数学家,2022年加入微软研究院研究生成语言模型。要想做到这一点,最直观的方法是使用小数据集,而这又意味着必须训练专攻特定任务的模型,这样它们就不会过于分散。起初,他想训练模型解决某一类数学问题,但一天下午,在与5岁的女儿相处时,他意识到儿童故事非常适合。


他说:“在我给她读了一个故事之后,我就想到了这个点子。”


为了生成连贯的童话故事,语言模型需要学习世界性的事实,跟踪人物和事件,并遵守语法规则——这些都是大型模型所面临的挑战的简单版本。但是,在海量数据集上训练的大型模型在学习真正重要的规则的同时,也学习了无数无关紧要的东西。埃尔丹希望,儿童故事的简洁性和有限的词汇量能让小型模型的学习更易于管理——使它们更容易训练,也更容易理解。


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


要满足如此贪婪的读者,需要一位非常多产的作家,但埃尔丹心里已经有了想法:有谁能比大语言模型更适合为小语言模型写作呢?


儿童故事


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


解决的办法是在提示中加入一点随机性。首先,埃尔丹使用 GPT-4 生成了一份包含 1500 个 4 岁儿童可能知道的名词、动词和形容词的列表,这个列表非常简短,他可以很容易地自行检查。然后,他编写了一个简单的计算机程序,反复提示 GPT-3.5 或 GPT-4 生成一个适合该年龄段的故事,其中包括从列表中随机抽取的三个单词,以及随机选择的故事情节。令人欣慰的是,生成的故事并不会充满恐怖情节。


埃尔丹现在有了一套按需提供训练数据的程序,但他不知道训练一个功能模型需要多少故事,也不知道这个模型需要多大。这时,他与微软研究院访问研究员、美国卡内基梅隆大学机器学习系助理教授李远志合作,利用小型模型可以快速训练的优势,尝试了不同的可能性。第一步是决定如何评估他们的模型。


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


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


要衡量模型在此类定性问题上的表现,只有两种方法:依靠人类评分员,或者再次求助于 GPT-4。两位研究人员选择了后者,实际上是让大型模型既编写教科书,又给其打分。



李远志与埃尔丹合作,比较了在合成儿童故事上训练的不同模型。他们发现,微小模型也能学会讲连贯的故事。图片由李远志提供


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


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


有了这个程序,埃尔丹和李远志终于可以对不同的模型进行比较并找出哪些是“明星学生”了。


测试结果


经过初步探索,两位研究人员确定了一个包含约 200 万个故事的训练数据集。然后,他们使用这个被称为 TinyStories 的数据集来训练参数规模介于 100 万到 3000 万的、层数各不相同的模型。这个工作并不耗时:仅使用了四块 GPU,其中最大的模型的训练时间不超过一天。


模型太小也不行。例如,一个测试故事的开头是一个长相凶恶的男人对一个女孩说他要带走她的猫。一个百万级参数的模型陷入了一个死循环,女孩反复告诉男人她想和他做朋友。但更大一点的模型(仍然比 GPT-3.5 小数千倍)却表现出人意料的好。2800 万参数的版本讲述了一个连贯的故事,尽管结局很悲惨:「凯蒂开始哭泣,但那个男人并不在意。他把猫带走了,凯蒂再也没见过她的猫。这就是结局」。


除了测试他们自己的模型,埃尔丹和李还向 OpenAI 的 GPT-2 提出了同样的挑战,这是一个在 2019 年发布的拥有 15 亿个参数的模型。它的表现要糟糕得多——男子威胁要把女孩送到法庭、监狱、医院、太平间,最后将女孩杀害并送进了火葬场,故事由此戛然而止。



图片来源:梅里尔·谢尔曼(Merrill Sherman)/《昆塔》杂志(Quanta Magazine)


Nguyen说,如此微小的模型都能如此流畅地工作,这令人兴奋,但GPT-2在这项任务中的表现也许并不令人惊讶:它是一个较大的模型,但还远未达到最先进的水平,而且它是在一个非常不同的数据集上进行训练的。他指出:“一个小孩子只接受幼儿任务训练,比如玩玩具,可能会比你我做得更好。但是我们没有专攻这个简单的东西。”


不同 TinyStories 模型之间的比较并不存在相同的干扰因素。埃尔丹和李观察到的提示是,层数较少但每层神经元较多的网络更善于回答需要事实知识的问题;相反,层数较多且每层神经元较少的网络更善于追踪故事早期的人物和情节点。巴加瓦图拉发现这一结果特别有趣。他说,如果能在更大的模型中复制这一结果,“这将是这项工作最酷的地方。”


埃尔丹和李还研究了他们的小模型的能力与训练期的长短的关系。在每种情况下,模型都是先掌握语法,后掌握一致性。埃尔丹认为,这种模式说明了奖励结构的差异决定神经网络和儿童之间语言习得模式的差异。“对于通过预测单词来学习的语言模型来说,对‘我想要’这个单词的奖励和对‘冰淇淋’这个单词的奖励一样大,”他说。“另一方面,儿童 并不在乎他们说的是‘我想吃冰淇淋’还是‘冰淇淋、冰淇淋、冰淇淋’。”


定性分析与定量分析


埃尔丹和李希望这项研究能激励其他研究人员对不同的模型进行训练,并比较它们的能力。但通常很难预测小型模型的哪些特征也会出现在大型模型中。


“也许小鼠视力模型确实是人类视力的很好替代品,但小鼠抑郁模型是人类抑郁的可借鉴模型吗?”帕夫利克说。“每种情况都有些不同。”


TinyStories 模型的成功还提供了一个更广泛的启示。编译训练数据集的标准方法不只包括从互联网上收集文本,然后过滤掉垃圾信息。由大型模型生成的合成文本可以提供另一种方法来建立高质量的数据集,同时不必如此庞大。


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


随着最先进的语言模型越来越大,微小模型的惊人发现提醒我们,即使是最简单的模型,我们也还有很多不了解的地方。Nguyen 希望能看到更多论文探讨 TinyStories 首创的方法。


他说:“问题是:大小在哪里以及为什么重要?这应该是一门科学,这篇论文有望成为一个丰富故事的开端。”


译者:Araon_


文章来自于微信公众号 “神译局”


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner