结构化主题采样把UI覆盖从1.0拉到2.9,线上负评少31%

Enabling Creative Exploration for Vibe Design Agents

Yifan Zhang, Nghi D. Q. Bui, Georgios Evangelopoulos, Arnaud Benard

cs.AI

2026-09-14

先提出带分数的主题规格再采样落地,下游解码不动。标准基准覆盖从1.0升到2.9;线上30余万任务负评少31%。

这篇在解决什么

Lovable、v0、Bolt、Figma Make、Claude Design、Google Stitch 这类 vibe 设计 agent,已经能把一句话变成可渲染界面和前端代码。卡住的地方是探索:同一条 brief 连跑五次,输出会塌向同一套常规配色、字体和构图。用户想先看几个说得通的方向再选定,agent 给的却是同一张脸的微调。

把解码温度调高,审美和语法敏感的代码被绑在同一个旋钮上。颜色、字号、圆角跟着变,markup 和 stylesheet 也跟着抖。口头加一句「be creative」,运行时仍然没有一份可检查、可平衡的分布。这篇要的是单独拧的控制点:换设计方向,不换下游解码设置。

方法

链路拆成三步,中间产物是一份结构化设计规格。

提案阶段按 Verbalized Sampling 做一次 pre-pass,让模型列出 K=3 个互不相同、且跟 prompt 兼容的方向,每个带结构化属性和自报的 typicality 分数。三个档位叫 Safe、Premium、Experimental,只是引导措辞,不是测出来的质量或风险等级。

选择阶段把非负分数归一化成权重,再用候选级温度 τ 做缩放采样。τ=1 跟原始权重走;小于 1 更偏向高分方向;大于 1 给低分方向更多机会。温度为 0 的候选永远选不上。温度只能在已经提出的集合里改赔率,补不出没被提出的方向。

生成阶段把抽中的规格连同原始请求交给原来的生成链路。下游模型配置和解码设置在所有选择条件之间保持固定。

主题规格绑的是种子色、明暗模式、标题和正文字体、圆角,选中后整捆交给设计系统去落实。素材规格是一条图像生成 prompt,写清主体、构图和视觉风格。两路干预在主实验里分开开,只在附录的餐食规划看板案例里一起用。分数被当成操作权重,不当成校准过的概率:提示出来的数字会偏离 next-token 概率。无效分数会重试,再拿不到就回退到基线路径。

提案、设计系统和代码生成都用 Gemini 3 Flash,页内图用 Nano Banana 2,成对裁判是带 UI rubric 的 Gemini 3.1 Pro。测的 τ 是 {0.5, 1, 1.5, 2, 5}。产品默认主题 1.5、素材 2.0,跟离线里最好的设置对不上。

结果

离线评了 168 条 prompt,其中 83 条短、开放的 Standard UI Benchmark,85 条带布局和功能约束的 Complex UI Benchmark。每个温度、每种干预有 1255 对比较。

主题干预在标准基准上,把五次重复里观察到的选项数从 1.00 拉到 2.10–2.94。τ≥1.5 时,83 条 prompt 没有一条只出现一个选项。截图 embedding 余弦相似度从基线 0.6765 降到 τ=2.0 的 0.5438。裁判偏好不跟着这条曲线走:

τ覆盖选项截图相似度VS 胜 / 基线胜胜负比
0.52.100.656033.6% / 41.3%0.81
1.02.590.608536.1% / 38.8%0.93
1.52.840.584434.1% / 40.1%0.85
2.02.870.543838.8% / 35.3%1.10
5.02.940.543735.1% / 38.8%0.90

τ=2.0 是主题侧唯一胜出基线的设置,胜负比 1.10(38.8% vs 35.3%)。τ=5.0 截图分离几乎一样,裁判却翻盘。编译后 HTML 的 DOM 相似度从基线 0.8779 降到 0.7935–0.8339,结构有变,骨架还在。

关掉主题采样、只采样图像 prompt 时,整屏相似度几乎不动(τ=1.0 时 0.6616 vs 0.6765),裁判胜负比却到 1.32(42.8% vs 32.3%)。素材温度再往上,两项都不稳。复杂素材基准最好的聚合比在 τ=1.5(1.19),标准套件上的最优设置搬不过去。

线上 A/B 看的是一个商业 UI 设计助手,对照 155338 个任务、处理 154532 个,合计超过 30 万,生成屏幕约 50.6 万。60 秒内完成的比例从 49.9% 掉到 48.2%,相对 -3.47%,95% 置信区间不含零。任务成功率从 97.95% 到 97.80%。代码导出从每屏 1.06% 到 1.15%,相对 +8.23%,区间 [-13.03%, +29.48%] 含零,导不出结论。负反馈从 73 降到 50,相对 -31.51%;正负比大约从 3.8:1 到 5.7:1。被评估对话里的纠正率从 38.8% 升到 41.6%,相对 +7.08%。负评少、纠正多、时延略差,三件事同时成立。

为什么重要

对做 vibe coding 或 UI agent 的人,这篇给了一个能上线的旋钮:把设计方向做成可检验的中间决策,解码温度可以不动。主题采样改整页观感,素材采样改局部语义;整屏相似度测不到后者,LLM 裁判却能打出分差。评估探索类系统时,覆盖、视觉分离、裁判偏好、真实使用要拆开报。

它是渐进工程。Verbalized Sampling 的引出机制是现成的,贡献在把结构化规格接到主题和素材生成链路上,并在产品和离线两边量了一遍。产品默认 τ 跟离线最优对不上,这个旋钮还得按任务套件调。

局限与存疑

实验比的是「提案加选择」整条链路对基线,没有拆开 typicality 权重和「提出多个候选」各自的贡献。缺的对照包括无权重引出、均匀选择、原版 VS,以及直接调 token 温度。归档记录也没证明不同温度和重复之间复用了同一组候选,τ 结果描述的是整条配置。

覆盖统计把五次重复里出现的选项数封顶为 3,且没说选项身份是持久规格还是档位标签。作者自己写了:这不能当成不同渲染设计的计数。LLM 裁判有位置、冗长、同家族偏差,离线聚合没有 prompt 聚类的不确定度。成对裁判用的是 Gemini 3.1 Pro,生成用的是 Gemini 3 Flash,同门偏好没法排除。

线上快照用 PREPOST 区间,处理配置、曝光日期、随机化细节不够重建实验。负反馈总量只有 351 和 335 条自愿评分。提示集、生成物、裁判记录和可执行分析都没公开。还没有盲测职业设计师,也没有直接的执行或可访问性检查,来验证下游是否真的落实了抽中的规格。

术语

原文与代码

相关论文

全部论文解读