一句话定位

SpectraReward 提出一个不用训练的文生图奖励函数:拿一个冻结的预训练多模态大模型(MLLM),把生成的图当视觉条件、对原始 prompt 做一次 teacher-forcing 前向,用「图像条件下 prompt 的平均 log 似然」当奖励,本质是「把图再读回成文字、看能读回多准」。它省掉了人类偏好标注和奖励模型微调,还有一个专门给统一多模态模型的变体 Self-SpectraReward:让模型自己的理解分支去给自己的生成分支打分,形成闭环自改进。在 BAGEL 上,SpectraReward 把 TIIF-Bench 短 prompt 提了 +10.0、Self-SpectraReward 把 GenEval 提了 +5.5,且用 BAGEL 自身理解分支(约 7B)就能追平甚至超过 30B、235B 级别的外部奖励模型。作者含 HKU 的 Runhui Huang、Hengshuang Zhao 与字节 Seed。

背景与定位

文生图的强化学习后训练这两年成了提升组合忠实度、指令跟随的标准手段(FlowGRPO、DanceGRPO、AWM、DiffusionNFT 这些优化器),但一个 RL 配方的天花板由两根支柱决定:优化算法管长程训练稳定性,奖励模型决定策略最终能逼近的上限。奖励模型这一侧现在有三条路,各有各的痛:

  • 用大规模人类偏好标注训一个奖励模型(PickScore、ImageReward、HPSv2、RewardDance、UnifiedReward 这类)。有效,但依赖昂贵标注、数据难收、迭代成本高,而且微调会让奖励模型偏离 MLLM 预训练分布。
  • 直接把预训练 MLLM 当零样本裁判,让它吐一个标量分或 logit。免训练,但对裁判校准和打分噪声很敏感。
  • 问题分解式(question decomposition):把 prompt 拆成一个个可验证的原子问题逐条核对(AlphaGRPO 的 DVReward 就是这套),可靠性上去了,但引入了两阶段流水线和相当的工程复杂度。

SpectraReward 想补的正是「高效 + 无偏好标注 + 开箱即用」这个空档。它不让 MLLM 去「判断」图、也不做问题分解,而是问一个反向问题:这张生成图能被多好地「翻译回」它的 prompt?做法就是把图喂进冻结 MLLM,对 prompt token 做一次 teacher-forcing 前向,得到逐 token 的似然剖面(作者叫它 semantic spectrum,语义谱),取平均当标量奖励。这直接复用了 MLLM 预训练时学到的图文对齐能力,不需要偏好标签、不需要奖励模型微调、也不需要标量裁判或问题分解。

工作与作者自己的 AlphaGRPO 谱系同源(同一个 GitHub 仓库 huangrh99/AlphaGRPO,AlphaGRPO 是 2605.12495、DVReward 那套;SpectraReward 是本文 2607.11886),可以看成 AlphaGRPO 团队在奖励设计上从「问题分解」转向「prompt 似然」的一次简化。论文里对比的强 RL 基线也就是 AlphaGRPO 本身。与 SeedreamQwen-Image 这类主打 RLHF+奖励模型的生成基础模型不同,这篇不训练一个新生成模型,而是给「怎么给文生图 RL 造奖励信号」这件事提供一个通用、免训练的配方。同期还有 PromptEcho 探索过类似的交叉熵思路,但它只在特定领域 T2I 骨干上评过;SRUM、GvU 探索过 UMM 自奖励,但都只做 UMM 内部评测、没跟外部奖励模型比。SpectraReward 的卖点之一就是把「自奖励 vs 外部大模型奖励」这条对比线拉满。

模型架构

这篇不提出新的生成模型架构,核心产物是奖励函数本身,落在别人的生成骨干上。用到的组件:

  • 策略(被优化的生成模型):主实验用 BAGEL —— 一个原生 AR-Diffusion 的统一多模态模型(同时具备图像理解与图像生成能力),仓库里是 BAGEL-7B-MoT。另一个验证骨干是纯扩散的 SD3.5-M。
  • 奖励 MLLM(打分方,冻结):外部版可换任意兼容 MLLM,论文枚举了 4 个家族、4B 到 235B 共 9 个骨干:Gemma3(4B / 12B-Instruct / 12B-Pretrain)、InternVL3.5(8B / 14B)、Qwen3-VL(8B / 30B-A3B / 235B-A22B),以及 BAGEL 自身理解分支。默认外部奖励骨干是 Qwen3-VL-30B-A3B-Instruct。
  • Self-SpectraReward 的关键在于:当策略本身是 UMM 时,它内部同时有生成分支 G^gen 和理解分支 G^und,直接让 G^und 去给 G^gen 采样出的图打分。因为两个分支共享同一套 tokenizer、视觉编码器和预训练分布,理解分支「读图」的方式天然对齐于生成分支「采样图」的分布,奖励信号跟策略高度校准。作者强调这不要求理解分支在通用视觉理解上比外部 MLLM 强,而是它对「策略自己生成的图分布」标定得更准。

奖励公式(论文 Eq.1):R_M(x,y) = 1/(T-1) · Σ_{t=1}^{T-1} log p_M(x_{t+1} | x_{≤t}, y),即图像条件下 prompt 的平均 token log 似然,分数越高说明图越能「预测出」它的 prompt。逐 token 似然构成语义谱,平均后是标量奖励。工程上两个细节:屏蔽 EOS token(EOS 的似然主要反映序列终止而非图文对齐,对短 prompt 会不成比例地拉低平均,见消融);对长度做归一化,让不同长度 prompt 的分数可比。除 InternVL3.5 家族外默认不加任何「描述这张图」的前缀(前缀会改绝对似然值,但不显著改组内相对排序,而 group-relative RL 只用到组内排序);InternVL3.5 经验上加「Describe the image」前缀更稳。BAGEL 做 Self-SpectraReward 时默认把 VAE 特征也喂进理解分支(消融显示带 VAE 特征平均更好,尤其 TIIF-Long)。

数据

  • 训练 prompt 集:AlphaGRPO20k(即 DVReward 那套 bundled 数据集,仓库里 alpha_grpo/dataset/alphagrpo20k/)。
  • 关键点在于 SpectraReward 本身不需要任何偏好数据、不需要图文对标注去训奖励模型——奖励直接来自冻结 MLLM 的语言建模目标。这正是相对「大规模人类偏好标注 + 训奖励模型」路线省掉的那块成本。
  • 下游评测用 5 个分布外(OOD)文生图基准,互相评测协议不同:GenEval、TIIF-Bench、DPG-Bench、GenEval2、WISE。

训练方法

奖励免训练,但被打分的生成策略仍走标准 RL 优化。

  • 默认 RL 算法:AWM(消融里 AWM 优于 SDE 系的 FlowGRPO 和 DiffusionNFT,故主实验用 AWM)。用的是 group-relative(组相对)RL,这一点很重要:奖励里含 MLLM 对 prompt 的语言先验(有些词不看图也好预测),一个自然的修正是减去纯文本似然做 PMI 归一化 log p(x|y) − log p(x),但在组相对 RL 下,固定 prompt 时纯文本项对同组所有图都一样、算组相对 advantage 时自动抵消,所以这个修正没必要——语言先验被组内相减消掉了。
  • 奖励粒度:默认序列级 advantage(先把 token log 似然平均成序列奖励,再算组相对 advantage)。也试了 token 级 advantage(每个 token 位置当独立奖励,再算 token 级组 advantage 平均),并测了三种 std 归一化范围(全局 std、组内全文本 token std、逐 token std),结论是 token 级没有稳定优于序列级,为训练稳定默认用序列级。
  • 训练超参(论文 4.1):采样步 T=16,训练时从前 10 个去噪步里随机取 6 步训练;每步 32 个 prompt,组大小 G=16;训练分辨率 512×512;CFG scale=4,timestep shift=3,学习率 1e-4;32 张 A100,batch size 2,梯度累积 8,总训练步数 380。其余超参跟官方 AWM 实现。
  • 奖励函数消融(在 BAGEL+AWM 上)明确说明为什么用 prompt 似然:标量打分(1-5)大幅拉垮所有指标,GenEval 相对基线掉 6.3;VQA-Score(问「图里有没有 {caption}」用 P(yes) 当奖励)在 TIIF 上有小涨但 GenEval 没提升;只有 prompt 似然全指标最好(GenEval 89.5 / TIIF-S 85.1 / TIIF-L 84.3 vs 基线 84.0 / 75.2 / 78.6)。

Self-SpectraReward 的额外好处是彻底去掉外部奖励模型:不用额外算力伺服大 MLLM,RL 流水线也更简单。它把两个对偶能力耦合在同一个模型里——生成分支做文到图、奖励用理解分支度量「图能多好翻回文」,优化生成分支等于鼓励文生图策略跟自己的图到文理解保持一致。

Infra(训练 / 推理工程)

奖励侧的工程主要是「怎么伺服打分用的 MLLM」,仓库文档写得比较细:

  • 外部 SpectraReward:推荐把奖励 MLLM 单独部署在专用 GPU 上(远程服务器),训练侧用 SPECTRAREWARD_URL 指过去。scripts/serve_spectrareward.sh Qwen/Qwen3-VL-30B-A3B-Instruct 0.0.0.0 18090 8,最后一个参数是数据并行副本数——每张卡加载一份完整奖励 MLLM,提吞吐但不把单模型切片跨卡。奖励服务器收的是未认证 pickle 载荷,只能跑在可信内网。
  • 在进程内兜底(不设 SPECTRAREWARD_URL):奖励 MLLM 直接加载进训练进程,同步打分、不能和下一次 rollout 重叠,小奖励模型可以、大的会 OOM,此时得换小模型(如 Qwen2.5-VL-7B-Instruct)。
  • 多节点参考拓扑(来自 AlphaGRPO README):8 节点 × 8 A100,每节点 1 卡伺服奖励模型、7 卡训练;GPU 数变了要反比例调 gradient_accumulation_steps 保持 batch size。
  • 主实验的具体规模见上:32 张 A100。Self-SpectraReward 因为复用 BAGEL 自身理解分支,不需要额外奖励服务器和额外模型,这在算力账上是实打实的省。
  • 兼容契约:外部打分器支持能用 HF AutoModelForImageTextToText 加载、processor 提供多模态 apply_chat_template、前向返回 next-token logits 的模型;已测 Gemma3 / InternVL3.5 / Qwen3-VL。

评测 benchmark

主表(BAGEL 为策略,均在 5 个 OOD 基准上评,训练在 512 分辨率、也测 1024 推理),核心数字:

  • 512 推理:SpectraReward 把 BAGEL 的 TIIF 短/长 prompt 提 +10.0/+6.2(BAGEL 75.2/78.6 → 85.2/84.8),Self-SpectraReward 到 85.1/84.3;GenEval 上 SpectraReward 88.3、Self-SpectraReward 89.5(BAGEL 84.0,+5.5);DPG-Bench SpectraReward 88.1、Self 87.7(BAGEL 85.0);GenEval2 SpectraReward 31.8、Self 33.9(BAGEL 23.6)。
  • 相对强基线 AlphaGRPO:SpectraReward TIIF 短/长 +6.3/+5.3、GenEval +3.3;Self-SpectraReward +6.2/+4.8、GenEval +4.5。
  • 512 训练迁移到 1024 推理仍有效:Self-SpectraReward GenEval 到 89.8、GenEval2 到 34.3,WISE overall 0.76(带 CoT),均超 BAGEL 和 AlphaGRPO。
  • GenEval 细分(512):涨幅集中在组合类——counting、position、color-attribution。Self-SpectraReward 各子项 98.4/97.7/84.4/93.6/81.5/81.5,overall 89.5,两个分辨率都拿最高 overall。
  • WISE(世界知识/语义推理):不带 CoT 时三方接近(BAGEL 0.52、SpectraReward 0.53、Self 0.52);带 self-CoT 后拉开,Self-SpectraReward w/ Self-CoT overall 0.76(BAGEL w/ Self-CoT 0.70、AlphaGRPO w/ Self-CoT 0.71),在 space/biology/physics/chemistry 多个知识域领先。作者解读:SpectraReward 提升了指令跟随,也帮模型更好地响应 CoT 文本。

奖励骨干消融(Table 2,核心结论):

  • 跨扩散模型跨家族一致提升:SD3.5-M 上用 Qwen3-VL-8B 当奖励,GenEval 79.8→85.7、TIIF 74.0/73.2→84.4/84.6;BAGEL 上 Gemma3、InternVL3.5、Qwen3-VL 各家族都比基线好。
  • 对齐可以抵得上规模:BAGEL 自身分支(Self-SpectraReward)GenEval 89.5,是所有奖励里最高,追平最强的 30B 级外部奖励、且超过 30× 更大的 Qwen3-VL-235B-A22B(后者 86.8)。
  • 规模有用但非单调:Qwen3-VL 8B→30B(88.3)各项都涨,再到 235B 明显回落;Gemma3 4B→12B GenEval 涨但 TIIF 不一致。作者猜大 MLLM 把更多容量给了高级视觉推理/指令跟随,而 SpectraReward 需要的「图像条件 captioning」能力在中等规模(~30B)就饱和了。
  • 预训练阶段模型更适合当奖励骨干:Gemma3-12B-Pretrain 在三个基准上都稳超 Gemma3-12B-Instruct——预训练的大规模图文对齐目标更贴 SpectraReward 的奖励函数,而指令微调偏向高级视觉任务反而不那么对口。

RL 算法/奖励模型对比(Table 3):固定奖励为 Self-SpectraReward,AWM 优于 FlowGRPO、DiffusionNFT(AWM+Self GenEval 89.5);在可比 RL 训练下,Self-SpectraReward 也超过 HPSv3、UnifiedReward、VIEScore、DVReward 这些前作奖励。

消融补充:屏蔽 EOS 提 GenEval(88.5→89.5)且 TIIF 持平;Self-SpectraReward 带 VAE 特征优于不带(GenEval 87.8→89.5、TIIF-S 83.6→85.1)。

创新点与影响

  • 核心新点是一个极简、免训练、开箱即用的奖励:把「图 → 平均 prompt log 似然」当奖励,直接调用 MLLM 最基础的图文对齐能力,绕过偏好标注、奖励模型微调、标量裁判、问题分解四种成本。逐 token 似然还自带可解释性(语义谱能定位是哪个 prompt 要求没被满足)。
  • Self-SpectraReward 把「奖励-策略分布对齐」这件事显式化:UMM 用自己的理解分支给自己的生成打分,因共享 tokenizer/视觉编码器/预训练分布而天然校准,形成不依赖任何外部模型的闭环自改进。实证上一个约 7B 的自奖励能压过 235B 外部奖励,给出「奖励质量不只由规模决定、reward-policy alignment 才是关键」的结论。
  • 对生态的意义:SpectraReward 大幅降低了做文生图 RL 的门槛(不用标注、不用训奖励模型),代码、配置、LoRA 检查点都在 huangrh99/AlphaGRPO(Apache-2.0)放出,兼容 Gemma3/InternVL3.5/Qwen3-VL 等主流 MLLM。对统一多模态模型(BAGEL 这类)尤其友好——理解能力直接反哺生成,是一条低成本自进化路径。
  • 已知局限(作者自述):奖励质量受限于所选奖励骨干的视觉理解/推理能力;似然只算在输入 prompt 上,主要抓「显式语义对齐」,对文字没直说的隐含视觉含义(如「热咖啡」隐含冒热气)会欠强调,可用更强世界知识的骨干或扩展到 reasoning T2I 缓解;SpectraReward 不直接优化美学、安全,需要与专门的奖励模型组合。Self-SpectraReward 的闭环还可能让模型过度对齐自己的理解分支,未必符合人类偏好或安全要求,作者建议配合安全过滤、偏见审计、人评使用。

原始链接

一手源存档(sources/)