AI训练AI:为何合成图片训出的“数字分身”越来越假?
你有没有发现过这样的情况:复印一份文件,再拿那份复印件去复印,重复几次之后,文字会变得模糊发虚,颜色会越来越怪。这是复印机的老笨拙,没想到现在最先进的AI图像生成模型,居然也会犯同样的毛病。这篇论文讲的就是这件事。研究者们发现,当你用AI生成的图片去训练另一个AI模型,让它学会"记住"某个特定主体(比如你家...
复印文件再拿复印件去复印,重复几轮,字就发虚,颜色也走样。这是老式复印机的毛病。可如今最先进的AI图像生成模型,竟然也栽在同一个坑里。
有篇论文专门研究这件事。研究者发现,用AI生成的图片去训练另一个AI模型,让它学会"记住"某个特定主体(比如你家的狗、某个背包)的模样,出来的结果很怪:颜色过饱和,画面里还冒出一堆莫名其妙的高频噪点和纹理,像被PS过度锐化过。眼下这个现象格外要紧,因为越来越多人训练个性化AI模型时,喂的已不是手机拍的照片,而是另一个AI模型生成的图片,比如把一张真照片"编辑"成各种变体。论文想搞清楚:"AI喂AI"这套做法,究竟卡在哪一步,还能不能补救。
一步步揪出真正的罪魁祸首
研究团队设计了一个挺巧妙的对照实验来找根源。他们拿同一个基础模型做了两次个性化微调(DreamBooth)——这种训练方法就是给AI喂几张照片,让它"记住"特定主体的样子,比如喂5张你家狗的照片,之后生成图片就能准确还原这只狗的长相。一次用真实照片训练,得到模型A(论文里叫Mreal);另一次拿模型A生成的合成图片去训练,得到模型B(论文里叫Msyn)。
两个模型只有训练数据的来源不同,其余全部一致:同样的基础模型、同样的训练流程、同样的超参数。这样一来,两者生成结果若有差异,原因只能是训练数据的"出身"不同,排除了别的可能。
结果印证了开头说的现象:提示词相同、随机种子相同,模型A生成的图片干净清爽,模型B生成的图片色彩炸裂、纹理过载,明显"翻车"了。
问题出在哪?研究者把目光聚焦到一个叫CFG的关键机制上。
CFG(Classifier-Free Guidance,无分类器引导)是一种让AI生成图片时更贴合文字描述的技术。它让模型分别算出"带提示词的预测"和"不带提示词的预测",再把两者的差值放大后加回去。这个差值就是"引导方向",决定图片朝着提示词描述的方向走多远。
拿开车来类比,CFG相当于打方向盘时施加的修正量。你要往东走(也就是提示词指的方向),车子本身却容易偏向东北(没提示词时的预测),于是方向盘得往右带一点(这就是引导的差值),车才能正对东边。研究者发现,模型B用合成图片训练之后,这个"方向盘修正量"被莫名放大了,油门给得太狠,车就跑偏了。
四个发现,层层剥开真相
研究团队做了四组细致的测量,一步步把问题锁定得越来越精确。
第一个发现:引导差值的放大,根源在"角度",不在"长度"。
拆开CFG的数学结构来看,引导差值多大,取决于三样东西:无提示词预测的长度、带提示词预测与它的比例,还有两者之间的夹角。研究者发现,前两样基本没动,只有夹角,模型B比模型A大了将近30%到50%。换句话说,症结不在某个预测"跑得更远",而在两个预测"指的方向岔得更开",夹角一大,差值就被撑起来了。好比两个人各拽绳子一头:方向几乎重合时,绳子上的合力不大;两人越岔越开,哪怕各使的劲没变,合出来的那股"偏转力"也会越来越猛。模型B的毛病是两股预测力"分家"更厉害,并非哪一股本身变大了。看不清这一层,一味调低CFG整体强度,等于两人同时松劲,合力是小了,可图片对提示词的服从度也跟着降,该有的细节一并丢掉。
第二个发现:这种"夹角撑大"的现象,跟提示词和主体的语义距离有关。
提示词里带上那个唯一的身份标识符(比如特定代号"[V] dog")时,夹角被撑大的幅度最明显;提示词只写主体所属的类别名(比如"a dog",不带身份标识符),撑大的程度也几乎一样;换成训练时没见过的相近类别(比如"a cat"),撑大幅度减半;换成毫不相干的词(比如沙滩、建筑、汽车),基本看不出撑大,直到采样最后几步才略微露头。
这个规律说明,模型不是"坏了",而是它对主体及其"语义邻居"的理解出了偏差,离主体越远,受到的污染越少。
第三个发现有些反直觉:"夹角撑大"这件事,并非只在模型B真正出图的那条路径上才看得到。研究者专门做了个对照测试:不让两个模型各自采样,改用模型B自己的训练图片加噪声,让模型B和基础模型在完全一致的输入状态下做预测,再比较两者引导差值的差别。结果,即便在这种"最该表现忠实"的情形里,模型B的引导差值仍比参照基准大。
可见问题不在采样路径带来的偶然偏差,而是模型自己在训练中学到了某种系统性的扭曲。研究者还试过别的重训办法,比如用更低的CFG强度去生成训练图片,或者补上DreamBooth常用的"先验保留损失"(一种防止模型把整个类别都带偏的正则化手段),可这毛病照样顽固,怎么都消不掉。
第四个发现关于频率:这种引导放大,在高频细节上最严重,而且随着采样步数推进,强度还会动态变化。
研究者把图片的频谱切成从低频到高频的46个频段,逐个频段测量模型B和模型A的引导差值能量比。结果发现,低频区域(对应图片的大轮廓、整体色调)基本正常,高频区域(对应纹理细节、边缘锐度)的能量能飙到好几倍,并且高频区域的"失控高峰"出现得比中低频更早。每个频段都有自己独立的时间变化曲线,没有一个统一的规律能用一个固定参数概括。
这就解释了为什么模型B生成的图片看起来特别"脏":过饱和的色彩和过度锐化的纹理,恰恰是高频信息被过度放大的典型症状。
研究者把纠偏的希望寄托在"老家长"的记忆上,由此提出了ReGain方法。
问题被揪出来之后,对应的解法也随之出炉,名字叫ReGain。这个命名直接道出了思路:把正确的引导(Gain)强度恢复(Restore)回来。
ReGain最巧妙的一处,是它压根不需要知道训练数据从哪来——也就是那组真实照片——它另找了一个更省事的参照物:基础模型自己。
道理不难捋:模型B由基础模型微调而来,基础模型从未接触过那些合成图片,它对这一主体所属"类别"的理解还是干净的,没被污染。于是,只要测出模型B在各个频段、各个采样步骤上比基础模型"膨胀"了几倍,就能反推出一个"该缩多少"的修正系数。
落地时分成两步走。
头一步叫校准,只做一回。ReGain让模型B与基础模型各自在模型B训练图片的加噪版本上跑一次预测,一个喂主体的专属提示词,另一个喂该主体所属的通用类别名。随后比对两者在每个频段、每个步骤上的引导能量,算出一个"增益"系数——说到底,就是"基础模型的引导强度除以模型B的引导强度,再开根号"。
由于每个具体频段加步骤的组合测出来的数值都带噪声(校准毕竟只用了5张训练图片),ReGain会把那些零散数字压成几个连成片的矩形区块,每块共用一个固定增益值。主要规律留住了,细碎干扰也清掉了。
第二步是把修正用到实际生成环节。不过这里有个门道:修正只落在"主体所在的区域"内,背景照旧生成,一点不受牵连。
至于"主体所在的区域"怎么找,ReGain直接借用了现成的注意力图分割技术。
所谓注意力图(Attention Map),指的是AI模型处理图片时,会给每个文字token(比如"狗"这个词)在图像各处打一个"关注度"分数,分数高的位置往往就是这个词所指物体待的地方。
ReGain把提示词里属于主体的token(身份标识符和类别名)和属于场景背景的token(像"沙滩""雪地"这类环境描述词)分别拎出来,逐像素比哪一组关注度更高,胜出的那一组就"拿下"这个像素,该像素随之划入对应区域。
这种"分区域纠偏"并非多此一举。研究者做过专门的对照:假如不分区域、把修正一股脑铺到整张图(背景也算上),衡量图文匹配度的CLIP-T指标会明显下滑,甚至跌得比完全不纠正还低。
好比修一台偶尔走音的钢琴:某几个琴键音色发闷,该做的是只调那几个键,而不是把所有琴键朝同一个方向拧。不分青红皂白地统一调整,原本正常的键也会被拧坏,整台琴的协调性只会更糟。ReGain只在主体区域下手,正是为了避免"误伤"背景,把提示词本该表达的场景信息保住。
看实验结果:一半以上的差距能被补回来。
研究团队拿DreamBooth数据集的30个主体,按四种设置做了完整测试:Stable Diffusion v1.5上的标准DreamBooth微调和LoRA微调(一种只训练少量参数的轻量级微调方法),外加SDXL和SD 3.5上的LoRA微调。
Stable Diffusion v1.5、SDXL、SD 3.5都是不同版本、不同规模的文生图基础模型,一代比一代参数更大、出图质量更高,这几年文生图领域挑大梁的就是它们。
LoRA(Low-Rank Adaptation)是给大模型做微调的一种省资源办法:不动模型的全部参数,只插进少量额外的小参数,训练又快又省显存。
效果好坏靠几个指标来衡量:主体一致性由DINO、DINOv2和CLIP-I三种图像特征提取器算出生成图片与真实参考照片的相似度;提示词一致性则看CLIP-T,衡量生成图片与文字描述合不合拍。
在Stable Diffusion v1.5的标准DreamBooth设置下,用合成图片训练的模型B,DINO指标从模型A的0.681跌到0.611,少了7个百分点;套上ReGain修正后回升至0.647,等于补回了51%的差距。DINOv2补回的比例更高,有64%。CLIP-I也补回了54%。更要紧的是,提示词一致性基本没受牵连,CLIP-T的变动幅度在0.001到0.004之间,几乎可以忽略。
LoRA微调设置下的成绩更抢眼:三个主体一致性指标都补回了约60%的差距,CLIP-T反倒涨了0.004。
SDXL和SD 3.5上,补回比例落在20%到46%之间,不如v1.5那么夸张,但仍是实打实的正向改善。
研究者还拉来三个现有的引导调整方法做对比:S-CFG(按语义区域重新调整引导)、CFG++(用无条件预测重新给每一步去噪)、FDG(用不同权重分别引导低频和高频)。结果这三个方法在三个主体一致性指标上,表现都与原始"翻车"版本持平甚至更差,没一个真正解决问题。FDG稍好一些,可也只能补回最多六分之一的差距,还搭上了提示词一致性。
团队还直接量了图片本身的"过度引导"症状:饱和度、对比度和高频能量占比。在主体区域内,未修正的模型B饱和度比真实照片训练的模型高出18%,对比度高出22%,高频能量超出13%。用上ReGain后,饱和度几乎完全回到正常(补回85%),对比度补回一半,高频能量补回三分之一。这些数字从另一面说明,ReGain确实是对症下药,不是瞎猫碰上死耗子。
再看对照实验:那些简单粗暴的办法为什么行不通。
能不能拿更省事的办法替掉ReGain?研究者另外试了两种“土办法”。
头一种是直接把CFG整体强度往下压,从7.5降到5.0或者3.0。DINO指标倒是回来了一些,可CLIP-T跟着往下掉,0.286一路滑到0.281,肉眼也能看出提示词里要求的配饰、场景细节在变淡、在消失。这跟前面那个方向盘的比方对得上:手上力道一松,车是不怎么飘了,可也没法稳稳朝目标方向开。
第二种办法是APG,一种把引导方向中与条件预测平行的分量去掉的通用做法。这一回是矫枉过正:饱和度从真实照片训练模型的0.301直接掉到0.240,画面发白、发灰,CLIP-T也降了0.006。
三个指标同时朝“真实照片训练模型”靠、又没有一个矫枉过正的,只有ReGain。说到底,这个问题要的是一把够细的刀,分频段、分区域去修,一刀切的操作顶不上。
写在后面
通读下来,最出人意料的地方是研究者没停在“合成数据训练效果差”这种大而化之的说法上,而是一路追到数学公式里某个具体的夹角。这股刨根问底的劲,让论文的说服力和那种“实验显示变差了,我们猜大概是某某原因”的泛泛之谈完全不在一个层面。
还有个细节值得单拎出来:这个“夹角撑大”的现象,连模型在训练图片上的表现都逃不掉。也就是说,毛病长在模型学到的参数里,不是采样时碰巧出的偏差。用AI生成的数据去训AI,哪怕只走一轮,模型也已经悄悄学进了某种本不该学的扭曲模式,而且会稳稳刻进权重,光换个采样方式补不回来。
论文还提到一个有意思的现象:不同主体“受灾”的样子并不一样。附录里30个主体的对照实验中,rc_car(遥控车)这个主体就完全没出现夹角撑大。这多少暗示,问题可能跟主体自身的视觉复杂度、材质纹理有关——毛绒玩具、动物皮毛这类质感复杂、细节丰富的主体,更容易在高频区域出岔子;结构简单、表面光滑的反而躲过去了。论文没往这个方向深挖,但这确实是个该继续追问的点。
放到更大的范围看,AI生成的内容被拿去训练下一代AI模型,如今已经不算新鲜事。这篇论文只盯住“个性化微调”这么一个窄场景,可它揭出的那套“细微扭曲被放大、再被固化”的机制,搁在规模更大的训练链条里,恐怕同样值得警惕。
Q&A
Q1:ReGain是什么?A:它不用重新训练,在生成图片时直接套用就行。做法是拿模型微调前的基础模型当参照,测出每个频段、每个采样步骤上引导强度被放大了多少,再按比例缩回去,专门修合成图片训练带来的主体失真。
Q2:拿AI生成的图片去训练AI模型,画质为什么会变差?A:研究给出的答案是,CFG引导机制里条件预测与无条件预测之间的夹角会变大,引导差值被放大,而且集中在高频细节区域,表现出来就是色彩过度饱和、画面纹理过度锐化。
Q3:ReGain效果如何,能彻底解决吗?A:在Stable Diffusion v1.5上,它能补回51%到64%的主体一致性差距;SDXL和SD 3.5上补回20%到46%,同时文字提示的匹配度几乎不受影响。不过论文也承认,它只能拿基础模型做不完美的参照,没法完全回到真实照片训练的水平。