Fine-Tuning#
In this lesson, we’ll fine-tune GR00T 1.7 on the converted LeRobot dataset and prepare artifacts for policy export and deployment.
To do that, we’ll:
Validate dataset metadata and modality configuration before launch.
Fine-tune GR00T 1.7 on the real-world LeRobot dataset.
Locate the resulting checkpoint for downstream LEAPP export.
Fine-Tune GR00T 1.7 on Real Data#
Run this tutorial on an x86_64 workstation with an L40-class GPU or better (40+ GB VRAM).
Use the nvidia-isaac/gr00t-leapp-export repository and the gr00t_workflow_0.1 tag for Unitree G1 fine-tuning and downstream export compatibility.
Tip
If you want to skip fine-tuning, use the provided real robot model, nvidia/GR00T-N1.7-ApplePnP-V1.
Clone and install
gr00t-leapp-export:git clone --branch gr00t_workflow_0.1 --recurse-submodules https://github.com/nvidia-isaac/gr00t-leapp-export.git cd gr00t-leapp-export uv sync --python 3.10
Accept model access terms for
nvidia/GR00T-N1.7-3Bandnvidia/Cosmos-Reason2-2B, then authenticate:uv run hf auth login
Note
<dataset-dir>refers to the converter output directory. With default conversion settings, this is${ISAAC_ROS_WS}/recordings/lerobot_output.
Configuration#
Parameter |
Description |
Value |
|---|---|---|
|
Pretrained GR00T weights |
|
|
Path to real-world LeRobot dataset |
|
|
Robot embodiment identifier |
|
|
Total training steps |
|
|
Checkpoint frequency |
|
|
Effective batch size |
|
Validate the Dataset#
Before training, validate
<dataset-dir>/meta/info.json:fpsmatches the recordersync_rate(30 Hz by default).total_episodesandtotal_framesreflect the expected recording volume.
Note
For the apple-to-plate task, collect at least 200 episodes before fine-tuning.
Modality Config#
For G1 datasets, the converter writes a default modality config file:
<dataset-dir>/new_embodiment_config_defaults.py
Use this file directly in the fine-tuning command.
It includes:
Seven G1
statekeys fromleft_legthroughright_hand.RELATIVEaction representation for arms.ABSOLUTEaction representation for hands, waist, and optional locomotion or effort keys.The model-default 16-step action prediction horizon.
Per-body-part
effort_<group>action keys only when the recorder observed non-zero feed-forward torques.
Note
For the default apple-to-plate dataset, no additional modality edits are required.
Launch Training#
Run fine-tuning from the root of
gr00t-leapp-export:CUDA_HOME=/usr/local/cuda \ CUDA_VISIBLE_DEVICES=0 \ PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \ uv run python gr00t/experiment/launch_finetune.py \ --base-model-path nvidia/GR00T-N1.7-3B \ --dataset-path <dataset-dir> \ --embodiment-tag NEW_EMBODIMENT \ --modality-config-path <dataset-dir>/new_embodiment_config_defaults.py \ --num-gpus 1 \ --output-dir <output-dir> \ --max-steps 10000 \ --save-steps 2000 \ --global-batch-size 32 \ --dataloader-num-workers 4
The training script saves checkpoints to <output-dir>/checkpoint-<step>/.
The --max-steps, --save-steps, and --global-batch-size values are starting points. Tune them for dataset size and available hardware.
Hardware Requirement#
Note
Fine-tuning GR00T requires at least 40 GB of VRAM (for example, L40, A100, H100, RTX 6000 Ada, or RTX PRO 6000 Blackwell). Refer to the Hardware Recommendation page for full requirements.
See also
Refer to the following resources for additional detail:
Key Takeaways#
You fine-tuned GR00T 1.7 on real-world demonstrations and produced checkpoints ready for LEAPP export.