Hy-Nomas:8B 参数、单张 4090 跑 60 秒可控世界,但发布头三天只有 41 颗星

举报
Daniel777 发表于 2026/10/27 08:32:10 2026/10/27
【摘要】 先说结论10 月 21 日,腾讯混元把 Hy-Nomas 的权重、推理代码、两套 LoRA、280 条基准用例一次性全放出来了,Apache 2.0,可商用。但这次发布低调到反常:官宣推文比代码晚发两天,连 “Nomas” 是什么意思都没解释,国内主流媒体零报道,GitHub 头三天只有 41 颗星——可能是今年最不像腾讯的一次腾讯发布。对开发者来说,值得关注的理由只有一条:这是目前唯一一...

先说结论

10 月 21 日,腾讯混元把 Hy-Nomas 的权重、推理代码、两套 LoRA、280 条基准用例一次性全放出来了,Apache 2.0,可商用。

但这次发布低调到反常:官宣推文比代码晚发两天,连 “Nomas” 是什么意思都没解释,国内主流媒体零报道,GitHub 头三天只有 41 颗星——可能是今年最不像腾讯的一次腾讯发布。

对开发者来说,值得关注的理由只有一条:

这是目前唯一一个能在单张 RTX 4090 上跑起来的、可自由交互的、Apache 2.0 的世界模型。

同赛道的 Genie 3 闭源,只能在美国 AI Ultra 订阅的网页原型里摸到;Matrix-Game 4.0 公开了消费级实时运行,但权重不开。想真正把世界模型拿进项目里改,Hy-Nomas 是目前成本最低的入口。

官方规格(来自腾讯混元官网) 数值
模型参数量 8B
输出分辨率 720p(1280×704)
最长连续生成 60 秒
上下文长度 360K token
帧率 24 fps
许可证 Apache 2.0(可商用)
最低硬件 单张 RTX 4090(INT8 + CPU offload)

下面按「它是什么 → 架构怎么搭 → 怎么在 4090 上真跑起来 → 三盆冷水 → 和 Genie 3 的差距」来讲,所有数字都标了出处,官方没给的我会明确说"官方未披露"。


一、它和普通 AI 视频生成,差在哪

一句话区分:

  • 普通 AI 视频生成:一锤子买卖。你给 prompt,它出片,出完你只能看。想改,重来一遍,画面全变。
  • Hy-Nomas:一段约 4 秒地生成,段与段之间你可以插话。

"插话"能做什么:

能力 具体表现
多轮文本控制 加个物体、改个天气、让人物换个动作,不重启、不重算历史
相机轨迹控制 WASD / 方向键直接走位,镜头自由移动
文本与相机交错 同一段视频里,先用文字描述场面,再切相机推镜头,然后继续用文字改剧情
世界记忆 走远之后返回原地,物体、环境细节、空间布局不"变脸"

官方在官网放了 83 个生成示例,按 4 种画风 × 3 种视角分组:

4 种画风:真实实拍 / CG / 游戏 / 动画
3 种视角:第一人称 / 第三人称跟随 / 第三人称旁观

这个覆盖度说明它不是只能出写实画面——游戏和动画风格同样成立,这对做原型验证的人很关键。

世界记忆的官方演示数据:

演示 时长 验证内容
重返复杂场景 30s 大幅镜头运动后回到原视角,复杂背景完整保留
地标保持原位 29s 走开后回头,地标还在原处
重新找到瀑布 20s 探索一圈后能找回来

这三个 demo 是官方精选的最好情况。真实能力边界要看下面的"三盆冷水"。


二、架构:54 个双流 MMDiT block + 四个关键设计

官方在官网把架构拆成四个看点,我按"为什么这么设计"的顺序重讲一遍。

2.1 主干:54 个 dual-stream MMDiT block

┌──────────────────────────────────────────────┐
│  文本指令 ──┐                                 │
│            ├─→ 54 × dual-stream MMDiT block  │──→ 视频 latent
│  视频 latent ┘        ↑                       │
│                    相机交叉注意力              │
│                                              │
│  每段生成的 text/video K,V 缓存 ─→ 传给下一段  │
└──────────────────────────────────────────────┘

要点两条:

  1. 文本和视频是双流并行处理的,不是先编码文本再拼接,而是 54 层里持续交互。这决定了它对"改一个细节"的响应精度。
  2. 相机走的是交叉注意力,独立于文本通道。这是为什么文字和相机能交错控制而不互相污染——两条控制信号在架构层就是分开的。

而那句"每段生成的 text/video K,V 缓存传给下一段",就是世界记忆的全部机制来源。

2.2 Action-aware causal attention(动作感知因果注意力)

分段的因果注意力,如果只做"前面所有段都看",长视频下注意力会被稀释。

Hy-Nomas 加了"动作感知"这一层——让模型知道当前段接的是文本指令还是相机运动,从而调整该回看哪些历史段。

对做长序列生成的人,这条设计思路可以直接搬:因果掩码不该是均匀的,应该按"上一个动作的类型"加权。

2.3 Segment Forcing(分段强制训练)

这是 LoRA 微调管线的核心。官方给的训练配置很实在:

参数 值
LoRA rank / alpha 256
dropout 0
优化器 Muon
学习率 1e-4(constant)
训练步数 2,000 步
序列并行 SP8
示例总规模 128 GPU(DP16 × SP8)
序列打包最大长度 360,000

流程是三步:

① 从非蒸馏 checkpoint(DiT/base_ar)开始训练
        ↓
② segment forcing 管线,只训 LoRA 参数
        ↓
③ 把 LoRA 权重合并进蒸馏 checkpoint(DiT/distilled)→ 推理用

注意第①步和第③步的对象不是同一个模型。 训练用非蒸馏版(表达能力强、能学到东西),推理用蒸馏版(4/6/8 步快速出片)。LoRA 跨版本迁移是这里最容易踩坑的地方——如果你的 LoRA 在蒸馏模型上跑出画质崩塌,先查这两者的 latent 布局是否对齐。

2.4 Nomas-PE(提示词增强器)

一个在线小模型,把你口语化的指令转成结构化 prompt。

看起来不起眼,但这是"多轮交互"能用的前提。你说"让它下雪",如果没有 PE,模型可能理解为"画面整体变白";有 PE,会补出"地面积雪、飘落雪花、色温转冷"这一串可执行描述。

这一类小组件值得在自己的 Agent 项目里照搬:用户输入永远是模糊的,中间加一层"口语 → 结构化"的翻译器,比在大模型 prompt 里堆十条规则管用。


三、部署实战:单张 4090 怎么跑起来

官方给了两条路:预打包 Docker 镜像(强烈推荐)和手动安装。Docker 那条能省掉 CUDA 13 + FlashAttention 3 的编译地狱,直接用它。

3.1 环境要求

项 要求
操作系统 Linux
Python 3.12+
CUDA Toolkit 13.0(需要 nvcc)
包管理 uv
其他 C++ 编译器、兼容的 NVIDIA 驱动

Windows 用户注意:官方只给 Linux 路径。要么 WSL2(需要确认 GPU 直通),要么租云卡。这是本项目目前最实际的门槛。

3.2 拉镜像启动

export HY_NOMAS_IMAGE="hynomasoss/hynomasoss:cu130"
docker pull "$HY_NOMAS_IMAGE"

docker run --rm -it --gpus all --ipc=host --network=host \
  -v "$PWD:/workspace/Hy-Nomas" \
  -w /workspace/Hy-Nomas \
  "$HY_NOMAS_IMAGE" bash

--ipc=host 不要省。多进程共享显存/内存时,默认 IPC 命名空间不够用,会以各种诡异的内存错误表现。

3.3 下载权重

export Hy_Nomas_Model_Path=/path/to/Hy-Nomas
hf download tencent/Hy-Nomas --local-dir "${Hy_Nomas_Model_Path}"

权重里有 9 个资产,第一次下载容易搞混哪个是哪个:

资产 用途 什么时候用
DiT/base_ar(FP32) 非蒸馏 checkpoint 只在 LoRA 微调时用
DiT/distilled(FP32) 蒸馏版,4/6/8 步推理 有 24G+ 显存、要画质
DiT/distilled_int8 INT8 量化蒸馏版 默认单卡推理就用它
DiT/cinematic_lora 电影感 LoRA 提升画面质感
DiT/robotics_lora 机器人仿真 LoRA 具身智能数据合成
VAE/DCAE-V 视频编码为 latent 训练/数据处理
VAE/PixelUMM_FT latent 解码为视频帧 标准推理
VAE/PixelUMM_FT_FP8 FP8 量化解码器 低显存推理
Nomas-PE 提示词增强器 交互式使用必带

3.4 标准推理(高显存)

export Hy_Nomas_Model_Path="${Hy_Nomas_Model_Path:-/path/to/Hy-Nomas}"

bash scripts/inference/inference_from_config.sh configs/experiment/inference.yaml \
  dit_weight="${Hy_Nomas_Model_Path}/DiT/distilled/diffusion_pytorch_model_ema_0_995.safetensors" \
  model.vae.checkpoint="${Hy_Nomas_Model_Path}/VAE/PixelUMM_FT/diffusion_pytorch_model.safetensors" \
  inference.prompt=/path/to/prompts.json \
  inference.save_path=./outputs/distill

3.5 单卡 4090 低显存推理(关键)

export Hy_Nomas_Model_Path="${Hy_Nomas_Model_Path:-/path/to/Hy-Nomas}"

bash scripts/inference/inference_from_config.sh configs/experiment/single_gpu_low_mem_inference.yaml \
  dit_weight="${Hy_Nomas_Model_Path}/DiT/distilled_int8/diffusion_pytorch_model_ema_0_995_int8.safetensors" \
  model.vae.checkpoint="${Hy_Nomas_Model_Path}/VAE/PixelUMM_FT_FP8/diffusion_pytorch_model_fp8.safetensors" \
  inference.prompt=/path/to/prompts.json \
  inference.save_path=./outputs/single_gpu

和标准版比,只改了三个字:配置文件换 low_mem,DiT 权重换 int8,VAE 换 fp8。

这个 single_gpu_low_mem_inference.yaml 里做了四件事,值得单独说清楚,因为这是整篇文章最有迁移价值的部分:

手段 具体做法 省的是什么
INT8 权重 + INT8 KV cache DiT linear 层和 attention 仍用 BF16 计算,只存 INT8 权重体积 + KV cache 体积,约一半
滑动窗口历史 默认只让最近 18 个潜在帧参与 GPU 注意力,更早的留在内存 KV cache 不随段数增长
CPU offload 文本编码器 → DiT → VAE 按阶段逐段上 GPU,处理完立刻回 CPU 峰值显存(代价是 CPU-GPU 传输)
单 GPU kernel 替换 DiT 用 FlexAttention、解码用 CUTLASS FP8、关序列并行(sp_size=1) 去掉分布式通信开销

这四条组合起来,其实是端侧大模型部署的通用套路,不只是视频生成:

量化存储(INT8/FP8)+ 计算保持高精度(BF16)
        ↓
把"无限增长的状态"换成"固定窗口"(滑动窗口)
        ↓
把"同时驻留"换成"按阶段轮转"(CPU offload)
        ↓
把"通用 kernel"换成"专用 kernel"(FlexAttention / CUTLASS)

按这个顺序往下压,是显存不够时的标准降级路径。

3.6 Diffusers 调用(做集成的走这条)

# 需要安装 Hy-Nomas 维护的 diffusers 分支
# 具体仓库地址以 GitHub 仓库 README 为准,此处用占位符代替
pip install -e "diffusers[hy-nomas] @ git+<Hy-Nomas diffusers 分支地址>"

(这一分支不是 PyPI 上的标准 diffusers,必须按 README 给的地址装。装错版本会出现 HyNomasModularPipeline 找不到的报错。)

pipe = HyNomasModularPipeline.from_pretrained("tencent/Hy-Nomas-Diffusers")
pipe.load_components(dtype=torch.bfloat16)
pipe.to(device="cuda", dtype=torch.bfloat16)
pipe.transformer.enable_reference_attention(text_backend="flash_varlen", deterministic=True)

videos = pipe(
    prompt=[json.dumps(prompt) for prompt in prompts],
    height=704, width=1280,
    num_frames=240,                  # 240 帧 = 10 秒 @ 24fps
    segment_latent_lengths=[30, 30], # 分 2 段,每段 30 个 latent
    fps=24,
    num_inference_steps=4,           # 4 步蒸馏
    generator=torch.Generator("cpu").manual_seed(42),
    output="videos",
)
export_to_video(videos[0], "hy_nomas_video.mp4", fps=24, quality=None)

三个参数要留意:

  • segment_latent_lengths=[30, 30]:这是分段控制的核心。想生成 60 秒就把它拉到 [30, 30, 30, 30] 之类,段数越多,能插话的次数越多。
  • num_inference_steps=4:4 / 6 / 8 三档。4 最快但细节最差,做原型验证够用;要出片用 8。
  • deterministic=True:多轮交互时必须开。否则第二段的随机噪声和第一段对不上,历史一致性直接崩掉。这是我最想强调的一个参数。

3.7 流式交互服务(8×B200 才撑得住)

官方给的 Reactor 运行时,硬件要求 8 张 B200:

cd reactor
reactor build
reactor run --gpus '"device=0,1,2,3,4,5,6,7"' --shm-size 8g --port 8080

前端:

cd reactor/demo
npm ci
npm run dev -- --port 5173

打开 localhost:5173,填 Runtime endpoint,点 Connect → 输入 prompt → Start world → 点视频用 WASD 探索。

个人开发者跳过这一节——8×B200 不是家用配置。这一节的意义是:它证明了官方自己有一套能对外服务的部署形态,不是只放了个 demo 脚本。


四、三盆冷水:下载权重前先看完

这是全文最重要的部分。官方 README 和官网都是正面展示,下面这些是我从社区实测和官方规格反推出来的边界。

第一盆:它不实时

社区实测:RTX 5090 生成一段 3 秒视频约需 21 秒。

所以"实时交互世界"这个头衔不在它手里——那是 Matrix-Game 4.0 的宣传点。Hy-Nomas 更接近「轮流改片」:

你下指令 → 等几秒到几十秒 → 世界再往下演一段 → 你再下指令

这个交互节奏适合:做分镜预演、验证游戏世界观、生成定制素材。

它不适合:做实时驾驶模拟、做需要 60fps 响应的交互应用。

判断标准很简单:你的用户能接受"说一句话等 20 秒"吗? 能,它就能用;不能,现在哪个开源世界模型都还不能用。

第二盆:「终身记忆」在消费级卡上要打折

官方主打 lifelong KV cache,理论上每段历史都留着,所以世界记得住你干过什么。

但低显存配置里,历史被换成了滑动窗口——只让最近 18 个潜在帧参与 GPU 注意力,更早的留在内存里(需要时取回,有延迟)。

这意味着什么:

配置 记忆能力 实际表现
8×B200 流式服务 完整 lifelong KV cache 官方 30s 重返场景 demo 的水平
单张 4090 低显存 滑动窗口(18 潜在帧) 走太远回到原地,细节可能已经变了

所以不要把官网那个"30 秒后重返复杂场景、背景完整保留"的 demo,当成你在 4090 上能得到的效果。那是全量 KV cache 下的成绩。

第三盆:官方没给的东西,比给了的多

我逐个核对了官方材料,以下这些官方明确没有披露:

缺什么 影响
显存峰值具体数字(GB) 只知道"随分辨率和段长变化",得自己试
推理耗时基准(不同 GPU) 只有社区实测,非官方口径
训练数据规模 无法判断数据覆盖度
世界记忆的定量指标 只有定性 demo,没有"多少秒后一致性下降到多少"
技术报告 官网标的是 Tech Report (Coming Soon)

这一条要特别提醒:8B 这个参数量,我是从腾讯混元官网的 Model Specifications 页取的(原文 8B Model parameters)。但部分社区文章说"官方至今没公布参数量,8B 是推算"。以官网当前页面为准,8B 是官方口径;不过技术报告没出,DiT 和 VAE 各占多少、是否含 PE,都还没有细分数据。


五、和 Genie 3 的差距,以及它真正的位置

这是理解 Hy-Nomas 定位的关键。把三个同赛道模型摆在一起:

维度 Hy-Nomas(腾讯) Genie 3(Google) Matrix-Game 4.0
开源 完全开源(代码+权重+训练流程,Apache 2.0) 闭源,网页原型限量 权重不开
硬件 单张 4090 可跑(INT8) 云端推理,限 60 秒体验 消费级实时
交互模式 多轮分段,非逐帧实时 24fps 逐帧真实时 实时
一致性机制 lifelong KV cache 约 1 分钟视觉记忆 —
分辨率 1280×704(720p) 720p 写实级 —
定制能力 LoRA 微调 + 数据标注管线 无微调入口 —
适合谁 研究者、开发者、创作者 普通用户体验 —

读完这张表,Hy-Nomas 的定位就清楚了:

它不是"最强的世界模型",而是"唯一能在你机器上、用 Apache 2.0、改得动源码的世界模型"。

Genie 3 在"实时性"和"画质"上确实领先,但它是个产品;Hy-Nomas 是个基座。这两者的比较没有胜负,只有用途不同。

而 10 月这个赛道挤爆的态势很说明问题:

10 月初  Odyssey-3 刷新 Physics-IQ 纪录,权重不开
10 月中  昆仑 Matrix-Game 4.0 宣布消费级显卡实时运行
10/21    腾讯混元 Hy-Nomas 全开源,Apache 2.0,单卡 4090 可跑

三条路,三种活法。腾讯选了"开源换生态"这条——用发布头三天 41 颗星的低调,换一个能被全世界改的基座。这个选择在他们内部未必是最优解,但对开发者是好事。


六、三条可以直接搬走的设计

抛开世界模型这个具体场景,Hy-Nomas 里有三个设计是通用的。

① 滑动窗口 + 全量缓存的"双档设计"

官方给了两套配置:全量 lifelong KV cache(高显存、高一致性)和滑动窗口 18 帧(低显存、有损)。

这不是妥协,这是产品设计。 让用户按硬件选档位,比要求所有人上一套硬件现实得多。

任何做长上下文/长状态的应用,都该问自己一句:我能不能给一个"降级但能用"的档位?

② 量化存储 + 高精度计算

INT8 存权重和 KV cache,但 DiT linear 层和 attention 保持 BF16。

这个组合现在已经是共识了,但很多人在做量化时还是习惯"全链路量化"。存和算分开,是性价比最高的做法——省了显存,不掉精度。

③ LoRA 分域,而不是一个大模型全包

官方给了两套 LoRA:Cinematic(电影感)和 Robotics(机器人仿真,用 RealSource-World 真实机械臂数据集训练)。

同一套基座,合并不同 LoRA 得到不同世界。

对做垂直应用的团队,这个模式值得抄:基座开源给你,你的行业数据训你自己的 LoRA,最后 merge 回蒸馏版做推理。 整套管线官方都给全了,包括数据标注工具(captioning-harness)和打包格式(Arrow / Parquet)。


七、我的判断:谁该现在动手,谁该再等

你的情况 建议
做 AI 游戏原型、想低成本验证世界观 现在就试。8B + 4090,试错成本最低的选择
做具身智能、需要合成机械臂数据 关注 Robotics LoRA。真实机械臂数据集训的,方向对口
做影视分镜预演、需要多镜头连贯 可用,但要降预期。非实时,一轮要等几十秒
做实时交互应用(驾驶模拟、VR) 再等。现在整个开源赛道都做不到
只想体验一下世界模型 用网页 demo,不用下权重。需要注册账号
显存 12-16G 想跑 看 ComfyUI 社区版。社区称 12GB 可跑,但官方未认证,别当承诺

最后一个提醒:Apache 2.0 可以商用,但权重和代码的许可证可能不完全一致——商用前把仓库里的 LICENSE 和每个子目录的说明都读一遍,别只看首页那个 Apache 2.0 徽章。这是所有开源模型都会踩的坑。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。