AI能自主出“竞赛题”了!港大&蚂蚁让大模型学会生成难题,水平已接近AIME

赵学亮 投稿
量子位 | 公众号 QbitAI

大模型架构研究进展太快,数据却快要不够用了,其中问题数据又尤其缺乏。

为此,港大和蚂蚁的研究人员反向利用思维链,提出了PromptCoT方法,并基于Llama3.1-8B训练了一个问题生成模型

实验结果表明,合成的问题难度较开源数据和已有算法有显著提升,接近了AIME水平

研究团队利用问题生成模型构造了400k SFT数据。

基于这份数据,团队训练了DeepSeek-R1-Distill-Qwen-7B模型,在MATH-500、AIME 2024以及AIME 2025上的表现均超过了32B的s1模型。

并且相比DeepScaleR-1.5B-Preview,PromptCoT-DS-1.5B仅用1/15的GPU hours即可达到相似的结果。

所有模型和数据均已开源。社区可以根据自己需求合成任意问题数据,用于模型蒸馏或RL训练。

大模型训练缺乏“难题”

当大模型原理“越辩越明”、开源代码越来越多时,数据的不足反而成了限制模型发展的瓶颈。

因为无论是SFT还是RL,一份高质量且颇具挑战的问题数据都是必不可少的,其中,问题数据又尤为重要。

2024年8月,DeepMind的研究阐明了问题挑战性对于模型能力的重要性,但如何能以一种可扩展的方式获得高质量且足够挑战的问题数据呢

开源社区中虽然有很多数据集(比如NuminaMath和 OpenMathInstruct),但这些数据中“难题”的比例却不高。

简单问题让模型在训练中快速饱和,而困难的问题又不多,这可能是当下研究者在构建推理模型时感到最为受限的地方。

因此,研究团队感到相比又一份训练方法的复现代码,一个能够规模化产生高质量困难问题的模型可能更重要

那么,能不能把“出题”的任务,也交给大模型呢?

让大模型学会自己出题

开源数据到底够不够难?

在方法设计之前,研究团队先调研了一下已有开源数据(包括开源方法)的问题难度。

由于“难度”是一个相对主观的指标,研究团队考虑了三个指标:

  • 大模型在问题上的跑分:相当于找个“好学生”来做题,好学生都不会做,说明题目难。

  • 深度思考模型完成题目所需的推理长度:类似的,如果“好学生”需要思考很久才能解一题,说明题目难。

  • 用该数据精调一个大模型能带来的收益

开源数据(方法)问题难度研究

上表给出了一些典型数据和方法的对比。

从前两列可以看到,和AIME相比,已有数据(或方法)的问题在Qwen2.5-Math-72B-Instruct这样强模型下是比较容易解决的,同时也不需太长的推理。

与之相对,PromptCoT给出的问题无论在跑分上还是在推理长度上都更接近AIME

同时,PromptCoT也是唯一能让Qwen2.5-Math-7B的base模型在精调后可以超过其Instruct版本的数据(第三、四列,Δ代表精调后和Instruct的差)。

怎样才能合成难题?

在已有方法中,不乏用大模型合成问题的工作(如KPDDS、OpenMathInstruct等),但问题难度上不去,研究团队认为是缺乏一个深入思考的过程。

就像一位经验丰富的老师,不假思索可以给出一些问题,但这些问题要么耳熟能详,要么过于直接。

如果想要出一些有挑战的问题,就需要仔细思考。

因此,研究团队考虑将思维链“倒过来”用于合成“难题”上。具体来说,PromptCoT包含三个步骤:

  • 概念抽取;

  • 出题逻辑生成;

  • 问题生成模型训练。

PromptCoT方法概览

先看第一步,概念抽取

PromptCoT是以一些数学相关的概念为生成起点的(比如组合数学、概率论等)。

首先从AoPS上抓取6000多个竞赛级数学题作为种子数据,然后通过Prompt一个大模型从中抽取概念,最后将这些概念去重过滤得到概念池。

抽取完成后,就是逻辑生成

具体来说,给定一组概念以及一个问题,问题生成的目标是最大化,其中对应一个出题逻辑。

通过一些简单的推导,可以得出的最优后验概率是与以及成正比的。那么一个“好”的应该能同时让和最大。

在这样的理论指导下,本工作通过Prompt大模型的方式生成逻辑,具体如下图所示。

逻辑生成Prompt

确定逻辑之后,就可以对模型进行训练

首先利用逻辑生成为每条种子数据构造一个问题合成的思考逻辑,得到数据集。

在这些数据基础上,通过模型精调和拒绝采样的方式来训练一个问题生成模型。

其中模型精调(SFT)可以看作是预热阶段,让模型初步掌握合成问题的能力;

而拒绝采样(rejection sampling)可以看作是质检阶段,利用两个额外的大模型给合成的问题打分,只将最高分的问题留下并用作下一轮训练,以让模型在预热阶段后能进一步自我提升,确保生成的问题质量。

训练效果显著增强

合成的问题有用吗?

回答这个问题最直接的办法就是用生成的问题数据构造蒸馏数据集,然后观察训练强模型的收益。

这里采用的训练方法是SFT,评估数据采用的是GSM8K,MATH-500,以及AIME 2024,分别代表了小学、高中、以及竞赛级的数学难度。

为了公平比较,Evol-Instruct和KPDDS采用Llama3.1-70B-Instruct做底座。

评估考虑了short-CoT以及long-CoT两种情形。Short-CoT用Qwen2.5-Math-72B-Instruct做教师模型,Qwen2.5-Math-1.5B和7B的base版本做学生模型;

而long-CoT则用DeepSeek-R1-Distill-Qwen-7B做教师模型,DeepSeek-R1-Distill-Qwen-1.5B和7B做学生模型。

下展示了评测结果,可以看到,无论是1.5B模型还是7B模型,PromptCoT都能带来非常显著的增益

合成数据有无规模效应?

下图展示了随着问题数据规模变大,Qwen2.5-Math-1.5B base模型在MATH-500上的效果变化。

可以看到,与OpenMathInstruct相比,PromptCoT合成的数据具备更加显著的规模效应,这也侧面反映了问题难度对于模型效果的作用。

PromptCoT的数据规模效应

作者简介

该工作第一贡献者为香港大学计算机系博士生赵学亮;

蚂蚁技术研究院武威、关健为共同贡献者。

论文地址:
https://arxiv.org/abs/2503.02324
Github:
https://github.com/inclusionAI/PromptCoT

—  —


学术投稿请于工作日发邮件到:

ai@qbitai.com

标题注明【投稿】,告诉我们:

你是谁,从哪来,投稿内容

附上论文/项目主页链接,以及联系方式哦

我们会(尽量)及时回复你

一键关注 👇 点亮星标

科技前沿进展每日见

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

(文:量子位)

欢迎分享

发表评论