← 返回 2026-04-24

WebGen-R1:用强化学习激励大语言模型生成兼具功能性与美观性的网站 WebGen-R1: Incentivizing Large Language Models to Generate Functional and Aesthetic Websites with Reinforcement Learning

Juyong Jiang, Chenglin Cai, Chansung Park, Jiasi Shen, Sunghun Kim, Jianguo Li, Yue Wang 📅 2026-04-22 👍 3 2026-07-13 08:36
GRPO Web 开发 代码生成 多模态奖励 强化学习

用强化学习让 7B 小模型端到端生成可部署的多页网站,匹敌 671B 模型。

前置知识

强化学习与 GRPO

GRPO 是无需 critic 的策略梯度方法。它对同一 prompt 采样 $G$ 个输出,用组内奖励的均值与标准差归一化得到相对优势 $\hat{A}=\frac{R-\text{mean}}{\text{std}}$,再以 PPO 风格 clip 目标优化策略。

WebGen-R1 核心训练算法就是 GRPO。网站生成奖励稀疏、方差极大,PPO 的 critic 难以稳定学习,必须靠组内相对比较给出可用学习信号。

级联多模态奖励 (Cascaded Multimodal Reward)

分层奖励设计:先对结构/构建失败给硬约束(失败置 0),通过后才算稠密奖励 $R_{\text{dense}} = s_{\text{vis}} + \gamma s_{\text{func}} + \lambda s_{\text{cot}}$。

把主观审美与客观功能合并到同一目标,让昂贵视觉评估只用在能渲染的样本上,避免算力浪费。

脚手架驱动结构化生成 (Scaffold-driven Structured Generation)

不从头生成项目,而是先固定预验证的 React 模板骨架,让 LLM 只在插槽中填入可变组件 $\Delta = W \setminus T$。形式化 $W_{\text{gen}} = T \oplus \pi_\theta(\Delta \mid S, x, T)$。

让 7B 模型也能写可构建项目的关键工程思路。直接生成完整仓库易在 import、依赖、构建脚本上出错,骨架保证「至少能跑起来」的下限。

Vision-Language Model 作为人类偏好代理 (VLM-as-Judge)

用 VLM(如 GPT-4o)对渲染截图按 0-5 分打分,评估布局、配色、字体层级、可观察的交互元素。论文验证其与 3 位工程师人类评分 Pearson $r=0.762$、Spearman $\rho=0.734$。

没有 VLM 评分就没法把「美观」这种主观目标变成可优化标量;人评成本太高,VLM 是 RL 奖励的「廉价近似人评」路径。

研究动机

现有 LLM 网站生成方法存在两类典型缺陷。第一类只生成单页静态网站,抽象掉了现代 Web 应用的动态路由、状态管理、鉴权和跨页导航等真实复杂度。第二类采用多智能体编排框架(让不同子代理负责 UI、后端、测试再集成),依赖多轮执行和专有模型,虽然能完成复杂任务,但 token 成本高、延迟大,且智能体间契约、文件名、接口定义的微小不一致会级联成不可构建的产物。更关键的是,这两类方法都没能同时优化功能性与美观性——要么只能跑但视觉割裂,要么好看但交互失效。以 Qwen2.5-Coder-7B-Instruct 为基线,在 WebGen-Bench 上功能成功率(FSR)仅 1.59%、有效渲染比(VRR)仅 30.56%,就是一个很直接的证据。

本文的目标是论文的具体目标是训练一个 7B 级别的开源小模型,使其在端到端一次性生成多页 React 网站时,同时满足三项硬指标:(1) 功能成功率(FSR)大幅提升并能比肩 671B 的 DeepSeek-R1;(2) 审美对齐分(AAS)超越或匹敌所有闭源大模型;(3) 有效渲染比(VRR)接近 100%,使生成的网站真正可部署。作者不要求多智能体协作,不依赖多轮 GUI 探索,只用一次前向生成 + 自动构建/渲染 + 分层奖励的方式,把端到端项目级代码生成做出来。

与已有工作不同的是,论文的独特切入角度是「把奖励设计成级联式的」:先用脚手架 + 静态校验保证结构,再用确定性构建管道(安装→打包→启动→截图)拿到运行时证据,最后才用 VLM 打审美分。这与现有方法有三点本质区别——(a) 与单页静态生成相比,它坚持多页动态项目;(b) 与多智能体框架相比,它坚持端到端单模型一次出稿;(c) 与已有的 RL 代码工作(DeepSeek-R1 等主要优化单元测试通过率)相比,它把「看得见的美观」和「控制台无错」作为同等重要的一阶目标,并创新性地把这两类异质信号放在同一个级联公式里优化。

核心方法

WebGen-R1 的整体思路可以概括为「约束动作空间 + 级联过滤 + 三模态奖励 + GRPO 优化」。直觉上,模型不需要从零搭建一个 React 项目,而只需要在一个固定好的「项目模板」中填充「可变组件」(页面、命令、样式等),这就把一个原本极其脆弱的开放式生成问题转成相对稳定的「填空题」。然后用一个两阶段的过滤管道把关:先做静态合规校验(文件结构、package.json 字段、组件导出模式),再走真实的安装-打包-启动-截图流程,对能渲染的样本才动用昂贵的 VLM 审美评估。最后把审美分、功能完整性分、CoT 格式分加权和作为稠密奖励,配合 GRPO 的组内相对优势稳定地训练小模型。技术上,这是一个把「模板约束的概率生成」「确定性执行环境」和「视觉语言模型」三者拼成一条 RL 流水线的工程方案。

核心创新点是把「奖励稀疏且异质」的问题拆成「硬过滤 + 稠密加权」。已有 RL 代码工作要么只奖励「单元测试是否通过」,要么只奖励「人评投票」,前者忽略视觉、后者没有可执行反馈。WebGen-R1 把生成过程建模为 $W_{\text{gen}} = T \oplus \pi_\theta(\Delta \mid S, x, T)$,把执行环境 $E_{\text{env}} = R_{\text{render}} \circ L_{\text{serve}} \circ B_{\text{bundler}} \circ I_{\text{install}}$ 当作 reward oracle,让 $\pi_\theta$ 在 GRPO 下用 $R = s_{\text{vis}} + \gamma s_{\text{func}} + \lambda s_{\text{cot}}$ 学习。脚手架把 VRR 从 30.56% 抬到 95.89%,级联结构让 VLM 不被浪费。

方法步骤详情

方法分四步。第一步 SFT 热启动:从 WebGen-Instruct 抽 600 任务,用 GPT-4.1 蒸馏 silver 响应,微调 Qwen2.5-Coder-7B-Instruct 2 epoch(学习率 $10^{-5}$、batch 32)。第二步 RL:GRPO 做 400 步,$G=16$、batch 256、$\epsilon=0.2$、$\beta=0.01$、学习率 $5\times 10^{-6}$、温度 0.7。第三步对每个采样跑级联评估:先判静态合规(不通过给 $\psi_{\text{static}}=0$),通过则走 install→bundle→serve→render 拿截图与日志,构建失败给 $\psi_{\text{build}}=0$,成功才算 $R_{\text{dense}}=s_{\text{vis}}+\gamma s_{\text{func}}+\lambda s_{\text{cot}}$($\gamma=\lambda=0.1$)。第四步用 GRPO 目标 $J(\theta)$ 更新策略。

技术新颖性

技术新颖性体现在四个层面。模板层面,把生成空间 $\Delta = W \setminus T$ 的设计明确形式化,比「全项目自由生成」显著降低了对小模型的负担。验证层面,提出「静态合规 + 自动构建渲染」两阶段管道,把低层错误在视觉评估前就剔除,避免把算力浪费在空 HTML 上。奖励层面,级联公式 $R_{\text{dense}} = s_{\text{vis}} + \gamma s_{\text{func}} + \lambda s_{\text{cot}}$ 是第一个把「截图审美、控制台无错、CoT 格式」三类异质信号放在同一目标里的设计,并通过人类评分验证了与人类偏好的高相关($r=0.762$)。训练层面,是首个把 GRPO 应用到端到端多页 Web 项目生成的工程实现,并通过消融证明 SFT+RL 组合比单用 SFT 或单用 RL 都强得多(AAS 分别高 21.60% 和 28.76%)。整体上,这是一个「约束 + 过滤 + 多模态奖励」三件套,与已有 RL 代码工作形成清晰区隔。

Overview of WebGen-R1, a reinforcement learning framework for functional and aesthetic website generation
Figure 1: Overview of WebGen-R1, a reinforcement learning framework for functional and aesthetic website generation
Token length distributions of prompts and generated responses for several state-of-the-art LLMs on end-to-end multi-page website generation tasks
Figure 2: Token length distributions of prompts and generated responses for several state-of-the-art LLMs on end-to-end multi-page website generation tasks

实验结果

表 1 的 WebGen-Bench:WebGen-R1-7B 取得 FSR 29.21%(基线 1.59%,+27.62 pp)、AAS 3.94(+44.32%)、VRR 95.89%(+65.33 pp),AAS 与 VRR 居 15 个基线之首,FSR 仅低于 671B 的 DeepSeek-R1(30.25%)和 7 个更大模型。表 2 在 Content Presentation(35.29%)、Design Validation Testing(54.92%)等子任务上与 DeepSeek-R1、Gemini-2.5-Pro 相当。图 4/表 3 消融表明 SFT+RL 强于纯 SFT/RL。图 5/表 4 显示 GRPO 组大小从 2 增到 32 时 FSR 从 22.39% 涨到 34.79%。图 6 在 WebDev Arena OOD 评测上仍以 AAS 击败 Qwen3-32B、DeepSeek-R1、GPT-5 等。图 7 表明奖励与人类评分强相关(Pearson 0.762)。图 8 网格搜索表明 $\gamma=\lambda=0.1$ 是帕累托最优。

Performance comparison of WebGen-R1 and various state-of-the-art LLMs from multiple institutions on the WebGen-Bench benchmark, evaluated by FSR, AAS, and VRR
Table 1: Performance comparison of WebGen-R1 and various state-of-the-art LLMs from multiple institutions on the WebGen-Bench benchmark, evaluated by FSR, AAS, and VRR
Category-wise performance comparison of WebGen-R1 and various LLMs on the WebGen-Bench benchmark, evaluated by FSR
Table 2: Category-wise performance comparison of WebGen-R1 and various LLMs on the WebGen-Bench benchmark, evaluated by FSR
Impact of group size G in GRPO on WebGen-Bench performance, measured by FSR and VRR metrics
Table 4: Impact of group size G in GRPO on WebGen-Bench performance, measured by FSR and VRR metrics
Comparison of WebGen-R1 and baseline LLMs across 13 multi-scenario front-end development tasks from WebGen-Bench
Figure 3: Comparison of WebGen-R1 and baseline LLMs across 13 multi-scenario front-end development tasks from WebGen-Bench
Impact of group size G in GRPO on WebGen-Bench performance, measured by AAS and LDPR metrics
Figure 5: Impact of group size G in GRPO on WebGen-Bench performance, measured by AAS and LDPR metrics
Performance of WebGen-R1 on the WebDev Arena benchmark across different domains and prompt distributions
Figure 6: Performance of WebGen-R1 on the WebDev Arena benchmark across different domains and prompt distributions
Impact of γ and λ on website generation performance
Figure 8: Impact of γ and λ on website generation performance
Case study comparing WebGen-R1-7B with three strong baselines
Figure 9: Case study comparing WebGen-R1-7B with three strong baselines
查看结构化数据
任务指标本文基线提升
WebGen-Bench 综合(101 任务) FSR (%) 29.21 Qwen2.5-Coder-7B-Instruct 1.59 / DeepSeek-R1 30.25 相对基线 +27.62 个百分点;与 671B 的 DeepSeek-R1 仅差 1.04
WebGen-Bench 综合 AAS (0-5) 3.94 Qwen2.5-Coder-7B-Instruct 2.73 / Claude-3.7-Sonnet 3.90 相对基线 +44.32%;在 15 个模型中最高
WebGen-Bench 综合 VRR (%) 95.89 Qwen2.5-Coder-7B-Instruct 30.56 / DeepSeek-R1 42.86 相对基线 +65.33 个百分点;在 15 个模型中最高
WebGen-Bench:Content Presentation 类别 FSR (%) 35.29 Qwen2.5-Coder-7B-Instruct 0.00 / DeepSeek-R1 31.11 相对基线 +35.29 个百分点,超过 DeepSeek-R1 与 Gemini-2.5-Pro
WebGen-Bench:Design Validation Testing 类别 FSR (%) 54.92 Qwen2.5-Coder-7B-Instruct 0.00 / DeepSeek-R1 33.33 相对基线 +54.92 个百分点;逼近 Claude-3.7-Sonnet 的 62.86
WebDev Arena OOD(119 任务) AAS 约 3.4(图 6 最高点) Qwen3-32B / Qwen2.5-72B / DeepSeek-R1 / GPT-5 / Claude-Sonnet-4 在更弱指令细节的分布外场景仍保持 AAS 优势
GRPO 组大小消融(G=2 → 32) FSR (%) 22.39 → 34.79 G=2 (22.39) +12.40 个百分点,验证组内多样性收益
奖励 vs 人类评分(101 网站) Pearson / Spearman r=0.762, ρ=0.734 随机评估基线 p<2.4e-18,奖励与人类偏好强相关

局限与改进

作者在文中承认了两点局限。一是 WebDev-Arena 任务描述比 WebGen-Bench 短得多,WebGen-R1 偶尔跟不上更新的设计潮流,作者表示将通过换用更新的基座模型来缓解。二是奖励函数是「控制台 0 错」这种粗粒度的功能代理,可能漏掉更细粒度的 UX 问题(如按钮位置、响应式布局细节)。我自己观察的额外限制有:(1) 评测管线强依赖 GPT-4o 作为 VLM 和 GUI 代理,引入闭源模型依赖并产生不可忽略的 API 成本;(2) 脚手架目前只覆盖 React + Vite + Tailwind 栈,对 Vue/Svelte/纯后端等服务端渲染或非 React 生态未验证;(3) SFT 阶段只用 600 个 GPT-4.1 蒸馏样本,覆盖面有限,可能有 SFT 阶段就锁定的某种风格偏差;(4) AAS 评分与人类评分的 Pearson 0.762 虽强但仍有 24% 解释方差未被捕获,说明审美评估在配色、留白、动效等更细的视觉维度上仍有提升空间。

独立分析的弱点

独立分析有四个值得改进的弱点。第一,奖励信号对 $s_{\text{vis}}$ 的依赖过高,而 VLM 评估存在位置/顺序偏差、倾向于「看起来完整」的页面而忽略真实交互链路;可考虑引入「截图-代码双向一致性」对比模块,让代码与视觉相互验证。第二,SFT 热启动的 600 样本从 GPT-4.1 蒸馏而来,相当于把 GPT-4.1 的项目结构偏好「蒸馏」进了 7B 模型,可能限制了对新设计风格的探索;可改为用更大规模、更多源的 silver 响应或自举式 self-play 数据。第三,级联管道对单一执行环境(npm + Vite)依赖强,对 monorepo、SSR、TypeScript 严格模式等场景没有覆盖;可参数化执行环境并支持多模板切换。第四,论文的 FSR 通过 WebVoyager 代理交互式验证,代理本身的可靠性构成「奖励噪声」上界,可考虑用多代理投票或基于 DOM diff 的确定性检查替换 GPT-4o 驱动的 GUI 代理。

未来方向

作者已明确提出两个方向:换用更新的基座模型以跟上 WebDev-Arena 的设计潮流、把 RL 拓展到全栈应用开发(不只前端)。基于论文成果还可在三条线上延伸:一是把「模板-填充」范式推广到移动端(React Native、Flutter)、游戏(Unity + Lua)、数据管线(Airflow)等更多项目级代码生成场景,验证脚手架思路的普适性;二是把 $s_{\text{func}}$ 从「控制台无错」升级为「测试用例通过率 + 用户行为模型模拟」,让功能评估更细粒度;三是把级联奖励与过程奖励模型(PRM)结合,在组件级别给中间步骤打分,应对超长项目生成中 credit assignment 困难的问题。

复现评估

复现性整体良好但有门槛。代码与数据仓库已公开(https://github.com/juyongjiang/WebGen-R1),超参数、奖励权重 $\gamma=\lambda=0.1$、GRPO 组大小 $G=16$、批大小 256、$\epsilon=0.2$、$\beta=0.01$、学习率 $5\times 10^{-6}$、推理温度 0.7 等都写得很清楚。算力门槛是 8 张 H100 80GB(全篇实验的硬件配置),SFT 2 epoch + RL 400 步是中等规模训练量,个人研究者用更少卡也能跑但需要降 batch 和组大小。主要的不确定因素在于:VLM 和 GUI 代理均标准化为 GPT-4o,会产生显著 API 费用;WebGen-Instruct 训练集(6667 任务)和 WebVoyager 都是公开的,但每次 RL rollout 都要跑完整 install→bundle→serve→render 流程,单步延迟较高。整体上,工程实现是透明的,但完整复现需要接近论文级别的算力和 API 预算。