LeRobot documentation

Kebijakan GR00T

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kebijakan GR00T

GR00T adalah keluarga model dasar NVIDIA untuk penalaran dan keterampilan robot humanoid yang umum. Ini adalah kebijakan lintas-embodiment yang menerima input multimodal, termasuk bahasa, gambar, dan propriosepsi, untuk melakukan tugas manipulasi di berbagai lingkungan.

LeRobot mengintegrasikan GR00T N1.7 melalui tipe kebijakan groot.

Perubahan besar: dukungan untuk GR00T N1.5 dihapus dari LeRobot, dan rilis saat ini hanya mendukung GR00T N1.7. Checkpoint dan konfigurasi N1.5 akan ditolak dengan catatan migrasi. Untuk tetap menggunakan checkpoint N1.5, kunci (pin) rilis terakhir yang mendukungnya: pip install 'lerobot==0.5.1'. Untuk menggunakan rilis saat ini, migrasikan ke GR00T N1.7 (model dasar nvidia/GR00T-N1.7-3B).

Ringkasan Model

GR00T N1.7 menggunakan backbone Cosmos-Reason2/Qwen3-VL dan menyediakan checkpoint untuk SimplerEnv, DROID, dan LIBERO.

Pengembang dan peneliti dapat melakukan post-training pada GR00T menggunakan data nyata atau sintetis mereka sendiri untuk menyesuaikannya dengan robot humanoid atau tugas tertentu.

GR00T menggunakan encoder visual dan bahasa yang telah dilatih sebelumnya dengan transformer aksi flow matching untuk memodelkan segmen aksi yang dikondisikan pada visual, bahasa, dan propriosepsi.

An overview of GR00T

Kinerja kuatnya berasal dari pelatihan pada dataset humanoid yang luas dan beragam, yang mencakup:

  • Data yang benar-benar ditangkap dari robot.
  • Data sintetis yang dihasilkan menggunakan NVIDIA Isaac GR00T Blueprint.
  • Data video berskala internet.

Pendekatan ini memungkinkan model untuk sangat adaptif melalui pelatihan pasca untuk perwujudan, tugas, dan lingkungan tertentu.

Persyaratan Instalasi

GR00T ditujukan untuk sistem dengan akselerasi GPU NVIDIA. Instal LeRobot dengan ekstra GR00T:

pip install "lerobot[groot]"

Untuk checkout sumber:

pip install -e ".[groot]"

Penggunaan

Untuk menggunakan GR00T N1.7:

--policy.type=groot

Pelatihan

Contoh Perintah Pelatihan

Berikut adalah perintah pelatihan lengkap untuk finetuning model dasar GR00T pada dataset Anda sendiri:

Perintah ini menggunakan flag new_embodiment, yang digunakan untuk robot SO-101, baca lebih lanjut tentang bagaimana GR00T menangani berbagai embodiment..

# install extra deps for training
pip install "lerobot[training]"

hf auth login
# Trackio needs no login for local runs; pass --trackio.space_id=<user>/<space> to sync runs to a Hugging Face Space.

export DATASET_NAME=your_data_set
export HF_USER=your_hf_username
export DATASET=$HF_USER/$DATASET_NAME
export REPO_ID="${DATASET}_GR00T17" #this is the model that will be uploaded to huggingface
export OUTPUT_DIR=outputs/train/$REPO_ID

lerobot-train \
  --dataset.repo_id=$DATASET \
  --dataset.image_transforms.enable=true \
  --policy.type=groot \
  --policy.device=cuda \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.embodiment_tag=new_embodiment \
  --policy.chunk_size=16 \
  --policy.n_action_steps=16 \
  --policy.use_relative_actions=true \
  --policy.relative_exclude_joints='["gripper"]' \
  --policy.use_bf16=true \
  --policy.push_to_hub=true \
  --policy.repo_id=$REPO_ID \
  --seed=42 \
  --batch_size=64 \
  --steps=20000 \
  --save_checkpoint=true \
  --save_freq=5000 \
  --use_policy_training_preset=true \
  --env_eval_freq=0 \
  --eval_steps=0 \
  --log_freq=10 \
  --output_dir=$OUTPUT_DIR \
  --job_name=$DATASET \
  --trackio.enable=true \
  --trackio.disable_artifact=true

Hasil Kinerja

Hasil Benchmark LIBERO

Ikuti instruksi pengaturan LIBERO sebelum menjalankan lerobot-eval.

GR00T N1.7 telah menunjukkan kinerja yang kuat pada suite benchmark LIBERO. Untuk mereproduksi hasil LeRobot, ikuti instruksi di bagian LIBERO.

Latih pada LIBERO

Perintah pelatihan contoh untuk suite LIBERO (di sini libero_spatial):

IMAGE_TRANSFORMS='{
  "brightness": {"weight": 1.0, "type": "ColorJitter", "kwargs": {"brightness": [0.7, 1.3]}},
  "contrast":   {"weight": 1.0, "type": "ColorJitter", "kwargs": {"contrast":   [0.6, 1.4]}},
  "saturation": {"weight": 1.0, "type": "ColorJitter", "kwargs": {"saturation": [0.5, 1.5]}},
  "hue":        {"weight": 1.0, "type": "ColorJitter", "kwargs": {"hue":        [-0.08, 0.08]}}
}'

lerobot-train \
  --dataset.repo_id=IPEC-COMMUNITY/libero_spatial_no_noops_1.0.0_lerobot \
  --dataset.root=/datasets/libero_spatial \
  --dataset.revision=main \
  --dataset.video_backend=pyav \
  --dataset.image_transforms.enable=true \
  --dataset.image_transforms.max_num_transforms=4 \
  --dataset.image_transforms.tfs="$IMAGE_TRANSFORMS" \
  --policy.type=groot \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.embodiment_tag=libero_sim \
  --policy.push_to_hub=false \
  --policy.use_relative_actions=false \
  --policy.max_steps=20000 \
  --batch_size=320 \
  --steps=20000 \
  --save_freq=2000 \
  --env_eval_freq=0 \
  --eval_steps=0 \
  --log_freq=10 \
  --trackio.enable=true \
  --trackio.project=lerobot \
  --trackio.disable_artifact=true \
  --num_workers=4 \
  --prefetch_factor=2 \
  --persistent_workers=true \
  --output_dir=$OUTPUT_DIR \
  --job_name=$JOB_NAME

Ini akan mengikuti resep yang ditemukan di sini.

Hasil LIBERO GR00T N1.7

Hasil integrasi LeRobot awal (GR00T-LeRobot, eval.n_episodes >= 50 per suite):

SuiteTingkat keberhasilanCheckpoint
LIBERO Spatial95%nvidia/gr00t17-lerobot-libero_spatial-640
LIBERO Object100%nvidia/gr00t17-lerobot-libero_object-640
Tujuan LIBERO98%nvidia/gr00t17-lerobot-libero_goal-640
LIBERO 10 (Panjang)93%nvidia/gr00t17-lerobot-libero_10-640
Rata-rata96.5%
export MODEL_ID=your_trained_model_on_huggingface

lerobot-eval \
  --policy.path=$MODEL_ID \
  --policy.embodiment_tag=libero_sim \
  --env.type=libero \
  --env.task=libero_spatial \
  --eval.n_episodes=50

Gunakan eval.n_episodes >= 50 per suite saat melaporkan tingkat keberhasilan.

Evaluasi di konfigurasi perangkat keras Anda

Setelah Anda melatih model Anda menggunakan parameter Anda, Anda dapat menjalankan inferensi dalam tugas turunan Anda. Ikuti instruksi di Policy Deployment (lerobot-rollout). Sebagai contoh:

# install extra deps for roullout and real hardware
pip install "lerobot[feetech,viz]"

export MODEL_ID=your_trained_model_on_huggingface

# make sure that camera index matches your setup!
# find index using `uv run lerobot-find-cameras opencv`
WRIST_CAM='wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: "MJPG"}'
FRONT_CAM='front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"}'
export ROBOT_CAMERAS="{ $WRIST_CAM, $FRONT_CAM }"
export ROBOT_ID=follower_robot
export ROBOT_PORT=/dev/ttyACM0

# Set --inference.rtc.enabled=False if RTC causes inference instability
uv run lerobot-rollout \
  --strategy.type=base \
  --policy.path=$MODEL_ID \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.n_action_steps=8 \
  --robot.type=so101_follower \
  --robot.port=$ROBOT_PORT \
  --robot.id=$ROBOT_ID \
  --robot.cameras="$ROBOT_CAMERAS" \
  --task="place the vial in the rack" \
  --duration=60 \
  --device=cuda \
  --display_data=true \
  --inference.type=rtc \
  --inference.rtc.enabled=True \
  --inference.rtc.execution_horizon=8 \
  --inference.queue_threshold=0

Nilai inference.queue_threshold tidak boleh melebihi 5 untuk memastikan inferensi yang stabil.

Lisensi

GR00T N1.7 dirilis di bawah NVIDIA Open Model License Agreement.

Update on GitHub