Cosmos-Predict2 推理和精调指引

最近更新时间:2026-01-13 14:37:02

我的收藏

场景说明

Cosmos-Predict2​ 是英伟达(NVIDIA)开源的一套物理 AI 世界基础模型,属于 Cosmos 世界基础模型系列,专门用于从文本、图像或视频生成具有物理合理性的未来世界状态,为机器人、自动驾驶等物理 AI 系统提供合成数据和仿真环境。本文档将介绍如何在 TIONE 平台上进行 Cosmos-Predict2 系列模型的部署和精调。

前置准备

下载完成后,checkpoints 目录结构如下:
├── depth-anything
│ └── Depth-Anything-V2-Small-hf
├── facebook
│ └── sam2-hiera-large
├── google-t5
│ └── t5-11b
├── IDEA-Research
│ └── grounding-dino-tiny
├── meta-llama
│ └── Llama-Guard-3-8B
└── nvidia
├── Cosmos-1.0-Guardrail
├── Cosmos-Guardrail1
├── Cosmos-Predict2-14B-Text2Image
├── Cosmos-Predict2-14B-Video2World
├── Cosmos-Predict2-2B-Text2Image
├── Cosmos-Predict2-2B-Video2World
├── Cosmos-Reason1-7B
├── Cosmos-Tokenize1-CV8x8x8-720p
├── Cosmos-Transfer1-7B
├── Cosmos-Transfer1-7B-Sample-AV
├── Cosmos-Transfer1-7B-Sample-AV-Single2MultiView
└── Cosmos-UpsamplePrompt1-12B-Transfer
nvidia 目录下面包含了多余的模型,例如 transfer1 等,这是 Cosmos 系列的一个超集。
其余目录请确保自己正确传入了 hf token,并同意了用户协议,例如 meta-llama 系列模型,否则可能下载失败。


模型部署

步骤一:确认所需资源

14B-Text2World 部署推荐资源如下,您可以根据实际的资源情况进行选择。
标准部署 31C288G GPU-HCCPNV6*2
标准部署 60C600G GPU-HCCPNV6*4
标准部署 125C1207G GPU-HCCPNV6*8

步骤二:创建在线服务

模型来源:选择腾讯云存储,选择前置准备中下载好的 checkpoints 路径。
镜像:选择内置 PYTORCH/cosmos-predict2-cu128
存储挂载:配置容器内路径 /opt/ml/output,对应输出视频目录。这里在推理容器启动时会被软连接到/workspace/cosmos-predict2/output,所以下面 webui 显示的是软连接的路径、不影响输出。

资源申请:根据自己业务需要以及上方的推荐资源选择自己的方案。
环境变量:
MODEL_SIZE:可选值 2B/14B,默认为 14B
DISABLE_GUARDRAIL:关闭 guardrail 模型检查,默认未开启。只要配置了就是关闭,配置任意值即可。2B 模型可选,14B 必选,否则容易 OOM 以及造成 CUDA OOM。
DISABLE_PROMPT_REFINER:关闭 prompt 优化功能,默认未开启、可以优化短 prompt。只要配置了就是关闭,配置任意值即可。2B 模型可选,14B 必选,否则容易 OOM 以及造成 CUDA OOM。
OFFLOAD_GUARDRAIL:将 guardrail 模型 offload 到内存来减少显存占用,默认未开启。只要配置了就是关闭,配置任意值即可。14B 模型如果未配置 DISABLE_GUARDRAIL 则必须开启此选项、同时比上面推荐的资源配置的内存增大一个档位。
OFFLOAD_PROMPT_REFINER:将 prompt 优化模型 offload 到内存来减少显存占用,默认未开启。只要配置了就是关闭,配置任意值即可。14B 模型如果未配置 DISABLE_PROMPT_REFINER 则必须开启此选项、同时比上面推荐的资源配置的内存增大一个档位。

步骤三:查看 WebUI

等待服务启动,然后单击打开WebUI页面。

展开 File Viewer 能够预览 /workspace/cosmos-predict2/output 下面所有的视频和文件等。

下方可以发起请求以及查看生成好的视频。


性能提示

1. 单卡 HCCPNV6 启动:image_num_sampling_step=35、video_num_sampling_step=5,大概需要跑13分钟。所以如果是默认的 35 应该需要跑 13*7=91分钟。
2. 目前支持了多卡 CP 推理加速,可以按照上面推荐资源配置、自己的业务需求来选择合适的方案。以8卡 HCCPNV6 为例,默认配置 image_num_sampling_step=35、video_num_sampling_step=35,应该能在 91/8 ≈ 12 分钟内跑完一个请求。
3. 如果生成时间很长无法接受,又没有足够的卡,可以通过减小 video_num_sampling_step 来等比例显著减少任务耗时、但是生成的视频质量也会更差。


模型精调

步骤一:配置存储路径

1. 不管是开发机还是任务式建模,最终都要把目录挂载到对应路径。任务式建模可以按照下方指引自行配置,开发机则需要自己创建软连接。
2. 对应的目录要求如下:
将前置准备中下载好的 checkspoints 目录,挂载到:/workspace/cosmos-predict2/checkpoints
将前置准备中下载好的 datasets 目录,参考下方指引进行预处理,并挂载到:/workspace/cosmos-predict2/datasets
如果 Text2Image、Video2World 都已完成预处理,最终 /workspace/cosmos-predict2/datasets 的目录结构如下:
├── cosmos_nemo_assets
│ ├── metas
│ ├── t5_xxl
│ └── videos
└── cosmos_nemo_assets_images
├── images
├── metas
└── t5_xxl


步骤二:精调 14B-Text2Image

参考文档 >>
(请按照指引下载并处理好 datasets 后再进行下面的步骤)
训练模块:开发机
训练资源配置:128C1024G HCCPNV6*8
训练配置:/workspace/cosmos-predict2/cosmos_predict2/configs/base/experiment/cosmos_nemo_assets.py
在开发机中运行训练命令:
cd /workspace/cosmos-predict2
source $HOME/.local/bin/env && source .venv/bin/activate
export HF_ENDPOINT=https://hf-mirror.com
torchrun --nproc_per_node=8 --master_port=12341 -m scripts.train --config=cosmos_predict2/configs/base/config.py -- experiment=predict2_text2image_training_14b_cosmos_nemo_assets
如果您没有修改配置的话,默认输出路径是在 /workspace/cosmos-predict2/checkpoints/posttraining/text2image,可以查看上面的训练配置对应的文件来修改 epoch、学习率等参数。
训练后测试推理:
python examples/text2image.py \\
--model_size 14B \\
--dit_path "checkpoints/posttraining/text2image/14b_cosmos_nemo_assets/checkpoints/model/iter_000001000.pt" \\
--prompt "An image of sks teal robot." \\
--save_path output/generated_image_14b_teal_robot.jpg







步骤三:精调 14B-Video2World

参考文档 >>
(请按照指引下载并处理好 datasets 后再进行下面的步骤)
训练模块:任务式建模
训练资源配置:128C1024G HCCPNV6*8,节点数*2
训练配置:/workspace/cosmos-predict2/cosmos_predict2/configs/base/experiment/cosmos_nemo_assets.py
任务式建模启动命令:
set -ex
cd /workspace/cosmos-predict2
source $HOME/.local/bin/env && source .venv/bin/activate
export HF_ENDPOINT=https://hf-mirror.com
DISTRIBUTED_ARGS="
--nproc_per_node ${NPROC_PER_NODE:-$(nvidia-smi -L | wc -l)} \\
--nnodes ${WORLD_SIZE:-1} \\
--node_rank ${RANK:-0} \\
--master_addr ${MASTER_ADDR:-127.0.0.1} \\
--master_port ${MASTER_PORT:-23456}"
torchrun $DISTRIBUTED_ARGS --rdzv_id 123 --rdzv_backend c10d --rdzv_endpoint $MASTER_ADDR:12341 -m scripts.train --config=cosmos_predict2/configs/base/config.py -- experiment=predict2_video2world_training_14b_cosmos_nemo_assets
存储路径设置:
挂载 checkpoints 目录(必填):
源路径:您下载好的 checkpoints 目录
容器内路径:/workspace/cosmos-predict2/checkpoints
挂载 datasets 目录(必填):
源路径:您下载并处理好的 datasets 目录
容器内路径:/workspace/cosmos-predict2/datasets
挂载 config 目录(可选):
原路径:您本地修改过的 config 目录。选择到 `cosmos_predict2/configs/base` 这一级子目录即可,避免路径太长无法挂载。
容器内路径:/workspace/cosmos-predict2/cosmos_predict2/configs/base

任务启动后日志:

如果您没有修改配置的话,默认输出路径是在/workspace/cosmos-predict2/checkpoints/posttraining/video2world,可以查看上面的训练配置对应的文件来修改 epoch、学习率等参数。
训练后测试推理:
python examples/video2world.py \\
--model_size 14B \\
--dit_path "checkpoints/posttraining/video2world/14b_cosmos_nemo_assets/checkpoints/model/iter_000001000.pt" \\
--prompt "A video of sks teal robot." \\
--input_path "assets/video2world_cosmos_nemo_assets/output_Digit_Lift_movie.jpg" \\
--save_path output/cosmos_nemo_assets/generated_video_teal_robot.mp4 \\
--offload_guardrail \\
--offload_prompt_refiner
查看生成好的视频
进入开发机,选择 Jupyter IDE。

在 Launcher 中新建一个 Notebook。

输入下面的代码,然后修改为自己的路径即可查看本地生成的视频。
from IPython.display import Video
Video("project/cosmos/output/gradio-0bed11fc-b7c4-4d35-b784-a40f3b1c489a.mp4")