一个 3B 小模型把 AIME26 刷到 94.3,跟 671B、1T 的旗舰打平——这事到底怎么做到的

先说个反直觉的数:AIME26 上拿到 94.3

这个分数本身不稀奇,稀奇的是拿这个分的模型只有 3B 参数。和它打平的对手是谁?是 671B 的 DeepSeek V3.2、是 1T 的 Kimi K2.5。参数量差了两百倍、三百倍。

我第一次扫到这张表的时候,老实讲是有点不信的。小模型在难数学题上翻车几乎是常识——参数不够,记不住那么多,推理链一长就崩。VibeThinker-3B 这篇技术报告(arXiv ID 2606.16140)偏偏要去捅这个"常识",而且它给的不只是一个亮眼的数,还有一套挺有说服力的解释框架。

这篇值得细看。下面我把它掰开聊。


先把结论摆出来:这是一篇什么样的论文

核心摘要:VibeThinker-3B 是一个 3B 的 dense 模型,目标只有一个——把"可验证推理"(verifiable reasoning,主要指数学和编程这类有标准答案、能自动判对错的任务)在严格的小模型规模下推到极限。它基于团队自己的 Spectrum-to-Signal 后训练范式,串起了课程式 SFT、多领域 RL、离线自蒸馏三个阶段。结果是:AIME26 拿 94.3(加上测试时扩展能到 97.1),LiveCodeBench v6 的 Pass@1 是 80.2,没见过的 LeetCode 周赛上首次提交通过率 96.1%。这些数字直接把它顶进了第一梯队推理系统的性能带,匹配甚至超过比它大几个数量级的 DeepSeek V3.2、GLM-5、Gemini 3 Pro。同时 IFEval 还有 93.4,说明这种极致的推理增强没有把指令遵循能力练废。

更值钱的是它顺手抛出的一个假设——参数压缩-覆盖假设(Parametric Compression-Coverage Hypothesis)。这个假设我觉得是全文最有嚼头的地方,后面专门讲。

一句话定位:这不是又一个"我们把模型练得更强了"的报告,它在回答一个更本质的问题——进入顶级推理梯队,到底需要多少参数? 而且它的答案带着一个可证伪的理论框架,不是纯刷榜。

论文:VibeThinker-3B: Exploring the Frontier of Verifiable Reasoning in Small Language Models 作者:Sen Xu, Shixi Liu, Wei Wang, Jixin Min, Yingwei Dai, Zhibin Yin, Yirong Chen, Xin Zhou, Junlin Zhang arXiv: 2606.16140,提交于 2026 年 6 月 15 日


为什么这事重要:小模型的"天花板"假设一直没被认真挑战过

这几年大家的默认信仰是 scaling law——想跨过难推理任务的门槛,就把参数堆上去。前沿推理能力基本集中在几百亿到上万亿参数的模型手里。3B 及以下的小模型呢?大家承认它部署便宜、推理快、做学术研究门槛低,但同时也默认它在硬核数学推导和复杂编程上有"固有瓶颈"。

这个"固有瓶颈"到底是真的物理限制,还是只是我们没找对训练方法?这才是关键问题。

VibeThinker 团队之前做过一个 1.5B 的版本,证明了极小模型也能产生稳定的逻辑链——但那只验证了"能行",没说"能行到什么程度"。这次的 3B 就是要去摸那个上限:一个严格的 3B 模型,能不能真的达到顶级 LLM 的水平?

说实话,这个问题问得比刷榜本身有意思。因为如果答案是肯定的,那意味着"小模型只是大模型的廉价替代品"这个认知是错的。


方法核心:Spectrum-to-Signal,先铺开再聚焦

图1:VibeThinker-3B 在 3B 规模上达到前沿推理性能

图1:VibeThinker-3B 与各尺寸模型在核心推理基准上的对比。横轴是参数规模,纵轴是性能,这个 3B 的点几乎贴着右上角那一堆几百 B 的旗舰模型——视觉上的冲击力比表格更直接。

整个方法论的骨架叫 Spectrum-to-Signal Principle(SSP),延续自 1.5B 那一代。名字起得挺形象,拆成两段理解:

  • Spectrum(频谱)阶段,对应 SFT:用一种叫 Diversity-Exploring Distillation 的做法,目标不是死记一条最优解路径,而是先把解空间铺开——尽可能多地覆盖各种可能的正确解法,构建出一片"频谱"。
  • Signal(信号)阶段,对应 RL:在这片频谱里,用强化学习把那些高价值的、正确的推理信号放大出来。

你可以这么理解:先让模型"见多识广"地知道一道题有多少种解法,再用 RL 把它推向那些真正靠谱的解法。这个顺序我觉得是对的——如果一上来就用 RL 死磕单一路径,模型容易陷在局部,探索能力会被早早掐死。

基座用的是 Qwen2.5-Coder-3B base,一个紧凑的 3B dense 底座。

图3:VibeThinker-3B 的整体训练流程

图3:完整训练 pipeline。从课程式 SFT 出发,经过多领域 RL(数学→代码→STEM 顺序进行),最后做离线自蒸馏。每个阶段的产出喂给下一阶段,是一条相当工整的流水线。

阶段一:课程式 SFT——先广覆盖,再啃硬骨头

SFT 这一块做得相当细。数据上,团队只挑那些有可靠监督信号的 query 当种子——数学题必须有明确可信的最终答案,竞赛编程必须有可靠的单元测试或可执行的评估规则。然后在概念组合、解题骨架、约束条件、评估目标这些维度上改写扩展,再用强 teacher 模型多次独立采样 + 多数投票生成伪标签。

质量控制是三级的,这个我挺欣赏: 1. N-gram 过滤:剔除异常重复、模板退化,顺便防止跟评测集的 n-gram 重叠(这是防数据污染的关键,很多刷榜的报告就栽在这里) 2. LLM 质量过滤:滤掉描述不全、条件不合理、逻辑无效的样本 3. 轨迹正确性过滤:靠答案验证、代码沙箱执行、LLM 多数投票来筛推理轨迹

训练分两个课程阶段。第一阶段是广覆盖冷启动,用全部过滤后的数据,global batch size 128,学习率从 5×10⁻⁵ 余弦退火到 8×10⁻⁸,跑 5 个 epoch。第二阶段专攻高难度长程推理:丢掉推理轨迹短于 5K tokens 的样本,用 1.5B 当参考模型对每个 query 做 8 次 rollout,把错误率低于 0.75 的简单题过滤掉——也就是说,只留下连 1.5B 都做不太对的硬题,再额外训 2 个 epoch。

这里有个细节叫 Diversity-Exploring Distillation:训练中周期性存 checkpoint,在各领域的探针集上评 Pass@K,给每个领域挑出"能产生更多有效解"的 checkpoint 作为专家模型,最后在参数层面 merge 成一个统一的 SFT 模型。这招本质上是在保多样性——不让模型过早收敛到单一解法。

阶段二:多领域 RL——MGPO + 单一长上下文

RL 的算法骨架叫 MGPO(MaxEnt-Guided Policy Optimization)。核心思路是:对每个 prompt 采样一组响应,算出这组的正确率 \(p(q)\),然后用一个权重函数去偏好那些正确率中等的题

\[w(q) = \exp(-\gamma \cdot D_{ME}(p(q) \| p_0)), \quad p_0 = 0.5\]

最大熵点设在 \(p_0=0.5\)。直觉很清楚:全对的题(\(p=1\))没什么可学的,全错的题(\(p=0\))暂时学不会,真正有学习价值的是那些"会一半、再推一把就能对"的题。这个权重就是在把训练算力往这些题上倾斜。这个权重再套进 GRPO 风格的 clipped objective 里用。

3B 这版相比 1.5B 有两个值得注意的改动:

一是全程用 on-policy。团队发现 on-policy 能缓解训练-推理之间的概率不匹配,稳定性更好。

二是单一长上下文学习——直接上 64K 的长窗口做 RL,而不是像 1.5B 那样渐进式扩展上下文窗口。报告里说,早期阶段如果上下文截断率太高,反而会削弱模型的长程思考能力。这个发现挺有意思,等于是说"长程推理能力得从一开始就给足空间,不能慢慢喂"。

多领域是按 数学 RL → 代码 RL → STEM RL 的顺序串行做的,奖励分别来自答案验证、沙箱执行、选项匹配。

还有一个 Long2Short 的巧思:先用标准 MGPO 把准确率练上去,第二阶段再优化 token 效率。具体做法是只在正确轨迹之间按长度重分配奖励——短的加分、长的减分,错误轨迹不动。而且用了 zero-sum 设计(\(\sum(r_i' - r_i) = 0\)),不引入系统性的奖励偏移,\(\lambda\) 取 0.2 控制重分配幅度。这相当于在不牺牲对错判断的前提下,悄悄教模型"话别说那么长"。

阶段三:离线自蒸馏——把各阶段的精华回收

最后一步是把数学、代码、STEM 各 RL 阶段的 checkpoint 里提取高质量轨迹,蒸馏回一个统一的 student 模型。

这里有个我觉得设计得很聪明的点——Learning-potential Filtering。它不是简单地把所有正确轨迹都拿来蒸馏,而是先用各领域的验证器做拒绝采样去掉错的,再用一个"学习潜力分"来估蒸馏价值:

\[S_{LP}(q,y) = -\frac{1}{|y|}\sum \log \pi_{\theta_{stu}}(y_t | q, y_{\lt t})\]

这个分越高,说明这条轨迹 teacher 已经验证是对的、但 student 现在还建模得不好——也就是 student 最该学的东西。团队还特意在各领域的长度桶内分别算优先级(不做全局排序),排除极短轨迹和极高分异常值,优先选中高分段的轨迹。这套筛选逻辑本质上是在做"精准补课",把蒸馏算力花在刀刃上。


实验结果:3B 到底打到了什么位置

核心基准:在中小模型里是降维打击

图2:在 IMO-AnswerBench 上的参数效率

图2:IMO-AnswerBench 上的参数效率对比。这是一个极难的数学基准,VibeThinker-3B 的点同样杵在远小于对手的参数规模上,却够到了第一梯队的性能区间。

先看 Table 1,和其他中小模型 + 部分大模型比。VibeThinker-3B 的成绩单(关键列):

Benchmark VibeThinker-3B (3B) 对比参照
AIME25 91.4 Ministral-3-Reasoning-2512 (14B): 82.9
AIME26 94.3 Qwen3.5-4B: 84.0
HMMT25 89.3 Ministral-3 (14B): 67.1
BruMO25 93.8 Gemma-4-it (12B): 80.4
IMO-AnswerBench 76.4 OpenReasoning-Nemotron (7B): 60.6
LiveCodeBench v6 80.2 Gemma-4-it (12B): 72.0
OJBench 38.6 Qwen3-235B-A22B-Thinking: 32.5
GPQA-Diamond 70.2 Phi4-Reasoning-Plus (14B): 81.9
IFEval 93.4 GPT-OSS-20B: 92.8
IFBench 74.5 Nemotron-3-Nano (30B): 71.5

在数学和编程这些可验证任务上,3B 几乎把同尺寸甚至 4 倍、5 倍大的模型全压住了。LiveCodeBench v6 上它超过了 Table 1 里的所有模型。OJBench 38.6 这个数甚至超过了 235B 的 Qwen3 Thinking。

但注意 GPQA-Diamond 那一行——70.2,明显落后于 14B 的 Phi4(81.9)。这不是 bug,这恰恰是论文核心假设的证据,等会儿展开。

顶级对决:跟旗舰模型同台

Table 2 是真正的硬仗,对手是 GLM-5、Kimi K2.5、Gemini 3 Pro、DeepSeek V3.2、Claude Opus 4.5、GPT-5 这些旗舰:

Benchmark VibeThinker-3B VibeThinker-3B + CLR DeepSeek V3.2 (671B) Kimi K2.5 (1T) GLM-5 (744B)
AIME25 91.4 96.7 93.1 96.1 96.7
AIME26 94.3 97.1 94.2 93.3 95.8
HMMT25 89.3 95.4 90.2 95.4 97.9
BruMO25 93.8 99.2 96.7 98.3
IMO-AnswerBench 76.4 80.6 78.3 81.8 82.5
GPQA-Diamond 70.2 72.9 82.4 87.6 86.0

不加任何技巧时,AIME26 的 94.3 就已经和 671B 的 DeepSeek V3.2(94.2)、1T 的 Kimi K2.5(93.3)打平了。加上 CLR(claim-level reasoning,一种测试时扩展方法,对每题采 32 条候选轨迹、提取 5 个关键 claim 做可靠性投票,独立跑 8 次取平均)之后,AIME26 飙到 97.1,BruMO25 直接干到 99.2。

5 个百分点的提升。从 94.3 到 97.1,这个幅度在已经这么高的基线上还能拿到,说明它的多样性解空间确实留得够宽——CLR 这种基于多候选的方法,吃的就是解空间的多样性。

不过我得泼盆冷水。CLR 只作用于答案可验证的数学基准和 GPQA。它本质上是测试时多花算力换准确率,跟那些不开 CLR 的大模型直接比公平性是要打问号的。报告自己也只在该用的地方用,没有滥用到编程基准上,这点还算诚实。

OOD 泛化:没见过的 LeetCode 周赛

这个实验我最看重,因为它最难作弊。团队拿 2026 年 4 月底到 5 月底的 LeetCode 周赛/双周赛(模型训练时绝对没见过),每场 4 题、每题 4 次独立提交,看首次提交通过率:

Model Overall
GPT-5.3-Codex 100.0% (128/128)
Gemini 3.1 Pro 99.2% (127/128)
Gemini 3 Flash 96.9% (124/128)
VibeThinker-3B 96.1%(123/128)
GPT-5.2 95.3% (122/128)
Doubao Seed 2.0 Pro 94.5% (121/128)
Qwen3-Max 91.4% (117/128)
Kimi K2.5 (1T) 90.6% (116/128)
Qwen3.5-397B-A17B 89.8% (115/128)
Claude Opus 4.6 86.7% (111/128)
GLM-5 (744B) 76.6% (98/128)

3B 模型通过了 123/128,排在第四,超过了 GPT-5.2、Doubao Seed 2.0 Pro、Qwen3-Max、1T 的 Kimi K2.5、397B 的 Qwen3.5,逼近 Gemini 3 Flash。这是在没见过的新题上跑出来的,不是刷已知榜单。这个结果比 Table 1、2 都更能打消"它是不是过拟合了基准"的疑虑。


全文最有嚼头的地方:参数压缩-覆盖假设

聊到这里,那个 GPQA 的"短板"就该回收了。

VibeThinker-3B 在数学、编程上能逼平千亿模型,但在 GPQA-Diamond 这种知识密集型基准上,即便开了 CLR(70.2 → 72.9)也明显落后。一个能解 IMO 级数学题的模型,为什么答不好需要广博知识的题?

团队的解释就是 参数压缩-覆盖假设:模型能力在参数空间里的编码存在结构性差异,分两类——

能力类型 代表 核心机制 参数需求
参数密集型 可验证推理 搜索、约束满足、纠错、多步组合 可高度压缩进紧凑的 reasoning core
参数扩展型 知识密集 + 通用能力 覆盖开放域事实、概念、长尾场景 需要大规模参数做广覆盖

说人话:推理是一种"技能",技能可以被压缩进一个小而精的核心;而知识是一种"覆盖",你记住多少长尾事实,本质上取决于你有多少参数去存。 推理能力像是一套可复用的算法,不需要太多参数;知识则像一本百科全书,页数(参数)越多覆盖越广。

这个假设解释了一切观察:为什么 3B 能在可压缩的推理任务上够到前沿,又为什么它在需要直接回忆广域知识的 GPQA 上够不着。两类能力只是部分耦合的——小模型能装下高效的推理引擎,但装不下整个世界的知识。

顺着这个假设,团队还提出了 推理-知识解耦范式:大模型负责承载知识广度,小模型负责封装推理深度,两者互补。这个想法我觉得对工程落地有真启发——未来一个合理的系统形态,可能就是"大模型当知识库 + 小模型当推理引擎"的组合,而不是一味把单个模型堆大。


我的判断:值不值得细读,问题在哪

先说亮点。

这篇论文最值钱的不是那些刷爆的数字,而是它把一个工程结果上升成了可证伪的科学假设。94.3 这个数本身会被下一代模型刷过去,但"推理可压缩、知识需覆盖"这个判断,如果成立,会长期影响小模型的研发路线。它给"做小模型"这件事提供了理论正当性——你不是在做大模型的廉价替代,你是在探索一条互补的路。

OOD LeetCode 那个实验也加分。在没见过的新题上稳住 96.1%,这比任何静态基准都更能证明它学到的是真推理能力,不是背答案。

但有几个地方我得保留意见。

第一,CLR 的对比公平性。开 CLR 等于测试时多花了好几倍算力(32 候选 × 8 次独立运行),拿这个去和不开 trick 的大模型比,本质上不太对等。报告把开/不开两栏都列出来了,算是诚实,但读者容易被 97.1 这个加了料的数带跑。

第二,报告没披露训练成本。总 GPU 小时、数据总量、总 token 数都没给。对于一篇主打"小模型也能行"的报告,训练侧的成本是关键卖点之一——如果训练这个 3B 烧的钱跟训个中等模型差不多,那"小"的意义就要打折。这块的缺失我觉得是个遗憾。

第三,适用边界要看清。报告自己反复强调,3B 的优势严格限定在 well-constrained、可验证的推理任务上。它不是一个能替代通用大模型的全能选手——别拿它去做开放域问答、长尾知识检索。这点论文说得很清楚,但传播过程中很容易被简化成"3B 吊打千亿模型"的标题党,那就误读了。

总的来说,这是一篇我愿意推荐细读的报告。它的工程 pipeline 扎实(三级质量控制、Learning-potential Filtering、Long2Short 都有真东西),理论框架有启发,实验也基本经得起推敲。如果你在做小模型、或者在思考"推理和知识能不能分开优化",这篇的思路值得借鉴。

至于那个假设最终能不能站住——说实话我还没完全信服,推理和知识的边界到底有多清晰,需要更多模型、更多任务上的验证。但它至少把问题问对了。这就够了。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我