组合合成:通过原子分解与重组扩展代码 RLVR 的规模
强化学习与可验证奖励 (RLVR) 近期成为提升大语言模型编码能力的关键,但其可扩展性受限于缺乏足够有挑战性的可验证代码任务——这些任务需恰好接近模型能力边界。现有数据合成方法多依赖启发式种子扩展,严重限制了新颖性和难度,导致数据训练价值无法随合成规模成比例增长。 为此,我们提出 原子分解与重组 (ADR) 框架,将代码任务分解为原子元素后受控重组,从而生成真正新颖且具有挑战性的可验证代码任务。ADR 通过组合大量原子元素,能系统性地探索任务空间,保证原创性与难度提升。 实验表明,ADR 在原创性、难度、多样性和测试质量上全面超越现有基线。在算法编程、工具使用、数据科学等多个下游领域的 RLVR 训练中,ADR 始终带来更优的代码能力提升。本研究为新型代码任务合成及可扩展 RLVR 训练开辟了新范式。
论文精读
TL;DR 通过原子分解与受控重组生成高难度可验证代码任务,突破 RLVR 训练数据稀缺瓶颈,使 LLM 编码能力随数据规模持续增长。
问题
问题背景
在基于可验证奖励的强化学习(RLVR)范式下,LLM 代码能力的提升高度依赖足够多的高质量可验证任务。现有研究普遍采用启发式种子扩展(如对 LeetCode 题型进行改写),但这种方法难以突破简单同义转换的局限,导致生成的任务新颖性不足、难度分布单一,模型在训练后期无法持续获得有效梯度。
现有方法的局限
主流代码任务合成策略基于启发式种子扩展(heuristic seed expansion),例如对题目描述进行释义、替换变量名或增加无关上下文。这类技术存在三个关键瓶颈:
- 结构固化:任务的内在逻辑与原始题库强绑定,无法跳出已有问题类别;
- 难度不可控:简单改动很难稳定提升任务难度,而大量无关干扰词反而损害可验证性;
- 多样性伪增长:看似数量膨胀的数据集,其实存在大量冗余样本,训练价值随规模趋平。
为何重要与挑战
RLVR 的效果强烈依赖于任务是否处于模型的能力边界(edge of competence)。若任务过于简单,则奖励信号饱和;若无法验证,则强化信号不可靠。因此,可扩展性瓶颈实际上是一个数据生成问题:如何在保持每个任务均可自动验证的前提下,系统性地组合出真正新颖、有区分度的问题。这要求合成框架既能解构任务的基本“原子”,又能按受控方式重组,避免组合爆炸并保证解空间无歧义。业界对可自动扩增的 RL 训练管线需求迫切,直接关系到代码大模型能否在复杂工程问题(如数据科学、工具调用)上持续进化。
行业类比
类似自动化出题系统:如同智能教育平台需不断生成标准测试题以测评学生能力,ADR 框架旨在为代码 LLM 持续供给量身定制的“编程考题”,让训练数据能随模型成长动态扩增。
核心洞察
- **将任务原子化并重新组合,是突破 RLVR 数据瓶颈的关键思路。** 现有 RLVR 数据合成常依赖启发式规则对 seed 进行简单扩展,导致生成的任务新颖性与难度不足,训练价值不随数据量线性增长。ADR 通过把代码任务分解为独立原子元素(算法、约束、上下文),再通过受控重组产生组合爆炸式的全新任务,本质性地提升了合成数据的原创性和挑战性,使 RLVR 训练可随合成规模获得持续增益。
- **可验证性与难度并非天然共存,ADR 的验证-精炼闭环是工程落地的核心。** 直接重组原子元素生成的问题可能存在可解性差或难度不当。ADR 通过执行接地验证与对抗性解空间精炼两步,自动过滤无效任务并优化难度分布,确保最终产出的任务既具备严格可验证性(满足 RLVR 要求),又精准处于模型能力边缘(最大化训练信号),这是相比其他合成方法的显著工程改进。
方法
输入与动机
ADR 接收一个领域知识库(如算法题、数据科学任务),其中包含可执行且可验证的种子代码片段。目标是利用这些种子,通过原子分解和可控重组,生成大规模、多样且难度可控的新任务,以突破现有启发式扩展方法中新颖性和难度不足的瓶颈。
关键模块与流程
元素提取(Element Extraction)
从种子代码中抽离出可独立组合的原子元素,例如算法模式(如动态规划、递归)、控制流结构(循环、分支)、关键 API 调用、数据结构操作以及输入输出约束等。这些原子单元构成了后续重组的词汇表。受控元素重组(Controlled Element Recombination)
根据预设的难度指标和领域约束,对提取的原子元素进行结构化重组。通过组合不同算法范式、嵌套控制流或混合多步 API 调用,生成全新的问题骨架,确保重组后的任务逻辑未曾出现在种子中。基于模板的问题合成(Template-Based Problem Synthesis)
将重组后的问题骨架映射到自然语言描述模板,自动生成完整的编程任务描述,包括函数签名、输入输出规范、示例和约束。模板库覆盖多类题型,保证输出的表面多样性。执行验证(Execution-Grounded Validation)
为合成的任务自动生成测试用例,并利用代码解释器执行参考解(由模型或模板生成)以验证问题的可解性与确定性。任何无法通过执行验证的任务将被过滤或修正,确保生成的任务都具备客观且可自动评估的解。对抗性解空间精炼(Adversarial Solution Space Refinement)
通过对抗方式(如变异种子解、引入边界条件)试图寻找简单或非预期的“捷径解”。若发现,则动态调整问题骨架或约束,增大解空间难度,使最终任务更接近模型的能力边界,从而为 RLVR 提供高训练价值的样本。
输出与特点
ADR 输出一组高原创性、难度可控且充分验证的可验证代码任务,可直接注入 RLVR 训练流程。与依赖启发式种子扩展的现有方法相比,ADR 的核心差异化在于将任务生成建模为原子元素的组合优化问题,而非对现有样本的局部扰动,从而在扩展数据规模时,训练价值能随合成量比例增长,真正释放 RLVR 的可扩展潜力。
实验
实验设计
论文围绕 ADR 合成框架 展开两组实验:
合成数据质量评估
- 从 原创性、难度、多样性、测试质量 四个维度定义评估体系,对比
ADR与基于启发式种子扩展的基线方法。 - 从 5 个方面分解 ADR 各组件,检验 元素提取、受控重组、模版合成、执行验证、对抗解空间精化 对数据质量的贡献。
- 从 原创性、难度、多样性、测试质量 四个维度定义评估体系,对比
RLVR 训练增益验证
- 将
ADR合成的代码任务注入 RLVR 训练流程,对 LLM 进行微调,并在 算法编程、工具使用、数据科学 三类下游任务上评估最终能力。 - 对比使用基线合成数据的 RLVR 训练,以及仅用原始任务训练的基准。
- 将
关键发现
- 质量全面超越:
ADR合成的问题在原创性、难度、多样性和测试质量上均明显优于启发式扩写,表明 原子分解–重组 能产生真正新颖的边界任务,而非对训练集的简单变形。 - 可扩展性显著:随着合成规模增大,
ADR数据的训练价值保持线性增长,而基线数据的价值趋于饱和,验证了框架对 RLVR 规模化训练的核心瓶颈——挑战性任务稀缺 的有效缓解。 - 下游泛化能力:在算法编程、工具使用和数据科学三个差异明显的场景中,
ADR增强的 RLVR 均带来一致的性能提升,说明合成任务具备 跨域迁移性,未过拟合到单一提示分布。
与基线的深度对照
传统启发式种子扩展(如通过指令改写、自演进)生成的新任务往往与种子高度相似,难度分布集中在模型已掌握的区间,导致 RLVR 奖励信号稀疏、训练改进微小。ADR 通过先将任务拆解为原子元素(数据结构、操作、约束等),再进行受控重组,本质上在解空间中进行组合搜索,可系统性产生位于模型能力边界的困难样本。同时,执行验证 与 对抗精化 确保生成的任务自身可解且测试用例有效,避免噪声注入。这种设计使 ADR 从“扩展已有任务”升级为“合成未知任务”,为 RLVR 提供了一条与模型能力动态匹配的自举路径,在规模化代码智能体训练中具有重要启示。
行业影响
落地场景
ADR 框架针对可验证代码任务的数据瓶颈,为强化学习训练代码大模型提供可规模化的合成方案。直接落地场景包括:
- AI 编程助手产品(如 GitHub Copilot、Cursor 等),需持续提升在算法、工具调用、数据科学等复杂任务上的表现。
- 自动化代码测试与评估平台,可生成高新颖性、高难度的编程题目,用于模型能力基准测试或在线测评。
- 教育科技产品,面向在线编程练习场景,自动生成个性化习题,提升内容供给效率。
商业价值
- 降本:替代昂贵的人工出题或简单的启发式扩展,降低高质量训练数据的获取成本。
- 增收:模型在困难任务上能力的提升直接改善产品核心体验,增加用户留存与付费转化率;企业级代码生成服务可凭更强的模型能力支撑更高定价。
- 加速数据飞轮:ADR 打破 RLVR 的数据稀缺壁垒,使模型性能可随算力投入稳定缩放,形成可持续的竞争优势。
与现有工作流的接口
ADR 可作为独立的数据合成管线,与主流 RLVR 框架(如 OpenRLHF、VeRL)无缝对接。其原子分解与重组步骤基于静态代码分析,易于集成到持续训练流水线(CI/CT)中:
- 从代码库或现有任务集中提取原子元素(函数语义块、数据结构、算法片段)。
- 按规则重组并生成新任务,通过执行验证与对抗性求解器保证质量。
- 输出的
<任务,测试,参考解>三元组直接注入 RLVR 训练循环。
具体用例
- 金融量化平台:训练模型为量化策略回测编写高效代码。ADR 可组合多种技术指标、数据处理步骤与交易信号,生成大量新颖且可验证的策略实现任务,提升模型在受限领域的代码质量。
- 电商数据处理:模型需自动生成大批量数据清洗脚本。ADR 能构造并发排序、复杂过滤与聚合任务,训练模型熟练使用 pandas、NumPy 等库,减少人工脚本维护。
局限
- ADR 框架的有效性高度依赖初始种子代码任务的多样性和质量。若种子集仅覆盖特定领域或难度范围,则分解出的原子元素和后续重组生成的任务也将局限于这些分布,难以突破原始数据的信息边界,在追求开放域泛化时可能遇到瓶颈。
- 该方法专为可验证代码任务设计,需要明确的测试用例与自动验证机制。对于缺乏严格验证标准的任务(如开放式软件设计或创造性编程),其合成范式难以直接迁移,限制了 RLVR 训练在其他编码相关场景的推广。
- 尽管 ADR 通过组合大幅扩展了任务规模,但对抗性解空间精炼等步骤可能引入额外计算资源消耗,且模板设计与验证逻辑需领域专家介入,随着任务复杂度提升,维护和适配成本可能显著增加,影响大规模工业部署的可行性。