← 返回 2026-09-03

后训练语言模型在编程竞赛中达到金牌水平 Post-Training Language Models for Gold-Medal Performance in Coding Competitions

Aleksander Ficek, Sean Narenthiran, Mehrzad Samadi, Somshubra Majumdar, Boris Ginsburg 📅 2026-09-02 👍 12 2026-11-02 18:30
IOI 大模型后训练 强化学习 测试时计算 竞争性编程

SFT+RL+GenCorrect闭环精炼,AI在IOI 2026现场首次超越人类最高分

前置知识

SFT(监督微调)

用人工或更强模型(教师)生成的输入-输出对直接训练模型模仿输出。本文用 DeepSeek-V4-Flash 生成竞赛解题的推理轨迹作为教师数据,包含难题采样和教师自我修正解法的轨迹,通过序列打包(最长262K token)训练。SFT 是最直接的特化手段,让模型学到解题的推理模式与代码风格。

本文的核心实证结论是 SFT 贡献了绝大部分单样本增益(Nano 模型 IOI Score@1 从 21.7% 升至 46.7%),理解 SFT 的数据构成与训练设置是读懂消融实验的前提。

GRPO(组相对策略优化)

一种可验证奖励的强化学习算法:每个 prompt 采样一组 rollout,以组内奖励的相对优势作为策略梯度信号,无需训练价值网络。本文每步用 64 个 prompt × 16 个 rollout 共 1024 条采样,温度 1.0,生成的 C++17 代码编译执行,满分记奖励 1 否则 0,使用 token 级裁剪策略梯度且不加参考策略 KL 惩罚。

论文的 RL 消融实验(图 7)完全建立在 GRPO 的二值奖励机制上,理解'组内必须同时有成功和失败样本才有学习信号'是理解 RL 增益为何只有约 2 个百分点的关键。

测试时计算

在推理阶段投入额外计算换取更高质量的输出,包括并行采样多次取最优(Score@200),以及更复杂的迭代策略。本文的 GenCorrect 属于后者:每轮生成 200 个候选解,用多样性选择挑 10 个提交评测,再利用评测器反馈条件化下一轮,共 5 轮,匹配 IOI 每题 50 次提交的官方限制。

GenCorrect 是本文最重要的推理侧创新,从单样本 48.5% 提升到 468/600 分(超金牌线),必须理解并行采样与迭代反馈精炼的区别才能看懂第 4.5 节的分析。

MoE 与激活参数

混合专家模型在每个 token 只激活部分专家,因此总参数量大但每步计算量小,常用记法如 30B-A3B 表示总参数 30B、每 token 激活约 3B。本文 Nano-CC 是 30B-A3B,Ultra-CC 是 550B-A55B,两者都基于 NVIDIA Nemotron-3 系列。

论文反复比较'小激活模型重度后训练 vs 大激活模型轻量 SFT'(Nano-CC 3B 激活 vs Ultra-CC 55B 激活),不懂 MoE 记法就无法理解这一核心权衡。

IOI 子任务评分

国际信息学奥林匹克(IOI)每个问题 100 分,按输入约束拆成若干子任务,提交的代码每通过一个子任务的测试点就获得对应部分分。选手每题最多提交 50 次,两天六个问题满分 600。这种细粒度反馈正是 GenCorrect 每轮优化的信号来源。

GenCorrect 的累积得分向量 $A_r(t)$ 和'全子任务交给模型自行决策'的评测协议都直接依赖 IOI 的部分分机制,也是 IOI(子任务分数)与 ICPC(二元通过)结果差异的根源。

研究动机

竞争性编程已成为衡量大模型推理能力的核心试验场:模型需要现场综合新算法、在复杂约束下推理,并写出能通过隐藏测试且满足时间与内存限制的实现。OpenAI 的 o1-ioi/o3、DeepSeek-V3.2-Speciale、GenCluster 等系统已在 IOI、ICPC 上达到金牌水平,但这些工作存在三个具体问题:其一,系统封闭,训练数据、后训练方式和推理流水线不透明;其二,往往依赖专用模型,无法区分通用能力与竞赛特化的贡献;其三,把训练数据、后训练、模型规模和推理时计算的改变混在一起报告,各组件的独立贡献难以分离。而 IOI 规则本身极为严苛:2025 年六个问题各 100 分、按子任务给分,每题最多提交 50 次,两天满分 600,金牌只授予约前 1/12 的选手;2026 年金牌线为 361.12 分,人类冠军得 498.27 分,要在这种评测下与人类顶尖选手同场竞技难度极大。

本文的目标是本文的目标是构建并公开一个端到端的竞争性编程特化流水线:从 16 个竞赛家族大规模精选题目、用教师模型生成合成推理轨迹、进行长上下文监督微调(SFT)、用可执行奖励做强化学习(RL),并配合迭代式测试时计算策略 GenCorrect。作者不仅要在 IOI 2025、ICPC 2025 和 LiveCodeBench Pro 三个基准上量化数据、SFT、RL、模型规模和测试时计算各环节的独立贡献,还要把流水线经验转化为一个竞赛专用系统,在 IOI 2026 正式比赛期间、题目公开之前进行严格的前瞻性现场评估——在与人类选手完全相同的时间限制(两天各 5 小时)、提交限制(每题 50 次、每分钟 1 次)和禁止联网条件下,冲击并超越金牌线乃至人类最高分。

与已有工作不同的是,本文的独特切入有三点。第一,可分离性:作者刻意把流水线拆成数据精选、SFT、RL、测试时计算四个可独立开关的阶段,并用统一评测框架自己复跑所有对比模型的成绩(而非抄官方报告),从而给出'哪个环节带来多少分'的清晰账本——结论是 SFT 贡献了绝大部分单样本增益(Nano 的 IOI Score@1 从 21.7% 到 46.7%),RL 只再加 1.8 个百分点。第二,GenCorrect 的闭环设计:与以往系统把子任务逐个分配给模型不同,本文把完整题面和累积的子任务得分反馈直接交给模型,让它自己决定攻克哪个子任务,每题所需的生成数量大幅减少。第三,评估的严格性:IOI 2026 现场运行发生在题目公开之前,且所有训练与推理适配(教师选择、最终轮扩展、NVFP4 量化)都只用 IOI 2025 作为开发基准来决定,是一次真正前瞻的、非挑选性的评测。

核心方法

直觉上,竞赛编程是答案可自动验证的任务,因此'更强的数据 + 更强的基座 + 更多的推理计算'三种手段应当可以叠加。技术路线分四步:(1) 数据精选——从 16 个区域和国际竞赛家族及在线编程平台收集约 22,000 题,自动打包成含题面、约束、测试用例和参考解的可执行评测环境,只保留判定一致的约 4,000 道可执行题用于 RL;(2) 合成数据与 SFT——用 DeepSeek-V4-Flash 为 30B 的 Nano 模型生成 120 万条推理轨迹、为 550B 的 Ultra 模型生成 477,642 条,难题多采样并混入自我修正轨迹,为 GenCorrect 的迭代精炼行为埋下伏笔;(3) 强化学习——仅对 Nano 用 GRPO 在 2,847 道训练题上以 C++17 编译执行的 0/1 终端奖励训练;(4) 推理时用 GenCorrect 最多 5 轮'生成 200 解、多样性选 10、提交、接收子任务得分、条件化下一轮'的循环。面向 IOI 2026 现场时再换用 GLM-5.2 教师并配合 NVFP4 量化提吞吐。

核心创新是 GenCorrect——一个反馈驱动的闭环测试时计算策略。每轮并行生成至多 200 个候选解并本地编译,然后用 token-shingle 相似度做'分数盲'的多样性中心选择:按 $c_{\text{next}} \in \arg\max_{c\notin C}\min_{z\in C}[1-\text{sim}(c,z)]$ 迭代选出 $K=10$ 个彼此最不相似的簇代表提交评测。收到子任务得分后,按 $A_r(t)=\max\left(A_{r-1}(t),\max_{c\in S_r}s_t(c)\right)$ 累积每个子任务的历史最高分,并把该向量与三个互补参考解(分别用于保住已解决子任务、瞄准剩余缺口、维持多样性)一起作为下一轮的生成条件。与 AlphaCode 式一次性采样过滤的本质区别在于:评测器的真实反馈被持续注入生成过程,且当前轮的所有过滤和选择都发生在观察到本轮得分之前,避免了选择偏差和信息泄漏;同时把全部子任务交给模型自行规划,而不是人工分而治之。

方法步骤详情

第一步,数据精选:22,000 题经代理过滤与验证打包为可执行环境,剔除并去重所有 IOI 2025、ICPC 2025、LCB Pro 评测题;RL 语料筛出 3,219 题,按父题切分为 2,847 训练题和 372 验证题。第二步,SFT:用 DeepSeek-V4-Flash 生成 120 万条(Nano)/477,642 条(Ultra)轨迹,含约 17.3% 自我修正轨迹;Nano 训 3 个 epoch、Ultra 训 1 个,全局 batch 64,序列打包至 262K token。第三步,RL:GRPO 每步 64 prompt × 16 rollouts,温度 1.0,C++17 编译执行,满分记 1 否则 0,无参考策略 KL 惩罚,验证集选出第 39 步 checkpoint。第四步,GenCorrect:5 轮、每轮 200 生成选 10 提交,匹配每题 50 次限制。第五步,IOI 2026 现场适配:教师换为 GLM-5.2(66.0%、输出 85,927 token);最终轮扩到 1,000 生成,用 50 个测试生成器产出 100 个有效输入、配合模型生成的评分脚本做执行接地排序;NVFP4 量化 + FP8 KV cache + MTP 5,吞吐 736.8 tokens/s/GPU,现场峰值 760 块 GB300。

技术新颖性

技术新颖性体现在四处。第一,GenCorrect 把三条已有研究线——AlphaCode 的大规模采样与行为聚类、自我批评与基于测试的迭代精炼、执行接地的测试时选择(GenCluster)——统一进一个带提交预算约束(每题 50 次)的闭环框架,并保证所有选择先于反馈观察。第二,'全子任务交给模型自行决策'的评测协议:以往工作把问题拆成子任务分别处理,本文让模型面对完整题面和累积得分向量 $A_r$ 自行规划,显著减少每题必要的生成数量。第三,一个反直觉的实证结论:用少量 SFT 适配更强的基座(Ultra 仅 477,642 样本、1 个 epoch、无 RL)能胜过对较小模型的大规模后训练(Nano 120 万样本 × 3 epoch + RL)。第四,系统工程层面:NVFP4 量化 + MTP 5 用 6.6 个百分点的 Score@1(59.4%→52.8%)换取 3.7 倍吞吐(199.1→736.8 tokens/s/GPU),使大批量生成能在比赛时限内完成,说明竞赛级 AI 已是系统工程的胜利。

Our competitive-programming pipeline. Nemotron-3-Nano-CC undergoes supervised fine-tuning and reinforcement learning, while Nemotron-3-Ultra-CC uses supervised fine-tuning only.
Figure 2: Our competitive-programming pipeline. Nemotron-3-Nano-CC undergoes supervised fine-tuning and reinforcement learning, while Nemotron-3-Ultra-CC uses supervised fine-tuning only.
Composition of the curated competitive-programming corpus (left) and SFT traces (right).
Figure 3: Composition of the curated competitive-programming corpus (left) and SFT traces (right).
GenCorrect iteratively generates candidate solutions, selects a diverse subset for evaluation, and uses evaluator feedback to guide the next round.
Figure 4: GenCorrect iteratively generates candidate solutions, selects a diverse subset for evaluation, and uses evaluator feedback to guide the next round.

实验结果

核心发现按阶段拆解。IOI 2025:Nano-CC 的 Score@1 从基座 130 分(21.7%)经 SFT 升至 46.7%、RL 后 48.5%(291 分),GenCorrect 五轮把均值从 360.6 推到 468.2,超金牌线 438.3;Ultra-CC 仅 SFT 就把 Score@1 从 45.5% 提到 50.7%(304 分),GenCorrect 后达 502.0,第三轮过线。ICPC 2025:Nano-CC Pass@1 从 16.9% 到 51.0%,Ultra-CC 57.4%;GenCorrect 后平均解出 9.4/9.6 题(金牌第 4 名队解 9 题),二元反馈下更快饱和。LCB Pro:Nano-CC 71.6%、Ultra-CC 74.5%,超 gpt-oss-120b(66.4%)。消融:SFT 是主力(三基准 +24.8/+29.8/+53.1pp),RL 仅 +1.8/+3.7/+0.9pp;无 SFT 时 RL 仅把 IOI 提到 24.9%,从 SFT 第 1/2/3 epoch 初始化 30 步后为 43.0%/47.1%/48.7%。头条结果:竞赛版 Ultra-CC 在 IOI 2026 与人类相同限制下得 535.4/600,超金牌线 174.3 分、超人类冠军 37.1 分,是 AI 首次在 IOI 题集超过人类最高分;赛后通用流水线复跑 5 次均分 521.72(495.0–545.8)。

Main single-sample results on IOI 2025, ICPC 2025, and LiveCodeBench Pro.
Table 1: Main single-sample results on IOI 2025, ICPC 2025, and LiveCodeBench Pro.
IOI 2025 score and average number of generation tokens for the teacher models and corresponding Ultra-CC variants.
Table 2: IOI 2025 score and average number of generation tokens for the teacher models and corresponding Ultra-CC variants.
Effect of NVFP4 quantization and runtime configuration on IOI 2025 Score@1 performance and inference throughput.
Table 3: Effect of NVFP4 quantization and runtime configuration on IOI 2025 Score@1 performance and inference throughput.
Performance on IOI 2026.
Table 4: Performance on IOI 2026.
Performance of our pipeline and models on IOI 2025 and IOI 2026.
Figure 1: Performance of our pipeline and models on IOI 2025 and IOI 2026.
IOI 2025 Score@1 (grey) and Score@200 (green) across evaluated models with the grey line representing Score@k in between.
Figure 5: IOI 2025 Score@1 (grey) and Score@200 (green) across evaluated models with the grey line representing Score@k in between.
Normalized IOI 2025 Score@1, ICPC 2025 Pass@1, and LCB Pro Pass@1 before and during supervised fine-tuning of Nano-CC.
Figure 6: Normalized IOI 2025 Score@1, ICPC 2025 Pass@1, and LCB Pro Pass@1 before and during supervised fine-tuning of Nano-CC.
Normalized performance during reinforcement learning of Nano-CC on multiple benchmarks and when initializing RL from different SFT checkpoints.
Figure 7: Normalized performance during reinforcement learning of Nano-CC on multiple benchmarks and when initializing RL from different SFT checkpoints.
Performance across successive GenCorrect rounds on (a) IOI 2025 and (b) ICPC 2025.
Figure 8: Performance across successive GenCorrect rounds on (a) IOI 2025 and (b) ICPC 2025.
查看结构化数据
任务指标本文基线提升
IOI 2025(单样本) Score@1(满分600) Nano-CC 291分(48.5%);Ultra-CC 304分(50.7%) 基座 Nano 130分(21.7%)、Ultra 273分(45.5%);最强外部基线 GLM-5.2 396分(66.0%) Nano-CC 较自身基座 +161分(+26.8pp),3B 激活参数即超过 550B 基座 Ultra,但仍低于 GLM-5.2 与 DeepSeek-V4 系列
IOI 2025(测试时计算) 5轮 GenCorrect 平均分(每轮10次提交,共50次) Nano-CC 468.2;Ultra-CC 502.0 金牌线 438.30;两模型第一轮分别为 360.6 / 343.9 五轮累计 +107.6 分(Nano)/ +158.1 分(Ultra),Ultra 第三轮、Nano 第四轮越过金牌线
IOI 2026 现场赛(前瞻性) 官方计分(满分600) 竞赛版 Ultra-CC 535.4(单次现场运行,峰值 760 块 GB300) 金牌线 361.12;人类最高分 498.27;通用 GenCorrect 流水线复跑均值 521.72(495.0–545.8) 超金牌线 +174.3 分,超人类冠军 +37.1 分,AI 首次在 IOI 题集上超过最高分人类选手
ICPC 2025 World Finals Pass@1(12题,二元判定) Nano-CC 51.0%;Ultra-CC 57.4%;GenCorrect 后平均解出 9.4 / 9.6 题 基座 Nano 16.9%、Ultra 54.0%;金牌第 4 名队伍解 9 题 Nano-CC +34.1pp;GenCorrect 两轮后即达金牌队水平,但第三轮后趋于饱和
LiveCodeBench Pro Pass@1(8次运行平均) Nano-CC 71.6%;Ultra-CC 74.5% 基座 Nano 17.6%、Ultra 72.6%;gpt-oss-120b 66.4%、DeepSeek-V4-Flash 69.5%、GLM-5.2 83.8% Nano-CC 较基座 +54.0pp,超过 gpt-oss-120b、Qwen3.6-35B、Nemotron-Cascade-2 和 DSV4-Flash,仍低于 GLM-5.2

局限与改进

作者明确承认的局限包括:训练与测试时计算开销巨大,现场 IOI 结果应理解为'相同时间与提交限制下的系统级对比'而非与人类选手的等资源对比;受算力约束未能对 Ultra 做 RL,也未能跨模型规模和训练阶段做穷举消融;结论能否泛化到竞争性编程之外尚不确定;因第三方再分发限制无法发布完整训练语料。我的补充观察:其一,蒸馏天花板明显——用 GLM-5.2 数据训练的 Ultra-CC 在 IOI 2025 上为 59.4%,仍低于教师本人的 66.0%,模型能力受制于教师模型;其二,GenCorrect 强依赖评测器的子任务级反馈,在只有二元通过/失败反馈的 ICPC 上轮次增益明显更快饱和(第 3 轮后停在 9.4/9.6 题),说明反馈信息量决定精炼上限;其三,推理成本极端(峰值 760 块 GB300),且 NVFP4 量化损失 6.6 个百分点 Score@1,该代价与批量生成收益的权衡只在一个配置网格上评估过。

独立分析的弱点

独立分析出四个弱点。第一,RL 增益微弱(IOI 仅 +1.8pp),根源是长达 255K token 的轨迹只拿 0/1 终端奖励,长视野 credit assignment 极难——改进方向是引入子任务级奖励塑形或编译/执行过程的稠密过程奖励。第二,GenCorrect 每轮都依赖外部官方评测器反馈,这仅在竞赛评测环境中可行,真实 API 用户无法获得子任务分数——应改用模型自生成测试用例加本地执行作为反馈源,文中最终轮用 50 个生成器产出 100 个自生成测试输入做执行接地排序,已暗示这条路可行但未在主流程验证。第三,教师蒸馏存在能力损失(59.4% vs 教师 66.0%),且教师输出长度直接影响推理吞吐(GLM-5.2 的 85,927 vs DSV4-Flash 的 120,456 token)——可探索在策略蒸馏或对教师轨迹做拒绝采样来缩小差距。第四,结论对提交预算敏感:每题 50 次提交是 IOI 特有资源,论文只报了 Score@1 和 Score@200 两端,缺少不同提交预算下的完整曲线,换一个预算设定时 GenCorrect 与纯并行采样的相对优势可能改变。

未来方向

作者提出的后续工作:通过 NeMo-Skills 发布竞赛 Ultra-CC checkpoint 及可运行的推理与评估配方。基于本文成果可延伸的方向包括:(1) 用过程奖励模型或子任务级奖励替代稀疏终端奖励,解决 RL 的长视野 credit assignment 问题,验证 Ultra 级别 RL 能否突破约 +2pp 的瓶颈;(2) 把 GenCorrect 的'生成—执行—反馈—条件化'循环推广到数学证明、科学计算等其他可验证领域,并用自生成测试替代官方评测器;(3) 系统研究 SFT 数据规模与基座强度的缩放规律——本文已提示'强基座 + 少量 SFT'(Ultra 47.7 万样本)可胜过'弱基座 + 大量后训练'(Nano 360 万样本 + RL),值得给出计算最优分配公式;(4) 量化与长推理的联合优化:NVFP4+MTP 5 的 3.7 倍吞吐证明系统优化是必选项,进一步结合投机解码与 KV cache 蒸馏可继续压低成本;(5) 用 CC 模型自身生成高质量轨迹自举训练,摆脱对 GLM-5.2、DeepSeek-V4-Flash 等第三方教师的依赖。

复现评估

开源情况:作者承诺在 NeMo-Skills(github.com/NVIDIA-NeMo/Skills)发布竞赛版 Nemotron-3-Ultra-CC checkpoint 及可运行的推理和评估配方;RL 基于 NeMo RL 框架,量化用 NVIDIA Model Optimizer 的 NVFP4 recipe,正文加附录给出了完整的数据构建、训练超参、GenCorrect 过滤/排序规则和必要提示词,方法学透明度较高。主要缺口是训练语料:22,000 题的打包评测环境和 120 万条 SFT 轨迹因第三方再分发限制不能发布,且合成数据依赖教师模型 API。算力门槛极高:SFT 需 262K token 序列打包训练 550B 模型,现场推理峰值 760 块 GB300,Ultra 线基本只有大厂级集群可承担;30B-A3B 的 Nano 线(SFT + GRPO)对资源充足的研究组是中高难度可复现,评估部分(IOI/ICPC/LCB Pro 环境打包)和缩小版 GenCorrect 相对容易。总体而言:推理与评估配方可复现性高,完整训练复现难度极大。

相似论文推荐