
数学应用题求解长期以来被视为小型语言模型(SLMs)面临的一项复杂任务。一项近期研究假设,在GSM8K基准测试中实现超过80%准确率所需的最小模型规模为340亿参数。为了在更小的模型上达到这一性能水平,研究人员通常采用两种策略:一是训练SLMs生成Python代码,以减少计算错误;二是引入工具辅助,或采用集成(ensembling)方法,即通过运行多达100次模型并综合其输出结果来提升准确性。结果选择通常基于共识、多数投票,或结合一个独立的验证模型(verifier model)与SLM协同使用。尽管集成方法能显著提升准确率,但其代价高昂,需多次调用模型(例如,Phi-GSM通过采用top-48策略,将性能从68.2%提升至81.5%)。在本研究中,我们提出Orca-Math,这是一个基于Mistral-7B架构、参数量为70亿的新型小型语言模型,其在GSM8K基准上无需多次模型调用,也无需使用验证模型、代码执行或其他外部工具,即可实现86.81%的准确率(pass@1)。我们的方法包含以下关键要素:(1)利用多智能体协作机制构建了一个高质量的20万道数学题合成数据集,各智能体协同生成并优化题目与解题过程;(2)采用迭代式学习技术,使SLM能够反复尝试解题,接收对其解答的反馈,并基于包含模型解法与反馈信息的偏好对(preference pairs)进行学习优化。仅通过监督微调(Supervised Fine-Tuning)训练,Orca-Math在GSM8K上的pass@1准确率已达81.50%;而在引入迭代偏好学习后,准确率进一步提升至86.81%。Orca-Math的性能超越了参数量远大于其的多个大型模型,包括LLAMA-2-70B、WizardMath-70B、Gemini-Pro以及ChatGPT-3.5。同时,相较于其他小型模型,Orca-Math在使用远少于百万级规模的训练数据(仅数十万道题目)的情况下,仍展现出显著更优的性能表现。