
【免费下载链接】vdn-minimax-h3VideoDeltaNet-H3: Live T2VA / I2VA / FL2VA / Ref2VA-like generation based on Minimax H3.项目地址https://gitcode.com/gh_mirrors/vd/vdn-minimax-h3点击查看免费下载VDN-Minimax-H3下称 VDN-H3是在 MiniMax H3 底座上构建的混合注意力视频/音视频生成模型它用一个额外的线性注意力分支把长视频推理提速到比播放还快。本文面向新手完整拆解整个训练配方里的第一块基石——Stage A1 训练如何用逐层 Teacher 对齐这一策略在只跑 200 步的情况下教会刚搭起来的线性分支如何复现底座模型每一层的输出。Stage A1 训练在训练配方中的位置VDN-H3 的全部训练建立在冻结的 dense 底座之上每个 Stage 都从上一阶段的最终检查点出发阶段训练内容步数A1新建的线性注意力分支逐层对齐 dense 模型200A2同一组参数端到端微调500BQKV/O 投影上的 LoRA 线性分支2000DMD8 步turboLoRADMD2无 GAN250四个阶段的入口脚本都在 scripts/training/配置在 configs/training/。Stage A1 是唯一从 YAML 创建混合架构的阶段——之后的 Stage 全部从检查点里继承ModelSpec想改架构字段甚至会被配置加载器直接拒绝见 src/config/stage_a1.py 的模块说明。换句话说A1 不只是一组训练步它定义了模型长成什么样子。混合注意力架构Stage A1 训练了什么先把要训练的东西说清楚。转换后的每个 DiT block 的.attn被替换成一个HybridAttention它包裹并复用原始注意力模块融合公式见 src/models/hybrid_attention.pysoftmax_output orig.to_out( softmax_gate(x) * window_softmax(q, k, v) ) linear_readout output_gate(x) * RMSNorm( linear_attention(q_raw, k_raw, v_raw) ) output softmax_output to_out_linear(linear_readout) # 仅视频 token 行局部窗口 softmax 分支只保留原始权重冻结不动。窗口为chunk: 5, radius: 1即自身所在 5 帧 VAE chunk 再加左右各一个每帧只看约 15 帧configs/training/stage_a1_c1_vdn_anchor.yaml。线性分支全新参数约 2.1B负责窗口之外的远场信息。它复用softmax 分支的 QKV 投影拿原始 q/k/v只加自己的一套后处理因此几乎不增加投影开销。锚定帧首尾两帧anchor_frames: both在 softmax 掩码里双向精确可见线性分支则跳过它们skip_ends两支的分工保持严格不重叠。架构转换只发生在 src/models/hybrid_transform.py 这一处A1 通过 YAML 到达它A2/B/推理则通过检查点里的 ModelSpec 到达。下面这张图就是 FL2VA 示例的起始关键帧仓库 prompts/image/ 示例输入之一也是 Stage A1 训练时这类视频 token 所属的latent 世界 关键认知Stage A1 只训练线性分支的新参数含to_out_linear、门控等。62 GiB 的底座权重全程冻结softmax 窗口分支也冻结——生成质量的下限由底座托着训练只负责让新分支别添乱、补信息。逐层 Teacher 对齐Stage A1 训练的核心机制这是本文的重点。核心实现在 src/training/train_stage_a1.py 的AlignHookL50-L95策略可以概括为四步教师轨迹把每个HybridAttention置为teacher_modesrc/models/hybrid_attention.py整个 forward 退化为原始 dense 注意力no_grad跑一遍——这就是教师的输出。逐层捕获每一层挂一个 forward hook。教师刚算完某层输出后hook 立刻用detach 后的同一层输入以学生身份混合前向重算该层并马上backward()逐层 MSE。显存恒定任何时刻最多只存在一层的 autograd 图教师主干本身无梯度、底座冻结所以 50 个 block 同时训练显存开销却不随层数线性增长。全局步所有层的梯度累加完才做一次 all-reduce、裁剪与参数更新。损失函数刻意做成了归一化相对误差train_stage_a1.pyteacher_sq teacher.float().pow(2).sum().clamp_min(1e-30) mse diff.pow(2).mean() loss diff.pow(2).sum() / teacher_sq # 即 rel^2代码注释里写得很直白不同层的 teacher 输出能量差好几个数量级若用裸 MSE各层尺度不一致会喧宾夺主梯度裁剪反而成了实际支配步长的东西归一化后每一层的损失和梯度都落在同一相对尺度上grad_clip才真正成为离群值防护。另外配置里freeze_softmax_gate: true把 softmax 门控钉在 0.99 初值上局部窗口分支因此始终几乎等于教师学生只需要学会让线性分支补上窗口外那部分把对齐问题从架构问题降级为训练策略AlignHook的文档说明见 src/training/train_stage_a1.py。优化器超参与大小组学习率A1 配置逐项解读Stage A1 的完整配置是 configs/training/stage_a1_c1_vdn_anchor.yamltraining: max_steps: 200 freeze_softmax_gate: true # 门控钉在 0.99 初值 optimizer: name: adamw lr: 1.0e-4 min_lr: 5.0e-6 warmup_steps: 50 # 50 步 warmup余弦衰减到 min_lr weight_decay: 0.0 grad_clip: 0.1 # 逐层裁剪 big_lr_scale: 1.0 small_lr_scale: 5.0 small_eps: 2.0e-9几个新手容易忽略的设计muP 式大/小学习率分组按模块结构而不是参数名把参数分成big/small两组src/utils/lr_classes.py。width-fan-in的宽矩阵alpha.down、output_gate.down、beta_proj、to_out_linear、softmax_gate用保守的 ×1.0fan-in 固定或向量型参数alpha.A_log、alpha.dt_bias、alpha.up、output_gate.up、分支 norm、短卷积 taps用 ×5.0且带独立的更小 AdamWeps。逐层梯度裁剪grad_clip: 0.1作用于每一层的全部参数而不是按优化器组分别裁剪——把一层劈成两半各裁一次会悄悄改变--grad_clip的语义src/training/train_stage_a1.py 注释。短而一次性A1 假设一把跑完检查点里不存训练态、不支持断点续训输出目录若已存在最终工件会直接拒绝重训。显存与分布式ZeRO-1 按层分片优化器状态A1 在 141 GB 显存的卡上跑得贴着上限torch.cuda.set_per_process_memory_fraction(0.96)src/training/train_stage_a1.py。两个显存策略值得记一下按层分片的 ZeRO-1完整 AdamW 动量 ≈ 2 × 4 bytes × ~2.1B 分支参数 ≈ 每卡 16 GiB塞不进 62 GiB 底座副本旁边改为每个 rank 只保存自己负责的层的动量后降到 ~2 GiBsrc/training/train_stage_a1.py。梯度仍全局 all-reduce保证裁剪范数跨卡一致每步只更新自己负责的层再把更新后的参数broadcast给所有人。特征链反向重算A1 不做 block 级梯度 checkpointing而是让线性分支在 backward 里重算 convSiLUL2Norm 特征链checkpoint_features Truesrc/models/linear_attention/branch.py省掉每层学生重算时多存的几个 GiB。训练数据、运行方式与产出物A1 读取预编码 latentH3 标准管线video/bf16归一化空间、audio/立体声、text/prompt_embedstext_token_tags由video_index.jsonl的latent_path串联目录结构见 README 的 Data Preprocess读取逻辑在 src/training/dataset_h3_latents.py。参考图示例长这样prompts/reference/ 示例之一运行一条命令即可8 卡单机200 步bash scripts/training/stage_a1.sh data.index_file/path/to/video_index.jsonl产出是带完整ModelSpec的 v2 weights 工件hybrid_step000025.pt等early_saves: [0,1,2,4,8] 每 25 步一存并写metrics.jsonl记录每步的逐层align_mse/rel/ 梯度范数 / 峰值显存。Stage A1 之后A2 / B / DMD 如何接力A1 只负责把分支对齐到教师质量与能力的接力交给后续阶段后续阶段输入做什么A2hybrid_step000200.ptconfigs/training/stage_a2_c1_vdn_anchor.yaml同一组参数端到端微调 500 步全局grad_clip: 1.0BA2 工件QKV/O 投影 LoRA 线性分支2000 步DMDB 工件8 步turboLoRADMD2无 GAN250 步免数据⚙️ 一句话总结Stage A1 是 VDN-Minimax-H3 混合注意力架构的出生证——用逐层 Teacher 对齐的归一化相对误差在 200 步内让线性分支学会复刻每一层教师输出为后续端到端精修A2、LoRA 微调B与少步蒸馏DMD打好地基。想深入实现建议直接读 src/training/train_stage_a1.py 的AlignHook与 src/models/hybrid_transform.py 两处源码配合 configs/training/stage_a1_c1_vdn_anchor.yaml 逐项对照。赞分享【免费下载链接】vdn-minimax-h3VideoDeltaNet-H3: Live T2VA / I2VA / FL2VA / Ref2VA-like generation based on Minimax H3.项目地址https://gitcode.com/gh_mirrors/vd/vdn-minimax-h3点击查看免费下载相关推荐VDN-Minimax-H3 训练全流程揭秘A1→A2→B→DMD 四阶段如何炼出 8 步模型VDN Minimax H3 训练全流程揭秘A1→A2→B→DMD 四阶段如何炼出 8 步模型 VDN Minimax H3 简称 VDN H3 是基于ComfyUI-Spectrum-MiniMax-H3 完全指南如何零训练加速 MiniMax H3 音视频生成ComfyUI Spectrum MiniMax H3 完全指南如何零训练加速 MiniMax H3 音视频生成 ComfyUI Spectrum MiniMVDN-Minimax-H3 双向线性注意力分支NoPE Delta Rule 如何补全远场信息VDN Minimax H3 双向线性注意力分支NoPE Delta Rule 如何补全远场信息 VDN Minimax H3简称 VDN H3 是一上一篇当小模型成为生图新叙事黑森林押注的其实是部署自由下一篇24 小时涨星 3.7k、小时增速 180这波开源热度是怎么滚起来的创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考