为什么Helios不需要防漂移?揭秘14B实时长视频生成的核心架构原理
【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/Helios
Helios 是一个14B 实时长视频生成模型:在单张 H100 GPU 上以19.5 FPS实时生成分钟级视频。更反直觉的是,它没有使用 self-forcing、error-banks、关键帧采样、反转采样等常见的长视频防漂移策略,也不依赖 KV-cache、因果掩码、稀疏注意力等加速手段。这篇文章就带你拆解:它是如何"天生不漂移"的。
💡 一句话结论:Helios 把"抗漂移"做进了模型结构与训练过程里,而不是在推理时打补丁。
1. 先搞懂"漂移":长视频生成的通病
业界生成长视频的通行做法是自回归分块生成——一段一段往后接。问题在于:每一块的输入是上一块的模型输出,微小误差会随时间不断累积——颜色渐渐发灰、运动越来越僵、语义慢慢偏航,30 秒后视频可能就"翻车"了。
常见的防漂移策略(注意,这些 Helios都没有用):
| 策略 | 思路 |
|---|---|
| Self-Forcing | 训练时把模型自己生成的历史喂回去,让它学会自我纠错 |
| Error-banks | 收集推理中的误差样本,再回放进训练 |
| 关键帧 / 反转采样 | 周期性重采样关键帧来"拨正"历史 |
Helios 换了个思路:让模型本身就不漂移。
2. 核心架构:33帧分块 + 多尺度记忆的历史注入
Helios 每次生成33 帧(num_frames会自动向上取整为 33 的倍数)。架构关键就在"生成当前块时如何消费历史",共三层设计:
2.1 统一历史注入(Unified History Injection)
双向预训练的视频模型被改造成了自回归生成器:历史 latent 与当前块 token 拼接在同一条序列里送入 40 层 Transformer,且历史被标记为timestep = 0(干净状态),让模型明确区分"这是已确定的过去"与"这是待去噪的现在"。核心实现在 helios/modules/transformer_helios.py 的process_input_hidden_states。
2.2 多尺度记忆分块化(Multi-Term Memory Patchification)
历史不是简单的"最近几帧"。Helios 把历史切成短 / 中 / 长三档(训练配置history_sizes: [16, 2, 1]),用三组不同核尺寸的 3D 卷积压缩成低分辨率 token 再喂给模型:
patch_short:卷积核 (1,2,2),保留最近动作的细节;patch_mid:卷积核 (2,4,4),承载中期结构;patch_long:卷积核 (4,8,8),提供长期全局上下文。
代码见 helios/modules/transformer_helios.py。这是"不遗忘"的关键:近期运动看短期记忆,主体身份与场景布局看长期记忆,注意力机制在训练中学会平衡两者——纯自回归模型常见的"开头忘光光"问题因此被结构性地化解。
2.3 分块自回归管线
推理主循环在 helios/pipelines/pipeline_helios.py:stage1_sample完成单个块的去噪,块完成后把干净 latent 并入历史传给下一块。位置编码采用绝对帧序号RoPE 而非相对偏移,模型始终"知道"自己走到了时间轴的哪个位置。
3. 为什么不会漂移?训练时的三剂"疫苗"
Helios 的答案不是推理时补救,而是让模型在训练中"天然免疫":
- Easy Anti-Drifting(数据级接种):训练时对历史 latent 施加噪声 + 模糊 + 饱和度扰动(配置见 scripts/training/configs/correct.yaml)。模型从小习惯"带瑕疵的历史",推理时出现小误差也不会引发雪崩式退化;
- 真值历史蒸馏:Stage-3 蒸馏阶段给生成器喂真值历史(
is_use_gt_history: true,见 scripts/training/configs/stage_3_post.yaml),判别器在干净分布上打分,抑制少步生成器的质量塌缩; - 训练-推理格式严格对齐:数据加载器 helios/dataset/dataloader_history_latents_dist.py 精确模拟"干净历史 + 带噪当前块"的推理形态,不给误差留可乘之机。
三阶段训练(架构适配 → 令牌压缩 → 少步蒸馏)的完整说明见 scripts/training/README.md,各阶段配置位于 scripts/training/configs/。
4. 实时性如何实现:单卡 H100 跑出 19.5 FPS
不用 KV-cache、因果掩码、稀疏注意力、量化,14B 模型靠两招把算力省出来:
- 金字塔统一预测校正器(Stage-2):多尺度金字塔采样(
pyramid_num_inference_steps_list: [2,2,2]),激进减少参与计算的"带噪 token"数量,从根源降低总计算量; - 对抗层级蒸馏(Stage-3, DMD):把采样步数从 50 步压到个位数,并取消 CFG——每步只需一次前向,算力直接腰斩。
再叠加自研 Triton 内核套件 helios/modules/helios_kernels/(融合 RoPE、融合 RMSNorm、tiled Linear、注意力分发等),进一步榨取推理吞吐;调度器 helios/scheduler/scheduling_helios.py 配合动态时间步偏移(Dynamic Shifting),让噪声调度始终匹配当前 latent 规模。
5. 怎么验证是否漂移?HeliosBench 评测基准
项目自带面向实时长视频的评测套件(指南见 eval/README.md),其中包含 4 个专门衡量漂移的指标——美学漂移、运动平滑度漂移、语义漂移、自然度漂移(脚本如 eval/5_get_drifting_aesthetic.py)。想快速上手体验,一键运行推理脚本即可:
bash scripts/inference/helios-distilled_t2v.sh6. 总结
- 为什么不需要防漂移:多尺度记忆历史注入 + 训练期 Easy Anti-Drifting 扰动 + 真值历史蒸馏,让模型"出厂即免疫",无需 self-forcing 之类的推理期技巧;
- 为什么能实时:金字塔预测校正器压缩 token 计算量 + DMD 少步蒸馏去掉 CFG + 自研内核优化,单卡 H100 达 19.5 FPS;
- 模型选择:Helios-Base(质量最佳)/ Helios-Mid(过渡)/ Helios-Distilled(效率最佳),三者同构,均支持文生视频、图生视频、视频生视频。
【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/Helios
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考