拆解Helios三阶段训练管线:从历史注入到金字塔蒸馏,长视频模型如何炼成
【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/Helios
Helios 是一个 14B 的实时长视频生成模型,能够在单张 H100 GPU 上以 19.5 FPS 的速度生成分钟级、高一致性的视频。这份能力背后是一套精心设计的三阶段训练管线:第一阶段通过历史注入把模型改造成自回归长视频生成器;第二阶段用金字塔式 token 压缩大幅削减计算量;第三阶段用对抗式层级蒸馏把 50 步采样压到 3 步,并彻底去掉 CFG。本文带你逐阶段拆解长视频模型的完整"炼成路径"。
为什么长视频模型要"三阶段"训练?
先搞懂长视频生成的三大难点:
- 误差累积(漂移):自回归逐段生成分钟级视频时,每段都把上一段的输出当历史,小误差会被逐帧放大,最后画面变糊、内容跑偏甚至"崩掉";
- 算力开销大:每新增一个 chunk,模型都要关注全部历史帧,token 数随视频长度线性膨胀;
- 采样步数多:标准扩散模型要几十步去噪才能出一段视频,谈实时是空话。
Helios 的三个阶段恰好各打一个痛点:
| 阶段 | 产出模型 | 核心技术 | 解决的问题 |
|---|---|---|---|
| Stage 1 | Helios-Base | 统一历史注入 + Easy Anti-Drifting + 多时程记忆补丁化 | 自回归长视频且不漂移 |
| Stage 2 | Helios-Mid | 金字塔统一预测器-校正器 | Token 压缩,算力大降 |
| Stage 3 | Helios-Distilled | 对抗式层级蒸馏(DMD) | 50 步 → 3 步,告别 CFG |
📌 三阶段的完整配置都在 scripts/training/configs/,总览说明见 scripts/training/README.md。
Stage 1:架构适配——教会模型"记住历史"
Stage 1 的起点是双向预训练的 Wan2.1-T2V-14B 基座(见 stage_1_init.yaml 中的transformer_model_name_or_path)。"双向"意味着它天生看的是完整视频,而长视频要求逐块流式生成。所以 Stage 1 的目标是把它改造为自回归生成器:每 9 个 latent 帧(对应 33 个像素帧)为一个 chunk,模型必须"看着过去,预测下一段"。
三个关键招式:
1️⃣ 统一历史注入:历史 latent 不是简单拼接到当前输入,而是通过注意力统一注入。配置里history_sizes: [16, 2, 1]定义了短、中、长三级记忆——短期记忆看 16 帧细粒度历史,越往远越压缩,兼顾细节与视野。历史数据的切分逻辑在 helios/dataset/dataloader_history_latents_dist.py。
2️⃣ 多时程记忆补丁化:多级记忆通过专门的 patch embedding 模块(has_multi_term_memory_patch: true)进入主干。这个模块在 Stage 1 全量训练,之后的阶段保持冻结,保证记忆接口稳定。
3️⃣ Easy Anti-Drifting:抗漂移的精髓是训练时故意给历史加噪。corrupt_history: true会对历史特征做加噪或降采样破坏(细节见 helios/utils/utils_helios_base.py),让模型对"带瑕疵的历史"免疫,推理时误差才不会滚雪球——这正是 Helios 不需要关键帧采样、反转采样等常规抗漂移手段的原因。
训练策略上,Stage 1 分成两相:stage_1_init用较高学习率(5e-5)快速收敛,stage_1_post换低学习率(3e-5)精修;基座大部分冻结,主要通过 rank 128 的 LoRA 更新参数。
Stage 2:金字塔 Token 压缩——让注意力"变便宜"
Stage 1 完成后,长视频的计算开销仍然偏高:去噪的 token 数随 chunk 数量不断增长。
Stage 2 引入金字塔统一预测器-校正器(配置见 stage_2_init.yaml)。核心思路是把去噪过程切成 3 段(stage2_num_stages: 3),sigma 区间按 1/3 划分(stage2_stage_range: [0, 1/3, 2/3, 1]):前两段在低分辨率的压缩 token 上粗雕,最后一段才用全分辨率 token 精修。就像写文章——先搭骨架,再逐段细化,最后润色字词。
效果是:最贵的注意力计算大部分发生在少数 token 上,"粗到细"的金字塔结构又保住了画质,总算力显著下降。多阶段调度的实现见 helios/scheduler/scheduling_helios.py,推理时对应 helios/pipelines/pipeline_helios.py 里的stage2_sample。
Stage 2 同样分成stage_2_init与stage_2_post两相,延续"高学习率快跑 + 低学习率精修"的节奏。
Stage 3:对抗式层级蒸馏——从 50 步到 3 步
Stage 3 的产物就是最快的Helios-Distilled,它内部又分两步:
① ODE 冷启动(stage_3_ode.yaml):先准备一组教师模型生成的 ODE 轨迹对,用 ODE 回归损失(ode_regression_weight: 80.0)让学生模型学会"抄近路"——几步之内直接从噪声跳到干净结果,建立少步生成的初步能力。
② DMD 对抗蒸馏(stage_3_post.yaml):这是对抗式层级蒸馏的主体,两组网络博弈:
- 生成器(学生):只走极少几步(对应
dmd_denoising_step_list: [1000, 750, 500, 250]的去噪点)生成视频; - Critic(打分模型,学习率 4e-7):不断学习区分学生产出与真实数据的分布差异(分布匹配损失,实现在 helios/utils/utils_helios_post.py)。
还有两个巧思:is_use_gt_history: true训练时喂真实数据的历史,防止少步推理进一步放大漂移;EMA(decay 0.99)平滑权重。最终 Helios-Distilled 只需 3 步采样即可出片,guidance_scale=1.0免 CFG(相当于白省一半前向),并改用 x0 预测 +HeliosDMDScheduler。
仓库还提供了两个变体配置:stage_3_post_gan_version.yaml(加 GAN 判别器提清晰度)与stage_3_post_self-forcing_version.yaml(self-forcing 训练方式)。
实战:如何跑通这条三阶段训练管线
训练入口是 train_helios.py,支持 DDP 与 DeepSpeed 两种分布式方案:
bash scripts/training/train_ddp.sh # DDP bash scripts/training/train_deepspeed.sh # DeepSpeed操作顺序与要点:
- 先备数据:用 tools/offload_data/ 下的脚本预提取视频 latent、ODE 对和文本嵌入;官方还提供 toy 数据集,方便小成本跑通全流程;
- 按序训练:依次执行 stage_1_init → stage_1_post → stage_2_init → stage_2_post → stage_3_ode → stage_3_post,每阶段改 scripts/training/configs/ 中对应 yaml 即可;可以用 scripts/training/compare_yaml.py 检查配置完整性与阶段间差异;
- 合并权重:每阶段结束后用 tools/merge_lora_for_helios.py 把 LoRA 与附加 checkpoint 合并成最终 safetensors。
训练完成后如何验证效果?
跑一个推理脚本,直观感受"实时":
cd scripts/inference bash helios-distilled_t2v.sh蒸馏版推荐参数:--is_enable_stage2 --pyramid_num_inference_steps_list 2 2 2 --is_amplify_first_chunk,且num_frames设为 33 的整数倍(每个 chunk 的长度)。想要系统性评估,可以用官方 HeliosBench 评测集(含运动幅度、语义一致性、漂移等指标,见 eval/README.md),检验自己炼出的模型在分钟级视频上是否真的稳。
总结
Helios 的三阶段管线回答的是长视频生成的三个根本问题:
- 如何不漂移——历史注入 + 抗漂移训练(Stage 1);
- 如何变便宜——金字塔 token 压缩(Stage 2);
- 如何变快——从 50 步到 3 步的对抗式蒸馏(Stage 3)。
三个阶段各司其职,且每阶段产物都能独立可用:Base 主打质量、Mid 主打均衡、Distilled 主打实时。这种"一步一石、步步可用"的渐进式训练思路,对想自己训练长视频生成模型的同学非常有参考价值。
【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/Helios
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考