你有没有玩过那种给AI下指令画图的工具,一开始图片特别惊艳,越往后调整参数,画面反而越来越假,颜色浓得发腻,细节却开始糊成一团?
这不是你的错觉,这是一个正儿八经的科研难题,而且困扰了整个领域好几年。
有一篇论文专门研究这个问题,论文叫iADD,研究者来自尼泊尔的Pulchowk Campus、NAAMII以及保加利亚索菲亚大学的INSAIT研究所。他们发现了一个有点反直觉的事实,之前被广泛认可的一个方法论,其实在数学上是说不通的,而这个"说不通"恰恰解释了为什么很多AI画图模型训练到后期会崩成卡通画。
这篇论文讲了什么故事,我们慢慢捋。
一件让人上头又头疼的事:对齐和多样性
先说清楚问题是什么。
现在主流的AI画图工具,比如Stable Diffusion,底层用的是扩散模型。
扩散模型:一种AI图像生成技术,原理是先把一张图片一步步加噪声直到变成纯噪点,再训练一个网络学会把噪点一步步还原成图片,生成新图像时就是从纯噪点开始反向"去噪"出一张图。
这套方法生成图片质量很高,也很多样化,但有个短板,它没法精确按照你的指令来。你让它画"一只棕色的香蕉",它可能给你一根发黑的烂香蕉,因为训练数据里棕色香蕉本来就少,模型压根没怎么见过。
为了解决这个问题,研究者们开始用强化学习去微调扩散模型,让它按照某个"奖励函数"的指示去优化,奖励函数打分越高,说明生成结果越符合你的要求。这套路子里最出名的方法叫DDPO。
DDPO:Denoising Diffusion Policy Optimization的缩写,一种把扩散模型的去噪过程当作强化学习问题来训练的方法,通过不断调整每一步去噪的参数,让最终生成的图片拿到更高的奖励分数。
但DDPO训练久了会出现一个诡异现象:奖励分数蹭蹭往上涨,图片却越来越假,越来越像同一个模子刻出来的。论文里举了个例子,"一只狗在洗碗"这个提示词,训练到后期生成的狗全都是过饱和、卡通化的画风,失去了照片级的真实感。
这个现象在学术圈被称为对齐多样性权衡:模型越努力去满足你的文字要求(对齐),它能画出的花样就越少(多样性下降),这两者像拔河一样互相拽着。
这就好比你让一个厨师按照食谱精确复刻一道菜,他确实能做到和照片一模一样,但代价是失去了临场发挥、根据食材新鲜度调整火候的能力。如果不设计好约束机制,厨师要么完全不按食谱来(对齐差),要么死守食谱导致每次做出来的菜都一个味道,毫无风味层次(多样性差)。怎么让厨师既听话又有分寸感,这正是这篇论文要解决的问题。
一个被推翻的直觉:到底该改哪一步
扩散模型生成图片是分很多步完成的,比如从纯噪点到清晰图片要走20步,每一步叫一个时间步(timestep)。
时间步:扩散模型生成图像过程中的离散阶段标记,从充满噪声的起点(比如第20步)逐渐走到几乎无噪声的终点(第0步),每一步都对图像做一点点修正。
那么问题来了,用强化学习微调的时候,是应该改早期的时间步(刚开始去噪,图片还很模糊的阶段),还是改后期的时间步(图片已经基本成型,只剩细节微调的阶段)?
之前有篇很有影响力的论文,叫B?-DiffuRL,给出的答案是只改后期时间步。他们的直觉听起来挺合理:既然后期图片已经基本定型,这时候的奖励反馈最直接最可靠,早期图片还是一团噪点,这时候改参数等于是在瞎猜。
iADD这篇论文做了件挺大胆的事,他们用数学推导证明,这个广为接受的直觉其实是反的。
论文提出了两条定理。第一条叫生成触达能力(Generative Reach),大意是说,如果你的训练预算只够改固定数量的时间步,那么从全程均匀抽取时间步来改,比起只盯着后期改,能对最终图片产生更大的影响力。原因在于扩散模型的去噪公式里有个系数,早期噪声大的时候这个系数本身就大,一点点微调都会被放大成很大的改变,到了后期这个系数已经接近于零,你再怎么使劲改,传导到最终图片上的效果都是微弱的。
这就像你往一杯水里滴墨水,滴在水还没怎么搅动的时候,一滴墨水能让整杯水的颜色产生明显变化,等水快要澄清定型了你再滴,基本只会在局部留个小黑点,翻不起什么浪花。早期改参数,就是在"水还没定型"的阶段动手,杠杆效应最大。
第二条定理更有意思,叫体积保持(Volume Preservation)。这里要先解释一个概念。
雅可比矩阵的对数行列式(log-determinant of Jacobian):一种数学工具,用来衡量一个变换过程对"概率空间体积"的压缩或扩张程度,数值越负,说明这个变换把原本丰富多样的分布挤压得越狭窄。
论文证明,如果你把所有时间步都拿去做强化学习更新(也就是全量更新),整个生成过程对原始数据分布的"体积"压缩会比只更新稀疏的一部分时间步严重得多。换句话说,改得越多,模型越容易找到一条"捷径",用极度简化、单一的生成模式去讨好奖励函数,这就是模式坍塌(mode collapse)的根源。
模式坍塌:模型生成的样本越来越单一、重复,失去了原本应有的多样性,常见于强化学习或对抗训练中模型为了拿高分走捷径的现象。
这两条定理放在一起看,其实揭示了一个很优雅的平衡点,早期的时间步杠杆效应大,所以要改,但不能全改,要稀疏地改,这样既能让模型大跨步地探索到符合奖励的方向,又不会把整个生成空间压缩成一条窄道。
论文还做了实证验证,不是只停留在数学推导。他们实际测量了训练过程中雅可比矩阵的对数行列式,稀疏更新策略得到的数值是负25963,密集更新策略是负27568,前者明显更接近零,说明体积保留得更好,这个差距在24组测试样本的统计检验里达到了3.7个标准误差,统计上相当显著。
循序渐进:从少量到全部的训练课表
既然早期时间步要改,但又不能一次改太多,那具体怎么操作?
论文给出的方案叫增量时间步课程训练(incremental timestep curriculum),听起来复杂,其实思路很朴素。
训练分成几个阶段,第一阶段只允许改5个时间步,第二阶段放宽到10个,第三阶段15个,第四阶段20个全部放开。每个阶段训练固定的轮数之后,再往下一阶段推进。
这就像学骑自行车,一开始教练不会把所有东西一股脑塞给你,先让你练平衡感,再加上刹车动作,最后才是变速和转弯的综合技巧。如果一上来就让你同时学会所有动作,大概率是手忙脚乱什么都学不精,甚至直接摔了,就像扩散模型全量更新时容易"学歪"一样。先用少量自由度探索大方向,站稳了脚跟之后再逐步解锁更多细节的调整空间,这是论文从数学证明直接推导出来的训练策略,不是拍脑袋想出来的经验法则。
论文管这个思路叫"生成触达能力的时间课程",本质上是把前面两条定理缝合在了一起,早期大步探索,后期精细打磨。
每一条路都有机会:费曼卡茨引导
光改时间步分配还不够,论文还解决了另一个老大难问题,稀疏终端奖励。
稀疏终端奖励:强化学习里,奖励信号只在整个生成轨迹完全走完(也就是拿到最终图片)之后才给出一次,中间过程完全没有反馈,这种设计会让模型学习效率很低,因为它很难知道中途哪一步走对了哪一步走错了。
想象你在玩一个闯关游戏,只有通关之后才会告诉你总分,游戏过程中每一步操作都是摸黑进行,完全不知道刚才那个操作是加分还是减分。你当然能靠不断试错慢慢摸索出规律,但效率极低,如果能在每个关卡结束时就给个小提示,你肯定能更快找到正确路线。扩散模型面对的正是这种摸黑闯关的困境。
为了解决这个问题,论文借用了一套叫费曼卡茨(Feynman-Kac)的数学理论,这套理论原本是物理学里用来处理路径积分问题的工具,后来被改造用于序贯蒙特卡洛采样。
论文的做法是,在训练过程中同时维护多条生成路径(称为粒子),每隔几步就暂停下来,给每条路径打一个阶段性的"潜力分",这个分数基于DDIM公式能直接从中间噪声状态估算出最终图片大概会长什么样,再用奖励函数给这个预估结果打分。
DDIM:Denoising Diffusion Implicit Models的缩写,一种扩散模型的采样方式,它的特别之处在于,在任意一个中间时间步,都可以直接计算出一个"预估的最终清晰图片",不用真的走完全部步骤。
拿到潜力分之后,论文做了两件事。第一件叫FK引导(FK Guidance),表现差的路径直接被淘汰,不再继续往下走,省下计算资源。第二件叫FK分支(FK Branching),表现好的路径会被复制出多个分身,让它们各自继续往不同方向探索。
这套组合拳有点像风投机构筛选创业项目,定期检查每个项目的阶段性进展,势头不好的果断砍掉止损,势头好的追加投资让它多长出几个分支方向去试探市场,而不是一开始就把所有钱押在一个项目上等到最后才知道成败。如果不做这种中途筛选,投资人只能等所有项目全部跑完才知道哪个赚钱,这中间浪费的资源和时间是巨大的。
论文里有张示意图,画得挺直观,四条粒子路径从同一个噪声起点出发,走到某个检查点,潜力值高的那条被加粗标记,潜力低的被打叉淘汰,后面还有粒子因为分支机制一分为二,继续往前走。整个过程像一棵树在动态修剪和生长。
三场硬仗:图片生成、灭点修正、室内场景布局
说了这么多理论,这套方法到底管不管用,论文在三个完全不同的任务上做了测试。
第一个任务是常规的文字生成图片,用的底座模型是Stable Diffusion v1.4,微调方式是LoRA。
LoRA:Low-Rank Adaptation的缩写,一种让大模型微调变得更省资源的技术,不用改动模型里全部的参数,只插入少量新的小矩阵去学习变化量,训练速度快、占用显存少。
评测提示词分了三类,动物搭配动作的组合(比如"一只鲸鱼骑自行车")、颜色和水果的罕见搭配(比如"棕色香蕉")、以及空间位置关系(比如"杯子放在T恤上")。
结果显示,iADD在CLIP分数(衡量文字和图片匹配程度的指标)和Inception Score(衡量图片质量和多样性的指标)这两项上都比DDPO和B?-DiffuRL表现更好,具体数字是CLIP分数0.3553,Inception Score1.3241,而DDPO分别是0.3417和1.2786,B?-DiffuRL是0.3452和1.2728。
CLIP分数:一种用CLIP模型计算出的图片和文字描述之间语义相似度的打分方式,分数越高说明生成图片越贴合文字描述。
更关键的指标是罕见度(Rarity),这个指标专门衡量模型在处理那些训练数据里本来就稀少的组合时表现如何。iADD在这项上拿到66.85%,而DDPO和B?-DiffuRL分别只有24.81%和24.22%,差距超过40个百分点。这说明iADD在处理"棕色香蕉"这种罕见组合时明显更靠谱,不容易翻车。
第二个任务是灭点修正,听起来有点专业,其实说的是图片里那些应该汇聚到一个点的直线(比如铁轨、走廊、隧道)是不是真的严丝合缝地汇聚到了同一个点上,这是衡量图片几何结构合理性的一个指标。
论文专门设计了一个基于线段检测算法的奖励函数,去评估生成图片的透视关系是否正确。iADD在这项任务上拿到95.11%的罕见度评分,而DDPO是21.33%,B?-DiffuRL是31.11%,差距非常悬殊。
第三个任务更硬核,是3D室内场景生成,用的底座模型叫MiDiffusion,数据集是3D-FRONT。这个任务要生成的不是一张平面图片,而是一整套家具摆放方案,包括每件家具的位置、朝向、尺寸,还要满足"不能互相穿模碰撞"这种物理约束。
iADD在碰撞率这项指标上拿到59.20%,比DDPO的63.39%和B?-DiffuRL的64.06%都要低,数字越低说明家具摆放越合理,穿模碰撞越少。
三场测试横跨2D图片、几何结构、3D空间布局,场景差异很大,但iADD都稳定跑赢了对比方法,这说明论文提出的"早期时间步课程训练加费曼卡茨路径引导"这套组合不是针对某个特定任务量身定做的小技巧,而是一套具有普适性的训练范式。
拆开看每个零件:消融实验讲了什么
一篇好论文不会只给你一个总分,还得告诉你每个部件各自贡献了多少。iADD做了细致的消融实验。
研究者先对比了普通DDPO(全量20步更新)和稀疏更新版DDPO(只更新任意5步),结果印证了前面那条体积保持定理,稀疏更新版本的多样性确实更高。
接着他们对比了"只改后期时间步"和"任意改N个时间步"这两种分支策略,结果再次验证了生成触达能力定理,任意位置更新的Inception Score持续高于只改后期的方案,说明B?-DiffuRL当年的设计思路确实留有改进空间。
然后是增量课程训练的消融,对比"只用FK引导"和"FK引导加增量课程"两种配置,结果显示增量课程确实能同时提升对齐度和多样性,研究者推测这是因为奖励信号被更早地传导到了早期时间步,缓解了稀疏奖励带来的探索困境。
最后是FK引导和FK分支各自的贡献,论文发现单纯加FK引导主要提升对齐和罕见度,而加上FK分支之后多样性会进一步提升,这符合直觉,因为分支机制本身就是在复制高潜力路径去探索更多可能性,天然有利于保持样本的丰富程度。
这几组实验放在一起看,像是在拆解一台机器,确认每个零件拆掉之后性能会掉多少,这样才能证明不是某一个零件单独立功,而是整套设计协同作用的结果。
论文还特意做了一次人类评测,找了40名独立评审员,对30个提示词生成的图片做盲选,一共产生4800条判断,结果iADD在60.8%的比较中被评为最佳,远超DDPO的12.2%和B?-DiffuRL的15.2%。这个数字说明,前面那些冷冰冰的指标提升,落到人眼主观感受上也是能被明显察觉到的。
代价与边界:没有免费的午餐
这套方法不是没有代价。论文很坦诚地报告了训练时间的开销,要达到同样的CLIP分数0.388,DDPO只需要2.55个GPU小时,而完整版iADD(带分支的FK加增量课程)需要7.43个GPU小时,接近三倍的时间成本。
这个开销主要来自FK粒子采样过程中反复评估奖励函数的计算量。好在论文也指出,训练完成之后,推理阶段的成本和普通DDPO是一样的,额外开销只发生在训练期间,不会拖累最终用户使用模型的速度。
另外论文也承认了一个局限,现在的奖励估算是基于中间噪声状态反推出的"预估清晰图"来计算的,这个预估在早期时间步(噪声还很大的时候)并不总是可靠,尤其是在3D场景生成这种需要精确几何属性(比如物体尺寸和位置)的任务里,这种估算误差会限制方法的提升空间。
研究者还提到CLIP打分本身存在的漏洞,比如"鸡在下棋"这个提示词,CLIP可能会给一张"熟鸡肉旁边放着棋盘"的图片打高分,尽管这张图片语义上根本不对。这提醒我们,强化学习微调的效果终究受限于奖励函数本身的质量,再精妙的训练策略也补不齐一个有偏差的裁判。
Q&A
Q1:iADD解决的核心问题是什么?
A:iADD要解决的是扩散模型用强化学习微调时常见的对齐多样性权衡问题,模型越努力按照文字提示生成精确图片,画面就越容易变得单一、卡通化、失真,iADD通过早期稀疏时间步更新加增量训练课程,再配合费曼卡茨路径引导和分支机制,让模型在提升对齐度的同时还能保住原本的多样性和真实感。
Q2:iADD和之前的B?-DiffuRL方法有什么区别?
A:B?-DiffuRL认为应该只更新扩散模型去噪过程中后期的时间步,因为那时图片已经基本成型奖励反馈更可靠。iADD用数学定理证明这个直觉其实是反的,早期时间步的杠杆效应更大,同时提出稀疏更新加增量课程的策略,既保留早期探索的高影响力又避免全量更新导致的模式坍塌。
Q3:iADD在哪些任务上做了测试,效果如何?
A:iADD在三个任务上做了测试,常规文字生成图片、图片灭点几何结构修正、3D室内场景家具布局生成。结果显示iADD在CLIP分数、Inception Score、罕见提示词成功率等指标上均优于DDPO和B?-DiffuRL,同时在人类评测中获得60.8%的偏好票,远高于对比方法。







