24年9月来自阿里的论文“Qwen2.5-Math Technical Report:Toward Mathematical Expert Model Via Self- Improvement ”。
一系列数学专用的大语言模型:Qwen2.5-Math 和 Qwen2.5-Math-Instruct-1.5B/7B/72B。Qwen2.5系列的核心创新在于将自我完善的理念贯穿于从预训练、后训练到推理的整个流程:(1)在预训练阶段,利用 Qwen2-Math-Instruct 生成大规模高质量的数学数据。(2)在后训练阶段,从 Qwen2-Math-Instruct 进行大量采样,开发
奖励模型(RM)
。然后将这个 RM 应用于监督微调(SFT)中的数据迭代演变。有了更强大的 SFT 模型,就可以迭代地训练和更新 RM,进而指导下一轮 SFT 数据迭代。在最终的 SFT 模型上,采用终极 RM 进行强化学习,从而诞生了 Qwen2.5-Math-Instruct。(3)此外,在推理阶段,使用 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 系列的基础模型、指导模型和奖励模型可在 Hugging Face 和 ModelScope 上找到,评估脚本可在 GitHub 上找到。在Qwen-Agent中开发了支持TIR模式的demo,可以在本地运行代码,体验Qwen2.5-Math的工具集成推理能力。
在过去的一年里,投入了大量精力研究和增强大语言模型的推理能力,特别强调它们解决算术和数学问题的能力。本报告是一系列数学专用的大语言模型,Qwen2.5-Math、Qwen2.5-Math-RM 和 Qwen2.5-Math-Instruct-1.5B/7B/72B。
采用一系列自我改进技术,在 Qwen2-Math 之上开发 Qwen2.5-Math 模型。自我改进技术利用大语言模型本身的监督 (Cao et al., 2024)。具体来说,在 Qwen2.5-Math 的训练过程中从三个方面应用自我改进。在预训练中,用 Qwen2-Math-Instruct 大规模合成数学查询和相应的响应,丰富 Qwen2.5-Math 的预训练语料库。在后训练中,从之前的模型中大量采样训练
奖励模型
,并将其应用于监督微调中的数据迭代演化。通过这种增强训练的更好数学模型产生更强大的奖励模型 Qwen2.5-Math-RM。然后,将这个奖励模型用于强化学习和推理期间的 best-of-N 采样。与上一代相比,合成数据和判断在 Qwen2.5-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-Math 基础模型之后,通过三个主要途径将其进一步升级为 Qwen2.5-Math 模型:(1)利用 Qwen2-Math-72B-Instruct 模型,进一步进行后训练,以合成更多高质量的数学预训练数据。2)从网络文档、书籍和代码库中汇总更多高质量数学数据,尤其是中文数学数据,这些数据来源于多个召回周期。经过这些努力,编译 Qwen Math Corpus v2 用于 Qwen2.5-Math-1.5B/7B/72B 预训练,同时保持上下文长度为 4K。与 Qwen Math Corpus v1 相比,Qwen Math Corpus v2 的总 token 数量从 700B 增加到 1T 以上。(3) 没有从 Qwen2 系列初始化参数,而是利用 Qwen2.5 系列基础模型进行参数初始化,因为它们在语言理解、代码生成和文本推理方面表现出了增强的能力。Qwen2.5-Math 模型在与 Qwen2-Math 类似的数学预训练设置在 Qwen Math Corpus v2 上持续预训练。受益于数据集和基础模型的改进,Qwen2.5-Math 模型在数学推理能力方面比 Qwen2-Math 有了进一步的进步。
在完成大量的数学预训练后,继续进行后训练,进一步增强 Qwen-Math 的数学逻辑推理能力,特别关注思维链 (CoT) 和工具集成推理 (TIR)。该研究特别关注两个关键挑战:(1) 如何自动生成大量高质量且可靠的 CoT 和 TIR 注释,以及 (2) 如何有效地利用这些注释进行监督微调和强化学习。
虽然 CoT 提示在增强大语言模型的推理能力方面起着至关重要的作用,但它在实现计算准确性和处理复杂的数学或算法问题方面面临挑战,例如寻找二次方程的根或计算矩阵的特征值 (Yue,2023)。为了克服这些限制并提高模型在精确计算、符号操作和算法推理方面的熟练程度,开发一个包含工具集成推理格式的数据集。这种创新格式使模型能够利用 Python 解释器作为推理任务的辅助资源。
为了在监督微调数据选择和强化学习训练的后续阶段提供不仅仅是最终答案的监督信号,该工作为 Qwen2-Math 和 Qwen2.5-Math 开发一个数学奖励模型,分别称为 Qwen2-Math-RM 和 Qwen2.5-Math-RM。这些奖励模型专门设计用于在整个训练过程中指导模型,通过提供有关推理和中间步骤质量的更细粒度反馈,最终促进更稳健的模型改进。