- 人工智能
- 具身智能
- 机器人
【免费下载链接】cosmos3-nano-libero10-sdg-export-S_all
cosmos3-nano-libero10-sdg-export-S_all是 NVIDIA 将 Cosmos3-Nano 后训练为 LIBERO-10 机器人策略(VLA)的检查点导出。本文带你彻底看懂 VLA 模型如何"看见并动手":domain_aware动作 IO 投影器如何在动作向量与语言模型隐空间之间双向转换,action2llm与llm2action各自负责哪一半工作,以及 rectified flow 扩散采样如何把隐状态变成可执行的动作序列。
📦 这个仓库里装的是什么?
这不是一个代码仓库,而是一份可加载的 VLA 策略权重导出包,包含:
| 文件 | 作用 |
|---|---|
| README.md | 策略元信息:训练数据、迭代数、成功率 |
| config.json | 完整模型配置(架构、动作生成参数) |
model-0000X-of-00007.safetensors× 7 | bf16 模型权重分片(EMA 权重,约 30 GB) |
| model.safetensors.index.json | 全部权重参数 → 分片的映射索引 |
| checkpoint.json | 训练检查点的来源信息 |
| export_manifest.json | 导出过程与处理器来源清单 |
关键信息来自 README.md:该策略(cellS_all)在379 条真实 LIBERO-10 演示 + 1137 条重风格合成演示上训练 2000 步(全局 batch 2048),在标准场景取得94.5% ± 1.2%成功率,在扰动场景(随机光照、纹理、相机抖动)仍有87.1% ± 1.2%。权重为 EMA 平滑版本(checkpoint.json 中use_ema_weights: true),可由cosmos-framework的 policy server 直接加载。
🧠 VLA 动作生成全景图
Cosmos3-Nano 的架构是"一个模型,两种能力",由 config.json 指定为omni_mot_model:
机器人观测(图像/视频) → VAE 编码为视觉 latent 指令文本 + 状态 → Qwen3-VL-8B 语言主干 ↕ 生成专家层 (MoT: Mixture-of-Transformers) ↕ 动作序列 ← llm2action 解码 ← 隐状态 ← action2llm 编码 → 观测动作- 语言/理解分支:config.json 显示主干是
Qwen/Qwen3-VL-8B-Instruct,负责"看懂场景、听懂指令"。 - 生成分支:每个 Transformer 层都带一套
*_moe_gen权重(如 model.safetensors.index.json 中的mlp_moe_gen),与理解层交错,让同一个骨干既能"推理"又能"生成"。 - 动作生成方式:不是逐 token 自回归,而是rectified flow 扩散(config.json 中
scheduler_type: unipc),把整段动作轨迹当成一个"连续信号"去噪采样出来——这正是为什么需要专门的"动作 IO 投影器"。
🎯 核心:domain-aware action IO 投影器
配置中的两行参数(config.json)定义了动作 I/O 的形态:
"action_gen": true, "action_io_projector_type": "domain_aware"domain_aware的含义是:投影器按"具身域(embodiment domain)"区分不同机器人本体。同一套 VLA 要同时服务机械臂、人形、四足等不同身体,各本体的动作维度、含义完全不同,因此投影器会为每个本体域维护独立的投影路径。配套参数:
num_embodiment_domains: 32(config.json):最多支持 32 种具身域,每个域有独立的投影器参数槽位;max_action_dim: 64(config.json):动作向量上限 64 维,覆盖从 7-DoF 末端执行器到全身多关节的常见配置。
在权重索引中可以直观看到这对"IO 投影器"就是两个小型全连接投影头:
- 输入方向
action2llm:model.safetensors.index.json(fc.weight+bias.weight) - 输出方向
llm2action:model.safetensors.index.json
旁边还有同构的vae2llm/llm2vae(视觉 latent 的 IO 投影,model.safetensors.index.json),说明 Cosmos3 把"动作"和"视频"统一成了同一种范式:外部模态 → 投影进 LLM 序列空间 → LLM 融合 → 投影回模态空间。
🔁 action2llm 与 llm2action 各自做什么?
可以把一次策略推理拆成三步:
第 1 步 —— 观测编码(vae2llm)相机画面经 VAE(config.json,Wan2.2 VAE,时序压缩 4 倍、空间压缩 16 倍)压成低维视觉 latent,再由vae2llm投影到语言模型隐空间,与指令文本 token 拼成一条序列。
第 2 步 —— 双向投影
action2llm(动作 → LLM):把"动作"这一连续模态编码为可被注意力机制读取的 token。训练时它让模型"见过"目标动作序列,从而学会状态与动作的对应关系;推理时它也承担噪声/条件动作的注入。llm2action(LLM → 动作):反过来,把 LLM 融合完所有信息后的隐状态解码回动作空间,作为扩散去噪网络的输出头。
第 3 步 —— 去噪出动作(rectified flow)动作头输出的不是"最终动作",而是"如何把噪声一步步改造成动作"。训练采样时刻服从logitnormal分布(config.json),动作损失权重高达10.0(config.jsonaction_loss_weight),说明训练目标的重心就是"动作要准",视频生成能力(vision_gen: true)在此策略中被弱化(load_weights_from_pretrained: false,从 checkpoint.json 的实验覆盖项可见)。
⚙️ 影响动作质量的关键配置
| 参数 | 位置 | 说明 |
|---|---|---|
action_io_projector_type | config.json#L16 | 投影器模式,此处为domain_aware |
num_embodiment_domains: 32 | config.json#L93 | 支持的具身域数量上限 |
max_action_dim: 64 | config.json#L80 | 动作向量最大维度 |
action_loss_weight: 10.0 | config.json#L126 | 动作损失放大 10 倍,优先保证控制精度 |
state_t: 300 | config.json#L157 | 状态/动作时序建模的最大步长量级 |
train_time_action_distribution: logitnormal | config.json#L143 | 训练时噪声时刻的采样分布 |
use_ema_weights: true | checkpoint.json#L16 | 导出的是 EMA 平滑权重,推理更稳 |
🚀 如何拿到并使用这份策略
- 克隆导出包(仓库为只读镜像):
git clone https://gitcode.com/hf_mirrors/nvidia/cosmos3-nano-libero10-sdg-export-S_all - 核对完整性:7 个 safetensors 分片 + model.safetensors.index.json(总参数量 15,173,136,576,约 31.5 GB,见 model.safetensors.index.json)。
- 加载运行:用
cosmos-framework(版本 v1.2.2)的 policy server 加载config.json+ 分片权重即可对外提供动作预测服务;处理器(Qwen3VLProcessor)已在导出中打包(export_manifest.jsonbundled: true),无需额外下载 tokenizer。 - 对比解读:README 特别提醒——本 cell(
S_all)属于受控合成数据研究的一个实验格,只应与它的对照组 cell 放在一起比较,2.5 个百分点以内的差异在训练种子波动范围内。
❓ 常见问题(FAQ)
Q:为什么叫 "S_all"?它是实验命名中的某个数据混合配置(本 cell 使用了全部 3 种重风格:styles 1-3),命名规则来自上游实验配方,详见 README.md。
Q:训练数据在仓库里吗?不在。LIBERO-10 原始数据位于nvidia/LIBERO_LeRobot_v3,重风格数据由官方配方重新生成(README.md)。
Q:domain-aware 和"单一投影器"的本质区别?单一投影器把所有机器人共享同一套动作↔隐空间映射;domain_aware则为每个具身域(最多 32 个)保留独立投影参数,让不同本体的动作语义互不干扰,这是多机器人统一 VLA 的关键设计。
Q:这是微调(LoRA)产物吗?不是。config.json 中lora_enabled: false,这是一份全参数后训练后的完整权重导出。
📌 小结
cosmos3-nano-libero10-sdg-export-S_all展示了新一代 VLA 的动作生成范式:视觉 latent 与动作都通过 domain-aware 投影器(action2llm / llm2action)进出统一的 Transformer 隐空间,再用 rectified flow 扩散把隐状态解码成完整动作轨迹。32 个具身域、64 维动作上限与 10 倍动作损失权重,共同保证了它在 LIBERO-10 上 94.5% 的高成功率与对视觉扰动的鲁棒性。理解了这三个组件,你就掌握了 Cosmos3 系列"用世界模型做机器人策略"的核心机制。
- 人工智能
- 具身智能
- 机器人
【免费下载链接】cosmos3-nano-libero10-sdg-export-S_all
相关推荐
aws-cli 创建 CodeArtifact Domain 完全指南:create-domain 命令详解与源码级原理
aws cli 创建 CodeArtifact Domain 完全指南:create domain 命令详解与源码级原理 导读 本文围绕 aws cli 仓库中
开发工具云原生运维LingBot-VLA核心代码精讲:Flow Matching动作生成与AdaNorm时间条件化原理
LingBot VLA核心代码精讲:Flow Matching动作生成与AdaNorm时间条件化原理 LingBot VLA 是一个务实(Pragmatic)的
图像如何变成Token?Muse-Glimmer-30B视觉投影器(Projector)原理详解
图像如何变成Token?Muse Glimmer 30B视觉投影器(Projector)原理详解 Muse Glimmer 30B bf16 是开源多模态大模型
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考