面向交互式Web应用强化学习的评分规则到代码信用分配(RCCA) Rubric-to-Code Credit Assignment for Reinforcement Learning
RCCA把评分规则级功能反馈定位到代码片段,转化为GRPO的token级优化权重。
前置知识
GRPO(组相对策略优化)
GRPO是DeepSeekMath提出的PPO变体:对同一提示采样G个响应,用组内奖励的均值和标准差把奖励归一化为相对优势 $A_i$,从而省去独立的价值模型。其目标使用裁剪的重要性比率 $\rho_{i,t}=\pi_\theta/\pi_{old}$,即 $\ell_{i,t}=\min(\rho_{i,t}A_i, \text{clip}(\rho_{i,t},1-\epsilon,1+\epsilon)A_i)$。本文修改的正是这一目标函数。
RCCA的全部改动都发生在GRPO目标内部:把token级诊断权重 $w_{i,t}$ 乘进优势项,若不理解组相对优势与裁剪机制,就无法理解信用分配信号注入的位置。
信用分配问题(Credit Assignment)
强化学习中的经典难题:当奖励在序列末尾才给出时,如何判断最终成败应归功或归咎于输出中的哪些部分。序列级奖励会把责任平均分摊给所有token,导致正确代码与错误代码收到同样强度的更新信号,学习效率低下。
本文标题中的'Rubric-to-Code Credit Assignment'直指此问题:把应用级的功能成败归因到具体代码区域(事件处理器、状态更新、CSS选择器等),是全文的核心。
交互式Web应用生成与功能评分规则(Rubric)
该任务要求模型从自然语言请求生成完整可运行的HTML/CSS/JavaScript应用,质量由一组可独立验证的用户可见功能需求定义。Rubric分为初始状态类(页面加载后即可验证,如必需元素、默认值)和动态行为类(需执行点击、输入等交互路径才能验证)。
Rubric在本文中承担双重角色:既是RL任务的构建单元,又是把应用级质量分解为需求级结果的评估单元,还是代码定位的锚点,理解这两类rubric的差别是理解验证流程的前提。
分层/门控奖励
把质量评估组织成由粗到细的多阶段检查,前一阶段不通过则直接给出低分'门控'值,防止结构性失败与局部缺陷混在同一分数尺度里。本文的四阶段为:输出格式有效性→源码有效性→运行时有效性→rubric级功能满足度,对应奖励0/0/0.1/$R_{rubric}$。
分层奖励是RCCA的样本级贡献:它让GRPO组内的样本区分度大幅提升,是token级信用分配能够生效的基础。
评测器文本反馈与Agent Harness
LLM-as-evaluator指用大模型对生成结果打分并输出自然语言诊断(问题描述、证据代码摘录等)。AWorld等agent harness提供在真实环境中执行、观察、评估agent行为的基建,本文将其反用为训练信号来源。
RCCA的诊断信息$D(y)$完全来自评测器文本归因,理解'评测基建→训练信号'这一视角转换才能把握论文在相关工作中的定位。
研究动机
交互式Web应用生成要求模型产出完整HTML/CSS/JS代码,其正确性由多个用户可见的功能需求共同决定,且每个需求往往绑定在局部代码区域(事件处理器、状态更新、DOM片段或CSS选择器)。标准GRPO在这里出现严重的粒度错配:它把多个功能结果坍缩成单一序列级奖励,并把组相对优势均匀施加到所有token上,于是模型只知道'应用是否work',却收不到'哪些实现选择导致了成败'的信号。后果直接反映在基准上:MiniAppBench上多数开源模型平均通过率极低(Qwen3-32B仅0.66%、Qwen3-Coder-480B为1.83%、Kimi-K2-Instruct也只有6.19%),说明这是一个远未解决的难题,而奖励区分度不足正是RL阶段改进受限的关键原因之一。
本文的目标是本文要构建一个把'评测器生成的结构化功能反馈'系统性转化为'生成代码上的局部化优化信号'的强化学习框架,具体分解为四个目标:其一,用rubric驱动的合成管线构建高质量RL数据集,每个训练任务都带有明确、可交互验证的行为目标;其二,设计分层奖励,把格式无效、源码错误、运行时失败、功能部分正确这些性质不同的失败清晰分开,改善组内样本区分;其三,把评测器的文本归因对齐到负责任的代码span乃至具体token,用它们加权GRPO目标;其四,训练出Ling-RCCA-Flash,在目标基准MiniAppBench达到41.25%、在ArtifactsBench达到76.19分,并证明增益能跨基准迁移而非过拟合单一评测。
与已有工作不同的是,已有细粒度监督工作(过程奖励、段级优化、token级信用分配如DelTA)主要集中在推理与可验证任务;自然语言反馈类工作(RL4F、Text2Grad、Reflexion)用于批评、修订或策略改进。RCCA的独特切入是抓住交互式代码生成的一个领域特性:评测器的功能反馈天然可以被'落地'到具体实现区域——问题诊断会附上代码摘录、函数名、事件处理器、状态变量、DOM区域等证据,而HTML/CSS/JS的源码结构又允许通过封闭函数、事件绑定、状态读写、函数调用等关系把这些证据扩展成完整的相关代码区域。论文据此提出把rubric级反馈当作'功能结果→token优化'的桥梁,并把AWorld式评测基建从纯评估设施转变为训练信号来源,这在与以往工作的对比中是全新视角。
核心方法
直觉上,应用成败由若干可独立检查的功能需求构成,而每次失败都能追溯到一小段代码,RL信号就应顺着这条链路传下去。技术路线分两层。任务形式化为 $(x, R)$,$R=\{r_1,\dots,r_M\}$ 是评分规则集。样本级用门控分层奖励:$R(y,R)$ 在格式检查 $F(y)$ 失败时为0、源码检查 $S(y)$ 失败时为0、运行时检查 $E(y)$ 失败时为0.1,全部通过时取 $R_{rubric}=\max(0.2, 1-\sum_{r_j\in V} p(\ell_j,q_j))\in[0.2,1.0]$,其中 $\ell_j$ 是rubric重要性(核心功能/行为正确性/渲染质量),$q_j$ 是违规严重度。token级由评测器输出诊断集合 $D(y)=\{d_1,\dots,d_K\}$,定位模块把每个诊断的证据扩展为直接相关span集 $S^k_{dir}$ 与上下文相关span集 $S^k_{ctx}$,经tokenizer字符偏移映射为token集合 $T_{dir}, T_{ctx}$,最终优化 $\mathcal{L}_{RCCA}=-\frac{1}{G}\sum_i\sum_t \ell_{i,t}$,$\ell_{i,t}=\min(\rho_{i,t}w_{i,t}A_i, \rho^{clip}_{i,t}w_{i,t}A_i)$。
核心创新可以概括为'让反馈保持结构化直到token级',这与标准GRPO在两个粒度上同时坍缩形成本质区别。样本级:分层门控奖励区分四类失败模式,并在rubric内部用重要性$\ell_j$和严重度$q_j$加权扣分,对关键需求的严重违规设置分数上限,防止'核心功能崩溃被若干次要需求的满足所抵消'——这解决了'违规数量相同但性质迥异'的样本难以区分的问题。token级的关键是非对称加权策略:对负优势响应,更新集中在诊断出的错误区域(直接相关token权重3.0、上下文token 1.5、其余1.0、诊断权重上限4.0);对正优势响应,诊断区域不再额外强化(权重为1),而未受影响的代码反而获得稍强的正更新($c=1.2$)。这个设计防止了RL中常见的'成功样本把已知有问题的代码区域一并强化',在代码生成RL中相当少见。
方法步骤详情
流程分六步。(1) 数据构建:合成管线产出请求 $x$ 与rubric集 $R$,分初始状态类(页面加载后即可验证,如必需元素、默认值)和动态行为类(需执行交互路径,如点击开面板)。(2) 生成与门控:生成应用 $y$,依次做输出格式检查 $F(y)$、HTML/CSS/JS源码错误检查 $S(y)$、关键交互路径运行时验证 $E(y)$,未通过者分别得0、0、0.1。(3) rubric级评分:评测器独立检查每个rubric得违反集合 $V$,计算 $R_{rubric}=\max(0.2,1-\sum_{r_j\in V}p(\ell_j,q_j))$,关键需求严重违规另设分数上限。(4) 诊断生成:评测器输出issue集合 $D(y)$,附代码摘录、事件处理器、状态变量、DOM区域等证据,rubric级issue链接到参考rubric。(5) 定位与token映射:用封闭函数、事件绑定、状态读写、函数调用等源码级关系扩展证据位置,得 $S^k_{dir}$ 与 $S^k_{ctx}$,映射成token集,$T_{dir}$ 权重3.0、$T_{ctx}$ 权重1.5、其余1.0,上限4.0。(6) 非对称GRPO更新:$A_i<0$ 时 $w_{i,t}=\bar{w}_{i,t}$,$A_i\ge0$ 时诊断区域 $w=1$、其余 $c=1.2$。基座Ling-3.0-Flash(124B混合线性MoE,每token激活5.1B)先SFT再RCCA。
技术新颖性
技术新颖性体现在四个层面。第一,分层门控奖励本身并非首创,但与'rubric重要性×严重度'的惩罚模型$p(\ell_j,q_j)$加分数上限机制结合是新的,直接回应了组内'同数量违规、不同性质'的区分难题。第二,rubric-to-code定位管线(评测证据→源码关系扩展→直接/上下文双档span→tokenizer映射→token权重)首次系统性地把评测器的文本归因接入GRPO的token加权,以往的自然语言反馈工作停留在critique/revision层面。第三,非对称加权策略:负优势把惩罚集中于诊断区域、正优势刻意绕开诊断区域而轻微增强其余代码,这种'方向感知'的权重设计避免了正反馈污染已知缺陷区域,是区别于均匀加权和简单强调制的核心技巧。第四,视角贡献:论文示范了AWorld类agent评测基建(交互轨迹、需求级结果、局部诊断)可以被直接转化为RL训练目标,指出了'从agent基建到模型训练'的可行路径。
实验结果
核心结果沿三阶段轨迹展开。MiniAppBench上,Ling-3.0-Flash基座平均通过率仅9.05%,SFT后升至26.85%(+17.80),RCCA再提升14.40点至41.25%,相对基座累计+32.20点,微超Claude-Opus-4.5的41.14%。分难度:Easy 53.39、Mid 35.03、Hard 37.60,Hard上领先Opus-4.5的22.33近15个点。分领域:Lifestyle 70.00、Viz 63.46、Humanities 54.29、Games 39.80、Science 29.49、Tools 24.14。横向对比:GPT-5.1为32.00、Gemini-3-Pro-Preview为27.52、Claude-Sonnet-4.5为26.36;开源最高GLM-5.1为33.50,Qwen3-235B仅2.88%。泛化基准ArtifactsBench上,Ling-RCCA-Flash取得76.19,按官方榜单排第一,超GPT-5(72.55)3.64点,比自身SFT模型71.71提升4.48点,也明显高于MiniMax-M2(66.80)、Claude Opus 4.1(59.76)、Gemini 2.5 Pro(57.74)。两基准一致增益说明学到的是可迁移的实现层行为,而非针对单一评测分布的过拟合。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| MiniAppBench 平均通过率(交互式Web应用生成) | 平均通过率 (%) | Ling-RCCA-Flash:41.25 | Claude-Opus-4.5:41.14;GLM-5.1:33.50;GPT-5.1:32.00;自身基座Ling-3.0-Flash:9.05 | 相对SFT模型(26.85)+14.40点,相对基座+32.20点,微超最强闭源基线 |
| MiniAppBench Hard 难度子集 | 通过率 (%) | 37.60 | Claude-Opus-4.5:22.33;SFT模型:22.44;Claude-Sonnet-4.5:1.79 | 在最难子集上领先最强闭源模型约15.3点,体现困难任务的信用分配收益最大 |
| ArtifactsBench(跨基准泛化) | 官方榜单AVG分 | 76.19(第1名) | GPT-5:72.55;自身SFT模型:71.71;MiniMax-M2:66.80;Claude Opus 4.1:59.76 | 超GPT-5 +3.64点,超SFT模型 +4.48点,验证跨基准迁移 |
局限与改进
作者明确承认两点局限:其一,当前工作只覆盖交互式HTML/CSS/JavaScript应用生成,评测未涉及大型多页应用、后端服务、持久化存储、认证流程和生产部署约束,方法在真实软件工程场景的适用性未知;其二,RCCA依赖评测器生成的rubric判断与文本归因,一旦诊断有误,信用会被分配到错误的实现片段,尤其是当失败源于相距很远的代码区域之间的交互时,归因几乎必然失准。我自己的观察还有几点:表1中Tools领域从SFT的31.58降到RCCA后的24.14、Science从16.04升幅有限,提示部分领域可能出现回退或收益不均;论文未报告自身模型的推理token消耗与耗时(其他基线均有),效率对比缺失;评测器本身的模型选型、判分一致性、抗奖励 hacking 能力均未详述,而整个方法又高度依赖评测器输出,这是复现与信任的关键盲点。
独立分析的弱点
独立分析有以下弱点。第一,单点评测器依赖:rubric判定与文本归因全部来自同一个评测器,评测器的系统性偏差会经token权重直接进入梯度,且随训练放大;改进方向是引入多评测器投票或用执行结果(断言通过率、运行时错误类型)对归因做交叉验证。第二,权重超参数硬编码:$T_{dir}=3.0$、$T_{ctx}=1.5$、$c=1.2$、上限4.0均无消融实验支撑,不同任务的最优配比可能不同;应做敏感性分析甚至学习这些权重。第三,提升归因结构失衡:基座到SFT贡献了+17.80点,RCCA的+14.40建立在SFT之上,方法在更强基座(已具备基本生成能力的模型)上的边际收益未知。第四,领域不均衡:Tools类从31.58降至24.14,说明诊断加权可能偏向视觉/交互类反馈而牺牲工具逻辑类代码,值得按领域分析诊断质量。第五,定位算法对跨区域交互失败无解(作者亦承认),事件链横跨多个文件或异步回调时会错误收缩信用范围;可考虑结合程序切片或动态数据流分析替代纯文本归因。
未来方向
作者提出的方向是把'agent基建→模型训练'的路径走得更远:AWorld式harness暴露的交互轨迹、需求级结果与局部诊断可以被系统性地转化为优化目标,RCCA只是这条路径的第一个实例。基于本文成果可延伸的研究包括:其一,把RCCA范式推广到其他'可执行且可归因'的软件任务,如数据分析脚本、游戏逻辑、agent工具函数的编写;其二,改进归因机制以处理远距离代码区域交互导致的失败,例如引入程序分析(切片、依赖图)或让模型显式生成调用链证据;其三,评测器与策略的协同进化——随策略变强动态升级rubric难度或引入对抗性rubric,避免奖励信号饱和与 hacking;其四,多评测器一致性与校准研究,量化诊断可信度并据此调节token权重的置信度;其五,将分层门控思想迁移到多轮/多文件代码任务,处理状态在轮次间的累积影响。
复现评估
复现条件总体偏难。论文未提供代码、训练数据或模型权重的开源渠道,正文与致谢中均未提及开源计划。完整复现需要:124B参数(每token激活5.1B)混合线性MoE的大规模RL训练基础设施、自建的rubric驱动数据合成管线(数据集未公开)、以及未指明型号的评测器模型,这三者对一般实验室都不可得,因此论文报告的绝对数字难以复现。但方法验证可以分解进行:MiniAppBench(arXiv:2603.09652)与ArtifactsBench(arXiv:2507.04952)是公开基准,评测侧可对齐;分层门控奖励、证据扩展定位、非对称token加权三个组件都描述得足够具体(权重3.0/1.5/1.2、上限4.0、奖励0/0.1/[0.2,1.0]均已给出),在7B级开源模型上加开源judge模型复现核心思想、验证'诊断加权优于均匀GRPO'的相对结论是可行的,估计需要数十GPU日。综合评估:核心思想复现难度中等,完整结果复现难度高。
论文图表
动机示意图,左右对比两种训练范式:左侧标准GRPO把多个rubric级功能结果坍缩成标量奖励,并把组相对优势均匀施加到所有token;右侧RCCA保留rubric级反馈,把失败归因定位到具体代码span,再转化为有针对性的token权重。图中示意了一个具体例子:某个功能失败只与局部事件处理器相关,但GRPO下所有token承受同样的梯度。
这张图精准刻画了论文要解决的'粒度错配'问题——用户可见反馈的粒度是功能需求,而策略优化的粒度是token,两者之间缺少桥梁。理解这张图就理解了全文的立意。