文章目录
-
- [0. 论文一句话总结](#0. 论文一句话总结)
- [1. 论文要解决的原始痛点(Introduction 章节)](#1. 论文要解决的原始痛点(Introduction 章节))
- [2. 核心架构:混合注意力分工(第 2 章)](#2. 核心架构:混合注意力分工(第 2 章))
-
- [2.1 滑动窗口 Softmax(本地精细分支)](#2.1 滑动窗口 Softmax(本地精细分支))
- [2.3 两路输出怎么融合(公式 1c、1d,不用记符号)](#2.3 两路输出怎么融合(公式 1c、1d,不用记符号))
- [3. VDA(Video Delta Attention):论文最核心的数学创新(第 3 章)](#3. VDA(Video Delta Attention):论文最核心的数学创新(第 3 章))
-
- [3.1 先讲传统 token 级 Delta 规则(公式 2,你看不懂的根源)](#3.1 先讲传统 token 级 Delta 规则(公式 2,你看不懂的根源))
- [3.2 直接"批量并行"抄到视频上会出问题(公式 3a~3c)](#3.2 直接"批量并行"抄到视频上会出问题(公式 3a~3c))
- [3.3 VDA 的做法:一帧联合求解出一个新状态(公式 4、5)](#3.3 VDA 的做法:一帧联合求解出一个新状态(公式 4、5))
- [3.4 稳定性结论(第 3.3 节,工程意义大于理论)](#3.4 稳定性结论(第 3.3 节,工程意义大于理论))
- [4. 端到端训练流水线(第 4 章,对应你之前问的"训练了什么")](#4. 端到端训练流水线(第 4 章,对应你之前问的"训练了什么"))
-
- [4.1 三阶段架构适配:主干全程冻结](#4.1 三阶段架构适配:主干全程冻结)
- [4.2 八步蒸馏(第 4.2 节)](#4.2 八步蒸馏(第 4.2 节))
- [训练数据集细节(第 6.1 节,论文公开的数字)](#训练数据集细节(第 6.1 节,论文公开的数字))
- [5. 推理侧提速做了哪些工程优化](#5. 推理侧提速做了哪些工程优化)
- [6. 实验结果:14.5 倍加速是怎么拆出来的](#6. 实验结果:14.5 倍加速是怎么拆出来的)
0. 论文一句话总结
在完全冻结原版 H3 33B 主干 的前提下,论文把 H3 中最耗算力的全局 Softmax 注意力替换为"局部精细 Softmax + 远距离帧压缩为线性记忆"的混合结构;随后分三阶段训练少量适配器与原模型对齐,再做 50 步→8 步蒸馏;配合 SGLang 算子优化,在 8×B200 上把 14.3 秒 768p 视频的 DiT 去噪耗时压到 6.70 秒 ,相对原版 50 步稠密 H3 实现整体 14.5 倍加速,画质基本无损。

1. 论文要解决的原始痛点(Introduction 章节)
论文对 H3 的实际运行做了性能剖析,发现 Softmax 注意力占去噪总运行时间的 85% 以上 。原因在于普通 Softmax 需要让每一个视频 token 与序列中所有其他 token 两两计算相似度 ,帧数越多,计算量便随序列长度呈平方级增长 ,长视频因此难以运行。
工业界在大语言模型中已用线性注意力 / 循环记忆将复杂度降到线性,但直接迁移到视频模型会损失画质。论文指出三个"水土不服"之处(这是理解全文的关键):
| # | 不匹配点 | 大白话解释 |
|---|---|---|
| 1 | 固定大小记忆容量有限 | Softmax 能记住越来越多的历史帧;线性记忆矩阵大小固定,要靠它保住人物身份、场景布局、长相、长程动作,不能丢关键全局信息 |
| 2 | 语言模型是逐 token 到来,视频是一整帧所有空间 patch 同时出现 | 直接照搬语言模型"一个 patch 更新一次记忆",等于给画面强行排一个从左到右的顺序,不自然;同帧多个 patch 同时写记忆还会互相干扰 |
| 3 | 给已经训好的 Softmax 模型随机插一条线性支路,会打乱原来的残差流数值分布 | 新分支还没学会,旧能力先被破坏,必须设计渐进适配的训练流程,不能硬插进去一起训 |
2. 核心架构:混合注意力分工(第 2 章)
2.1 滑动窗口 Softmax(本地精细分支)
-
近处几帧之间的关系决定了纹理、人脸、手部、物体边缘与短时间动作 ,这些必须做精确的两两匹配,因此这部分保留原版 Softmax,不做改动。
-
窗口跟随 H3 的 VAE 分块:H3 VAE 将每 5 个连续 latent 帧划为一个 chunk,每个 chunk 只与自身及前后相邻 chunk 做 Softmax,形成约 15 帧的双向窗口,从而避免切断 tokenizer 的自然时间单元。
-
首尾帧锚点(Boundary Anchors):每个视频帧都能直接注意到第一帧和最后一帧,首尾帧也能注意到整个序列。这只增加了两行两列的稠密连接,成本很低,却对人物身份稳定和首尾帧约束(FL2VA)至关重要;消融实验表明,去掉锚点后 VQA A 下降 0.75、VQA T 下降 1.35。### 2.2 双向线性注意力(远距离分支)
-
窗口之外的所有远帧,交给线性记忆处理。分前向扫描 (总结当前窗口之前的帧)和反向扫描(总结窗口之后的帧),两段区域不重叠,读取结果直接相加,不会重复计算某一帧。
-
文本条件先被汇总成一个初始记忆
S_T,前向、反向各放一半,两路相加正好等于完整文本条件;这样线性分支也能感知 prompt,而文本本身在 Softmax 分支里依然是直接可见的。 -
边界锚点不放进线性记忆,因为它已经走 Softmax 直接访问了。
2.3 两路输出怎么融合(公式 1c、1d,不用记符号)
- Softmax 分支:保留 H3 原生 QK 归一化和 RoPE;因为窗口变小、概率集中在更少 key 上,加一个内容相关 sigmoid 门做缩放校准。
- 线性分支:先做可分离短卷积(5×5 空间 + 5 拍时间)→ SiLU → Q/K 做 L2 归一化;读取结果先 RMSNorm ,再过自己的 sigmoid 门;内部还有独立的衰减门
α(留多少旧记忆)和写入门β(新信息覆盖多少)。 - 两路各自拥有独立输出投影,把自己的结果投影到残差流的不同方向,最后相加;原来的 FFN 子层完全保留不动。
为什么要各自独立投影?两个分支输出数值尺度、擅长的信息方向不一样,共用一个投影会互相打架;独立投影让两路各司其职。
3. VDA(Video Delta Attention):论文最核心的数学创新(第 3 章)
3.1 先讲传统 token 级 Delta 规则(公式 2,你看不懂的根源)
这是从 Gated DeltaNet / Kimi Delta Attention 继承来的记忆更新规则,分两步:
- 衰减 :旧记忆先乘
α(衰减系数),α在 0~1 之间,决定保留多少历史; - 擦写修正 :新 token 进来,先看旧记忆根据 key 预测出的值和真实 value 的误差
(v - S·k),再用写入门β把这个误差修正写回记忆矩阵。
这套规则是为自回归语言模型设计的:每一步只来一个 token,顺序更新非常自然。
3.2 直接"批量并行"抄到视频上会出问题(公式 3a~3c)
视频一帧里有 U 个空间 patch(H3 是 48×84 latent patch)。最直接的改法:用同一个衰减后的旧记忆 S̄,把这一帧所有 patch 的修正一次性累加 写进新记忆。
问题在于:每个 patch 的残差都是基于同一个旧状态算的,彼此之间互不通气。当同一帧里几个 patch 的 key 方向相近(比如都属于人脸区域),它们的修正可能互相强化、也可能互相冲突,写进记忆的结果是打架的,没有联合求解。
3.3 VDA 的做法:一帧联合求解出一个新状态(公式 4、5)
论文把一帧内所有 patch 看成一个联合拟合目标 :新记忆 S_t 一方面要离衰减后的旧记忆不要太远(保留历史),另一方面要同时拟合这一帧里所有 key-value 配对关系。
对这个优化目标求导,得到闭式解:
S t ( I + A t ) = S ˉ t + B t , S t = ( S ˉ t + B t ) ( I + A t ) − 1 S_t(I+A_t) = \bar{S}_t + B_t,\quad S_t = (\bar{S}_t+B_t)(I+A_t)^{-1} St(I+At)=Sˉt+Bt,St=(Sˉt+Bt)(I+At)−1
大白话:
A_t:这一帧所有 key 之间的相关矩阵;B_t:这一帧 value 到 key 的写入矩阵;- 那个
(I+A_t)^{-1}就是联合解的关键:把同帧 patch 之间 key 重叠、互相冲突的问题在这一步内部消化掉,每个 patch 的残差都基于共同更新后的状态来评估,而不是各自为政。 - 求逆只在很小的 key 通道空间
d_k × d_k上做,成本可控。
3.4 稳定性结论(第 3.3 节,工程意义大于理论)
论文证明:在特征和门固定、0≤α≤1、β≥0 的条件下,这个状态转移矩阵谱范数 ≤ 1,也就是旧记忆传过来的信息不会被这一帧更新放大 ,训练和推理数值稳定。所以不需要像 SANA-WM 那样额外加 1/√U 帧尺寸缩放因子;帧数变多也不会出现数值爆炸。
4. 端到端训练流水线(第 4 章,对应你之前问的"训练了什么")
4.1 三阶段架构适配:主干全程冻结
| 阶段 | 步数 | 训什么 | 冻结什么 | 目的 |
|---|---|---|---|---|
| A1 逐层对齐 | 200 | 每个线性分支单独对齐冻结教师的激活输出;Softmax 门初始固定在 0.99;逐层梯度裁剪 0.1 | H3 主干权重、Softmax 分支 | 先让新支路在局部学会模仿教师,避免一开始深网络同时改导致信号传不下去 |
| A2 端到端对齐 | 500 | 两路组装到一起端到端训练;全局梯度裁剪 1.0 | 预训练主干权重、Softmax 门 | 修正单看某层发现不了的层间组合误差 |
| Stage B LoRA 共适配 | 2000 | Q/K/V/输出投影加 LoRA,和线性支路、Softmax 门联合训练 | 主干原始权重(只动 LoRA) | 让混合层和新支路深度协同适配 |
消融(表 4)显示:A1 单靠 200 步就完成了主要的参数移动(写入门投影变化 35.6%),后面 A2、Stage B 都是逐步细化,变化越来越小,印证这个渐进方案是合理的。
4.2 八步蒸馏(第 4.2 节)
- 架构适配完成后,先得到一个 50 步 VDN-H3;
- 用 DMD2 目标(去掉 GAN 项) ,以这个 50 步 VDN-H3 作为教师,蒸馏出 8 步学生;学生初始化复用社区
MiniMax-H3-Turbo-LoRA,这样能把"架构改造"和"步数压缩"两个变量分开; - 生成器、real-score、fake-score 共用一套 FSDP 主干、走各自适配器;每更新 1 次生成器更新 3 次 fake-score;最终发布 checkpoint 训了 250 个生成器步。
训练数据集细节(第 6.1 节,论文公开的数字)
- 10,015 个视频片段,分辨率 1344×768,每段 345 帧、24fps(14.375 秒);
- 提前把视频 latent
(24,102,48,84)、立体声音频 latent(2,32,575)、Qwen3-VL 文本 embedding(L,5120)全部缓存好,训练循环里不再跑 VAE 和文本编码器; - 评测固定 103 个第三方 prompt,所有模型同一分辨率、同一时长渲染,保证可比。
5. 推理侧提速做了哪些工程优化
光改算法不够,速度还要靠算子和并行:
- 四个融合 Triton 内核 :把 VDA 的预处理、帧统计、边界收集、后处理分别融合成
VDA-Prep / VDA-Stats / VDA-Gather / VDA-Epilogue,减少 Kernel 启动和显存读写。 - Chunk 级扫描 :注意力只在 VAE chunk 边界读记忆,所以把每个 chunk 的转移矩阵合并成
S_out = S_in·M_chunk + J_chunk,只扫描更短的 chunk 序列,扫描深度和启动开销大约降低一个 chunk 尺寸。 - 小矩阵求逆 :
(I+A_t)^{-1}不用 Cholesky 多内核流程,改成一个 CUDA kernel 在寄存器内做分块 Gauss-Jordan 消元;求逆和循环状态保持 FP32。 - SGLang 服务栈:窗口 Softmax 按可见 key 模式打包,直接用 FlashAttention varlen API,不用全局 mask;VDA 按注意力头切分,和窗口 Softmax 走旁路并行;宽 QKV、输出、FFN GEMM 用 MXFP8 加速,循环状态和小矩阵求逆保留 FP32;AdaLN 调制参数在 block 循环前提前算好,不在每层重复投影。
- Ulysses 序列并行:多头注意力切分到 8 张卡上跑。
6. 实验结果:14.5 倍加速是怎么拆出来的
以单卡 B200、14.3s 768p 为基准,加速是三层叠加的结果:
| 阶段 | GPU 数 | 去噪步数 | 端到端耗时 | 相对上一层增益 |
|---|---|---|---|---|
| 原版 Dense H3 | 1 | 50 | 799.6 s | 基准 |
| 只换 VDN 混合注意力 | 1 | 50 | 307.9 s | 骨干本身 2.6× 提速(H200 上 3.2×) |
| 再做 8 步蒸馏 | 1 | 8 | 49.3 s | 步数从 50→8 |
| 8 卡分布式推理 | 8 | 8 | 6.70 s | 分片并行;H200 上最终 12.5 s |
- 架构改造(注意力替换)单独贡献约 2.6~3.2 倍;
- 50→8 步蒸馏是最大的轮数压缩;
- 多卡并行是最后的服务层加速;
- 视频越长,VDN 优势越大:latent 帧从 42 涨到 102,Softmax 注意力占比从 42.1% 降到 20.0%,骨干提速从 1.8× 涨到 3.2×(H200)。
质量结论
- 50 步对比:VDN 和稠密 H3 几乎持平,Q-Align 仅差 0.08、世界连贯性差 0.03、首尾帧 PSNR 差 0.02dB;和同等延迟的 Radial 稀疏注意力比,7 项共享指标中 6 项更好。
- 8 步对比:VDN-H3 在 7 项共享指标上全部超过 FastH3 v2,VQA T 高 10.78、DOVER++ 高 2.67;单 B200 速度比 FastH3 v2 快 1.2×。
- 消融:去掉首尾帧锚点、去掉线性分支都会显著掉分,证明两个设计都不可省。