打开网易新闻 查看更多图片

微软在其小型语言模型Orca和Orca 2的研究基础上,发展出了Orca-Math,这个新模型的特点在于,虽然仅为70亿参数的小模型,但是经过代理指导(AgentInstruct)与迭代学习(Iterative Learning)的微调过程,其解决小学数学问题的能力已能超越大型语言模型,而数学过去被认为是对小型语言模型较困难的领域。

微软在去年6月发布了130亿参数的小型语言模型Orca,并在11月的时候更新发布Orca 2,而Orca系列的研究贡献在于,微软证明改进训练信号和方法,能够强化小型语言模型,使其接近大型语言模型的推理能力。Orca-Math也是依循相同的想法所开发出来的特化小型语言模型。

Orca-Math是一款以Mistral 7B模型为基础,针对解决数学问题任务微调的70亿参数语言模型,可在基准测试GSM8K pass@1达到86.81%,而这超过了通用模型LLAMA-2-70、Gemini Pro以及GPT-3.5的表现,甚至也超过专为数学开发的模型像是MetaMath-70B和WizardMa8th-70B。Mistral 7B未经微调的GSM8K准确率则是37.83%。

GSM8K是一个数学领域的数据集,全名为Grade School Math 8K,也就是小学数学8,000题的意思,这个数据集包含了8,500题高品质的小学数学应用问题,这些问题需要多步骤推理解决,因此GSM8K被设计来评估和训练人工智能模型,尤其是语言模型在数学领域的解题能力。

GSM8K问题涵盖小学数学的加法、减法、乘法、除法、分数和百分比等,语言模型需要理解问题的脉络,进行适当的计算才能得到正确的答案。整体来说,GSM8K是一个具有挑战性的数据集,不只测试模型的运算能力,同时也评估模型以自然语言理解数学问题的能力,是评估和改进人工智能在数学领域的重要数据集。

要能在GSM8K基准上达到超过80%准确率,通常模型参数量需要超过300亿。因此该领域研究人员为了要提高小模型解决问题的能力,需要采取一些特别的方法,像是训练语言模型生成程序或是使用计算机以避免运算错误,也会使用集成(Ensembling)技术,通过多次调用模型来重新解决问题,以提高小型语言模型的准确性。虽然Ensembling可有效提升模型性能,但是由于模型可能会被调用高达100次,因此运算成本也大幅增加。

微软在Orca-Math研究中,坚持不用外部工具、验证器以及Ensembling技术,尝试提升模型原生能力。主要朝两个研究方向前进,第一是代理指导,第二则是迭代学习。

过去的研究在合成训练数据中,常会使用先进模型参考种子问题生成相似的问题,而微软提到,为了创建更具挑战性的问题,他们采用AutoGen多代理流程,此方法可创造更多问题范例,同时增加问题的多样性和难度范围。

多代理流程配置可以由建议者(Suggester)、编辑者(Editor)、验证者(Verifier)三个代理组成,由建议者检查问题并提出多种增加复杂性的方法,而编辑者则接受原始问题和建议者的建议,生成更新、更具挑战性的问题,并通过迭代多轮来逐渐增加问题的复杂性,并由验证者检查新问题是否有解,并创建解决方案。

迭代学习是Orca-Math表现良好的另一个原因,微软提到,使用高品质训练数据,可引发像是解释等更丰富的学习信号,大幅改进小型语言模型的能力,而这种能力过去仅会在大型语言模型中出现。

微软将这种范式应用于老师学生训练方法,由大模型担任老师,小模型则是学生角色。在示范教学过程,微软使用代理指导向小型语言模型,展示问题及其解决方案,而在练习与反馈阶段,小型语言模型尝试自己解决问题,并创建多个解决方案,之后才由老师模型对这些解决方案提供反馈,当小型语言模型无法正确解决问题,则由老师模型提供解答。

微软研究人员不只希望小型语言模型会解决问题,也希望其采用较好的解决方案,因此由老师模型反馈偏好数据,向小型语言模型展示好的与坏的解决方案,并重新训练小型语言模型。微软提到,练习、反馈和迭代改进的步骤,会重复多次以提升小型语言模型的能力。

微软研究结果显示,在有限范围小型模型可以表现优异,Orca-Math经过20万道数学题目的训练,其在解决数学问题的能力,性能已经能够与大型语言模型相竞争甚至超越。微软公开了数据集,还有一份描述训练程序的报告,以促进小型语言模型的发展。