开源模型汇总
本文汇总具身智能领域的主要开源模型,按类别整理关键信息,并提供核心模型的快速上手指南。对于从业者来说,选择合适的开源模型作为起点可以大幅加速研发进程。
1. VLA模型(Vision-Language-Action)
| 模型 | 年份 | 机构 | 参数量 | 支持机器人 | 动作表征 | License | GitHub |
|---|---|---|---|---|---|---|---|
| RT-1 | 2022 | 35M | Everyday Robots | 离散Token | Apache 2.0 | google-research/robotics_transformer | |
| Octo | 2023 | UC Berkeley | 93M | 多具身 | 连续/扩散 | MIT | octo-models/octo |
| OpenVLA | 2024 | Stanford/Berkeley | 7B | 多具身 | 离散Token | MIT | openvla/openvla |
| pi0 | 2024 | Physical Intelligence | 3B | 多具身 | Flow Matching | Apache 2.0 | physical-intelligence/openpi |
| RoboFlamingo | 2023 | ByteDance | 3B | 桌面操作 | 连续回归 | MIT | RoboFlamingo/RoboFlamingo |
| GR-1 | 2024 | Fourier Intelligence | ~1B | 人形机器人 | 连续回归 | 部分开源 | bytedance/GR-1 |
| HPT | 2024 | MIT | ~300M | 多具身 | 连续/扩散 | MIT | liruiw/HPT |
| RDT-1B | 2024 | Tsinghua | 1.2B | 双臂操作 | 扩散 | Apache 2.0 | thu-ml/RoboticsDiffusionTransformer |
2. 策略模型(Policy Models)
| 模型 | 年份 | 机构 | 方法 | 适用场景 | License | GitHub |
|---|---|---|---|---|---|---|
| Diffusion Policy | 2023 | Columbia/MIT | 扩散去噪 | 通用操作 | MIT | real-stanford/diffusion_policy |
| ACT | 2023 | Stanford/Google | CVAE + Transformer | 双臂精细操作 | MIT | tonyzhaozh/act |
| ACT++ | 2024 | Stanford | ACT改进版 | 双臂操作 | MIT | 同 ACT 仓库 |
| DP3 | 2024 | PKU | 3D扩散策略 | 3D操作 | MIT | YanjieZe/3D-Diffusion-Policy |
| DexCap | 2024 | Stanford | 灵巧手模仿学习 | 灵巧操作 | MIT | j96w/DexCap |
| BeT | 2023 | UC Berkeley | Behavior Transformer | 多模态动作 | MIT | notmahi/bet |
3. 规划与推理模型
| 模型 | 年份 | 机构 | 方法 | 适用场景 | License | GitHub |
|---|---|---|---|---|---|---|
| SayCan | 2022 | LLM + Affordance | 移动操作 | Apache 2.0 | google-research/saycan | |
| VoxPoser | 2023 | Stanford | LLM → 3D Value Maps | 桌面操作 | MIT | huangwl18/VoxPoser |
| Code as Policies | 2023 | LLM生成代码 | 通用 | Apache 2.0 | google-research/google-research | |
| ManipLLM | 2024 | HKU | 多模态操作 | 操作推理 | MIT | clorislili/ManipLLM |
| SpatialVLM | 2024 | 空间推理VLM | 空间理解 | Apache 2.0 | 仅论文开源 |
4. 世界模型
| 模型 | 年份 | 机构 | 方法 | 适用场景 | License | GitHub |
|---|---|---|---|---|---|---|
| Dreamer v3 | 2023 | DeepMind/Danijar | RSSM + Actor-Critic | 通用RL | MIT | danijar/dreamerv3 |
| Cosmos | 2025 | NVIDIA | 视频扩散/AR | 物理AI模拟 | NVIDIA开源 | NVIDIA/Cosmos |
| Genesis | 2024 | 社区 | 可微分物理 | 机器人仿真 | Apache 2.0 | Genesis-Embodied-AI/Genesis |
5. 统一框架与工具
| 工具 | 年份 | 机构 | 用途 | License | GitHub |
|---|---|---|---|---|---|
| LeRobot | 2024 | Hugging Face | 机器人学习统一框架 | Apache 2.0 | huggingface/lerobot |
| droid_policy_learning | 2024 | DROID团队 | DROID数据集策略学习 | MIT | droid-dataset/droid_policy_learning |
| robomimic | 2021 | Stanford | 模仿学习框架 | MIT | ARISE-Initiative/robomimic |
6. 快速上手指南
6.1 Octo:开源多具身基础模型
Octo是上手最友好的开源VLA之一,由UC Berkeley团队维护。
安装:
# 创建conda环境
conda create -n octo python=3.10
conda activate octo
# 安装Octo
pip install --upgrade "jax[cuda11_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
git clone https://github.com/octo-models/octo.git
cd octo
pip install -e .
加载预训练模型:
from octo.model.octo_model import OctoModel
# 加载预训练模型(自动从HuggingFace下载)
model = OctoModel.pretrained("hf://rail-berkeley/octo-base-1.5")
# 推理
import numpy as np
observation = {
"image_primary": np.random.randn(1, 256, 256, 3), # 主相机图像
"timestep_pad_mask": np.array([[True]]),
}
task = model.create_tasks(texts=["pick up the red cup"])
action = model.sample_actions(observation, task, rng=jax.random.PRNGKey(0))
print(action.shape) # (1, horizon, action_dim)
在自定义数据上微调:
# 使用RLDS格式的数据集
python scripts/finetune.py \
--config.pretrained_path="hf://rail-berkeley/octo-base-1.5" \
--config.data.dataset_name="your_dataset" \
--config.training.batch_size=128 \
--config.training.num_steps=50000
关键参数:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| batch_size | 128-256 | GPU显存允许范围内尽量大 |
| learning_rate | 3e-4 | 微调时可适当降低 |
| num_steps | 50K-200K | 取决于数据量 |
| 动作头 | diffusion | 扩散头效果通常更好 |
6.2 OpenVLA:7B规模的VLA
安装:
conda create -n openvla python=3.10
conda activate openvla
git clone https://github.com/openvla/openvla.git
cd openvla
pip install -e .
推理:
from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image
# 加载模型(需要~16GB GPU显存)
processor = AutoProcessor.from_pretrained(
"openvla/openvla-7b", trust_remote_code=True
)
model = AutoModelForVision2Seq.from_pretrained(
"openvla/openvla-7b",
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True,
)
# 推理
image = Image.open("robot_obs.png")
prompt = "In: What action should the robot take to pick up the cup?\nOut:"
inputs = processor(prompt, image).to("cuda:0", dtype=torch.bfloat16)
action = model.predict_action(**inputs) # 7维动作向量
LoRA微调(消费级GPU):
torchrun --nproc_per_node=1 vla-scripts/finetune.py \
--vla_path "openvla/openvla-7b" \
--data_root_dir /path/to/data \
--dataset_name "your_dataset" \
--use_lora True \
--lora_rank 32 \
--batch_size 8 \
--learning_rate 2e-5
硬件需求:
| 操作 | 最低GPU | 推荐GPU |
|---|---|---|
| 推理 | 1x A100 40GB | 1x A100 80GB |
| LoRA微调 | 1x A100 40GB | 2x A100 80GB |
| 全参数微调 | 4x A100 80GB | 8x A100 80GB |
6.3 LeRobot:统一机器人学习框架
LeRobot是Hugging Face推出的统一框架,支持多种策略(ACT, Diffusion Policy, VQ-BeT等),是入门机器人学习的最佳选择之一。
安装:
conda create -n lerobot python=3.10
conda activate lerobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[all]"
训练ACT策略:
python lerobot/scripts/train.py \
policy=act \
env=aloha \
dataset_repo_id=lerobot/aloha_sim_insertion_human \
training.num_epochs=2000 \
training.batch_size=8
训练Diffusion Policy:
python lerobot/scripts/train.py \
policy=diffusion \
env=pusht \
dataset_repo_id=lerobot/pusht \
training.num_epochs=200
可视化训练结果:
python lerobot/scripts/visualize_dataset.py \
--repo-id lerobot/aloha_sim_insertion_human \
--episode-index 0
LeRobot支持的策略:
| 策略 | 动作表征 | 适用场景 | 特点 |
|---|---|---|---|
| ACT | CVAE生成 | 双臂操作 | 时间一致性好 |
| Diffusion Policy | DDPM扩散 | 通用操作 | 多模态动作 |
| VQ-BeT | VQ-VAE + GPT | 通用 | 离散化动作 |
| TDMPC | MPC + 世界模型 | 需要规划的任务 | 在线优化 |
7. 模型选择指南
7.1 按场景选择
graph TB
START[选择开源模型] --> Q1{任务类型?}
Q1 -->|"单臂桌面操作"| Q2a{需要语言指令?}
Q1 -->|"双臂操作"| ACT_RDT["ACT / RDT-1B"]
Q1 -->|"人形机器人"| GR1["GR-1"]
Q1 -->|"移动操作"| Q2b{需要规划?}
Q2a -->|"是"| Q3a{预算?}
Q2a -->|"否"| DP["Diffusion Policy"]
Q3a -->|"消费级GPU"| OCTO["Octo (93M)"]
Q3a -->|"多卡A100"| OPENVLA["OpenVLA (7B)"]
Q2b -->|"是"| SAYCAN["SayCan / Code as Policies"]
Q2b -->|"否"| PI0["pi0"]
style START fill:#e3f2fd
style ACT_RDT fill:#e8f5e9
style GR1 fill:#e8f5e9
style OCTO fill:#e8f5e9
style OPENVLA fill:#e8f5e9
style DP fill:#e8f5e9
style PI0 fill:#e8f5e9
7.2 按资源选择
| 可用资源 | 推荐模型 | 说明 |
|---|---|---|
| 1x RTX 3090/4090 | Diffusion Policy, ACT | 策略模型,不需要大模型 |
| 1x A100 40GB | Octo, HPT | 中等规模VLA |
| 1x A100 80GB | OpenVLA (LoRA) | 7B模型LoRA微调 |
| 4x+ A100 | OpenVLA (full), pi0 | 全参数训练 |
| CPU only | LeRobot (仿真) | 先在仿真中验证 |
7.3 快速原型 vs 生产部署
| 阶段 | 推荐方案 | 理由 |
|---|---|---|
| 概念验证 | LeRobot + ACT / DP | 框架完善,开箱即用 |
| 研究实验 | Octo / OpenVLA | 可复现,社区活跃 |
| 产品原型 | pi0 / 定制模型 | 性能最优,但需要更多工程 |
| 量产部署 | 蒸馏/量化后的小模型 | 实时性和成本 |
如果你的目标是“低成本、精细、双臂、少量演示”,ACT 仍然是最值得优先试的基线之一。原因不是它最新,而是它的数据闭环、复现门槛和时间一致性设计都很清楚,详见 ACT模型。
8. 注意事项
8.1 复现提示
- 版本锁定:注意固定依赖版本(尤其是JAX, PyTorch, transformers)
- 数据格式:不同模型使用不同数据格式(RLDS, HDF5, LeRobot格式),需要转换
- 动作空间:务必确认模型训练时的动作空间定义(绝对 vs 相对,末端 vs 关节)
- 相机标定:图像分辨率、裁剪方式、相机内外参需与训练时一致
8.2 常见问题
- 动作不稳定:检查动作标准化参数是否正确
- 泛化性差:增加数据多样性,尝试数据增广
- 推理太慢:使用action chunking减少推理次数,或模型量化
- Sim2Real差距大:增加domain randomization,或在真实数据上微调
参考文献:
- Octo Team, "Octo: An Open-Source Generalist Robot Policy", 2023
- Kim et al., "OpenVLA: An Open-Source Vision-Language-Action Model", 2024
- Cadene et al., "LeRobot: State-of-the-art Machine Learning for Real-World Robotics", 2024
- Chi et al., "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion", RSS 2023
- Zhao et al., "Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware" (ACT), RSS 2023