LeRobot 文件
GR00T N1.5 政策
並獲得增強的文件體驗
開始使用
GR00T N1.5 政策
GR00T N1.5 是 NVIDIA 開發的一款開放基礎模型,專為通用人形機器人的推理與技能設計。它是一個跨本體(cross-embodiment)模型,能夠接收包括語言和圖像在內的多模態輸入,以在多樣化的環境中執行操作任務。
本文件概述了其在 LeRobot 框架中的整合與使用細節。
模型概覽
NVIDIA Isaac GR00T N1.5 是 GR00T N1 基礎模型的升級版本。它的建立旨在提升人形機器人的泛化能力與語言遵循能力。
開發人員與研究人員可以使用自己的真實數據或合成數據對 GR00T N1.5 進行後訓練(post-train),以使其適應特定的人形機器人或任務。
GR00T N1.5(具體為 GR00T-N1.5-3B 模型)是基於預訓練的視覺與語言編碼器構建的。它利用流匹配動作轉換器(flow matching action transformer)來模擬一系列動作,並以視覺、語言和本體感覺(proprioception)作為條件。
其強大的性能源於在廣泛且多樣化的人形數據集上進行了訓練,其中包括:
- 從機器人採集的真實數據。
- 使用 NVIDIA Isaac GR00T Blueprint 生成的合成數據。
- 網際網路規模的影片數據。
這種方法使模型能夠通過後訓練,針對特定的本體、任務和環境進行高度調整。
安裝需求
截至今日,GR00T N1.5 的內部運作需要 Flash Attention。
我們正在努力使其成為選項功能,但目前這意味著我們需要額外的安裝步驟,且只能在支援 CUDA 的裝置上使用。
- 請按照我們的安裝指南中的「環境設定」進行操作。注意:在此步驟中請勿安裝
lerobot。 - 執行以下指令以安裝 Flash Attention:
# Check https://pytorch.com.tw/get-started/locally/ for your system
pip install "torch>=2.2.1,<2.8.0" "torchvision>=0.21.0,<0.23.0" # --index-url https://download.pytorch.org/whl/cu1XX
pip install ninja "packaging>=24.2,<26.0" # flash attention dependencies
pip install "flash-attn>=2.5.9,<3.0.0" --no-build-isolation
python -c "import flash_attn; print(f'Flash Attention {flash_attn.__version__} imported successfully')"- 執行以下指令以安裝 LeRobot:
pip install lerobot[groot]
使用方式
若要在您的 LeRobot 設定中使用 GR00T,請指定策略類型為:
policy.type=groot訓練
訓練指令範例
以下是針對您自己的數據集微調基礎 GR00T 模型的完整訓練指令:
# Using a multi-GPU setup
accelerate launch \
--multi_gpu \
--num_processes=$NUM_GPUS \
$(which lerobot-train) \
--output_dir=$OUTPUT_DIR \
--save_checkpoint=true \
--batch_size=$BATCH_SIZE \
--steps=$NUM_STEPS \
--save_freq=$SAVE_FREQ \
--log_freq=$LOG_FREQ \
--policy.push_to_hub=true \
--policy.type=groot \
--policy.repo_id=$REPO_ID \
--policy.tune_diffusion_model=false \
--dataset.repo_id=$DATASET_ID \
--wandb.enable=true \
--wandb.disable_artifact=true \
--job_name=$JOB_NAME效能結果
Libero 基準測試結果
請遵循我們關於 Libero 使用的說明:Libero
GR00T 在 Libero 基準測試套件中展現了強大的性能。為了比較並測試其 LeRobot 實作,我們對 GR00T N1.5 模型在 Libero 數據集上進行了 30,000 步的微調,並將結果與 GR00T 的參考結果進行了比較。
| 基準測試 | LeRobot 實作 | GR00T 參考數據 |
|---|---|---|
| Libero Spatial | 82.0% | 92.0% |
| Libero Object | 99.0% | 92.0% |
| Libero Long | 82.0% | 76.0% |
| 平均 | 87.0% | 87.0% |
這些結果證明了 GR00T 在各種機器人操作任務中具備強大的泛化能力。若要重現這些結果,您可以按照 Libero 章節中的說明進行操作。
在您的硬體設置中進行評估
一旦您使用自己的參數訓練了模型,就可以在下游任務中進行推理。請按照 機器人模仿學習 (Imitation Learning for Robots) 中的說明操作。例如:
lerobot-record \
--robot.type=bi_so_follower \
--robot.left_arm_port=/dev/ttyACM1 \
--robot.right_arm_port=/dev/ttyACM0 \
--robot.id=bimanual_follower \
--robot.cameras='{ right: {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30},
left: {"type": "opencv", "index_or_path": 2, "width": 640, "height": 480, "fps": 30},
top: {"type": "opencv", "index_or_path": 4, "width": 640, "height": 480, "fps": 30},
}' \
--display_data=true \
--dataset.repo_id=<user>/eval_groot-bimanual \
--dataset.num_episodes=10 \
--dataset.single_task="Grab and handover the red cube to the other arm" \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2 \
# --dataset.vcodec=auto \
--policy.path=<user>/groot-bimanual \ # your trained model
--dataset.episode_time_s=30 \
--dataset.reset_time_s=10授權
此模型遵循 NVIDIA 的專有授權協議,與原始的 GR00T 儲存庫一致。未來的版本(從 N1.7 開始)將遵循 Apache 2.0 授權協議。
在 GitHub 上更新