Qwen2.5-Math采用三阶段自我改进机制,数学能力超GPT-4
Qwen2.5-Math采用三阶段自我改进机制,数学能力超GPT-4
阿里巴巴发布了Qwen2.5-Math系列数学专用大语言模型的技术报告,该系列模型通过自我改进机制在数学推理能力上取得了显著突破。研究团队采用了一系列创新技术,包括在预训练、后训练和推理阶段的自我改进策略,使得模型在多个数学数据集上的表现超越了当前领先的开源和闭源模型。
Qwen2.5-Math系列模型概述
Qwen2.5系列的核心创新在于将自我完善的理念贯穿于从预训练、后训练到推理的整个流程:
预训练阶段:利用Qwen2-Math-Instruct生成大规模高质量的数学数据,丰富Qwen2.5-Math的预训练语料库。
后训练阶段:从Qwen2-Math-Instruct进行大量采样,开发奖励模型(RM)。然后将这个RM应用于监督微调(SFT)中的数据迭代演变。有了更强大的SFT模型,就可以迭代地训练和更新RM,进而指导下一轮SFT数据迭代。在最终的SFT模型上,采用终极RM进行强化学习,从而诞生了Qwen2.5-Math-Instruct。
推理阶段:使用RM指导采样,优化模型性能。
Qwen2.5-Math-Instruct支持中英文,并具备高级数学推理能力,包括思维链(CoT)和工具集成推理(TIR)。
模型评估与表现
在GSM8K、MATH、GaoKao、AMC23和AIME24等10个中英文数学数据集上对模型进行了评估,涵盖从小学水平到数学竞赛问题的一系列难度。旗舰模型Qwen2.5-Math-72B-Instruct的表现明显优于开源模型和领先的闭源模型(例如GPT-4o、Gemini Math-Specialized 1.5 Pro)。特别是在极具挑战性的AMC 2023中,在RM的帮助下,Qwen2.5-Math-72B-Instruct成功解决了几乎所有问题。
Qwen2.5-Math-7B-Instruct在性能上超越了Qwen2-Math-Instruct 72B。在CoT和TIR设置下,它分别获得了83.6和85.3的MATH分数。即使是最小的1.5B模型,在使用Python解释器时也能获得80左右的MATH分数,也优于该领域当前的大多数模型。
模型开发流程
如图所示是Qwen2.5-Math-72B-通过思维链在数学的推理指令性能:
如图显示开发Qwen2-Math和Qwen2.5-Math的整体流程。首先,Qwen2-Math基础模型在名为Qwen Math Corpus v1的高质量数学预训练数据集上进行训练,该数据集包含大约7000亿个token。其次,训练一个数学专用的奖励模型Qwen2-Math-RM(源自Qwen2-Math-72B),创建Qwen2-Math-Instruct模型。此奖励模型用于通过拒绝抽样(Yuan,2023)构建监督微调(SFT)数据。此外,奖励模型在强化学习阶段起着关键作用,在SFT之后采用相对组的策略优化(GRPO)(Shao,2024)。第三,利用Qwen2-Math-72B-Instruct模型,合成更多高质量的数学预训练数据,作为Qwen Math Corpus v2的基础。这个更新的语料库包含超过1万亿个词,用于预训练Qwen2.5-Math模型。最后,与Qwen2-Math-Instruct模型所用的过程类似,构建Qwen2.5-Math-RM和Qwen2.5-Math-Instruct模型。此阶段的一个重要区别是,在训练Qwen2.5-Math-Instruct模型时,同时包含英文和中文的思维链(CoT)推理数据以及工具集成推理(TIR)数据,而不是像Qwen2-Math-Instruct那样只使用英文CoT数据。
数学预训练数据集构建
在数学预训练中,主要重点是构建一个富含数学内容的高质量数据集。该数据集涵盖各种各样的来源,包括与数学相关的网络文本、代码片段、百科全书、考试问题以及由Qwen2生成的合成数学数据(Yang,2024)。组装此预训练数据集的过程,涉及几个关键步骤:数据调用、重复数据删除、过滤、数据合成和数据混合优化。最终整理的数据集构成预训练的基础,称为Qwen Math Corpus v1。使用Qwen2-1.5B/7B/72B初始化的Qwen2-Math基础模型使用Qwen Math Corpus v1进行持续预训练。
Qwen2.5-Math模型的升级路径
在训练完Qwen2-Math基础模型之后,通过三个主要途径将其进一步升级为Qwen2.5-Math模型:
利用Qwen2-Math-72B-Instruct模型,进一步进行后训练,以合成更多高质量的数学预训练数据。
从网络文档、书籍和代码库中汇总更多高质量数学数据,尤其是中文数学数据,这些数据来源于多个召回周期。经过这些努力,编译Qwen Math Corpus v2用于Qwen2.5-Math-1.5B/7B/72B预训练,同时保持上下文长度为4K。与Qwen Math Corpus v1相比,Qwen Math Corpus v2的总token数量从700B增加到1T以上。
没有从Qwen2系列初始化参数,而是利用Qwen2.5系列基础模型进行参数初始化,因为它们在语言理解、代码生成和文本推理方面表现出了增强的能力。Qwen2.5-Math模型在与Qwen2-Math类似的数学预训练设置在Qwen Math Corpus v2上持续预训练。受益于数据集和基础模型的改进,Qwen2.5-Math模型在数学推理能力方面比Qwen2-Math有了进一步的进步。
后训练与强化学习
在完成大量的数学预训练后,继续进行后训练,进一步增强Qwen-Math的数学逻辑推理能力,特别关注思维链(CoT)和工具集成推理(TIR)。该研究特别关注两个关键挑战:
如何自动生成大量高质量且可靠的CoT和TIR注释
如何有效地利用这些注释进行监督微调和强化学习
虽然CoT提示在增强大语言模型的推理能力方面起着至关重要的作用,但它在实现计算准确性和处理复杂的数学或算法问题方面面临挑战,例如寻找二次方程的根或计算矩阵的特征值(Yue,2023)。为了克服这些限制并提高模型在精确计算、符号操作和算法推理方面的熟练程度,开发一个包含工具集成推理格式的数据集。这种创新格式使模型能够利用Python解释器作为推理任务的辅助资源。
为了在监督微调数据选择和强化学习训练的后续阶段提供不仅仅是最终答案的监督信号,该工作为Qwen2-Math和Qwen2.5-Math开发一个数学奖励模型,分别称为Qwen2-Math-RM和Qwen2.5-Math-RM。这些奖励模型专门设计用于在整个训练过程中指导模型,通过提供有关推理和中间步骤质量的更细粒度反馈,最终促进更稳健的模型改进。
强化学习训练细节
强化学习训练的查询,是从奖励模型的训练集中选择的。利用不同大小的监督微调模型对每个查询重新采样8个响应,并通过与黄金标准答案进行比较将每个响应分类为正确或不正确。在强化学习阶段,主要目标是确保模型始终如一地为可能得到正确响应的查询提供正确答案。因此,只保留8个响应中有2到5个是正确的查询。正确答案少于2个的查询将被排除,因为它们表明当前数学模型缺乏从中学习的基本能力。同样,正确答案超过5个的查询也被省略,因为模型已经在这些情况下表现出能力,不需要进一步训练。最后,保留了66K个查询用于训练。
GRPO使用一组采样输出的平均奖励作为基线来计算每个输出的优势。将基于规则的验证器和奖励模型的奖励结合起来,以形成整体奖励信号。基于规则的验证器从每个响应中提取潜在答案,并将其与黄金标准答案进行比较。
实验是基于开源的RLHF框架ChatLearn实现的。基于规则验证器的核心实现与评估中使用的类似。所有不同参数大小的策略模型,都使用相同的奖励模型进行训练。对每个查询抽样32个响应。以一对查询和响应作为样本,对于训练7B和72B,一个epoch中的样本数分别为4,096和2,048。所有模型都使用512的全局批次大小进行训练。7B和70B的学习率分别为1×10−5和5×10−6。所有训练的KL系数为1 x 10-3。在工具集成推理的强化学习中,掩码Python执行器所提供的所有输出tokens。
模型净化与评估
净化对于确保模型性能评估的公正性至关重要。根据之前的研究(Yang,2024),用13-gram匹配排除可能受污染的训练样本。为了提高此匹配过程的准确性,执行文本规范化,删除了不相关的标点符号和符号。为了进一步减少假负样本,特别是对于常见的数学表达式,引入一个附加标准:最长公共子序列的比率必须超过0.6,样本才被视为受污染。对于预训练数据,根据GSM8K(Cobbe,2021)和MATH(Hendrycks,2021b)等数据集过滤可能受污染的样本。在处理训练后数据(包括SFT数据、RM训练数据和RL查询集)时,会排除所有报告中评估数据集存在的任何可能受污染问题或解决方案。这些评估数据集包括GSM8K (Cobbe,2021)、MATH (Hendrycks,2021b)、Minerva Math (Lewkowycz,2022b)、Gaokao 2023 En (Liao,2024)、Olympiad Bench (He,2024)、College Math (Tang,2024b)、MMLU STEM (Hendrycks,2021a)、GaoKao (Zhong,2024)、CMATH (Wei,2023)、CN Middle School 24、AIME 24和AMC 23。在对受污染样本进行分析的过程中,一些现有的训练数据集(例如MATH训练数据集)包含相当一部分具有高度相似概念或结构的问题与测试数据集中发现的差异很大。尽管这些差异并非完全重复,但它们可能会损害评估的完整性。因此,继续从训练语料库中排除此类样本。下表提供了在训练和测试集中发现的类似问题示例。