Skip to content

X-Coder: Advancing Competitive Programming with Fully Synthetic Tasks, Solutions, and Tests(论文重做版)

作者:Jie Wu, Haoling Li, Xin Zhang, Jiani Guo, Jane Luo, Steven Liu, Yangyu Huang, Ruihang Chu, Scarlett Li, Yujiu Yang
原文:https://arxiv.org/abs/2601.06953

核心问题:竞赛编程数据稀缺且污染风险高,是否可以只用“全合成任务+解答+测试”把 7B/8B 代码模型推到专家级表现?论文答案是:可以,但前提是合成质量控制必须足够强。


1) 动机与目标

论文认为 competitive programming 的数据瓶颈主要在三点:

  1. 任务要“可解且难”,随便合成容易变成简单题或歧义题;
  2. SFT 需要高质量长推理解答,错误解会污染监督;
  3. RL 依赖可靠测试信号,弱测试会导致奖励噪声。

因此作者构建了一个端到端合成框架:

  • 合成任务;
  • 合成测试输入;
  • 合成候选解;
  • 用 dual-verification 同时校验“测试标签质量”和“gold solution 质量”。

Figure 1: X-Coder 任务/训练总览


2) 数据合成框架(论文第3节)

2.1 任务合成:feature-based + 竞赛域适配

在 EpiCoder 的 feature-tree 思路上,作者做了 domain adaptation:

  • 从 TACO 10k 题解中抽竞赛特征(算法、数据结构、复杂度、优化等);
  • 宽度 + 深度双向演化特征树;
  • 采用两阶段生成:先选兼容子树,再生成题面(避免一步法过度简化)。

并支持多风格题面:Codeforces / LeetCode / AtCoder。

2.2 测试输入合成

论文对比:

  • prompting-based 测试生成;
  • tool-based(CYaRon)测试生成。

文中结果显示 tool-based 在覆盖与区分性上更强(但成本更高)。

2.3 候选解合成与过滤

每题生成多候选解,过滤标准包含:

  • 含完整 reasoning + code;
  • AST 语法有效;
  • 去除异常长、格式破损、多代码块干扰样本。

3) Dual-Verification(本文关键)

3.1 Step 1:投票得到临时测试标签

对于输入 xi,多候选解输出集合 {yi1,,yim},多数投票:

y^i=argmaxyj=1mI(yij=y)

并给每个测试样例赋权 wi(文中最终采用 size-based weighting)。

3.2 Step 2:加权选 golden solution + hold-out 验证

Tgolden 上选加权最优:

Agolden=argmaxAj(xi,y^i,wi)TgoldenwiI(Aj(xi)=y^i)

再到 Tval 做留出确认,避免只对加权集过拟合。

论文还额外做 solvability filtering:用强模型(如 GPT-5 高推理)筛掉明显不可解/高歧义任务。

Figure 2: 合成与双重验证流程


4) 训练与评测设置

  • 训练范式:SFT-then-RL
  • backbone:Qwen2.5-Coder-7B-Instruct、Qwen3-8B-Base
  • 评测主基准:LiveCodeBench v5 / v6
  • 主指标:avg@8

5) 主结果(论文表1核心)

5.1 SFT 阶段

  • X-Coder-Qwen2.5-SFT:v5 60.3±2.5,v6 53.5±1.7
  • X-Coder-Qwen3-SFT:v5 59.4±2.0,v6 55.4±2.3

5.2 SFT+RL 阶段

  • X-Coder-Qwen2.5:v5 62.9±1.8,v6 55.8±1.9
  • X-Coder-Qwen3:v5 64.0±2.5,v6 56.5±1.3

结论:在论文对比设定下,7B/8B 模型可达到并超过一批更大模型或 real-data 路线基线。


6) 关键消融

6.1 数据规模扩展有效

随着 synthetic data 规模从小到大,性能单调上升(论文给出明显 scaling 曲线)。

6.2 “任务多样性”优于“同题多解”

在 token 预算固定下,增加 unique tasks 比增加每题 solution 数更有效。

6.3 Dual-verification 显著提升质量

论文示例(64k 规模):

  • raw solutions:LCB v5 = 47.0
  • verified solutions:LCB v5 = 53.4
  • 提升:+6.4

6.4 Long-CoT 明显优于 Short-CoT

同等训练设定下,长推理轨迹带来显著更高上限,但收敛更慢、训练更贵。

6.5 领域特化演化是必要条件

相比通用合成策略,domain-adapted feature evolution 在竞赛题上提升显著。

Figure 3: Long-CoT 与 Short-CoT 对比

Figure 4: 数据规模与性能关系


7) 误差与行为分析(论文第6节)

论文统计失败类型分布:

  • Wrong Answer 仍是主因;
  • 其次是 No Code Block(长推理导致截断)与 TLE。

此外,论文还分析了:

  • reasoning token 越长并不保证更高 pass,往往反映题更难;
  • RL 可显著提 pass@1,但其收益受 SFT 初始化质量影响(good-gets-better)。

8) 局限

  • dual-verification 成本高(轨迹与执行代价大);
  • 合成质量依赖验证器和候选池强度;
  • 主要验证集中在 competitive programming,跨到复杂 SWE 任务需新设计。

9) 最小可追溯引用