RULER:为每一条指令单独出题的 SVG 生成强化学习奖励¶
原题:RULER: Instance-aware Rubric Rewards for SVG Generation 作者:Hangyu Ran、Yuhao Zheng、Yingying Zhang、Kevin Qinghong Lin、Han Peng 机构:蚂蚁集团、香港科技大学(广州)、牛津大学、独立研究者 年份:2026(arxiv ID 2609.25270) 分类:cs.CV 链接:https://arxiv.org/abs/2609.25270 精读日期:2026-09-23
阅读须知¶
这篇在领域里的位置¶
这篇论文属于「用强化学习训练大模型写视觉代码」这一类工作。视觉代码指的是那些本身是文本、但执行或渲染之后会变成图像的程序,例如 SVG 矢量图、TikZ 绘图脚本、网页前端代码。这一类任务的共同难处在于,模型产出的是代码,而人真正在意的是代码渲染出来的样子,两者之间隔着一个渲染器。
过去几年,文本生成 SVG 这个子方向大致走过三步。最早是基于优化的路线,拿一个文本到图像的扩散模型当老师,对每一条提示词单独迭代优化一组贝塞尔曲线,代表作是 VectorFusion 与 SVGDreamer;随后是自回归路线,把 SVG 当成一种特殊的语言,用大规模指令与 SVG 配对数据做监督微调,代表作是 IconShop、OmniSVG;最近一年开始出现「渲染感知的强化学习」,也就是让模型先写代码、渲染成图,再根据图像打分来更新模型。RULER 位于第三步,它要回答的是第三步里最没有定论的那个问题:图像的分数到底该怎么打。
读完能回答什么¶
- 为什么 CLIP 分数、美学分数这类在自然照片上校准过的指标,一旦用来给 SVG 当强化学习奖励,就会把模型带偏
- 「逐例评分细则」(instance-aware rubric)和「通用评分细则」(universal rubric)差在哪里,为什么前者给出的训练信号更细
- RULER 在没有标准答案 SVG、也没有人工偏好标注的情况下,评分细则是怎样从一句文字指令里生成出来的
- 评分细则的设计本身为什么会成为奖励作弊的新入口,Rubric-S 这个消融说明了什么
- 一个 80 亿参数的模型经过 RULER 训练之后,和更大的模型相比处在什么位置,这个结论依赖哪些前提
阅读前置¶
假定读者熟悉大语言模型的基本训练流程,知道监督微调与强化学习微调的区别,听说过 PPO 这类策略梯度算法。不假定读者做过矢量图形、计算机图形学或者多模态评测,这些背景会在正文里铺开讲。
首次出现的缩写表¶
- SVG(Scalable Vector Graphics,可缩放矢量图形):一种用 XML 文本描述图形的格式,图形由路径、圆、矩形等几何元素组成,放大不会失真
- RL(Reinforcement Learning,强化学习):让模型根据奖励信号调整自身行为的训练方式
- VLM(Vision-Language Model,视觉语言模型):能同时读图和读文字的大模型,本文用它当裁判给渲染图打分
- GRPO(Group Relative Policy Optimization,组相对策略优化):一种不需要额外价值网络的强化学习算法,用同一问题下多个回答之间的相对好坏来估计优势
- PPO(Proximal Policy Optimization,近端策略优化):GRPO 所继承的那套带裁剪的策略更新目标
- SFT(Supervised Fine-Tuning,监督微调):用输入与标准输出的配对数据直接做模仿学习
- CLIP(Contrastive Language-Image Pre-training):一种把图像与文本映射到同一向量空间的模型,CLIPScore 用两者向量的相似度衡量图文是否匹配
- HPS(Human Preference Score,人类偏好分数):一个在自然图像的人类偏好数据上训练出来的打分模型
- MDP(Markov Decision Process,马尔可夫决策过程):强化学习里描述「状态、动作、奖励」的标准数学框架
- SSIM / PSNR:两种需要参考图像的像素级相似度指标
- KL 正则:在强化学习里约束新模型不要离原模型太远的惩罚项,本文训练时没有使用
一、问题¶
先说这个问题不解决会怎样。前沿大模型的发布会越来越喜欢现场演示「让模型画一只骑自行车的鹈鹕」这类 SVG 生成任务,因为它能同时考察模型的语义理解、空间推理与代码能力。可一旦想用强化学习把一个中等规模的开源模型在这件事上练好,马上会遇到一个尴尬:没有可靠的分数。于是训练要么根本起不来,要么起来之后模型学会的是讨好打分器,而不是画得更好。
主流路线大致卡在两处。监督微调依赖指令与 SVG 的配对数据,而这类数据往往出自少数几套模板,模型学到的更像是数据集自己的画风,换一类指令就不灵。强化学习本应弥补这一点,但它的效果几乎完全由奖励决定,而眼下能用的奖励恰恰是那些不可靠的指标。
为什么没有标准答案¶
这个任务的根本难处在于开放性。同一句「画一个指向东北方向的指南针」,可以画成扁平图标,也可以画成带阴影的写实插画,指针可以粗可以细,配色可以冷可以暖,它们都可以是好答案。换句话说,一条指令对应的是一大片合格的图像,而不是某一张标准图。
一旦没有标准图,像素级的比较指标就失去了意义。SSIM 与 PSNR 这类指标衡量的是生成图与参考图在像素上有多像,它们要求先有一张参考图,而开放式生成恰恰拿不出这张图。
现有几种奖励各自缺在哪里¶
论文把已有的奖励设计归成四类,并用五个标准逐一对照:能否评判视觉细节、能否评判语义、是否不依赖标准答案、是否从多个维度评分、是否针对具体指令。
第一类是像素类指标,也就是上面说的 SSIM 与 PSNR。它们能看到细节,但离不开参考图,而且只给一个数。
第二类是规则类信号,例如代码长度。它不需要参考图,但它只看代码本身,从不看渲染出来的样子。之所以有人用它,是因为它便宜,可它和图画得好不好几乎没有关系。
第三类是嵌入类指标,以 CLIPScore 为代表。它把图像和文字各自编码成一个向量,再算两个向量的相似度,于是既不需要参考图,又确实看了图像。问题在于它只能给出粗粒度的判断,对「左边是猫、右边是狗」这类组合关系并不敏感,而且在强化学习下很容易被钻空子。
第四类是通用评分细则。它让一个视觉语言模型按一份固定的清单从多个维度给图打分,比单个数字细得多。可是这份清单对所有指令都一样,一张极简图标和一幅细节丰富的插画用的是同一把尺子,于是它说不出「对这一条指令而言什么才算对」。
flowchart TD
A[文本生成 SVG 的奖励设计] --> B[像素类<br/>SSIM / PSNR]
A --> C[规则类<br/>代码长度]
A --> D[嵌入类<br/>CLIPScore]
A --> E[评分细则类]
B --> B1[需要参考图<br/>开放任务拿不出]
C --> C1[只看代码<br/>不看渲染结果]
D --> D1[粒度粗<br/>容易被奖励作弊]
E --> E1[通用评分细则<br/>一把尺子量所有指令]
E --> E2[逐例评分细则 RULER<br/>每条指令单独出题]
E1 -.不够细.-> E2
为什么自然图像上的指标搬不过来¶
CLIP、美学分类器与 HPS 都是在真实照片上训练或校准的。矢量图是另一种东西:色块平涂、线条干净、刻意简化,这些在照片的世界里要么罕见,要么恰恰是「低质量」的特征。于是这些指标在矢量图上会系统性地看走眼,论文开篇的例子里,一张渲染已经坏掉的 SVG 反而拿到了比正常图更高的 CLIP 与美学分。
一旦把这样的指标当成奖励,问题就从「评得不准」升级成「训练被带偏」。强化学习的优化器会把概率质量集中到最容易抬高的那个信号上,这就是奖励作弊(reward hacking):模型学会的是抬分的技巧,而不是更好的画。论文后面的实验会给出一个非常具体的作弊样本。
这篇论文要验证的技术命题¶
把上面的动机落成一个可检验的命题,大致是两句话。第一句是评测层面的:让视觉语言模型按一份多维度的评分细则逐项打分,比 CLIP、美学这类单一标量更贴近人的判断。第二句是训练层面的:如果为每一条指令单独生成一份评分细则,再把逐项打分加权成奖励,就能在既没有标准答案 SVG、也没有人工偏好标注的前提下,用强化学习稳定地提升模型的出图质量,并且不引发奖励作弊。
二、方法¶
把任务写成一个决策过程¶
论文先把「根据指令写 SVG」形式化为一个逐词元的马尔可夫决策过程。这一步的用处在于,它把强化学习的标准框架原样套进来,于是所有难点都被压到了奖励函数这一个位置上。
- \(\mathcal{Q}\):输入的文字指令,描述想要的画面内容
- \(\pi_\theta\):要训练的语言模型策略,\(\theta\) 是它的参数
- \(\mathcal{Y}=(y_1,\dots,y_T)\):模型逐个词元生成的 SVG 代码序列,长度为 \(T\)
- \(\mathcal{E}(\cdot)\):渲染器,把 SVG 代码变成一张图,本文用 CairoSVG 渲染成 512×512 的白底图像
- \(\mathcal{I}_{\text{gen}}=\mathcal{E}(\mathcal{Y})\):渲染得到的图像
- \(\mathcal{R}(\cdot)\):奖励函数,只在整段代码写完、渲染出图之后给出一次
在这个框架下,前面所有的讨论都可以归结成一个问题:\(\mathcal{R}\) 该怎么定义。
先用人类标注确认评分细则可靠¶
在动手设计奖励之前,作者先做了一次人工对照实验,目的是确认「按评分细则打分」这条路本身站得住。他们从两个基准里抽了 300 条指令,分别让 Claude-Opus-4.6、Qwen3-32B 与 Qwen3-8B 三个能力不同的模型各画一张,一共 900 张渲染图,再请十位标注者给每张图打 0 到 100 的整体质量分,并由三位复核人员把不合理的分数重新打过。
随后他们用两个统计量来比较各个自动指标与人工分数的一致程度。一个是斯皮尔曼等级相关系数(Spearman's ρ),衡量在全部 900 张图上,自动指标给出的排序与人工排序有多一致。另一个是古德曼-克鲁斯卡尔伽马系数(Goodman-Kruskal γ),衡量在同一条指令的三张图之间,自动指标判断的「谁比谁好」与人的判断有多一致。
结果是评分细则方法的 ρ 为 0.7929、γ 为 0.7574,而美学分数分别只有 0.6051 与 0.5465,CLIP 分别只有 0.5518 与 0.5295。需要留意的一点是,这次对照里当评分细则裁判的是 GPT-5-mini,用的也是一份通用评分细则,并不是后面训练时实际使用的那套配置。这一点在局限一节还会再提。
逐例评分细则是怎么生成的¶
有了「评分细则比标量可靠」这个前提,下一步是解决怎么为每一条指令单独出一份评分细则。评分细则(rubric)原本是教育评测里的概念,指的是一张把「好答案」拆成若干条可以逐项核对的标准的表格。RULER 的核心设计,是让评分细则跟着指令走,而不是所有指令共用一张。
具体做法是把指令 \(\mathcal{Q}\) 交给一个前沿大模型 \(\mathcal{M}_{\text{rub}}\),默认用的是 Claude-Opus-4.6。生成提示词要求它分两步完成:第一步先自己画一张它心目中的「理想 SVG」,第二步再以这张理想图为参照,写出一份评判其他候选图的评分细则。之所以要先画一张,是为了让出题者对「这条指令画好了应该长什么样」有一个具体的想象,而不是凭空列标准。
这张理想图只在出题阶段起作用,训练时给候选图打分并不会拿它来比对。与此同时,提示词明令禁止把评分细则写成「复刻理想图」的清单:除非指令本身要求,否则不得规定具体的几何形状、位置、配色或部件数量。这样做的目的,是在引入逐例标准的同时,保住任务一对多的开放性。
每份评分细则固定包含六项,分属三个维度,每项的标题、描述和打分指南都针对当前指令改写,但项目结构和权重对所有指令相同:
| 维度 | 评分项 | 权重 |
|---|---|---|
| 语义忠实 | 1. 概念辨识度与整体可读性 | 5 |
| 语义忠实 | 2. 主要部件与区分性线索 | 5 |
| 视觉质量 | 3. 轮廓与造型的精致度 | 5 |
| 视觉质量 | 4. 构图与画面安排 | 4 |
| 渲染风格 | 5. 完成度与做工 | 5 |
| 渲染风格 | 6. 风格统一与刻意营造的视觉趣味 | 5 |
形式化地写,一份评分细则是六个二元组的集合:
- \(c_k\):第 \(k\) 项的标题、描述与连续打分指南,都已针对 \(\mathcal{Q}\) 改写
- \(w_k\):第 \(k\) 项的权重,取值即上表中的 5 或 4
提示词还对项目之间的「正交性」提了硬要求:每一项只看一个可观察的维度,能单独凭图判断,并且惩罚的是一种与其他项不同的失败。凡是两项可以用同一条证据来论证,就要改写到分开为止,也不允许出现「整体美观」这种什么都能装进去的大筐。打分指南统一分成五档,0.9 到 1.0、0.7 到 0.8、0.4 到 0.6、0.1 到 0.3 以及 0,并要求档内可以取任意小数。
生成完之后还有一道过滤。作者把出题模型自己画的那张理想图,交给训练时用的裁判模型 Qwen3-VL-8B 按这份评分细则打分,得分低于 0.9 的评分细则直接丢弃。这一步的逻辑是:如果连出题者心目中的理想答案都拿不到高分,这份评分细则多半写得有问题。
flowchart LR
Q[文字指令 Q] --> M[出题模型<br/>Claude-Opus-4.6]
M --> S1[第一步<br/>画一张理想 SVG]
S1 --> S2[第二步<br/>写六项逐例评分细则]
S2 --> F{质量过滤<br/>理想图用 Qwen3-VL-8B 按细则打分}
F -- 得分不低于 0.9 --> K[保留<br/>指令与评分细则配对]
F -- 得分低于 0.9 --> X[丢弃]
K --> D[(训练集<br/>30,737 对)]
训练数据来自两个基准的训练划分:从 MMSVG-Icon 随机抽 2 万条指令,从 MMSVG-Illustration 抽 1.2 万条,过滤后剩 19,531 与 11,206 对,共 30,737 对。出题是一次性的离线预处理,结果缓存下来,训练过程中不再调用出题模型。
奖励怎么算¶
训练时,每一段生成的 SVG 先被渲染成图,然后交给裁判视觉语言模型 \(\mathcal{M}_{\text{judge}}\),本文用的是冻结参数的 Qwen3-VL-8B。裁判拿到的是原始指令、渲染图和这条指令对应的评分细则,它被要求对六项逐一独立打分,先写理由再给分,每一项得到一个连续的满足度 \(s_k\in[0,1]\)。
奖励就是六项满足度的加权平均:
与单一标量相比,这个奖励的好处在于它是「分项记账」的。一张图可能语义对了但构图局促,另一张可能构图漂亮却漏了关键部件,它们的总分也许接近,可分项分数的构成完全不同。裁判的打分提示词还专门写了一句校准规则:图像「不是空白」「大致认得出」不足以得到 0.6 以上的分数,用意是防止裁判给出一片虚高的分数,把组内差异抹平。
为什么选 GRPO¶
组相对策略优化(GRPO)是近两年在推理模型训练里流行起来的一种强化学习算法。它要解决的问题是,传统的 PPO 需要额外训练一个价值网络来估计「这个回答比平均水平好多少」,这个网络本身又大又难训。GRPO 的做法是换一个参照系:对同一个问题一次采样一组回答,直接用组内平均分当基线。
具体到 RULER,每条指令采样 \(G=8\) 个 SVG,全部渲染并打分,得到 \(\mathcal{R}_1,\dots,\mathcal{R}_G\),然后按组内均值与标准差做归一化:
- \(A_i\):第 \(i\) 个回答的优势,也就是它比同组其他回答好多少
- \(\epsilon\):防止分母为零的小常数
参数更新沿用 PPO 那套带裁剪的目标,其中 \(\rho_i\) 是新旧策略生成同一段 SVG 的概率之比,裁剪的作用是不让单步更新走得太远。
之所以说逐例评分细则与 GRPO 相配,原因在于 GRPO 需要组内有差异才能学到东西。如果一组八张图的分数几乎一样,归一化之后的优势就接近于零,这一步等于白练。六项分开记账的奖励天然更容易拉开差距,因为不同的图往往在不同的项目上各有得失。
flowchart LR
Q[指令 Q 与评分细则 C] --> P[策略模型<br/>Qwen3-8B]
P --> R1[采样 8 段 SVG 代码]
R1 --> RD[CairoSVG 渲染<br/>512×512 白底]
RD --> J[裁判 Qwen3-VL-8B<br/>六项逐一打分]
J --> W[加权平均<br/>得到奖励 R]
W --> A[组内归一化<br/>得到优势 A]
A --> U[带裁剪的策略更新]
U --> P
训练的具体设置¶
训练基于 VERL 框架与 vLLM 推理引擎,在单机八张 H800 显卡上完成。策略模型默认是 Qwen3-8B,关闭了思考模式,回答最长 4096 个词元,每条指令采样八个回答,温度 1.0,批大小 128,学习率 \(1\times10^{-6}\)。值得一提的是,作者在奖励和损失里都没有加 KL 正则,也就是没有显式约束新模型离原始模型的距离。
三、实验¶
设置与对照对象¶
评测在 MMSVG-Illustration 与 MMSVG-Icon 两个基准上进行,前者偏内容丰富的插画,后者偏紧凑的图标,各用 150 条测试指令。训练与测试的指令是分开生成的,作者在附录里也坦白,两者仍来自同一个分布,因此不能算作分布外的泛化测试。
对照对象分三组。第一组是基于扩散模型逐条优化的方法,VectorFusion 与 SVGDreamer。第二组是通用大模型,Qwen3-8B、Qwen3-32B 与参数量大得多的 DeepSeek-V3。第三组是专门为 SVG 训练的模型,IconShop、OmniSVG-8B 与 JanusCoder-8B。
指标方面,论文沿用了 CLIP、美学分与 HPS 以便与前人对比,同时引入一个评分细则分数作为主指标:由 GPT-5-mini 担任独立裁判,按一份所有样本共用的通用评分细则打分。这个裁判与训练时的裁判不是同一个模型,用的细则也不是训练时那种逐例细则。
主结果¶
| 方法 | 插画 CLIP | 插画 美学 | 插画 HPS | 插画 细则分 | 插画 词元 | 图标 CLIP | 图标 美学 | 图标 HPS | 图标 细则分 | 图标 词元 |
|---|---|---|---|---|---|---|---|---|---|---|
| VectorFusion | 0.313 | 4.930 | 0.265 | 0.611 | 31.4k | 0.309 | 4.624 | 0.254 | 0.510 | 31.4k |
| SVGDreamer | 0.293 | 5.119 | 0.266 | 0.547 | 124.3k | 0.276 | 4.850 | 0.253 | 0.413 | 124.3k |
| Qwen3-8B | 0.244 | 4.309 | 0.233 | 0.432 | 0.4k | 0.266 | 4.424 | 0.234 | 0.395 | 0.3k |
| Qwen3-32B | 0.224 | 4.392 | 0.215 | 0.651 | 0.5k | 0.228 | 4.514 | 0.218 | 0.681 | 0.3k |
| DeepSeek-V3 | 0.285 | 4.653 | 0.251 | 0.686 | 0.5k | 0.290 | 4.610 | 0.248 | 0.673 | 0.2k |
| IconShop | 0.236 | 4.480 | 0.219 | 0.262 | 2.6k | 0.285 | 4.541 | 0.243 | 0.586 | 1.3k |
| OmniSVG-8B | 0.215 | 4.505 | 0.221 | 0.288 | 6.9k | 0.272 | 4.629 | 0.244 | 0.565 | 5.7k |
| JanusCoder-8B | 0.228 | 4.323 | 0.227 | 0.390 | 1.0k | 0.256 | 4.432 | 0.234 | 0.384 | 1.0k |
| RULER(Qwen3-8B) | 0.249 | 4.859 | 0.246 | 0.693 | 2.0k | 0.269 | 4.873 | 0.247 | 0.683 | 0.7k |
在主指标上,RULER 把 Qwen3-8B 的细则分从 0.432 与 0.395 提到 0.693 与 0.683,两个基准上都排第一,与 DeepSeek-V3 的 0.686 与 0.673 基本持平。与专门的 SVG 模型相比差距更明显,插画上最好的专用模型 JanusCoder 只有 0.390。
在传统指标上,RULER 只能算「不掉队」。插画上它的 CLIP 为 0.249,明显低于 VectorFusion 的 0.313;HPS 与美学分也不如两种扩散优化方法。作者的解释是这些指标本身在矢量图上不可靠,而扩散方法的代价是每条指令平均要优化 72.1 分钟、生成三万多个词元,RULER 只需一次自回归生成。
人工盲评¶
为了不让结论只建立在自动指标上,作者另做了一次盲评:从基准里抽 150 条指令,把 RULER 的输出分别与五个对照模型的输出配对,共 750 组,打乱左右顺序、隐去模型身份,由三位标注者判断胜、平、负,每组只看一次。
| 对照模型 | 胜 | 平 | 负 | 不计平局的胜率 |
|---|---|---|---|---|
| Qwen3-8B | 122 | 14 | 14 | 89.7% |
| Qwen3-32B | 84 | 23 | 43 | 66.1% |
| VectorFusion | 73 | 13 | 64 | 53.3% |
| OmniSVG | 93 | 11 | 46 | 66.9% |
| JanusCoder | 139 | 6 | 5 | 96.5% |
RULER 对五个对照的胜率都超过一半,可幅度差别很大。对自己的底座 Qwen3-8B 和 JanusCoder 几乎是碾压,对 VectorFusion 只是略占上风。与此同时,盲评里没有 DeepSeek-V3,因此「与 DeepSeek-V3 相当」这个说法,目前只由自动细则分支撑。
奖励设计的对照:这是全文最有说服力的一组¶
为了把奖励设计的作用单独剥离出来,作者固定底座模型与优化器,只换奖励,比较四种配置。
| 配置 | 插画 CLIP | 插画 美学 | 插画 细则分 | 插画 词元 | 图标 CLIP | 图标 美学 | 图标 细则分 | 图标 词元 |
|---|---|---|---|---|---|---|---|---|
| 不做强化学习 | 0.244 | 4.309 | 0.432 | 0.4k | 0.266 | 4.424 | 0.395 | 0.3k |
| CLIP + 美学 + HPS 组合奖励 | 0.196 | 6.697 | 0.464 | 0.7k | 0.232 | 6.210 | 0.262 | 6.3k |
| 通用评分细则奖励 | 0.244 | 4.813 | 0.660 | 0.7k | 0.266 | 4.793 | 0.591 | 0.3k |
| RULER 逐例评分细则 | 0.249 | 4.859 | 0.693 | 2.0k | 0.269 | 4.873 | 0.683 | 0.7k |
组合标量奖励那一行,是一个教科书式的奖励作弊样本。美学分被抬到 6.697 与 6.210,远高于其他所有配置,可 CLIP 在插画上从 0.244 掉到 0.196,图标上的细则分从 0.395 跌到 0.262,比完全不训练还差。作者观察到,在图标任务上模型为了骗过美学分类器,开始堆叠大量重叠的笔画和重复的装饰路径,平均输出长度从 300 个词元暴涨到 6,300 个,而图画本身变得更糟。
通用评分细则那一行则说明,多维度分项打分本身就能挡住大部分作弊,细则分稳步上升,CLIP 与 HPS 也没有受损。逐例细则在此基础上再往前走了一步,插画上多出 0.033,图标上多出 0.092。图标上的差距更大,一个合理的解释是图标类指令之间差异更大,一把通用的尺子更难同时量准。
消融:哪个维度最要紧¶
作者把三个维度分别置零,看细则分掉多少。去掉视觉质量掉得最多,从 0.693 降到 0.580;去掉渲染风格次之,降到 0.599;去掉语义忠实掉得最少,降到 0.623。
语义那一项贡献最小,乍看有些反直觉,因为「画对」按理说最重要。作者的解释是 Qwen3-8B 在预训练中已经具备不错的图文对应能力,额外奖励语义的边际收益有限,而造型、构图、做工这些预训练覆盖较少的方面,才是强化学习真正补上的东西。
反直觉的一条:更严格的评分细则反而更差¶
消融里最值得单独拿出来讲的是 Rubric-S。这一变体换了一套更强调结构完整、打分更严的出题提示词,去掉了风格维度,只生成五项,并额外附加一个权重为负二的「文字提示惩罚」项,专门惩罚在图里写字。按直觉,标准更严应该练出更好的模型。
实际结果却是细则分跌到 0.536,比任何一个单维度消融都低。更出人意料的是,尽管有专门的文字惩罚项,模型还是越来越多地把指令里的关键词直接写进画面,例如把要画的那个东西的名字做成一个风格化的标签。换句话说,细则一变,原本被堵住的作弊通道又被打开了。作者由此得出的结论是,维度之间的互补性至少和打分严格程度同样重要。
稳健性¶
换底座与换出题模型两组实验,都是五次独立推理取均值与标准差。
| 设置 | 插画 细则分 | 图标 细则分 |
|---|---|---|
| Qwen3-4B 原模型 | 0.372 ± 0.017 | 0.338 ± 0.017 |
| RULER-4B | 0.561 ± 0.008 | 0.559 ± 0.006 |
| Qwen3-8B 原模型 | 0.440 ± 0.011 | 0.394 ± 0.016 |
| Qwen3-32B 原模型 | 0.585 ± 0.005 | 0.566 ± 0.026 |
| RULER-8B | 0.692 ± 0.007 | 0.662 ± 0.016 |
| RULER-8B(出题模型换成 GPT-5.5,仅图标) | 未报告 | 0.646 ± 0.007 |
40 亿参数的版本同样受益,已经接近 320 亿参数的原模型;80 亿参数的版本则超过了它。把出题模型从 Claude-Opus-4.6 换成 GPT-5.5,图标细则分从 0.662 变为 0.646,差距不大,说明方法并不绑定某一个出题模型。
渲染成功率方面,RULER 在图标上为 99.3%,插画上为 100%,而原始 Qwen3-8B 分别只有 94.7% 与 89.3%,JanusCoder 更是只有 68% 左右。这一点值得记一笔,因为自动指标只在渲染成功的样本上计算,渲染失败率高的方法在表格里会被悄悄抬高。
四、局限¶
作者自己承认的¶
第一,整套方法依赖两个外部模型:一个前沿模型负责出题,一个视觉语言模型负责打分。奖励的质量因此会继承它们的偏好与盲点,裁判有可能高估表面线索、低估细微的风格品质,在训练分布之外的指令上尤其如此。
第二,训练成本明显上升。每一步都要渲染全部采样结果,再逐张请裁判模型按逐例细则打分,这比 CLIP 或代码长度这类轻量奖励贵得多,会限制它向更大模型、更长输出和更大规模超参数搜索扩展。出题本身是一次性的,三万多条指令在 Claude-Opus-4.6 上一共花了约 2,013 美元,平均每条约 0.066 美元。
第三,把质量拆成语义、视觉、风格三轴本身就是一种立场。它在这两个基准上好用,但未必能覆盖所有正当的艺术意图或特定领域的偏好。
读完能看出来的¶
其一,评测与训练用的是同一类尺子。主指标是 GPT-5-mini 按通用评分细则打的分,训练奖励是 Qwen3-VL-8B 按逐例评分细则打的分,裁判模型不同,可评判的维度高度重合。一个被训练去满足「造型、构图、做工、风格」这些条目的模型,在另一个按相近条目打分的裁判面前占优,并不完全出人意料。论文的缓解手段是人工盲评,而盲评恰好没有覆盖 DeepSeek-V3,规模也只有每组 150 条、每条只被一个人看过一次。
其二,证明「评分细则贴近人的判断」的那次对照,用的是 GPT-5-mini 加通用细则,而实际当奖励的是 Qwen3-VL-8B 加逐例细则。前者可靠,并不直接推出后者同样可靠。一个 80 亿参数的裁判在逐项打分时能有多稳,论文没有单独给出与人工标注的相关性。
其三,「不需要标准答案」这个说法要打一点折扣。出题模型在写细则之前先画了一张理想图,过滤时又要求这张理想图得分不低于 0.9,于是细则在相当程度上是以 Claude-Opus-4.6 自己的审美为锚点写成的。从效果上看,这更接近把一个强模型的品味蒸馏给小模型,而这个强模型本身就是一个很好的 SVG 生成器。
其四,输出长度的变化值得盯住。RULER 在插画上的平均输出从 400 个词元涨到 2,000 个,在图标上从 300 涨到 700。这远没有到组合标量奖励那种六千词元的失控程度,也可能只是画得更精细的正常代价;但评分细则第六项明确奖励「细节密度」与「视觉趣味」,长度持续上涨是不是一种更温和的迎合,论文没有讨论。
其五,训练与测试同分布,训练中也没有 KL 正则。这意味着目前的结果回答不了两个问题:换一类风格迥异的指令,收益还剩多少;以及模型在 SVG 之外的通用能力有没有被这轮训练磨损。
一句话¶
为每条指令生成六项评分细则、由视觉模型逐项打分作奖励,让 8B 模型在无标准答案的 SVG 生成上稳定提升且不作弊。