NVIDIA Cosmos 1.0 版本发布全解析:13 个世界基础模型、NeMo 后训练与安全体系
【免费下载链接】cosmosNVIDIA Cosmos is an open platform of world models, datasets, and tools that enables developers to build Physical AI for robots, autonomous vehicles, smart infrastructure, and more.项目地址: https://gitcode.com/GitHub_Trending/cosmos7/cosmos
本篇文章以 Cosmos 1.0 的官方发布说明(release_notes/v1p0.md)为核心骨架,系统梳理 2025 年 1 月发布的 Cosmos 1.0 全量模型清单、版本演进里程碑,并深入每一族模型的推理入口、参数配置与安全机制。读者在读完本文后,将能够:快速对照 13 个模型在仓库中的定位与用途、掌握扩散与自回归两类世界基础模型(WFM)的单条/批量推理命令与显存优化策略、理解基于 NeMo 框架的通用后训练(General Post-Training)全流程,并了解 Cosmos Guardrail 预检/后检两级安全体系的工作原理。
一、版本时间线:Cosmos 1.0 的三个关键里程碑
release_notes/v1p0.md记录了 Cosmos 1.0 生命周期内的三次重要发布,每一次都对应仓库能力的实质性扩展:
| 发布日期 | 核心更新 | 影响范围 |
|---|---|---|
| 2025-01-06 | Cosmos 1.0 初始发布,同步发布 Cosmos 论文,一次性放出 13 个模型及对应的推理脚本 | 模型生态 + 推理 |
| 2025-01-09 | 通过 NeMo 框架支持General Post-Training(通用后训练) | 训练/微调 |
| 2025-01-27 | 稳定性(Stability)与安全性(Safety)改进 | 全流程质量 |
值得注意的是,三次更新之间存在清晰的递进关系:初始发布解决"有哪些模型、怎么跑推理",第二次更新解决"如何基于自有数据微调出适配场景的模型",第三次更新则聚焦"如何让生成过程更稳定、更安全"。下文将按此逻辑逐一展开。
二、13 个模型的完整清单与分类
初始发布一次性放出了 13 个模型,覆盖世界生成的两条技术路线(扩散与自回归)、视觉 Tokenizer、Prompt 增强与安全护栏五大类别。原文档中的"Try it out"入口均指向仓库内的推理文档,下表已转换为仓库根目录相对路径:
| # | 模型名称 | 模型描述 | 推理入口 |
|---|---|---|---|
| 1 | Cosmos-1.0-Diffusion-7B-Text2World | 文本到视觉世界生成 | Diffusion 推理文档 |
| 2 | Cosmos-1.0-Diffusion-14B-Text2World | 文本到视觉世界生成 | Diffusion 推理文档 |
| 3 | Cosmos-1.0-Diffusion-7B-Video2World | 视频+文本的未来视觉世界生成 | Diffusion 推理文档 |
| 4 | Cosmos-1.0-Diffusion-14B-Video2World | 视频+文本的未来视觉世界生成 | Diffusion 推理文档 |
| 5 | Cosmos-1.0-Autoregressive-4B | 未来视觉世界生成 | Autoregressive 推理文档 |
| 6 | Cosmos-1.0-Autoregressive-12B | 未来视觉世界生成 | Autoregressive 推理文档 |
| 7 | Cosmos-1.0-Autoregressive-5B-Video2World | 视频+文本的未来视觉世界生成 | Autoregressive 推理文档 |
| 8 | Cosmos-1.0-Autoregressive-13B-Video2World | 视频+文本的未来视觉世界生成 | Autoregressive 推理文档 |
| 9 | Cosmos-1.0-Tokenizer-CV8x8x8 | 连续视频 Tokenizer,8x8x8 压缩比 | Diffusion 推理文档 |
| 10 | Cosmos-1.0-Tokenizer-DV8x16x16 | 离散视频 Tokenizer,16x8x8 压缩比 | Autoregressive 推理文档 |
| 11 | Cosmos-1.0-PromptUpsampler-12B-Text2World | Text2World 的 Prompt 增强器 | Diffusion 推理文档 |
| 12 | Cosmos-1.0-Diffusion-7B-Decoder-DV8x16x16ToCV8x8x8 | 用于增强自回归 WFM 输出的扩散解码器 | Autoregressive 推理文档 |
| 13 | Cosmos-1.0-Guardrail | 包含预检(pre-Guard)与后检(post-Guard)的安全护栏 | 内嵌于模型推理脚本 |
从架构角度看,这 13 个模型构成了一条完整的世界生成流水线:离散 Tokenizer(DV8x16x16)负责把视频压缩为离散 token 供自回归模型预测 → 自回归 WFM 逐帧预测未来 → 扩散解码器(DV8x16x16ToCV8x8x8)把离散 token 增强为更高质量的视频 → 连续 Tokenizer(CV8x8x8)作为扩散模型的编解码接口;而 Prompt Upsampler 与 Guardrail 分别负责输入侧的提示词增强与输入输出两侧的安全把关。
三、扩散世界基础模型(Diffusion WFM):Text2World 与 Video2World
3.1 模型定位与推理入口
Cosmos 1.0 的扩散系列包含Text2World(7B/14B)与Video2World(7B/14B)两类共 4 个模型,从源码结构看,其核心实现位于 cosmos1/models/diffusion 目录:
- Text2World:仅凭文本 prompt 生成一段全新的视觉世界视频,推理脚本为 text2world.py;
- Video2World:基于输入图片/视频 + 文本,预测并生成后续的未来视觉世界,推理脚本为 video2world.py;
- 底层网络实现位于 general_dit.py 与 general_dit_video_conditioned.py,模型配置可参考 cosmos-1-diffusion-text2world.py 与 cosmos-1-diffusion-video2world.py。
3.2 检查点下载
下载脚本 download_diffusion.py 支持--model_sizes(7B/14B)与--model_types(Text2World/Video2World)两个维度组合下载,并会自动附带 Guardrail、CV8x8x8 Tokenizer 等必备模型:
PYTHONPATH=$(pwd) python cosmos1/scripts/download_diffusion.py --model_sizes 7B 14B --model_types Text2World Video2World从脚本源码可见,Video2World 还会额外触发 convert_pixtral_ckpt.py 将 Pixtral-12B 权重转换为本仓库所需的格式,用于 Video2World 的 Prompt Upsampler 任务。
3.3 单条与批量推理
单条生成时,Text2World 必须提供--prompt;Video2World 必须提供--input_image_or_video_path。批量生成则统一使用 JSONL 文件(--batch_input_path),Text2World 每行格式为{"prompt": "..."},Video2World 每行格式为{"visual_input": "path/to/video.mp4"};若禁用 Prompt Upsampler(--disable_prompt_upsampler),则 Video2World 的 JSONL 每行需同时包含prompt与visual_input两个字段。仓库在 assets/v1p0/batch_inputs 下提供了text2world.jsonl、video2world_ps.jsonl、video2world_wo_ps.jsonl三个可直接复用的示例文件。
7B Text2World 单条推理示例:
PYTHONPATH=$(pwd) python cosmos1/models/diffusion/inference/text2world.py \ --checkpoint_dir checkpoints \ --diffusion_transformer_dir Cosmos-1.0-Diffusion-7B-Text2World \ --prompt "A sleek, humanoid robot stands in a vast warehouse filled with neatly stacked cardboard boxes on industrial shelves." \ --offload_prompt_upsampler \ --video_save_name Cosmos-1.0-Diffusion-7B-Text2World7B Video2World 单条推理示例(输入单帧图片):
PYTHONPATH=$(pwd) python cosmos1/models/diffusion/inference/video2world.py \ --checkpoint_dir checkpoints \ --diffusion_transformer_dir Cosmos-1.0-Diffusion-7B-Video2World \ --input_image_or_video_path cosmos1/models/diffusion/assets/v1p0/video2world_input0.jpg \ --num_input_frames 1 \ --video_save_name Cosmos-1.0-Diffusion-7B-Video2World \ --offload_prompt_upsampler3.4 核心参数与显存优化
扩散模型共用的核心参数如下(默认值均来自推理脚本):
| 参数 | 说明 | 默认值 |
|---|---|---|
--checkpoint_dir | 模型权重根目录 | checkpoints |
--tokenizer_dir | 连续 Tokenizer 权重目录 | Cosmos-1.0-Tokenizer-CV8x8x8 |
--prompt/--batch_input_path | 单条 prompt / 批量 JSONL 路径 | None |
--negative_prompt | 用于提升质量的负向提示词 | 内置长文本 |
--num_steps | 扩散采样步数 | 35 |
--guidance | CFG 引导强度 | 7.0 |
--num_video_frames | 生成帧数 | 121 |
--height/--width/--fps | 输出分辨率与帧率 | 704 / 1280 / 24 |
--seed | 随机种子 | 1 |
--disable_prompt_upsampler | 关闭 Prompt 自动增强 | False |
说明:当前版本模型仅支持 121 帧;宽高比支持 1:1(960x960)、4:3(960x704)、3:4(704x960)、16:9(1280x704)、9:16(704x1280)等组合,帧率可在 12~40 fps 间调整。
显存方面,--offload_diffusion_transformer、--offload_tokenizer、--offload_text_encoder_model、--offload_prompt_upsampler、--offload_guardrail_models五个 offload 开关可逐级把模型从显存卸载到内存。以 7B Text2World 为例,逐级卸载后峰值显存从约 74 GB 依次下降到 57.1 GB → 38.5 GB → 38.3 GB → 24.4 GB(14B 对应约 >80 GB → 70.5 GB → 51.9 GB → 51.7 GB → 39.0 GB),因此 24 GB 显存的 RTX 3090/4090 建议全量 offload。在单张 H100 上,7B Text2World 端到端推理约 380 秒,14B(offload Prompt Upsampler 与 Guardrail)约 590 秒。
四、自回归世界基础模型(Autoregressive WFM):Base 与 Video2World
4.1 模型定位与推理入口
自回归系列包含Base(4B/12B)与Video2World(5B/13B)两类共 4 个模型,核心实现位于 cosmos1/models/autoregressive:
- Base:从图片/视频输入生成未来的视觉世界,推理脚本为 base.py,支持
--input_type=video或image; - Video2World:基于图片/视频 + 文本 prompt 联合生成,推理脚本为 video2world.py,支持
--input_type=text_and_video或text_and_image。
自回归模型支持视频扩展(video extension)至 33 帧:从单帧图片可生成剩余 32 帧,从 9 帧视频输入可生成剩余 24 帧。其文本编码依赖 t5_text_encoder.py,token 生成后的解码存在两条路径:默认使用扩散解码器(Cosmos-1.0-Diffusion-7B-Decoder-DV8x16x16ToCV8x8x8)将离散 token 解码为高质量视频,也可通过--disable_diffusion_decoder切换为离散 Tokenizer 直接解码。
4.2 检查点下载与推理
下载脚本 download_autoregressive.py:
PYTHONPATH=$(pwd) python cosmos1/scripts/download_autoregressive.py --model_sizes 4B 5B 12B 13B脚本会自动附带 Guardrail、DV8x16x16 Tokenizer、CV8x8x8 Tokenizer 以及 Diffusion Decoder 权重。示例输入文件(input.mp4、input.jpg)与批量 JSONL(batch_inputs)均已在仓库中提供。
12B Base 单条推理(视频输入):
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd) python cosmos1/models/autoregressive/inference/base.py \ --input_type=video \ --input_image_or_video_path=cosmos1/models/autoregressive/assets/v1p0/input.mp4 \ --video_save_name=Cosmos-1.0-Autoregressive-12B \ --ar_model_dir=Cosmos-1.0-Autoregressive-12B \ --top_p=0.9 \ --temperature=1.013B Video2World 单条推理:
CUDA_VISIBLE_DEVICES=0 PYTHONPATH=$(pwd) python cosmos1/models/autoregressive/inference/video2world.py \ --input_type=text_and_video \ --input_image_or_video_path=cosmos1/models/autoregressive/assets/v1p0/input.mp4 \ --prompt="A video recorded from a moving vehicle's perspective, capturing roads, buildings, landscapes, and changing weather and lighting conditions." \ --video_save_name=Cosmos-1.0-Autoregressive-13B-Video2World \ --ar_model_dir=Cosmos-1.0-Autoregressive-13B-Video2World \ --top_p=0.8 \ --temperature=1.0注意:官方已在示例命令中针对每个模型调优过top_p与temperature组合(如 4B 用 0.8/1.0、12B 用 0.9/1.0、5B 用 0.7/1.0、13B 用 0.8/1.0),建议直接沿用示例值;输入分辨率统一要求 1024x640,不符会被自动缩放裁剪。
4.3 显存与稳定性说明
自回归模型同样支持 offload:--offload_guardrail_models、--offload_diffusion_decoder、--offload_ar_model、--offload_tokenizer(Video2World 另加--offload_text_encoder_model)。以 4B Base 为例,峰值显存从无 offload 的 31.3 GB 逐步降至 18.7 GB;12B 从 47.5 GB 降至 27.4 GB。单张 H100 上 4B 约 62 秒、12B 约 119 秒完成端到端推理(不含模型初始化)。
官方在 100 个物理 AI 主题测试视频上评估了 4 模型 × 2 输入类型共 8 种组合的失败率(严重畸变,如突然出现大物体或视频退化为纯色),可作为选型参考:4B 图片输入失败率 15%、视频输入 1%;5B-Video2World 分别为 7% 与 2%;12B 为 2% 与 1%;13B-Video2World 为 3% 与 0%。静态帧、轻微物体畸变不计入失败。
五、配套模型:Tokenizer、Prompt Upsampler 与 Diffusion Decoder
5.1 连续与离散视频 Tokenizer
Cosmos 1.0 发布了两款用于 WFM 的视频 Tokenizer(此前 0.1 版本已发布 10 款,见 release_notes/v0p1.md):
- Cosmos-1.0-Tokenizer-CV8x8x8:连续视频 Tokenizer,8x8x8 总压缩比,作为扩散模型的编解码接口(编码器输出 16 通道连续 latent);
- Cosmos-1.0-Tokenizer-DV8x16x16:离散视频 Tokenizer,16x8x8 总压缩比(时间 16 倍、空间 8x8 倍),将视频量化为离散 token 供自回归模型预测。
Tokenizer 的 JIT 推理入口位于 cosmos1/models/tokenizer/inference,具体网络定义见 continuous_video.py 与 discrete_video.py。
5.2 Prompt Upsampler:输入侧的"扩写器"
Cosmos-1.0-PromptUpsampler-12B-Text2World是 Text2World 的提示词增强器,基于微调后的 Mistral 模型,将简短 prompt 自动扩写为更详细、上下文更丰富的描述,从而提升生成视频质量。Video2World 场景则使用 Pixtral-12B 视觉语言模型,直接从输入图片/视频生成详细描述(此模式下用户提供的文本 prompt 不会被考虑)。两者均可通过--disable_prompt_upsampler关闭,官方建议手动编写约 120 词的 prompt 以获得最优质量。实现细节参见 text2world_prompt_upsampler_inference.py 与 video2world_prompt_upsampler_inference.py。
5.3 Diffusion Decoder:自回归输出的"增强器"
Cosmos-1.0-Diffusion-7B-Decoder-DV8x16x16ToCV8x8x8承担离散 latent 到连续 latent 的转换增强:它接收自回归模型产出的离散 token,先映射到连续表征,再通过扩散解码恢复出细节更丰富、质量更高的视频帧,是自回归 WFM 默认解码路径的关键一环。对应实现位于 cosmos1/models/autoregressive/diffusion_decoder。
六、Cosmos Guardrail:两级安全体系
Cosmos-1.0-Guardrail内嵌于所有推理脚本中且不可关闭,其设计为"预检 + 后检"两级结构(详见 guardrail 文档):
- pre-Guard(输入侧):作用于文本输入(原始 prompt 与增强后的 prompt)。Blocklist 基于关键词列表检测有害词,Aegis 基于 LLM 判断并拦截有害提示;
- post-Guard(输出侧):作用于模型生成的视频帧。Video Content Safety Filter 是一个判别安全/不安全帧的分类器,Face Blur Filter 则负责检测人脸并自动打码——因此生成人脸的请求会被护栏自动模糊处理。
各模块实现分散于 aegis、blocklist、video_content_safety_filter 与 face_blur_filter 子目录。
七、基于 NeMo 的通用后训练(01/09 更新)
2025-01-09 的发布为 Cosmos 1.0 引入了通过 NVIDIA NeMo 框架进行的General Post-Training,这是继纯推理之后仓库能力的一次关键跃迁。根据 POST_TRAINING.md,Cosmos 预训练 WFM 面向物理 AI(Physical AI)任务规划了六类后训练范式:
| 后训练任务 | 说明 | Diffusion WFM | Autoregressive WFM |
|---|---|---|---|
| General post-training | 面向自定义数据集微调,使模型生成目标分布的视频(如特定相机参数或工厂等特定域) | 已支持 | 已支持 |
| Instruction control | 基于文本指令预测机器人操作视频(如叠衣服、抓取物体) | 即将推出 | 即将推出 |
| Action control | 基于动作向量预测下一视觉帧 | 即将推出 | 即将推出 |
| Camera control | 加入相机位姿条件,从单图生成 3D 一致的视频模拟 | 即将推出 | 即将推出 |
| Multi-view generation | 面向自动驾驶,从文本 prompt 生成同步多视角视频 | 即将推出 | 即将推出 |
| Multi-view + 轨迹控制 | 结合车辆轨迹输入精确模拟驾驶环境 | 即将推出 | 即将推出 |
当前发布仅开放 General Post-Training 的脚本,其余任务(除指令控制需指令-视频配对数据集外)只需对网络结构做小幅修改,将在后续版本提供。
7.1 扩散 WFM 的后训练流程
扩散模型的后训练需要8 张 H100-80GB 或 A100-80GB GPU,采用 FSDP(全分片数据并行)+ 张量并行的组合策略,14B 模型还启用激活检查点(activation checkpointing)。完整流程文档见 diffusion NeMo 后训练指南:
第一步:准备数据集。提供一批 MP4 格式(建议 720p)聚焦同一主体的视频作为参考素材,可下载官方示例数据:
huggingface-cli download nvidia/Cosmos-NeMo-Assets --repo-type dataset --local-dir cosmos1/models/diffusion/assets/ --include "*.mp4*"第二步:数据预处理。prepare_dataset.py 会从每段视频中选取 N 个 121 帧片段,首帧独立压缩后其余帧做 8 倍时间压缩,并为每个片段生成[i].info.json(元数据)、[i].t5_text_embeddings.pth(T5 文本嵌入)、[i].t5_text_mask.pth、[i].video_latent.pth(视频 latent)以及仅在 Video2World 训练时使用的[i].conditioning_latent.pth(输入视频前 9 帧的条件 latent):
python cosmos1/models/diffusion/nemo/post_training/prepare_dataset.py \ --dataset_path $RAW_DATA \ --output_path $CACHED_DATA \ --prompt "A video of sks teal robot." \ --num_chunks 500如需按自定义指令(如机器人操作指令)微调,则使用 prepare_instruction_dataset.py,其指令文件以language_instruction_0键承载文本指令。
第三步:启动后训练(以 7B Text2World 为例):
NVTE_FUSED_ATTN=0 \ CUDA_DEVICE_MAX_CONNECTIONS=1 \ PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \ torchrun --nproc_per_node=8 cosmos1/models/diffusion/nemo/post_training/general.py \ --yes \ --factory cosmos_diffusion_7b_text2world_finetune \ data.path=$CACHED_DATA \ trainer.max_steps=1000 \ optim.config.lr=1e-6关键配置项:--factory选择配方(如cosmos_diffusion_14b_text2world_finetune)、data.path指向预处理数据、resume.restore_config.path指定预训练 NeMo 分布式检查点、optim.config.lr默认 1e-6、trainer.max_steps默认 1000。
7.2 自回归 WFM 的后训练流程
自回归模型的后训练采用张量并行,4B/5B 建议 2/4 张 GPU、12B/13B 建议 8 张 GPU(H100/A100 80GB)。完整流程见 autoregressive NeMo 后训练指南。
- Base(4B/12B):使用 prepare_dataset.py 生成 Megatron Core 的
IndexedDataset(.bin+.idx文件),随后运行 general.py:torchrun --nproc-per-node $NUM_DEVICES cosmos1/models/autoregressive/nemo/post_training/general.py \ --data_path $OUTPUT_PREFIX \ --split_string 4,1,1 \ --log_dir ./logs \ --max_steps 10 --save_every_n_steps 5 \ --tensor_model_parallel_size $NUM_DEVICES \ --model_path nvidia/Cosmos-1.0-Autoregressive-4B - Video2World(5B/13B):使用 video2world_prepare_dataset.py 预计算文本与视频嵌入(产出
<train/test/val>_<prompt/video>_<idx>.pt与metadata.json),再运行 video2world_finetuning.py 微调。
常用配置项包括--data_path、--model_path、--index_mapping_dir、--log_dir、--split_string(默认 4,1,1)、--tensor_model_parallel_size(默认 2)、--max_steps(默认 100)、--save_every_n_steps(默认 10)、--global_batch_size(默认 2)、--micro_batch_size(默认 1)、--lr(默认 5e-5)、--max_epochs(默认 10)。
八、稳定性与安全性改进(01/27 更新)
最后一次发布重点围绕Stability(稳定性)与 Safety(安全性)进行改进。结合仓库现状可从两方面理解其落地形态:
- 稳定性:扩散与自回归两条流水线均提供了逐级 offload 的显存策略与经调优的采样参数(
num_steps=35、guidance=7.0、各模型专属的top_p/temperature),这些配置在 text2world.py、video2world.py、base.py 等脚本中均有体现,官方在示例命令中固化了调优值以保证开箱即用的生成质量; - 安全性:由 guardrail 体系承载——pre-Guard(Blocklist + Aegis)拦截有害文本输入,post-Guard(Video Content Safety Filter + Face Blur Filter)过滤不安全帧并模糊人脸,且该体系不可被关闭,是 Cosmos 1.0 全模型推理的统一安全底线。
九、总结:Cosmos 1.0 的完整技术版图
从 release_notes/v1p0.md 出发可以看到,Cosmos 1.0 不是单一模型的发布,而是一套面向物理 AI 的世界基础模型平台:扩散与自回归双路线共 8 个生成模型覆盖 Text2World/Video2World 两大任务形态,连续/离散两款 Tokenizer 提供统一视觉编解码接口,Prompt Upsampler 与 Diffusion Decoder 分别优化输入与输出质量,Guardrail 贯穿全程保障安全,NeMo 后训练链路则打通了"预训练 → 领域微调 → 部署推理"的完整闭环。开发者可按需组合:需要一次性生成整段世界视频选扩散系列,需要从输入帧逐步外推选自回归系列,需要面向自有场景微调则从 POST_TRAINING.md 与两个 NeMo 后训练指南入手。
【免费下载链接】cosmosNVIDIA Cosmos is an open platform of world models, datasets, and tools that enables developers to build Physical AI for robots, autonomous vehicles, smart infrastructure, and more.项目地址: https://gitcode.com/GitHub_Trending/cosmos7/cosmos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考