Qwen2.5-Math 技术报告:通过自我改进实现数学专家模型

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 数据。

请添加图片描述

扫描二维码关注公众号,回复: 17413476 查看本文章

在数学预训练中,主要重点是构建一个富含数学内容的高质量数据集。该数据集涵盖各种各样的来源,包括与数学相关的网络文本、代码片段、百科全书、考试问题以及由 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。这些奖励模型专门设计用于在整个训练过程中指导模型,通过提供有关推理和中间步骤质量的更细粒度反馈,最终促进更稳健的模型改进。

强化学习训练的查询,是从奖励模型的训练集中选择的。利用不同大小的监督微调模型对每个查询重新采样 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 训练数据集)包含相当一部分具有高度相似概念或结构的问题与测试数据集中发现的差异很大。尽管这些差异并非完全重复,但它们可能会损害评估的完整性。因此,继续从训练语料库中排除此类样本。下表提供了在训练和测试集中发现的类似问题示例。

请添加图片描述

猜你喜欢

转载自blog.csdn.net/yorkhunter/article/details/143094672