一、引言
2024年8月9日消息,Qwen官方网站消息,8月8日,阿里发布了Qwen2-Math(1.5B/7B/72B)系列。Qwen2-Math是一系列基于Qwen-2 LLM构建的专门用于数学解题的语言模型,数学推理能力全球第一。
Github:https://github.com/QwenLM/Qwen2-Math
官方Blog:Qwen2-Math,新一代数学模型 | Qwen
Qwen团队的研究结果表示,Qwen2-Math其数学能力显著超越了开源模型甚至闭源模型(例如GPT-4o)。
注:在MATH基准测评中,通义千问数学模型的旗舰款Qwen2-Math-72B-Instruct取得了84%的准确率,超过GPT-4o、Claude-3.5-Sonnet、Gemini-1.5-Pro 和 Llama-3.1-405B等开闭源模型。
自ChatGPT发布以来,各种开源闭源的LLM在通用能力方面有了很大的提升。然而,在某些垂直领域(特别是数学),LLM的能力一直饱受诟病。
此次阿里发布的Qwen2-math无疑给垂直领域微调大模型树立了一个范式。
此篇内容主要分析Qwen2-math的一系列模型实现的效果以及微调技术。
如果对于Qwen Base模型的技术内容有兴趣,请参考上篇的Qwen技术详解:
二、预训练
2.1 模型初始化
Qwen2-Math 的基础模型使用 Qwen2-1.5B/7B/72B 进行初始化。
2.2 训练数据
研究团队使用了精心设计的数学专用语料库上进行预训练,该语料库包含大规模高质量的数学网络文本、书籍、代码、考试题目以及由 Qwen2 模型合成的数学预训练数据。
至于更加具体的预训练数据语料组成和处理,阿里的研究团队并未揭露。
有意思的是,预训练数据中包含了‘Qwen2 模型合成的数学预训练数据’,这证实了使用LLM合成数据进行训练的有效性。
2.3 Qwen2-Math基础模型评估
研究团队在三个广泛使用的英语数学基准 GSM8K、Math 和 MMLU-STEM 上评估了Qwen2-Math 基模型。
此外,研究团队还评估了三个中国数学基准 CMATH,GaoKao Math Cloze 和 GaoKao Math QA。所有评估均使用 Few-shot CoT 方式。
可以看到,在英语基准测评中,Qwen2-math的表现仅在MATH的这个标准上实现了SOTA,但是在其他两个基准中,未经过Math预训练的模型Qwen2仍略胜一筹;
然而,在中文基准测评中,经过Math预训练的Qwen2-math在三个基准测评中均实现了SOTA。
可能的原因是:
1. Math预训练的预料中包含更多的中文内容
2. 即使有math数据的专门训练,未经过指令微调的模型仍有进步空间
三、指令微调
3.1 数学奖励模型(Reward Model)
研究团独首先基于 Qwen2-Math-72B 训练了一个数学专用的奖励模型。
对于此部分的数学奖励模型,其原理应与Qwen模型在对齐时训练的奖励模型方式相同,即基于同等大小Qwen模型+池化层得到奖励模型。
3.2 指令微调数据
3.2.1 拒绝采样
根据训练后数学奖励模型得到的密集的奖励信号,将其与映射为二元信号,并使用这个二元信号来指示模型是否正确回答了问题。
再根据这个组合信号,通过拒绝采样构建 SFT 数据。
3.2.2 去除数据污染
为了确保测试结果的公正性,研究团队对训练和微调数据进行了严格的去污染处理。去污染处理包括:
1. 移除与测试集有显著重叠的样本
2. 移除了有13-gram重复且最长公共子序列比例大于0.6的训练样本
3.3 Group Relative Policy Optimization(GRPO)
参考DeepSeekMath,在SFT模型的基础上进一步使用 GRPO 来优化模型。
PPO 训练所需要的 4 个模型,通常情况下 4 个模型是一样规模大小的 LLM
PPO 所需要4 个模型,包括:
- Actor:用于生成句子的模型,也就是正在被训练玩游戏的你。
- Critic:指导你进步的教练模型,注意,这个教练模型也会随着你的进步来调整自己的指导策略。比如,当你很菜的时候,突然打出了一个很强的操作时,会给你一个较高的分数(Vs 较低,因此 r - Vs 就较大,看不懂这句话没关系,我只是尝试证明这个例子的存在一定合理性),当你本身比较强了,再打出同样操作的时候给的奖励就没有之前那么高。因此,训练过程中 Critic 是和 Actor 一起训练的。
- Reward Model:用于给出最终分数的模型。虽然教练能够给你一定的指导,但最终游戏获胜与否还是要靠裁判说了算,可以说教练在教你的同时也在尝试学习裁判的偏好。裁判一般是固定的,因此 Reward Model 在整个训练过程中参数是被冻结的。
- Reference Model:这是 PPO 在 LLM 中独有的概念,目的是为了让 actor 不要训练偏离太远,主要是缓解 reward hacking + 稳定训练使用的。
通常来讲,这 4 个模型都是同样规模参数的模型,也就是说,如果我们选用 llama3-70B 作为训练模型的话,整个训练过程中我们需要同时载入 70 x 4 = 280B 的参数,这当中有 70 x 2 = 140B 的参数需要进行训练,这就是为什么 PPO 非常耗卡的原因。
于是,针对 PPO 耗卡且训练慢的特点,就涌现出一系列的工作尝试解决该问题。
Group Relative Policy Optimization(GRPO)
使用一种好的方法来计算 baseline 是丢掉 Critic 网络的关键。
GRPO 认为,直接退化为 Policy Gradient 是不是有点过于原始,虽然天下苦 Critic 久矣,PPO 中其他先进 features 咱们还是可以保留的:比如 importance sampling 和 clip。
于是,整个优化目标就变成这样:
GRPO 的优化目标(绿色部分)和 PPO 几乎完全一样(只是 Advantage 的计算方式变了)
但现在的问题是:公式中的 在 PPO 中是需要通过 Critic 去参与计算advantage的,可是GRPO 里没有 Critic 啊,这咋计算!
回想一下:Critic 的目标是去估计一个状态的期望值(从而降低方差),而期望的近义词是均值,那我们直接暴力的去采样 N 次求均值来代替这个期望不就好了!
PPO v.s. GRPO,对于同一个 prompt 采 G 个答案,平均 G 个答案的得分当作 baseline:
与传统的PPO算法相比,GRPO摒弃了对critic(评论家)模型的依赖,转而基于组内样本得分计算baseline,显著减少了PPO训练所需要的计算资源。
3.4 Qwen2-Math基础模型评估
研究团队对 Qwen2-Math-Instruct 在英语和中文的数学基准评测上进行了评估。除了常用的基准评测,如 GSM8K 和 MATH 之外,还加入了更具挑战性的考试以全面检测 Qwen2-Math-Instruct 的能力,例如 OlympiadBench、CollegeMath、高考(GaoKao)、AIME2024 以及 AMC2023。对于中文的数学评测集,使用了 CMATH、2024年中国高考数学题以及2024年中国中考数学题。
下图汇报了条件下模型在各个基准评测上的 0-shot 成绩,对于选择题类型的题目,如MMLU(STEM),使用了 5-shot 进行评测。
四、总结
为什么 Qwen2-Math 的 Base 模型会在数学方面比通用语言模型好这么多?
总结了以下几点:
1. 预训练是专门针对数学准备了一大批数学相关的预训练数据,然后在Qwen2上面做继续预训练。
2. 训练了一个专门针对数学而制作的Reward Model,它能帮助把高质量的数据筛选出来喂给预训练模型做SFT。
3. 通过合成和rejection sampling获取了很多高质量的数学数据,又使Instruct模型效果再提升。
4. GRPO带来的作用
这次阿里发布的旗舰模型 Qwen2-Math-72B-Instruct 在数学相关任务上超越了诸如 GPT-4o 和 Claude 3.5 等专有模型。鉴于目前仅支持英文的限制,阿里计划很快推出支持英文和中文的双语模型,并且多语言模型也在开发之中。
参考链接: