32B 击败 DeepSeek-R1、o3-mini,成本暴降 100 倍!GRPO 让小模型称霸推理

【新智元导读】32B 小模型在超硬核「时间线索」推理谜题中,一举击败了 o1、o3-mini、DeepSeek-R1,核心秘密武器便是 GRPO,最关键的是训练成本暴降 100 倍。

用上 DeepSeek 核心算法,也能击败 R1。

在具有挑战性的「时间线索」(Temporal Clue)逻辑谜题中,基于强化学习微调后的 Qwen 2.5 32B,推理能力完全碾压 o1、o3-mini、R1。

甚至,它还追平了 Claude 3.7 Sonnet,整个模型推理成本暴降 100 多倍!

「时间线索」逻辑谜题脱胎于经典桌游 Clue,并加入了 when、why 的两个全新维度,堪称逻辑推理的「珠穆朗玛峰」。

它不仅能考验模型基本推理能力,更爆料顶级大模型软肋。

对此,前谷歌工程师,初创 OpenPipe 联创 Kyle Corbitt 和团队将其作为模型的「终极试炼场」,提出了一个大胆的假设------

小模型在复杂推理任务中,能否逆袭,达到或超越顶尖 LLM?

他们选用开源的 Qwen 模型(14B 和 32B),通过 GRPO 强化学习,对其进行了魔鬼式训练。

如前所见,这些小模型的推理性能,得到了显著提升。

但震撼远不止于此,团队还发现了一些奇怪的现象:Qwen 14B 的推理长度随时间「随机」增加,而 Qwen 32B 的推理长度却在减少。

而且,这一切竟发生在奖励机制完全不涉及长度的情况下。

传统观念认为,只有参数量足够大的 LLM,才能称霸推理任务。

但这个最新证明,即便是 14B/32B 小而精的模型,用上巧妙的优化策略------GRPO,同样能站上巅峰。

网友评论区追问,QWQ 32B 也有效吗?

Kyle 肯定道,那是一定的,它与 Qwen 2.5 32B 采用了同一个架构。

AI 推理新战场:时间线索

去年,OpenAI 推出划时代 o 系列推理模型以来,在 AI 界掀起了一场强化学习(RL)的狂潮。

谷歌 DeepMind、阿里、DeepSeek、Anthropic 等巨头纷纷入局,打造出进行长链式思维(CoT)推理的高级模型。

许多以往具有挑战性的基准测试------如数学和编码领域------如今已接近饱和。

然而,即便是如今最顶尖模型,面对逻辑推理这块硬骨头,也常常会犯低级错误。

为此,OpenPipe 两位联创决定挑战这个未解之谜------用 RL 微调后的小模型,去挑战复杂推理题。

基准测试

为此,研究人员基于桌游 Clue,打造了一个新基准------时间线索,将其转化为一个单人逻辑谜题,超越了传统维度(who、what、where)。

这些谜题通过 OR-Tools 的 CP-SAT 求解器随机生成,并挑选出最精简,却致命的线索:

在一个寒冷的冬夜,富有且神秘的 John Q. Boddy 先生为几位亲密伙伴举办了一场小型但奢华的晚宴。然而,夜晚以悲剧收场------清晨,Boddy 先生被发现死在都铎庄园的某个房间内。以下为涉案嫌疑人名单...

把子有了之后,研究人员先对顶尖大模型进行了测试,包括 DeepSeek-R1、o1、o3-mini,以及 Claude Sonnet 3.7,以及开源的 Qwen 14B 和 32B。

结果如下图所示,有 64k token 思考预算的 Claude Sonnet 3.7,表现最优。

开源 DeepSeek-R1 几乎与 o1、o3-mini 性能相当。然而,未经调优的 Qwen 2.5 Instruct 模型表现平平。

那么,如何将这些较小的开源模型训练到前沿水平?

小模型逆袭秘诀:GRPO

答案就是,强化学习------允许智能体在受控环境中从自身经验中学习。

这里,LLM 是智能体,而谜题则是环境。

研究人员通过让 LLM 为每个谜题生成多个响应来引导它们的学习,探索问题的空间。并且,强化那些导向正确答案的推理,并对导致模型偏离正确路径的推理进行惩罚。

在多种 RL 方法中,他们选择了由 DeepSeek 开发的流行的 GRPO 算法。与传统的 PPO 等方法相比,GRPO 简化了训练过程,同时仍能提供强大的性能。

为了加速实验,团队省略了 Kullback-Leibler(KL)散度惩罚。

从高层次来看,模型的训练循环遵循以下基本步骤:

  1. 生成模型对谜题任务的响应
  2. 对响应进行评分,并估计每组对话完成的优势(这是 GRPO 中「分组相对比较」的部分)
  3. 使用由这些优势估计指导的裁剪策略梯度对模型进行微调
  4. 使用新的谜题和最新版本的模型重复这些步骤,直到达到峰值性能

在生成响应时,研究人员使用了流行的 vLLM 推理引擎,通过调整了参数选择,以最大化吞吐量并最小化启动时间。

Prefix caching 尤为重要,因为作者为每个任务采样了许多响应,缓存提示有助于避免冗余计算。

他们观察到,向 vLLM 发送过多请求,会导致正在进行中的请求被抢占或交换。

为了解决这个问题,他们使用信号量(semaphore)限制请求,以保持高 KV 缓存利用率,同时最小化交换。

更高级的调度机制可能会在支持灵活生成长度的同时,进一步提高利用率。

在采样后,研究人员使用标准的 HuggingFace Transformers AutoTokenizer 处理完成内容。

其聊天模板功能将消息对象渲染为提示字符串,并包含一个助手掩码(assistant mask),用于确定 LLM 生成的 token。

他们发现模型的默认模板中,缺少必要的「% generation %」标签 ,因此在分词步骤中对其进行了修改。

生成的助手掩码被包含在用于微调的张量字典中,以识别哪些位置需要计算损失。

在分词响应并获取助手掩码后,研究人员对数据进行打包以进行微调。除了在每个打包序列中包含多个提示 / 响应对外,我们还识别了共享的提示 token,并为每个 token 分配了一个 Parent ID,以及 Group ID。

特别是对于像「时间线索」这样的任务------每个谜题平均超过 1,000 个 token------为每个任务生成大量响应并高效打包张量显著减少了冗余。

一旦打包了所有必要信息,便可以将训练数据集可视化为 2D 形式,每一行都是一个 token 序列,可能包含多个提示和完成内容:

有了紧密打包的数据后,就可以开始微调了。

Qwen 模型已经经过了预训练和指令微调,具备相当的智能水平,并且擅长遵循指令。

然而,它们还无法可靠地解决「时间线索」谜题。尽管如此,它们偶尔也能成功,而这已经足够了。

通过增加良好推理的概率并减少「不良」推理的概率,研究人员逐步将模型引导至「侦探大师」级的水平。

他们使用标准的机器学习技术实现了这一点,采用策略梯度方法计算损失并有益地调整权重。

在训练过程中,他们使用了 PyTorch 团队提供的 torchtune 库。Torchtune 为包括 Llama、Gemma、Phi 等流行模型提供了高效的仅解码器(decoder-only)Transformer 实现。

虽然在这个项目中,他们主要使用了 Qwen 模型,但也对 8B 和 70B 的 Llama 模型进行了实验。

Torchtune 还提供了节省内存和提升性能的工具,包括:

  • 激活检查点(Activation Checkpointing)
  • 激活卸载(Activation Offloading)
  • 量化(Quantization)
  • 参数高效微调(PEFT),例如低秩适应(LoRA)

此外,Torchtune 支持多设备(以及现在的多节点)训练,使其非常适合更大的模型。它支持全分片数据并行(FSDP)和张量并行(TP)训练,并且可以结合使用。

他们还提供了十几种训练 recipes,鼓励用户复制并根据自己的用例进行定制。研究人员在此创建了一个修改版的完整微调配方,支持以下功能:

  • 多设备和单设备训练
  • 参考模型加载和权重交换,用于计算 KL 散度
  • 使用组 ID 和父 ID 进行高级因果掩码计算
  • GRPO 损失集成和组件日志记录

未来,他们希望添加张量并行支持,并探索 PEFT 和量化。

RL 训练过程涉及选择大量的超参数。在训练模型时,研究人员测试了各种配置,并最终确定了以下设置:

  • 模型:Qwen 2.5 Instruct 14B 和 32B
  • 每次迭代的任务数:32
  • 每次迭代每个任务的样本数:50
  • 每次迭代的总样本数:32*50=1600
  • 学习率:6e-6
  • Micro-Batch 大小:14B 模型为 4 个序列,32B 模型为 8 个序列
  • 批大小:可变,取决于序列数量

批大小是可变的,因为在训练过程中响应长度可能会变化,序列打包效率每次迭代都会波动,并且优势为零的响应会被丢弃。

在一次实验中,研究人员尝试了动态调整学习率,使其与批大小成反比,但这导致小批大小的学习率过高,需要设置上限。

设置上限后的版本与使用恒定学习率没有显著差异,但调整批大小和学习率仍然是未来实验的一个有趣方向。

此外,研究人员还进行了简短的实验,增加每次迭代的任务数同时减少每个任务的样本数,反之亦然,保持每次迭代的总样本数大致相同。

在较短的训练时间内,这些变化没有显示出显著差异,表明配方对任务数和每个任务的样本数之间的不同平衡具有鲁棒性。

100 次迭代,实现 SOTA

结果显示,模型在经历超过 100 次迭代训练后,实现了 SOTA 级的演绎推理能力。

从下图中可以看到,模型的性能在训练初期迅速提升,并在之后逐渐放缓;然而到了末期,准确率却开始出现退化,甚至急剧下降。

在最佳状态下,14B 模型在 16k tokens 的上下文窗口下接近 Claude Sonnet 3.7 的性能,而 32B 模型在更大的 64k 上下文容量下几乎匹配了 Sonnet 的结果。

训练过程中,性能提升遵循幂律分布,在对数 - 对数坐标图上呈现线性关系(在性能开始下降之前)。

研究人员推测,之所以出现这种现象,有可能是因为模型过早地收敛于初期就有效的贪婪策略,从而限制了长期的发展潜力。

此外,还可以观察到,输出的长度在训练期间也呈现出了一种有趣的变化模式。

刚开始的时候响应长度会逐步增加,然后趋于稳定;而在训练后期,则出现了明显的分化现象------14B 模型的响应变得更长,而 32B 模型的响应长度显著减少,特别是在达到峰值性能后。

为了定性评估逻辑推理能力的提升,团队决定使用最新的 Claude Sonnet 3.7 来对 Qwen 32B 模型的解谜推理能力进行分析。

  • 在未经训练的基础模型中,Sonnet 识别出了 6 个推理结论,其中 5 个被判定为错误
  • 在经过 100 多次迭代训练后的模型中,Sonnet 识别出了 7 个推理结论,其中 6 个被判定为符合逻辑

接下来,团队根据 Fireworks AI 的无服务器定价方案估算了 Qwen 模型的成本。(假设能获得足够的计算吞吐量)

通过将准确率与每个响应平均推理成本的自然对数进行对比,团队发现,没有经过微调的模型存在着明显的线性帕累托最优前沿(表示在这条曲线上,无法同时提高准确率和降低成本)。

而团队提出的方法,不仅将开源模型训练到了 SOTA 级的准确率,而且还极大地改善了成本与准确率之间的权衡关系。

值得一提的是,团队还在最后为大家留了一个特别令人兴奋的发现------仅使用 16 个训练样例就能实现高达 10-15% 的显著性能提升。

这意味着,不需要大量数据即可开始,开发者只需对自己想解决的问题有一些基本的直觉认识即可。

在文章的最后,团队写道:

随着工作的圆满完成,我们彼此相视一笑,随即叫了一辆双轮马车返回贝克街------这里正是复盘「案情」的绝佳场所。

参考资料:

x.com/corbtt/stat... openpipe.ai/blog/using-...

相关推荐
MARS_AI_3 小时前
云蝠智能 Voice Agent 落地展会邀约场景:重构会展行业的智能交互范式
人工智能·自然语言处理·重构·交互·语音识别·信息与通信
weixin_422456444 小时前
第N7周:调用Gensim库训练Word2Vec模型
人工智能·机器学习·word2vec
HuggingFace7 小时前
Hugging Face 开源机器人 Reachy Mini 开启预定
人工智能
企企通采购云平台7 小时前
「天元宠物」×企企通,加速数智化升级,“链”接萌宠消费新蓝海
大数据·人工智能·宠物
超级小忍8 小时前
Spring AI ETL Pipeline使用指南
人工智能·spring
张较瘦_8 小时前
[论文阅读] 人工智能 | 读懂Meta-Fair:让LLM摆脱偏见的自动化测试新方法
论文阅读·人工智能
梦想blog8 小时前
DeepSeek + AnythingLLM 搭建你的私人知识库
ai·大模型·llm·anythingllm·deepseek
巴伦是只猫9 小时前
【机器学习笔记 Ⅲ】4 特征选择
人工智能·笔记·机器学习
好心的小明9 小时前
【王树森推荐系统】召回11:地理位置召回、作者召回、缓存召回
人工智能·缓存·推荐系统·推荐算法
lishaoan779 小时前
使用tensorflow的线性回归的例子(十二)
人工智能·tensorflow·线性回归·戴明回归