
你有没有想过,为什么现在那些能一边说话一边生成画面的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:为什么直接用双向模型给因果生成器打分会有问题?
A:因为双向打分模型在评估时能看到未来画面,而因果生成器生成时只能看过去的内容,这种信息不对等会导致打分结果失真,论文称之为打分上下文错位,这正是context-aligned AR DMD要解决的核心问题。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。