DHRCL:训练代码LLM的密集分层奖励与课程学习
摘要
DHRCL提出了一种结合密集分层奖励与课程学习的强化学习框架,用于训练代码LLM。该框架在三个阶段的课程中,利用语法验证、执行成功、单元测试通过率和AST结构相似性作为反馈信号。
arXiv:2607.26457v1 公告类型:新
摘要:强化学习是面向代码的大型语言模型的一种自然后训练范式,因为生成的程序可以通过解析、执行、单元测试和结构分析进行评估。然而,现有方法往往依赖稀疏的结果奖励或静态组合异构密集信号,尽管语法有效性、可执行性、功能正确性和结构组织描述了不同且逐步依赖的编程能力。我们提出了DHRCL,一个结合密集分层奖励与课程学习的强化学习框架。DHRCL将反馈分解为语法验证、执行成功、单元测试通过率和基于AST的结构相似性,并通过一个三阶段课程(语法、执行、通过与结构)组织这些信号。阶段时长根据最近的验证趋势自动确定,而非手动指定的能力阈值。我们进一步引入了阶段感知的概率性令牌信用再分配机制。该机制遵循巩固到精细化的原则:在面向语法的优化中强调已建立的令牌模式,对非局部执行反馈应用均匀传播,并在最终功能优化中将更多信用或责任分配给尚未确定的令牌决策。在统一的Qwen3-8B和KodCode协议下,实验将DHRCL与二元、通过率、基于奖励模型和可验证密集奖励基线进行了比较。我们进一步在Qwen3-4B、Qwen3-8B和Qwen3-14B主干模型上评估了DHRCL,显示其优势随模型容量增加而保持一致。
查看缓存全文
缓存时间: 2026/07/30 09:58
# DHRCL:使用密集分层奖励和课程学习训练代码大语言模型
来源:https://arxiv.org/html/2607.26457
###### 摘要
强化学习是面向代码的大语言模型一种自然的后训练范式,因为生成的程序可以通过解析、执行、单元测试和结构分析进行评估。然而,现有方法通常依赖稀疏的结果奖励或静态组合异质密集信号,尽管语法有效性、可执行性、功能正确性和结构组织描述了不同且逐步依赖的编程能力。我们提出DHRCL,一种结合密集分层奖励和课程学习的强化学习框架。DHRCL将反馈分解为语法验证、执行成功、单元测试通过率和基于抽象语法树的结构相似性,并通过三阶段(语法、执行、测试通过率和结构)课程组织这些信号。阶段持续时间根据最近的验证趋势自动确定,而非手动指定的能力阈值。我们进一步引入阶段感知的概率基础令牌信用再分配机制。该机制遵循巩固到精炼的原则:在面向语法的优化中强调已建立的令牌模式,对非局部执行反馈采用均匀传播,并在最终功能优化中为较不稳定的令牌决策分配更多信用或责任。在统一的Qwen3-8B和KodCode协议下,实验将DHRCL与二进制、通过率、奖励模型和可验证密集奖励基线进行比较。我们进一步在Qwen3-4B、Qwen3-8B和Qwen3-14B骨干网络上评估DHRCL,显示其优势随着模型容量增加保持一致。
## 引言
大语言模型使代码生成成为现代语言模型的核心应用(Chen等人,2021 (https://arxiv.org/html/2607.26457#bib.bib32);Rozière等人,2023 (https://arxiv.org/html/2607.26457#bib.bib33)),而现实基准测试日益强调基于执行的验证(Zhuo等人,2025 (https://arxiv.org/html/2607.26457#bib.bib34);Wang等人,2023 (https://arxiv.org/html/2607.26457#bib.bib35))。代码非常适合强化学习,因为生成的程序可以通过解析、执行、测试和结构分析获得自动可验证的反馈。先前的工作利用编译器和单元测试结果(Lee等人,2022 (https://arxiv.org/html/2607.26457#bib.bib3);Shojaee等人,2023 (https://arxiv.org/html/2607.26457#bib.bib4);Liu等人,2023a (https://arxiv.org/html/2607.26457#bib.bib5)),但稀疏奖励在大多数样本失败时提供的指导很少,而密集奖励的静态组合忽视了语法有效性、可执行性和功能正确性之间的先决条件关系。
我们提出DHRCL,一个面向代码大语言模型的强化学习框架,具有密集分层奖励和课程学习。DHRCL在语法、执行、测试通过率和结构课程中结合了语法验证、执行成功、单元测试通过率和基于抽象语法树的结构相似性。阶段持续时间根据保留验证集的趋势自动选择,而非手动选择的能力阈值。DHRCL还根据巩固到精炼的原则在令牌间重新分配轨迹级信用:语法阶段采用置信度导向的加权,非局部执行反馈采用均匀加权,最终阶段采用不确定性导向的加权。
我们的贡献是:
- • 一个三阶段分层奖励课程,协调语法、执行、功能和结构反馈,同时保留功能正确性作为主要目标。
- • 基于趋势的自动阶段推进,无需固定语法或执行阈值即可调整阶段持续时间。
- • 阶段感知的令牌信用再分配,在奖励组成、课程调度和令牌加权上进行受控消融实验。
## 相关工作
### 代码大语言模型的强化学习优化
强化学习已成为对齐代码大语言模型与序列级功能正确性的突出后训练范式(Wang等人,2024 (https://arxiv.org/html/2607.26457#bib.bib1);Jiang等人,2026 (https://arxiv.org/html/2607.26457#bib.bib2))。早期的策略梯度方法如REINFORCE(Williams,1992 (https://arxiv.org/html/2607.26457#bib.bib9))实现了超越令牌似然的优化,并通过演员-评论家和PPO风格框架适应于代码生成。CodeRL(Lee等人,2022 (https://arxiv.org/html/2607.26457#bib.bib3))在演员-评论家设置中使用执行反馈,而PPOCoder(Shojaee等人,2023 (https://arxiv.org/html/2607.26457#bib.bib4))、RLTF(Liu等人,2023a (https://arxiv.org/html/2607.26457#bib.bib5))和RLEF(Gehring等人,2025 (https://arxiv.org/html/2607.26457#bib.bib12))将PPO(Schulman等人,2017 (https://arxiv.org/html/2607.26457#bib.bib8))扩展到编译器引导、在线和迭代反馈场景。相关的偏好和分组方法进一步改进了可扩展后训练:DPO(Rafailov等人,2023 (https://arxiv.org/html/2607.26457#bib.bib13))和Focused-DPO(Zhang等人,2025b (https://arxiv.org/html/2607.26457#bib.bib14))避免了显式评论家学习,而GRPO(Shao等人,2024 (https://arxiv.org/html/2607.26457#bib.bib6);DeepSeek-AI,2025 (https://arxiv.org/html/2607.26457#bib.bib7))、DAPO(Yu等人,2025 (https://arxiv.org/html/2607.26457#bib.bib10))和GSPO(Zheng等人,2025 (https://arxiv.org/html/2607.26457#bib.bib15))改进了无评论家或序列级策略优化。这些方法强化了强化学习优化骨干,而我们的工作聚焦于如何构建和组织代码特定的奖励。
### 代码特定奖励设计
奖励设计是强化学习代码生成的核心,因为程序可以通过编译、执行、测试和结构分析进行验证。现有奖励包括可验证的执行或编译器反馈(Lee等人,2022 (https://arxiv.org/html/2607.26457#bib.bib3);Shojaee等人,2023 (https://arxiv.org/html/2607.26457#bib.bib4);Liu等人,2023a (https://arxiv.org/html/2607.26457#bib.bib5);Gehring等人,2025 (https://arxiv.org/html/2607.26457#bib.bib12)),结构化或密集信号如抽象语法树/数据流图一致性、部分测试成功和特定任务代码相似性(Zhao等人,2025 (https://arxiv.org/html/2607.26457#bib.bib16);Wang等人,2026b (https://arxiv.org/html/2607.26457#bib.bib17);Wu等人,2026 (https://arxiv.org/html/2607.26457#bib.bib18)),以及学习的奖励模型和过程级监督(Zeng等人,2025 (https://arxiv.org/html/2607.26457#bib.bib19);Dai等人,2024 (https://arxiv.org/html/2607.26457#bib.bib20);Ye等人,2025 (https://arxiv.org/html/2607.26457#bib.bib21))。最近的偏好和测试构建方法通过基于测试的偏好或对抗性测试生成进一步完善监督(Zhang等人,2024 (https://arxiv.org/html/2607.26457#bib.bib25), 2025a (https://arxiv.org/html/2607.26457#bib.bib24);Wu等人,2025 (https://arxiv.org/html/2607.26457#bib.bib22);Wang等人,2026a (https://arxiv.org/html/2607.26457#bib.bib23))。总体而言,这些研究通过可验证、密集、局部或自适应反馈丰富了代码奖励,但异质目标通常被静态组合。这导致语法、执行、测试和结构上的阶段式奖励调度未被充分探索。
### 代码大语言模型的课程学习
课程学习将优化从较容易的学习单元组织到较难的。在代码生成中,先前的工作探索了关于完成子任务、数据复杂性、代码块和测试用例的课程。StepCoder(Dou等人,2024 (https://arxiv.org/html/2607.26457#bib.bib26))将完整程序综合分解为代码补全子任务,并进行细粒度优化;数据级课程通过代码复杂性对训练样本排序,以改进小型代码语言模型(Naïr等人,2024 (https://arxiv.org/html/2607.26457#bib.bib28));抽象语法树引导的块分割改进了中间填充DPO对齐(Ren等人,2025 (https://arxiv.org/html/2607.26457#bib.bib27));TAROT(Park等人,2026 (https://arxiv.org/html/2607.26457#bib.bib29))构建分层测试套件,并采用能力自适应课程策略。这些方法主要调度训练单元,而非异质奖励目标。相比之下,DHRCL将语法、执行、功能和结构奖励组织为阶段感知课程,并通过阶段感知令牌信用再分配进一步传播它们。
## 方法
参见标题图1:DHRCL的整体流程。我们提出DHRCL,一种面向代码大语言模型后训练的强化学习框架。如图1 (https://arxiv.org/html/2607.26457#Sx3.F1)所示,DHRCL包含两个耦合组件。首先,密集分层奖励将代码反馈分解为语法有效性、执行有效性、部分功能正确性和基于抽象语法树的结构对齐。其次,阶段式课程根据策略当前的瓶颈改变主要优化重点,同时概率感知的令牌信用再分配控制每个轨迹级更新如何分配在生成的令牌上。预定义的能力顺序是语法、执行、测试通过率和结构,而每个阶段持续时间根据保留验证集的趋势自动确定。
### 密集分层奖励
结果级奖励如二元测试成功或累积通过率通常无法区分局部格式错误的代码、运行时失败和部分正确的可执行程序。因此,DHRCL结合了四个互补的奖励组件。前三个直接描述程序有效性和功能行为。第四个是辅助的、参考条件化的结构信号;它不被视为语义等价或代码质量的完整度量。
#### 语法验证率
我们使用基于解析器的语法奖励为局部格式良好的代码提供部分反馈。给定一个生成程序y,一个容错解析器提取语法单元B(y)={b_i}_(i=1)^m。如果某个单元的子树不包含解析错误节点,则该单元有效,奖励为
r_syntax(y) = (∑_(i=1)^m w_i v_i) / (∑_(i=1)^m w_i),
其中v_i是有效性指示器,w_i是令牌长度。如果没有提取到单元,我们将r_syntax(y)设为0。实现细节在补充文档“语法奖励实现细节”部分提供。
#### 执行成功
虽然语法有效性确保程序至少在局部可解析,但并不保证成功执行。生成的代码可能仍然触发运行时错误、超出时间限制或导致内存相关失败。为捕获运行时有效性,我们引入执行成功奖励:
r_exec = I(执行成功),
其中I(·)表示指示函数。如果生成的程序在评估环境中成功执行,奖励为1,否则为0。该组件鼓励模型超越句法良好形式,学习具有有效运行时行为的程序。
#### 通过率
代码生成的最终目标是解决编程问题,这通常通过单元测试评估。我们不使用二元全有或全无奖励,而是使用通过的测试用例比例作为密集功能正确性信号:
r_pass = n_pass / n_test,
其中n_pass是通过的测试用例数,n_test是总测试用例数。该奖励区分了部分正确的解决方案,并提供了比二元测试成功更平滑的优化信号。
#### 基于抽象语法树的结构相似性
单元测试反馈评估功能行为,但不区分生成程序的结构组织。因此我们引入一个辅助的参考条件化抽象语法树奖励。对于生成程序y和一个已验证的参考解y^ref,令N(AST(·))表示我们实现中使用的结构归一化。对于可严格解析的程序,我们计算
r_AST(y) = Sim_AST(N(AST(y)), N(AST(y^ref))),
其中Sim_AST∈[0,1]是实现的抽象语法树相似性函数。如果生成程序无法严格解析,我们设r_AST(y)=0。抽象语法树结构奖励的实现细节在补充文档“抽象语法树结构奖励实现细节”部分提供。
抽象语法树相似性不被解释为语义等价、可维护性或计算效率。相反,它提供了一个从已验证实现中推导出的弱结构先验。功能正确性仍通过单元测试通过率奖励直接监督,而抽象语法树信号鼓励探索结构一致性的实现模式。奖励组件消融实验将完整公式与没有r_AST的相同变体进行比较,从而隔离其对Pass@1、结构相似性和接受输出观察特征的影响。
### 代码生成的课程学习
尽管上述奖励提供了密集监督,但用固定权重组合它们忽略了编程能力之间的先决关系。DHRCL使用三个连续阶段:语法、执行和测试通过率与结构。课程改变主要优化重点,而非完全启用或禁用某一奖励。特别地,r_pass在整个训练中保持活跃,因为功能正确性始终是最终任务目标,而以前引入的有效性信号在后续阶段作为辅助组件保留。
#### 语法阶段
对于第i个采样轨迹,语法阶段的奖励为
r_i = r_pass,i + r_syntax,i + α_syntax r_exec,i + α_syntax r_AST,i,
其中
α_syntax = (1/n) ∑_(i=1)^n r_syntax,i。
这里n是滚动批次中的轨迹数。批次级系数充当能力依赖的门控。当语法有效性较弱时,下游执行和结构信号获得较少权重;随着语法有效性改善,它们被更强地引入。通过率奖励被保留而不衰减。
#### 执行阶段
在面向语法的优化之后,主要重点转移到可执行行为:
r_i = r_pass,i + r_exec,i + α_exec r_syntax,i + α_exec r_AST,i,
其中
α_exec = (1/n) ∑_(i=1)^n r_exec,i。
运行时有效性通常依赖于定义、控制流、数据类型、API调用以及内存或时间约束之间的交互。此阶段因此优先考虑相似文章
当LLM奖励设计失败:稀疏结构化强化学习的诊断驱动细化
本文将LLM生成的奖励塑形视为稀疏结构化强化学习中的调试问题,识别出奖励泛滥和语义误解等失败模式。作者提出诊断驱动的迭代细化,与一次性生成相比,取得了显著的成功率提升(例如,DoorKey-8×8从2.3%提升至97.6%)。
改进前沿大语言模型中的指令层级
OpenAI提出了一种利用指令层级任务的训练方法,通过教导模型根据信任级别(系统 > 开发者 > 用户 > 工具)正确优先处理指令,以提高大语言模型的安全性和可靠性。该方法通过强化学习使用名为IH-Challenge的新数据集,应对提示注入攻击并增强安全可控性。
Connect the Dots:通过强化学习训练LLM以具备跨域泛化能力的长期生命周期智能体
本文介绍了Connect the Dots(CoD),这是一个通过强化学习训练LLM的框架,用于培养长期生命周期智能体的元能力,实现持续学习和跨域泛化。
从受训者到训练者:LLM为多智能体推理强化学习设计的训练环境
本文介绍了LLM-as-Environment-Engineer框架,该框架使LLM能够为多智能体推理任务中的强化学习设计自己的训练环境,实现自我改进训练,其性能超越更大的专有模型。
基于多目标强化学习的LLM预训练整体数据调度器
介绍了一种基于强化学习的整体数据调度器(HDS),该框架利用多目标奖励函数在LLM预训练过程中动态调整数据混合策略,使达到目标困惑度所需的迭代次数减少44%,并在MMLU上提升7.2%。