【免费下载链接】vdn-minimax-h3
VideoDeltaNet-H3: Live T2VA / I2VA / FL2VA / Ref2VA-like generation based on Minimax H3.
VDN-Minimax-H3(简称VDN-H3)是一个把视频生成速度做到"比播放还快"的混合注意力模型。它的灵魂,是在 MiniMax H3 骨干之外并联的一条双向线性注意力分支——用NoPE(无位置编码)特征 + Delta Rule 状态更新,以近乎常数的开销,把窗口 softmax 看不见的远场信息高效补全。读完本文,你会清楚这条分支为什么快、又为何不掉画质。
为什么视频模型卡在了"注意力"上 🐢
生成十几秒的视频,latent 序列动辄超过 10 万个 token。如果每一帧都老老实实做全局 softmax 注意力,代价是 O(N²),帧数一多就指数级爆炸——这正是 VDN-H3 想根治的瓶颈。
它的思路很直接:把注意力拆成两条分工明确的分支。
| 分支 | 看什么 | 负责什么 |
|---|---|---|
| 窗口 softmax | 当前帧附近的几个帧 | 局部视觉质量与一致性 |
| 双向线性分支 | 窗口之外的全部帧 | 全局 / 远场时序信息 |
两条分支共享同一份 QKV 投影,最后把结果相加:softmax 只算"近场",线性分支负责"远场",合起来恰好覆盖全序列——既保住画质,又把注意力成本压了下来。整个编排在 src/models/hybrid_attention.py 的_hybrid_forward中完成。
窗口之外的"远场"是什么?👀
所谓远场信息,就是每个 query 帧的 softmax 窗口看不见的那些帧。
VDN-H3 的窗口是分块对齐的:以 5 个 latent 帧为一个 chunk,当前块前后各扩一块(见 configs/training/stage_a1_c1_vdn_anchor.yaml 里的radius: 1, chunk: 5)。这意味着中间帧只能"看到"约 15 帧的邻居,而一条 100+ 帧的视频里,绝大多数帧都落在窗口之外。窗口几何由 src/models/softmax_attention/window.py 的window_bounds给出。
那远处的帧谁来管?答案就是双向线性分支——它专门负责窗口之外的所有帧。
双向线性分支:五步读懂核心算法 ⚙️
分支入口是 src/models/linear_attention/branch.py 里的BidirectionalLinearBranch。它把"窗口看不见的部分"逐 token 汇总,流程可拆成五步:
- 特征准备(NoPE):为每个视频 token 生成 q / k / v 特征
- 每帧统计量:把一帧的 S 个 token 压缩成两个
d × d矩阵 A、B - 双向扫描:沿帧轴正向、反向各扫一遍,得到状态库
- 边界收集:取窗口两侧"刚好在窗外"的状态,衰减回 query 帧
- 读出 + 门控:用 query 读出,再过 RMSNorm 和输出门
下面逐个讲。
第一步:NoPE 特征——把 RoPE 去掉
"NoPE" 即No Position Embedding(无位置编码)。softmax 分支用的是加了 RoPE 的 q/k,而线性分支直接拿加 RoPE 之前的原始 q/k/v,只做三件事:
- 过一段可分离短卷积(仅对 k、v,q 保持原始 NoPE 特征)
- SiLU 激活
- 对 q、k 做 L2 归一化
为什么线性分支要去掉位置编码?因为线性注意力的"位置"是由状态递推天然承载的——信息靠一帧一帧累加进状态矩阵,而不是靠 RoPE 的相位。硬加 RoPE 反而会和递推打架。特征准备在 src/models/linear_attention/features.py 的LinearAttentionSepConv与prepare_linear_features中实现。
第二步:每帧统计量 A、B
对每一帧,把帧内所有 token 的 k、v 用 beta 加权后,压缩成两个矩阵:
- A = Σ k·β·kᵀ
- B = Σ v·β·kᵀ
这一步把"一帧 S 个 token"降维成"两个小矩阵",是线性注意力高效的根源。实现见 src/models/linear_attention/scan.py 的frame_statistics。
第三步:Delta Rule 状态更新 🔄
这是标题里的第二个关键词。拿到每帧的 A、B 后,状态 S 按下面的递推一帧帧更新(发布权重采用vdn_solve):
S_out = (S_in · D + B) · (I + A)⁻¹
- D:逐通道的遗忘门 alpha(取值 0~1,由 src/models/linear_attention/layers.py 的
FrameKDAAlpha算出) - (I + A)⁻¹:精确求逆,把新信息"干净地"写进旧状态,避免重复累加造成的误差
这正是 Delta Rule 的精髓:不是简单往记忆里加,而是带"修正项"地写——用 (I+A)⁻¹ 抵消掉重叠部分,远场状态因此能稳定累积上百帧而不发散。仓库里还备了另外两种规则,对比如下:
| 规则 | 更新方式 | 特点 |
|---|---|---|
sana_scaled | (S·D)(I − c²A) + cB | 一阶截断,快但不精确 |
vdn_solve | (S·D + B)(I + A)⁻¹ | 精确求逆,发布权重采用 |
vdn_scaled | (S·D + cB)(I + c²A)⁻¹ | 带缩放的精确解 |
三种实现都在 src/models/linear_attention/delta_rule.py。
第四步:双向扫描 + 边界收集 🧭
分支是"双向"的:状态从开头往末尾扫一遍(prefix),再从末尾往开头扫一遍(suffix)。于是对任意 query 帧 t(窗口为 [lo, hi]),窗口之外 =prefix[lo-1](左侧全部)+suffix[hi+1](右侧全部),一个不重、一个不漏,正好是"窗口看不见的部分"。
取回来的两个状态还要乘一个由 alpha 决定的衰减,把"隔着窗口跨度"的影响修正回来(bridge 机制)。整套逻辑在 src/models/linear_attention/scan.py 的gather_linear_state里。
上图来自 FL2VA 示例(首帧 → 生成 14 秒视频)。只给一帧起点、再给一帧终点,要串出中间连贯的画面,靠的正是这条分支提供的全局时序记忆。
第五步:读出与门控
最后用当前帧的 query 去"问"收集好的远场状态,得到 readout,再过 RMSNorm 和输出门,加回到主干输出上。文本状态(见下节)也会在这里一起读出。
文本状态:让分支"记得"提示词 📝
给分支喂入 prompt 后,双向扫描不再从零状态出发,而是从半个文本状态(TEXT_STATE_SCALE = 0.5)启动。两个方向各带半份,加起来约等于一份完整 prompt——于是每一帧的状态都成了"被视频改写过的 prompt 记忆"。
这带来一个巧妙效果:当某个 query 的窗口已经碰到视频首/尾边界时,那一侧不再是"读到空气",而是读到衰减后的 prompt。分支因此从"补齐缺失输入"升级成了"带着条件跑"。相关逻辑见 src/models/linear_attention/branch.py 的_text_state。
参考图生成(Ref2VA-like)同样依赖这条分支的全局一致性:多张参考图要在整段视频里保持同一套角色与场景,靠的就是远场状态把"谁是谁"牢牢记住。
它是怎么被训练出来的 🎓
分支不是白给的,而是分阶段从稠密骨干蒸馏出来的。发布权重走了四步:
| 阶段 | 训练内容 | 步数 |
|---|---|---|
| A1 | 新线性分支,逐层对齐稠密模型 | 200 |
| A2 | 同样的参数,端到端 | 500 |
| B | QKV/O 投影的 LoRA + 线性分支 | 2000 |
| DMD | 8 步turboLoRA(DMD2,无 GAN) | 250 |
A1 的完整结构配置(vdn_solve、anchor_frames: both、K/V 短卷积、文本状态)见 configs/training/stage_a1_c1_vdn_anchor.yaml,训练脚本在 scripts/training/。
一句话总结
VDN-Minimax-H3 的双向线性注意力分支,本质是给 MiniMax H3 装了一套**"近场看画质、远场看全局"**的注意力分工系统:
- NoPE让位置交给状态递推,而不是 RoPE;
- Delta Rule用 (I+A)⁻¹ 精确写记忆,远场状态上百帧不崩;
- 双向扫描 + 边界收集精准补齐窗口看不见的帧;
- 文本状态让 prompt 成为贯穿全片的记忆锚点。
想动手跑起来,可参考 docs/inference.md 与 README.md 的快速开始章节。
【免费下载链接】vdn-minimax-h3
VideoDeltaNet-H3: Live T2VA / I2VA / FL2VA / Ref2VA-like generation based on Minimax H3.
相关推荐
VDN-Minimax-H3线性注意力分支深入剖析:vdn_solve Delta Rule、帧状态桥接与文本状态机制
VDN Minimax H3线性注意力分支深入剖析:vdn_solve Delta Rule、帧状态桥接与文本状态机制 VDN Minimax H3(简称 VD
人工智能大模型媒体生成OpenVDN混合注意力架构深度剖析:Vdn-Minimax-H3-Comfy背后的线性注意力加速原理
OpenVDN混合注意力架构深度剖析:Vdn Minimax H3 Comfy背后的线性注意力加速原理 Vdn Minimax H3 Comfy 是一套面向 C
人工智能大模型媒体生成Vdn-Minimax-H3-Comfy项目全解:OpenVDN混合注意力如何让视频生成快过播放
Vdn Minimax H3 Comfy项目全解:OpenVDN混合注意力如何让视频生成快过播放 Vdn Minimax H3 Comfy 是专为 ComfyU
人工智能大模型媒体生成
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考