港科大团队提出Salt++:一招化解因果生成与几步蒸馏的对立
sina qqZone renren ydCloud 0

那些能一边说话一边出画面的AI视频系统,为什么看上去总慢半拍,画质也差那么点意思?
背后是一个工程上的死结。要实时,模型就得像说评书,说一段看一段,不能等整部片子拍完再播;要快,每一步计算都得省着来,不能像传统扩散模型那样算几十遍才出一帧。可这两个目标凑一块儿,常常谁也成全不了谁。
香港科技大学、Vivix Group等机构的论文提出了一个叫Salt++的训练方法,专门来解这个死结。它盯住的,是把因果生成和几步蒸馏拧在一起时,究竟哪里出了毛病。
先看清难在哪儿。
要弄懂Salt++解决的是什么,得先明白两个概念。
**扩散模型**:一种生成式AI技术,从一团随机噪声出发,靠反复去噪一步步还原出清晰的图像或视频。传统扩散模型想效果好,常要算几十步甚至上百步,生成一张图等上好几秒也就不奇怪了。
**因果生成(Autoregressive,简称AR)**:双向模型能两头看,因果模型只能看"过去",不能偷看"未来"。好比你现在说话,只能根据已经说出口的话来组织接下来的内容,没法先知道自己十分钟后要说什么再倒着编排。流式输出的关键正在这里:模型必须按时间顺序一块一块生成,才能边生成边播放。
两件事摆在一起,问题就冒出来了。LTX-2、HunyuanVideo这些目前主流的视频生成模型,大多用双向注意力机制,生成第5秒画面时,模型其实"偷看"了后面第8秒、第10秒会发生什么。这样出来的视频确实流畅自然,代价是得等整段算完才能开始播。
要把双向模型改成能流式输出的因果模型,还得同时把几十步计算压到几步,原有训练方法就开始露馅。论文点了两个被忽视的痛点。
头一个痛点和"学习"有关。训练因果模型常用**教师强制(Teacher Forcing)**:给模型看干净的历史画面,让它预测下一步的噪声版本。这套路听着没毛病,问题是模型只能靠"预测噪声"这一个间接信号去学怎么理解历史上下文,没人专门告诉它"你该从历史里提炼出什么样的语义信息"。
这就像教新员工写周报,你只说"写完我打分",却从不讲评分标准里看重哪些具体能力。他靠蒙也许能写出及格的周报,但未必真懂什么叫"抓住重点"。不给这种直接信号,模型学到的上下文表征就只是副产品,不是被精心设计出来的核心能力。
第二个痛点更隐蔽,藏在蒸馏环节。现在流行的做法,是把双向打分模型(用来判断生成内容好不好)直接搬过来评估因果生成器的输出。错位就这么产生了:生成器生成时只能看"过去",打分模型打分时却"偷看"了未来。两边看到的信息完全不对等,这分数还能准吗?
这两个问题,就是论文标题里"Context-Aligned"四个字的由来。说白了,要让模型训练过程中各个环节看到的"上下文"保持一致。
先学会用"脏历史"读出"干净"的意思:Causal Self-Flow。
针对第一个痛点,论文提出了**Causal Self-Flow(因果自流,简称CSF)**。
**Causal Self-Flow(CSF)**:一种自监督训练方法,核心思路是让模型对比"看脏历史"和"看干净历史"两种情况下对同一个画面块的理解,靠这种对比逼模型学会从不完美的信息里提炼关键线索。
具体怎么操作?论文设计了两条并行路径。一条是"学生"路径,它看到的历史画面被人为注入不同程度的噪声,有的地方浓,有的地方淡。另一条是"教师"路径,用的是EMA(指数滑动平均)版本的模型,看到的历史完全干净、未经污染。
**EMA(指数滑动平均)**:一种让模型参数更新更平滑的技术,不直接用最新训练出来的参数,而是把历史参数和当前参数按权重混合,得到的模型往往更稳定,常被当作训练过程中的"参照系"。
关键设计在于,两条路径处理的是同一个目标画面块,噪声水平也一样。唯一的差异完全锁定在"历史干不干净"这一个变量上。然后,论文让学生模型浅层的某一层特征去对齐教师模型深层的某一层特征,对齐用余弦相似度损失,外加一个两层的投影头做转换。
这个设计的巧妙之处在于,原本只能靠"预测噪声对不对"间接学到的东西,变成了一个可以直接监督的目标:你能不能从被污染的历史信息里,依然恢复出干净语境下该有的语义表征?
举个生活里的例子:在闹哄哄的聚会上接电话,音乐声、说话声、碰杯声搅成一团,对方偏偏要你重复一句要紧的话。没经过针对性练习,多半只能听个大概就挂断,意思对不上自己还察觉不到。可要是有人拿安静房间里录的清楚版本一遍遍告诉你“那句话原本是这么个意思”,时间一长,你在嘈杂场合里抓关键信息的能力真会提高。缺少这种对照练习,模型读噪声历史时的理解力就只能靠碰运气,蒙对一次算一次,没办法系统地长进。
实验数据也验证了这一点。通过40步推理在1000条JavisBench提示词上测试,CSF相比标准的教师强制训练,在ImageBind音视频对齐分数、AVHScore、JavisScore这几个指标上都有持续提升,CLAP(衡量音频和文本对齐程度)的提升则在训练后期才逐渐显现。这说明CSF确实在悄悄改善模型对音视频跨模态关系的理解,而且这种改善发生在正式的几步蒸馏之前,相当于提前给后续蒸馏打好了地基。
还有个细节:训练结束后,那个EMA教师分支和两层投影头会被直接扔掉,不会带到推理阶段,这套方法对最终的推理速度没有任何额外负担。
打分的时候,别让裁判看到选手看不到的东西。
处理完“学习”这一层,还有更棘手的“打分错位”问题摆在面前。
要弄懂这件事,得先看一项叫DMD(Distribution Matching Distillation,分布匹配蒸馏)的技术。
DMD让快速生成器学会模仿慢速但高质量的教师模型。它会一边训练“假分数”模型,专门给生成器自己产出的内容打分;一边参照“真分数”模型所代表的理想目标分布,推动生成器把两者的差距压小,差距用KL散度衡量。
KL散度是衡量两个概率分布差异程度的数学工具,数值越小,两个分布就越接近。
麻烦出在评估生成器产出时,“真分数”和“假分数”该站在什么视角。论文指出,以前的做法大多直接拿双向模型给因果生成器的输出打分。这好比裁判能看比赛全程录像回放,运动员却只能看到当前这一回合,完全不知道后续走向。裁判打出的分数看着客观,其实暗含了选手根本不具备的信息优势,分数已经失真。
论文把这种错位现象称为score-context mismatch(打分上下文错位),并为此提出context-aligned AR DMD(上下文对齐的自回归分布匹配蒸馏)。
思路挺直接:生成器采样、假分数训练、真分数评估三个环节,共用同一套因果掩码和同一段音视频前缀。裁判和选手的信息范围必须一致,裁判不能偷看选手看不到的未来画面。
论文用一组对照实验验证这件事的分量,比较了三种打分配置:BI-BI(真假分数都用双向视角)、BI-AR(只把假分数对齐为因果视角,真分数仍是双向)、AR-AR(真假分数全部对齐为因果视角)。BI-BI配置下,视觉质量(VQ)只有0.837分,运动质量(MQ)只有0.140分;换成BI-AR,VQ升到1.131,MQ升到0.157;完全对齐的AR-AR配置则直接跳到VQ 3.147、MQ 1.351,在七项指标里拿下五项最佳。
两组数字一对比,差距大得有点吓人。光把假分数跟生成器对齐,提升幅度仍然有限;等到真分数这一侧也换成因果视角来对齐,整体质量才出现质变式的跃升。裁判和选手拿到的是同一份信息,这已经超出加分项的范围,它本身就是前提条件,缺了就全盘作废。
论文还点出另一个容易忽视的细节:教师引导强度(guidance scale)的设置。以往的一致性蒸馏方法习惯用固定且偏高的引导强度,比如固定设为4.0,但这套参数直接搬进DMD框架并不合适。论文改成从U(1.0, 3.5)区间里随机采样,结果视觉质量提升了91.5%(官方提示词)和82.9%(改写提示词),运动质量更是翻了一倍以上。
拿考驾照打个比方,教练坐在副驾手把手带练,跟自己单独上考场,这两种情形下该使多大劲,标准明显不该一样。教练全程替你修正方向(等于一直给着高强度的引导),轮到你独立开车,反倒容易手忙脚乱,因为你从来没真正自己判断过方向盘该往哪边打。把引导强度降下来、再随机变动,等于让学生在训练时就慢慢适应“拐杖没那么多了”的真实处境,等真上了路,才不至于掉链子。
这套机制理清之后,还顺带解决了一个大麻烦。以往训练流程里,蒸馏环节往往要分成好几个阶段:先做ODE匹配或者一致性蒸馏,把模型初步压缩到几步,再做一次分布匹配做精修,整个流程像接力赛,每一棒换人还换规则。context-aligned AR DMD可以直接作为唯一的蒸馏目标,那个额外的一致性蒸馏阶段不再需要了。论文的消融实验显示,相比TF-dCM(一种一致性蒸馏路线),AR-AR TF-DMD在全部七项指标上都更优,VQ和MQ分别从1.916/0.611提升到3.147/1.351。
干净历史训完了,接下来要面对“自己生成的脏历史”。
前面说的训练都在“干净前缀”下完成,历史画面全部来自真实数据,没有任何生成误差。可是真正上线推理时,模型看到的历史是它自己之前几步生成出来的内容,这里面必然带着累积误差。
论文把这种训练和测试之间的落差称为train-test context gap(训练测试上下文差距)。解法是:干净前缀蒸馏完成后,继续用生成器自己的输出(而不是真实数据)去做训练,这个过程叫on-policy context adaptation(在线上下文适应)。好处是整个过程中不用切换损失函数,只是把条件信息的来源从标准答案换成模型自己的生成结果,模型就能逐渐适应实际推理时真正会遇到的那种“不那么完美”的历史。论文观察到,经过这一步适应之后,生成视频里的过曝现象明显减少了。
分辨率也被塞进了同样的四步里。
论文还做了一个扩展,叫scale-wise post-training(分级后训练),目标是在不增加生成器调用次数的前提下,把分辨率从480p一路拉到1664×960。
落到操作上,就是把原先交给单一分辨率的四次生成器评估,改成低分辨率两次、高分辨率两次。每个时间块先做两步低分辨率生成,拿到一个粗略的干净预测;接着用 causal latent upsampler(因果潜空间上采样器)对视频部分的潜码做空间上采样;再做两步高分辨率精修,这个块才算输出完毕,随后接着处理下一块。
这里有个细节设计得挺讲究:上采样器只利用当前块和一个有限长度的历史窗口做计算,而不是整段视频,整个流程因此依然是流式的、因果的。
论文拿一个很直白的比喻来说明这套限制为什么必要。高分辨率精修环节要是能看到整段视频的历史,哪怕只是在潜码层面,实时流式输出这个承诺就没了——你得等后面内容生成完,才能回头修前面那部分。这好比你答应朋友直播做饭,为了让某个镜头更漂亮,偷偷溜到后厨把整道菜先做完,再倒着剪成“直播”。观众可能瞧不出问题,可“实时”两个字已经落空了。让上采样器只看有限历史窗口,守的就是这条线。
成绩单摆出来看
论文在JavisBench-mini和VBench两个评测集上做了大量对比。480p、4步推理的设定下,Salt++的AR-AR DMD版本对上OmniForcing(目前公开的4步因果基线模型),视觉质量高出57%,运动质量高出45%。
表格里的关键数字可以摆出来。官方提示词测试下,Salt++(AR-AR DMD路线)拿到VQ 2.838、MQ 1.010,OmniForcing只有VQ 1.807、MQ 0.699。有意思的是,论文里还有一条“TF-dCM路线”作对照,它在JavisScore(0.185)和DeSync(同步误差,0.710)两项上反而优于AR-AR DMD路线(JavisScore 0.146,DeSync 0.759)。这个结果论文原样呈现,没有藏。
DeSync这个指标的局限得提一句。它量的是音频和视频之间的时间错位程度,可视频本身几乎不动、画面里没什么动作可供“错位”时,这个指标自然显得低,却不代表视频质量好。论文专门指出,BI-AR配置拿到全表最低的DeSync(0.531),但VQ只有1.131、MQ只有0.157,远低于AR-AR的3.147和1.351。说明它的“同步好”很大程度上是画面几乎不动、没什么好错位。看指标不能脱离具体情境,数字好看不代表真的好。
高分辨率扩展方面,Salt++(2步低分辨率加2步高分辨率)在960p设定下,七项指标里有六项超过用40+3步推理的LTX-2双向基线模型,VQ达到2.730,MQ达到0.957,LTX-2对应的数字是2.231和0.607。
这几条技术脉络是怎么连起来的
把Salt++放进因果视频生成的发展脉络里看,它解决的是什么历史遗留问题会更清楚。
2025年,CausVid率先把双向模型蒸馏成因果生成器,这条路由此打开。同年稍晚,Self Forcing和AAPT进一步让学生模型在自己之前生成的帧上做适应训练,试图缩小训练和推理之间的差距。到2026年,Causal Forcing系列和Causal-rCM把教师强制的初始化阶段和在线精修阶段彻底分开,变成多阶段流水线。论文提到的并行工作CMD同样走因果DMD思路,但它专注纯视频场景,而且直接跳到在线rollout阶段,没有像Salt++这样专门做一次干净前缀和噪声历史的受控对比实验。
Salt++和前作有三点差异:一是用受控的教师强制对比实验,把打分上下文错位这个变量的影响单独隔离出来;二是指出教师引导强度必须为分布匹配重新校准,不能照搬一致性蒸馏时的设置;三是通过表征对齐专门训练出作为后续蒸馏起点的因果教师模型,并且是针对联合音视频场景设计的。
写在后面
论文里有个细节让我反复琢磨了很久,就是DeSync指标那个“陷阱”。论文专门花一段文字解释,为什么DeSync低不代表视频好——画面静止的时候,根本没有动作可以和音频“错位”。这其实是个很值得记住的方法论提醒:任何评价指标都隐含着设计时假定的使用场景,一旦场景被打破(比如视频变成近乎静态的画面),指标就可能从“衡量质量”变成“奖励偷懒”。做研究、做产品都容易掉进“优化指标”而不是“优化真实目标”的坑,这篇论文提醒我们至少得时刻保持这份警觉。
另一个值得记下来的点是教师引导强度那组对比实验。固定4.0和随机U(1.0,3.5)之间,效果差了接近一倍,可这个差异背后没什么高深的数学原理,纯粹是“一致性蒸馏习惯用的参数”被想当然地搬到了“分布匹配蒸馏”这个完全不同的框架里。很多工程实践里的“约定俗成”未必有坚实的理论支撑,只是因为某篇早期论文这么用了,后来者就默认继承下来。重新审视这些被默认继承的超参数,有时候反而能挖出意外的提升空间。
遗留问题也摆在论文里:评估完成后的rollout时,高分辨率扩展阶段采用了双向视角,可这与480p阶段一再强调的“因果一致性”存在出入。论文对此并不回避,专门做了解释——CSF教师本身只在480p上训练过,手头没有具备高分辨率能力的因果教师,只能拿双向教师来填这个空当。这能否算整套方法中一处尚未补齐的缺口?假如日后真能训出高分辨率的因果教师,这块是否也能归入同一套因果框架?论文没给答案,把它交给了后来者。
Q&A
Q1:Salt++是什么?
A:Salt++是一个面向少步数流式音视频生成的后训练框架,核心由Causal Self-Flow和context-aligned AR DMD两个阶段组成,目标是解决因果建模和步数蒸馏结合时出现的上下文错位问题。
Q2:Salt++相比OmniForcing提升了多少?
A:480p、4步推理设定下,Salt++的视觉质量比OmniForcing提升57%,运动质量提升45%,同时能通过分级后训练扩展到1664×960分辨率。
Q3:为什么直接用双向模型给因果生成器打分会有问题?
问:那为什么不直接拿双向模型去给因果生成器打分?答:问题出在信息不对等。双向打分模型评估时能看见未来的画面,因果生成器生成时却只能看已经过去的内容。两边掌握的信息不一样,打出来的分就会失真。论文把这种情况叫作打分上下文错位,而context-aligned AR DMD要解决的核心问题正在这里。