Hy-Nomas 拆解:8B 世界模型用 20.53 GiB 显存跑 100 秒

一句话结论:腾讯混元 10 月 26 日开源的 Hy-Nomas 是一款 8B 参数交互式视频世界模型,用 INT8 量化加滑动窗口加 CPU 卸载,把 100 秒 720p 视频的峰值显存压到 20.53 GiB,单张 RTX 4090 就能跑。

世界模型这个词已经被用得很宽。如果按交互视频这个具体定义来看,Hy-Nomas 做的事是:用户给一句话或一个相机动作,模型生成下一段视频,世界因此往前走一段,历史被保留下来,下一轮指令接着作用。

这个定义里的三个词都有具体含义。自由形式指指令不限于预设动作集,任意描述都能转成下一段视频的条件。持续相机控制指平移和旋转都是连续量,不是八个方向键那种离散指令。贯穿全程的 KV 缓存指历史不被截断,世界状态跨轮次累积。

这篇拆的是它凭什么能在单卡上跑、它真正测出来的是什么、以及在哪些地方它输给了 Genie 3。

架构:一个自回归 DiT 扛全部交互

Hy-Nomas 从 HunyuanVideo 1.5 起步,把原本双向的扩散 Transformer 改造成分段自回归结构。核心改动是把注意力从全双向换成两段式。

第一段是分段因果注意力。每个片段内部注意力仍然是双向的,但跨片段只能看当前片段和之前片段。这样每个片段生成时看不到未来,推理时把文本和视频的键值存进缓存,下一段直接复用。

第二段是动作感知因果注意力,这是这套设计里最关键的一层。仅仅做分段因果会出两个问题。片段内部,因为查询可以看整个片段的文本描述,动作会乱序发生。跨片段,后面的片段还能看到前面片段的动作描述,于是模型会把已经做过的动作重播一遍。

解决办法是把每个片段的文本拆成两部分。一个描述头承载环境信息,跨片段一直可见。若干动作尾对应单个动作及其时间窗,只在原片段内可见。这样环境上下文留住了,动作指令被锁在自己的时间窗口里。论文报告说,引入动作感知掩码后,片段内动作顺序错误和跨片段动作重复都明显减少。

相机轨迹的处理方式不同。每四个连续帧位姿矩阵被压成一个 64 维向量,线性投影加残差 MLP,变成每个潜帧一个相机 token。在每个 MMDiT 块里,视觉 token 通过交叉注意力去读同片段内时间对齐的相机 token。相对位姿在片段内独立计算,不依赖全局坐标系,也不依赖前序片段的相机位姿。

组件 配置
主干网络 8B 参数,54 个双流 MMDiT 块,隐藏维 2048
注意力 16 头,每头 128 维,视频 RoPE 分配 (16, 56, 56)
视频自编码器 DCAE-V,32 倍空间压缩、4 倍时间压缩,潜变量 32 通道
文本编码器 Qwen2.5-VL-7B,宽度 3584,最大长度 1280
相机表示 64 维分组外参,交叉注意力宽 1024,16 头,每个 MMDiT 块一个
训练目标 32 通道潜变量流速度预测

单卡 4090 怎么做到的

这是 Hy-Nomas 最实的一个卖点,也是它和同类开源世界模型拉开体验差距的地方。

官方给了一个具体数字:在 1280×704 分辨率、24 FPS 下生成 100 秒视频(跨 7 个片段),峰值显存占用是 20.53 GiB。这个数字对应一张消费级显卡的显存容量,意味着一张 RTX 4090 能完整跑完整流程,不需要多卡拼接。

支撑这个数字的是四个技巧的叠加。

第一是 INT8 存储加 BF16 计算。模型权重和缓存的键值都按 INT8 量化保存并带浮点缩放因子,计算时反量化回 BF16,DiT 的线性层和注意力仍走 BF16 精度。这条路的关键是量化只发生在存储侧,计算精度没让。

第二是滑动窗口历史。配置里把保留的历史帧数限制为 18 帧,采样方式设为 temporal_context。这样 KV 缓存不会随着生成片段数持续膨胀,是显存能守住上限的直接原因。

第三是 CPU 卸载。文本编码器、DiT、VAE 在各自处理阶段移入 GPU,用完移回 CPU。配置文件里 DiT 的 CPU 卸载开关只在完整的去噪与缓存写入阶段生效。

第四是单卡计算内核。DiT 用 FlexAttention,解码走 CUTLASS FP8,序列并行关闭(sp_size 从 8 降到 1)。稀疏注意力作为加速手段,前两个去噪步走稠密注意力,之后的步骤只保留 25% 的候选视频块。

默认配置是 8 路序列并行,也就是 8 块 GPU。单卡是降级方案而非默认路径。仓库同时提供了预打包 Docker 镜像,CUDA 13.0 加 PyTorch 2.10.0 加 FlashAttention 2/3 加 MagiAttention,环境变量里的镜像名是 hynomasoss/hynomasoss:cu130。

评测:280 个用例,四个子基准

官方发布的同时放出了 Hy-Nomas-Bench,包含 280 个测试用例,覆盖四个子基准。

子基准 用例数 考什么
Bench-1 多轮自由文本 60 2 到 6 轮指令,跨轮依赖已引入的主体与状态
Bench-2 相机导航 100 8 个基本键加 24 种双键组合,每段动作 2 到 4 秒后接等时反向动作
Bench-3 交错控制 60 2 到 7 段,文本与相机指令任意交替
Bench-4 空间记忆 60 4 组外出返回对,静态锚点物,匹配位姿比较

评测方式是三名标注员的成对人工比较,维度分为指令遵循、物理合理性、相机控制、记忆一致性四项,结果按胜平负和净胜率汇总。官方明确说明没有采用传统视频生成常用的画质、美学、音频质量指标,理由是这些不是世界模型的关键能力。

对比对象是 Genie 3、LingBot-World v2 和 Happy Oyster 三个代表性交互世界模型。

实测成绩:文本交互领先,空间记忆落后

先看文本交互这一栏,这是 Hy-Nomas 的强项。

对比项 胜 平 负
Bench-1 指令遵循 vs HappyOyster-Directing 65.0% 25.0% 10.0%
Bench-1 指令遵循 vs LingBot-World v2 75.0% 16.7% 8.3%
Bench-1 物理合理性 vs HappyOyster-Directing 45.0% 43.3% 11.7%
Bench-1 物理合理性 vs LingBot-World v2 68.3% 26.7% 5.0%
Bench-2 相机控制 vs Genie 3 32.0% 54.0% 14.0%
Bench-3 指令遵循 vs LingBot-World v2 75.0% 16.7% 8.3%
Bench-4 空间记忆 vs Genie 3 13.3% 56.7% 30.0%
Bench-4 空间记忆 vs LingBot-World v2 58.3% 40.0% 1.7%

最刺眼的一行是空间记忆对 Genie 3。净胜率 13.3%,平局 56.7%,负 30.0%。Genie 3 在这一项上明显更强。官方给出的解释是 Genie 3 有 Street View 数据的接地能力,这可能贡献了更好的空间一致性。论文还提到加更多带回环相机轨迹的训练数据可能有帮助,这一点留给了后续研究。

相机控制那一栏差距也值得注意。对 Genie 3 是 32% 胜、54% 平、14% 负,对 LingBot-World v2 是 29% 胜、61% 平、10% 负。胜率稳定高于负率,但优势不大。论文自己的解释是这个方向被研究得更多,成熟度更高。

交错控制是 Hy-Nomas 独有的能力。Bench-3 里对 LingBot-World v2 的指令遵循胜率 75.0%、物理合理性 73.3%,但相机控制只有 26.7%,平局高达 68.3%。也就是说在同一套模型里自由切换文本指令和相机操作时,模型没有崩溃,但相机的精细控制仍然弱于语义指令。

把 Bench-4 的空间记忆放回整个赛道上对照更清楚。Kyutai CADRE 用 7 个自编码器把交互延迟压到 230 毫秒走的是延迟路线,VAST 开源 EdenLive 用单卡 RTX 5090 跑实时世界模型走的是实时路线,千诀 Polibrain做的是跨形态复用。Hy-Nomas 落在交互指令执行这一维上。

训练流程:五个阶段,蒸馏到 4 步

从双向视频生成模型改造成交互世界模型,Hy-Nomas 用的是渐进式课程,一共五个阶段。

阶段一做潜空间适配,从 HunyuanVideo 1.5 初始化,先用 2 万步只更新输入输出层,把 VAE 迁到更紧凑的 DCAE-V 潜空间,再做 6 万步全模型更新。

阶段二继续预训练,分三段推进。先是分段因果,让模型学会分段生成。段内注意力保持双向、段间因果,把 HunyuanVideo 的双向注意力换成掩码,适配早期训练阶段就能完成。再是动作感知掩码加时间局部化标注,把上下文长度从 18 万 token 扩到 36 万 token,同时学动作时序与跨片段动作隔离。最后是相机条件预训练,有轨迹和没轨迹的视频按 1 比 1 混合。这一阶段有个细节:每个片段的相机轨迹和相机相关文本描述各有 50% 概率被丢弃,目的是防止模型偷懒用文字描述去猜相机运动。

阶段三做高质量退火,数据换成以单主体为主的视频,用 Kimi K3 生成更准确的密集描述,最大文本长度从 768 提到 1280 token。

阶段四是分段强制(Segment Forcing),让模型在自己的预测误差上训练。具体做法是逐段去噪,当前段拿到前序片段构成的 KV 缓存做条件,只对当前段计算流匹配损失并立即反向传播释放显存,然后用一次单步去噪构造低噪声上下文追加进缓存供下一段使用。上下文构造的噪声区间采样自 0.1 到 0.3,逼近自回归推理时上下文片段的真实噪声水平。最后一段不写缓存。

阶段五做扩散蒸馏,把采样预算从每片段 100 次网络前向压到 4 次。分两步:先用因果化的 Phased Consistency Models 做少步初始化,再在混合强制下用 DDMD 加对抗铰链目标精修视觉质量与运动稳定性。推理时每生成完一段,会用 σ 等于 0.206897 的流噪声扰动一次再更新因果 KV 缓存。

训练基础设施这部分的规模也值得记一下。序列并行用 Ulysses 方式 NSP 等于 8,配合数据并行和 FSDP2 混合分片,每张卡最多持 4.5 万 token。注意力用的是 MagiAttention 的 Flex-Flash-Attention 内核来处理异构掩码,每张卡处理 16 个注意力头中的 2 个。优化器是分布式 Muon。序列打包按估算 FLOPs 而非 token 数来平衡,因为分段因果注意力下不同样本的计算量差异很大。

LoRA 与提示词增强器

官方给的轻量适配流程是:先在未蒸馏的基础自回归模型上训 LoRA 适配器,再把权重合并进蒸馏模型。这个顺序能省掉重跑蒸馏的开销。仓库里的配置是 rank 256、alpha 256、dropout 0、Muon 优化器、常数学习率 1e-4、2000 步。官方建议的下游微调用量在 100 条任务样本量级。

随模型放出的两个 LoRA 适配器各有用处。电影风格适配器 6.12 GB,基于 K3 生成的高质量描述训练。机器人适配器 12.24 GB,基于 RealSource-World 双臂数据集训练,用来接机器人仿真。

提示词增强器(PE)是一个基于 Qwen3.8-27B 微调出来的视觉语言模型,负责把用户指令和多模态交互历史翻译成下一段的结构化提示词。官方评测显示,PE 在指令遵循和物理合理性上明显优于原始 Qwen3.8-27B,同时保持了相机控制表现,显著缩小了与 Kimi-K3 的差距。更有意思的一个数字是输出格式遵循率:PE 接近 100%,Qwen3.8-27B 约 50%,Kimi-K3 约 70%。

LoRA 迁移也暴露了代价。电影风格适配后,Bench-1 的指令遵循胜率 35%、物理合理性胜率 46%,但相机控制出现回退,胜率 19% 对负率 37%。论文归因于 SFT 数据集里相机轨迹多样性不足,削弱了原有的相机控制能力,尤其是覆盖较少的那些相机运动。

许可与部署现状

代码和权重按 Apache 2.0 放出。许可文件里有一段明确的说明:Hy-Nomas 指腾讯按 Apache-2.0 公开的代码、参数和权重,第三方组件保留各自原有许可,没有额外限制。这是相对宽松的条款,商用和二次分发都不需要额外谈判。

GitHub 仓库创建于 10 月 21 日,到 10 月 27 日早上拿到 206 个 star 和 25 个 fork。仓库含完整的训练、推理、交互式演示、LoRA 微调和数据标注代码。技术报告有 39 页。官方还提供了 Diffusers 集成,方式是安装一个带 hy-nomas 扩展的分支,用 HyNomasModularPipeline 加载。

部署上有一个容易忽略的现实约束。官方交互式演示的 Reactor 运行时配置是 8 张 B200 GPU 加 Node.js 22,配合浏览器端的 WASD 和方向键控制。Demo 跑的是完整配置,单卡配置是本地推理路径,两者的体验差距不小。

常见问题

单张 RTX 4090 真的能跑 100 秒视频吗?

官方给的数字是 1280×704 分辨率、24 FPS、跨 7 个片段共 100 秒,峰值显存 20.53 GiB。这个配置需要用 INT8 量化的 DiT 检查点和 FP8 解码器检查点,且要接受 CPU 卸载带来的传输开销。峰值显存还取决于片段长度和临时计算缓冲,不是任何提示词下都能压到这个数。

Hy-Nomas 和 Genie 3 的差距主要在哪里?

文本交互和多轮指令遵循上 Hy-Nomas 更强,Bench-1 对 LingBot-World v2 的指令遵循胜率 75.0%。空间记忆上明显落后 Genie 3,胜率只有 13.3%、负 30.0%。相机控制上互有胜负,优势不大。一个更准确的总结是:它的交互语义能力更强,长期空间一致性仍是短板。

拿到权重后需要自己标注数据吗?

要微调就需要。仓库里的标注工具可以把本地视频切成片段、用 DCAE-V 编码帧、打包成 Arrow 或 Parquet 格式。训练用数据还支持离线序列打包,把 480p 和 720p 的 5 到 75 秒视频按 token 预算打包。直接用现成权重推理则不需要这一步。

小结

Hy-Nomas 最有说服力的地方是把三个通常分开的东西合在了一起:分段自回归的结构、动作感知因果注意力那套掩码设计、以及 INT8 加滑动窗口加 CPU 卸载这套单卡工程。前两个决定它能不能做交互,第三个决定普通人能不能真的跑起来。

20.53 GiB 这个数字是它区别于同类开源世界模型的地方。多数交互式世界模型的公开版本都需要多卡,DeepSeek V4.1 Flash 把 KV Cache 缩小 437 倍走的是推理层的内存路线,EdgeRock-4B 用 72 MiB 固定 KV是把缓存体积做到极致,Hy-Nomas 则是把整套生成流程压进单张消费卡。

成绩单要一起看。文本交互的 75% 胜率和交错控制的 75% 胜率说明语义指令执行确实到位,空间记忆对 Genie 3 的 13.3% 胜率说明长期一致性还差一截。单卡部署加上 Apache 2.0 许可,让这套东西有了被大量试用的条件。接下来真正要看的,是社区拿它跑出来的实际效果能不能撑住分钟级的连续交互。

相关阅读