aivlahumanoidnvidiaisaac-labfine-tuningdeep-learninggrootsim2real

Hướng dẫn fine-tune NVIDIA GR00T N1

Hướng dẫn chi tiết fine-tune VLA model GR00T N1 cho humanoid robot với Isaac Lab và dữ liệu AGIBOT World — từ cài đặt đến inference.

Nguyễn Anh Tuấn12 tháng 4, 202612 phút đọc
Hướng dẫn fine-tune NVIDIA GR00T N1

Nếu bạn đang theo dõi lĩnh vực robot hình người, chắc hẳn đã nghe đến GR00T N1 — mô hình nền tảng mở đầu tiên của NVIDIA dành riêng cho humanoid robot. Đây không chỉ là một bài báo nghiên cứu — NVIDIA đã mở mã nguồn toàn bộ, từ model weights đến pipeline fine-tuning, cho phép bất kỳ ai cũng có thể fine-tune và triển khai trên robot thực.

Trong bài viết này, mình sẽ hướng dẫn bạn từng bước cách fine-tune GR00T N1 với Isaac Lab và dữ liệu từ AGIBOT World — từ hiểu kiến trúc, cài đặt môi trường, chuẩn bị dữ liệu, đến training và inference.

GR00T N1 là gì?

GR00T N1 (Generalist Robot 00 Technology) là mô hình Vision-Language-Action (VLA) được NVIDIA công bố tại GTC 2025. Không giống các VLA model trước đó chỉ hỗ trợ một loại robot cụ thể, GR00T N1 là mô hình cross-embodiment — có thể hoạt động trên nhiều loại robot khác nhau, từ cánh tay đơn (single-arm manipulator) cho đến humanoid robot toàn thân.

Paper gốc: GR00T N1: An Open Foundation Model for Generalist Humanoid Robots — NVIDIA Research, 2025.

Tại sao GR00T N1 đặc biệt?

  • Cross-embodiment: Một model duy nhất chạy được trên WidowX, Google Robot, Fourier GR-1, Unitree G1 và nhiều robot khác
  • Mở hoàn toàn: Model weights, code training, fine-tuning pipeline — tất cả đều open-source
  • Data-efficient: Chỉ với 10% dữ liệu training, GR00T N1 đạt kết quả gần bằng Diffusion Policy dùng 100% dữ liệu
  • Real-time inference: 22-27 Hz trên RTX 4090, đủ nhanh cho điều khiển robot thực

Nếu bạn đã quen với các VLA model khác như RT-2 hay Octo, GR00T N1 đại diện cho bước tiến lớn về khả năng generalization.

Kiến trúc Dual-System

Điểm sáng tạo nhất của GR00T N1 là kiến trúc hai hệ thống, lấy cảm hứng từ lý thuyết nhận thức của Daniel Kahneman (Thinking, Fast and Slow):

Kiến trúc dual-system của GR00T N1 — System 2 xử lý ngôn ngữ và hình ảnh, System 1 tạo hành động nhanh

System 2 — Vision-Language Module (chậm, suy luận)

  • Backbone: Eagle-2 VLM = SigLIP-2 (vision encoder) + SmolLM2 (language model)
  • Tham số: 1.34B parameters
  • Tốc độ: ~10 Hz
  • Nhiệm vụ: Nhận ảnh từ camera + lệnh ngôn ngữ → hiểu bối cảnh và mục tiêu task
  • Đặc biệt: Trích xuất features từ lớp thứ 12 (giữa mạng) thay vì lớp cuối — điều này vừa nhanh hơn vừa cho kết quả tốt hơn (đã kiểm chứng qua ablation study)

System 1 — Diffusion Transformer Action Head (nhanh, phản xạ)

  • Kiến trúc: DiT (Diffusion Transformer) với action flow-matching
  • Tốc độ: ~120 Hz (nội bộ), output chunk 16 timesteps
  • Denoising steps: 4 bước (sử dụng Forward Euler integration)
  • Cross-attention: Kết nối với output của System 2 để hiểu ngữ cảnh
  • Embodiment MLP: Mỗi loại robot có MLP riêng để encode/decode state và action — đây là chìa khóa cho cross-embodiment

Tổng model: GR00T-N1-2B có 2.2B tham số (1.34B VLM + phần còn lại cho DiT và embodiment MLPs).

Nếu bạn đã đọc về Diffusion Policy, System 1 của GR00T N1 chính là phiên bản nâng cấp — thay vì U-Net, nó dùng Transformer với cơ chế attention linh hoạt hơn.

Dữ liệu training — Kim tự tháp 4 tầng

GR00T N1 được train trên bốn loại dữ liệu khác nhau, xếp theo hình kim tự tháp:

Tầng 1: Dữ liệu robot thực (chất lượng cao nhất)

  • GR00T N1 Humanoid dataset: 88 giờ teleoperation trên Fourier GR-1 dùng VIVE trackers + Xsens gloves
  • Open X-Embodiment: RT-1, Bridge-v2, DROID, RoboSet và nhiều dataset khác
  • AgiBot-Alpha: 140,000 trajectories từ 100 robot

Tầng 2: Video con người

  • Ego4D, EPIC-KITCHENS, Assembly-101 — video người thao tác đồ vật
  • Không có motor commands → dùng VQ-VAE để học latent action space

Tầng 3: Dữ liệu mô phỏng

  • DexMimicGen: 780,000 trajectories (tương đương 6,500 giờ) sinh ra chỉ trong 11 giờ trên Isaac Sim

Tầng 4: Neural trajectories (AI-generated)

  • Từ 88 giờ dữ liệu thực → sinh ra 827 giờ video bằng image-to-video model
  • Kết quả: tăng 40% performance so với chỉ dùng dữ liệu thực

AGIBOT World Dataset

AGIBOT World là một trong những bộ dữ liệu robot lớn nhất hiện nay, được tạo bởi AgiBot (Trung Quốc):

  • AGIBOT World Beta: 1M+ trajectories, 2,976 giờ, 217 tasks, 87 skills
  • 3,000+ đối tượng khác nhau, 100+ kịch bản thực tế
  • 5 domain: manipulation, tool use, multi-robot collaboration, v.v.
  • Finalist cho IROS 2025 Best Paper Award

GR00T N1 sử dụng AgiBot-Alpha (phiên bản trước đó, 140K trajectories) làm một trong các nguồn dữ liệu training chính.

GitHub: OpenDriveLab/AgiBot-World HuggingFace: agibot-world/AgiBotWorld-Alpha

Cài đặt môi trường

Yêu cầu phần cứng

Mục đích GPU tối thiểu
Fine-tuning 1x RTX A6000 hoặc RTX 4090 (24GB VRAM)
Inference RTX 4090 (44ms, ~23 Hz) hoặc Jetson AGX Orin
Pre-training 1024x H100 (không khả thi cho cá nhân)

Bước 1: Clone repository

git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T

Bước 2: Cài đặt dependencies

GR00T sử dụng uv — một package manager Python cực nhanh:

# Cài uv nếu chưa có
curl -LsSf https://astral.sh/uv/install.sh | sh

# Cài dependencies cho desktop GPU
bash scripts/deployment/dgpu/install_deps.sh

# Sync Python environment
uv sync && uv pip install -e .

Bước 3: Tải model weights

Model weights có sẵn trên HuggingFace:

# Cài huggingface-cli nếu chưa có
pip install huggingface_hub

# Tải model (cần ~8GB)
huggingface-cli download nvidia/GR00T-N1.6-3B

Các model có sẵn:

Model Tham số Mô tả
GR00T-N1.6-3B 3B Base model mới nhất
GR00T-N1.6-bridge 3B Pre-finetuned cho WidowX
GR00T-N1.6-G1 3B Pre-finetuned cho Unitree G1
GR00T-N1.6-BEHAVIOR1k 3B Pre-finetuned cho Galaxea R1 Pro
GR00T-N1.6-DROID 3B Pre-finetuned trên DROID dataset

Chuẩn bị dữ liệu

GR00T N1 sử dụng format LeRobot v2 cho dữ liệu. Nếu bạn đã quen với LeRobot framework, quá trình này khá quen thuộc.

Format dữ liệu

Mỗi trajectory cần có:

{
    "observation": {
        "image": np.array,          # (H, W, 3) RGB image
        "state": np.array,          # Robot state (joints, gripper, etc.)
    },
    "action": np.array,             # Target action
    "language_instruction": str,    # Mô tả task bằng ngôn ngữ
}

Sử dụng AGIBOT World

# Tải AGIBOT World Alpha dataset
huggingface-cli download agibot-world/AgiBotWorld-Alpha \
    --local-dir ./data/agibot-alpha \
    --repo-type dataset

# Convert sang format LeRobot v2 (script có sẵn trong repo)
python scripts/data/convert_agibot_to_lerobot.py \
    --input-dir ./data/agibot-alpha \
    --output-dir ./data/agibot-lerobot

Tạo modality config

Mỗi loại robot cần một modality config mô tả cấu trúc state/action:

# config/my_robot_modality.yaml
state:
  joint_positions:
    dim: 7          # Số bậc tự do
    normalize: true
  gripper:
    dim: 1
    normalize: true

action:
  joint_positions:
    dim: 7
    normalize: true
  gripper:
    dim: 1
    normalize: true

video:
  cameras:
    - name: front_camera
      resolution: [224, 224]

Fine-tuning

Đây là phần quan trọng nhất. Fine-tuning GR00T N1 có thể thực hiện trên một GPU duy nhất.

Fine-tuning VLA model trên GPU — quá trình điều chỉnh mô hình cho robot cụ thể

Chiến lược fine-tuning

Trong quá trình fine-tuning:

  • Đóng băng: Language component của VLM backbone
  • Fine-tune: Vision encoder, state/action encoders, DiT action head
  • Batch size: Lên đến 200 (nếu chỉ tune adapter), 16 (nếu tune cả vision encoder)

Lệnh fine-tuning

CUDA_VISIBLE_DEVICES=0 uv run python gr00t/experiment/launch_finetune.py \
    --base-model-path nvidia/GR00T-N1.6-3B \
    --dataset-path ./data/agibot-lerobot \
    --embodiment-tag new_humanoid \
    --modality-config-path config/my_robot_modality.yaml \
    --num-gpus 1 \
    --max-steps 2000 \
    --global-batch-size 32 \
    --learning-rate 1e-4 \
    --output-dir ./checkpoints/my_finetune

Các hyperparameter quan trọng

Parameter Giá trị khuyến nghị Ghi chú
max-steps 2000-5000 Bắt đầu với 2000, tăng nếu cần
global-batch-size 16-32 Phụ thuộc VRAM
learning-rate 1e-4 Cho adapter-only; 1e-5 nếu tune vision
warmup-steps 100-200 Warm up learning rate

Tips fine-tuning

  1. Bắt đầu nhỏ: Fine-tune trên 100-200 demos trước, kiểm tra kết quả, rồi tăng dần
  2. Monitor loss: Loss nên giảm đều trong 500 steps đầu. Nếu không giảm → giảm learning rate
  3. Overfitting: GR00T N1.6 có 32 DiT layers (gấp đôi N1.5), dễ overfit hơn → cần regularization tốt
  4. Mixed precision: Mặc định dùng bf16, giữ nguyên nếu GPU hỗ trợ

Inference — Triển khai model

GR00T N1 sử dụng kiến trúc server-client cho inference:

Khởi động inference server

# Chạy server với model đã fine-tune
uv run python gr00t/policy/serve_policy.py \
    --model-path ./checkpoints/my_finetune \
    --port 5555

Client code (trên robot)

from gr00t.policy.server_client import PolicyClient
import numpy as np

# Kết nối đến server
policy = PolicyClient(host="localhost", port=5555)

# Vòng điều khiển
while True:
    # Lấy observation từ robot
    obs = {
        "image": camera.get_frame(),         # (224, 224, 3)
        "state": robot.get_joint_positions(), # (7,)
        "language_instruction": "pick up the red cup"
    }

    # Predict action
    action, info = policy.get_action(obs)

    # Gửi action đến robot
    robot.execute(action)

Hiệu năng inference

GPU Latency Tần số
RTX 5090 37ms 27.3 Hz
H100 38ms 26.3 Hz
RTX 4090 44ms 22.8 Hz
DGX Spark 89ms 11.2 Hz
Jetson Thor 105ms 9.5 Hz

Kết quả benchmark

GR00T N1 vượt trội so với các baseline trên hầu hết benchmark:

Simulation (100 demos mỗi task)

Benchmark BC Transformer Diffusion Policy GR00T N1
RoboCasa 26.3% 25.6% 32.1%
DexMimicGen 53.9% 56.1% 66.5%
GR-1 Humanoid 16.1% 32.7% 50.0%
Trung bình 26.4% 33.4% 45.0%

Real-world trên Fourier GR-1

Task Diffusion Policy (100% data) GR00T N1 (100% data)
Pick-and-Place 36.0% 82.0%
Articulated Objects 38.6% 70.9%
Industrial Tasks 61.0% 70.0%
Bimanual 62.5% 82.5%
Trung bình 46.4% 76.8%

Phát hiện quan trọng: GR00T N1 với chỉ 10% dữ liệu (42.6%) gần bằng Diffusion Policy dùng 100% dữ liệu (46.4%). Điều này chứng minh sức mạnh của pre-training cross-embodiment.

Isaac Lab — Vị trí trong pipeline

Isaac Lab là framework robot learning của NVIDIA, xây trên Isaac Sim (Omniverse). Trong pipeline GR00T N1, Isaac Lab đóng vai trò:

  1. Môi trường mô phỏng: Tạo simulation environments để đánh giá policy trước khi deploy lên robot thực
  2. Sinh dữ liệu: DexMimicGen (dựa trên Isaac Sim) đã sinh 780K trajectories cho training
  3. Benchmark: Các benchmark RoboCasa, DexMimicGen tasks, GR-1 tasks đều chạy trên Isaac Lab
  4. Sim-to-real: Pipeline hoàn chỉnh từ training → evaluation trong sim → deploy trên hardware

Nếu bạn quan tâm đến simulation trong robotics, Isaac Lab là công cụ không thể thiếu cho workflow GR00T.

Tiến hóa: N1 → N1.5 → N1.6

Từ khi công bố N1 (03/2025), NVIDIA đã nhanh chóng cải tiến:

N1.5:

  • VLM nâng cấp lên Eagle 2.5 với khả năng grounding tốt hơn
  • Thêm FLARE — căn chỉnh model với target future embeddings
  • Language following: 46.6% → 93.3% (cải thiện gấp đôi)

N1.6 (phiên bản mới nhất):

  • VLM chuyển sang NVIDIA Cosmos-2B với flexible resolution
  • DiT tăng gấp đôi: 32 layers (thay vì 16 ở N1.5)
  • Convergence nhanh hơn, hành động mượt hơn
  • Cần cẩn thận hơn khi fine-tune (dễ overfit do model lớn hơn)

Workflow thực tế: Từ zero đến inference

Tóm lại, pipeline hoàn chỉnh gồm 6 bước:

  1. Cài đặt: Clone Isaac-GR00T, cài dependencies, tải model weights
  2. Thu thập dữ liệu: Teleoperation hoặc tải AGIBOT World
  3. Chuẩn bị dữ liệu: Convert sang LeRobot v2 format, tạo modality config
  4. Fine-tune: Chạy launch_finetune.py trên 1x RTX 4090
  5. Đánh giá: Test trong Isaac Lab simulation
  6. Deploy: Chạy server-client inference trên robot thực

Toàn bộ quy trình fine-tuning (2000 steps, 200 demos) mất khoảng 2-4 giờ trên RTX 4090 — hoàn toàn khả thi cho researcher cá nhân.

Kết luận

GR00T N1 đánh dấu bước ngoặt trong lĩnh vực humanoid robotics: lần đầu tiên một foundation model mạnh, cross-embodiment, được mở hoàn toàn cho cộng đồng. Kết hợp với dữ liệu AGIBOT World và môi trường Isaac Lab, bất kỳ ai có RTX 4090 cũng có thể bắt đầu fine-tune VLA model cho robot của mình.

Nếu bạn đang xây dựng hệ thống robot và muốn tận dụng sức mạnh của foundation models, GR00T N1 là điểm khởi đầu tốt nhất hiện tại.

Tài nguyên:


Bài viết liên quan

NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Bài viết liên quan

NEWTutorial
Hướng dẫn GigaBrain-0: VLA + World Model + RL
vlaworld-modelreinforcement-learninggigabrainroboticsmanipulation

Hướng dẫn GigaBrain-0: VLA + World Model + RL

Hướng dẫn chi tiết huấn luyện VLA bằng World Model và Reinforcement Learning với framework RAMP từ GigaBrain — open-source, 3.5B params.

12/4/202611 phút đọc
NEWTutorial
StarVLA: Xây dựng VLA Model mô-đun
vlastarvlarobot-manipulationaideep-learningqwen-vlflow-matchingiclr-2026

StarVLA: Xây dựng VLA Model mô-đun

Hướng dẫn chi tiết xây dựng Vision-Language-Action model với StarVLA — framework mô-đun kiểu Lego từ ICLR 2026, hỗ trợ 4 kiến trúc action head.

12/4/202611 phút đọc
NEWDeep Dive
WholebodyVLA Open-Source: Hướng Dẫn Kiến Trúc & Code
vlahumanoidloco-manipulationiclrrlopen-sourceisaac-lab

WholebodyVLA Open-Source: Hướng Dẫn Kiến Trúc & Code

Deep-dive vào codebase WholebodyVLA — kiến trúc latent action, LMO RL policy, và cách xây dựng pipeline whole-body loco-manipulation cho humanoid.

12/4/202619 phút đọc