LeRobot documentation

π₀ (Pi0)

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

π₀ (Pi0)

π₀ adalah model Vision-Language-Action untuk kontrol robot umum, dari Physical Intelligence. Implementasi LeRobot diadaptasi dari repositori open source OpenPI mereka.

Ringkasan Model

π₀ merupakan terobosan dalam robotika sebagai model dasar robot serbaguna pertama yang dikembangkan oleh Physical Intelligence. Berbeda dengan program robot tradisional yang merupakan spesialis sempit yang diprogram untuk gerakan repetitif, π₀ dirancang sebagai kebijakan serbaguna yang dapat memahami masukan visual, menafsirkan instruksi bahasa alami, dan mengendalikan berbagai robot yang berbeda di berbagai tugas.

An overview of Pi0

Visi untuk Kecerdasan Fisik

Seperti yang dijelaskan oleh Physical Intelligence, meskipun AI telah mencapai kesuksesan yang luar biasa di domain digital, mulai dari bermain catur hingga penemuan obat, kecerdasan manusia masih jauh melampaui AI di dunia fisik. Untuk memparafrasekan paradoks Moravec, memenangkan permainan catur merupakan masalah yang “mudah” bagi AI, tetapi melipat kemeja atau membereskan meja memerlukan penyelesaian beberapa masalah rekayasa paling sulit yang pernah dibayangkan. π₀ mewakili langkah pertama menuju pengembangan kecerdasan fisik buatan yang memungkinkan pengguna untuk sekadar meminta robot melakukan tugas apa pun yang mereka inginkan, persis seperti yang bisa dilakukan dengan model bahasa besar.

Arsitektur dan Pendekatan

π₀ menggabungkan beberapa inovasi utama:

  • Flow Matching: Menggunakan metode baru untuk memperkaya VLM yang telah dilatih sebelumnya dengan output aksi kontinu melalui flow matching (varian dari model difusi)
  • Pelatihan Lintas Embodiment: Dilatih menggunakan data dari 8 platform robot yang berbeda, termasuk UR5e, Bimanual UR5e, Franka, Bimanual Trossen, Bimanual ARX, Mobile Trossen, dan Mobile Fibocom
  • Prapelatihan Skala Internet: Mewarisi pengetahuan semantik dari Model Bahasa-Visual yang telah prapelatihan dengan 3B parameter
  • Kontrol Frekuensi Tinggi: Menghasilkan perintah motor hingga 50 Hz untuk manipulasi lincah secara real-time

Persyaratan Instalasi

  1. Install LeRobot dengan mengikuti Panduan Instalasi kami.

  2. Instal dependensi Pi0 dengan menjalankan:

    pip install -e ".[pi]"

Data Pelatihan dan Kemampuan

π₀ dilatih pada dataset interaksi robot terbesar hingga saat ini, dengan menggabungkan tiga sumber data utama:

  1. Prapelatihan Skala Internet: Data bahasa-visi dari web untuk pemahaman semantik
  2. Open X-Embodiment Dataset: Dataset manipulasi robot open-source
  3. Physical Intelligence Dataset: Dataset besar dan beragam dari tugas-tugas yang lincah di 8 robot yang berbeda

Penggunaan

Untuk menggunakan π₀ di LeRobot, tentukan jenis kebijakan sebagai:

policy.type=pi0

Pelatihan

Untuk melatih π₀, Anda dapat menggunakan skrip pelatihan LeRobot standar dengan konfigurasi yang sesuai:

lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=pi0 \
    --output_dir=./outputs/pi0_training \
    --job_name=pi0_training \
    --policy.pretrained_path=lerobot/pi0_base \
    --policy.repo_id=your_repo_id \
    --policy.compile_model=true \
    --policy.gradient_checkpointing=true \
    --policy.dtype=bfloat16 \
    --policy.freeze_vision_encoder=false \
    --policy.train_expert_only=false \
    --steps=3000 \
    --policy.device=cuda \
    --batch_size=32

Parameter Pelatihan Utama

  • --policy.compile_model=true: Mengaktifkan kompilasi model untuk pelatihan yang lebih cepat
  • --policy.gradient_checkpointing=true: Mengurangi penggunaan memori secara signifikan selama pelatihan
  • --policy.dtype=bfloat16: Gunakan pelatihan presisi campuran untuk efisiensi
  • --batch_size=32: Ukuran batch untuk pelatihan, sesuaikan ini berdasarkan memori GPU Anda
  • --policy.pretrained_path=lerobot/pi0_base: Model dasar π₀ yang ingin Anda finetune, opsinya adalah:
  • --policy.optimizer_fused=true: Menggunakan fused AdamW untuk langkah optimizer yang lebih cepat; flag ini diabaikan saat melanjutkan run

Penjelasan Parameter Pelatihan

ParameterDefaultDeskripsi
freeze_vision_encoderfalseJangan bekukan encoder visual
train_expert_onlyfalseJangan bekukan VLM, latih semua parameter

💡 Tips: Mengatur train_expert_only=true membekukan VLM dan hanya melatih action expert serta proyeksi, sehingga memungkinkan finetuning dengan penggunaan memori yang lebih rendah.

Aksi Relatif

Secara default, π₀ memprediksi aksi absolut. Anda dapat mengaktifkan aksi relatif agar model memprediksi offset relatif terhadap keadaan robot saat ini. Hal ini dapat meningkatkan stabilitas pelatihan untuk beberapa konfigurasi tertentu.

Untuk menggunakan aksi relatif, pertama hitung ulang statistik dataset Anda dalam ruang relatif melalui CLI:

lerobot-edit-dataset \
    --repo_id your_dataset \
    --new_repo_id your_dataset \
    --operation.type recompute_stats \
    --operation.overwrite true \
    --operation.relative_action true \
    --operation.chunk_size 50 \
    --operation.relative_exclude_joints "['gripper']" \
    --push_to_hub true

Atau secara ekuivalen dalam Python:

from lerobot.datasets import LeRobotDataset, recompute_stats

dataset = LeRobotDataset("your_dataset")
recompute_stats(dataset, relative_action=True, chunk_size=50, relative_exclude_joints=["gripper"])
dataset.push_to_hub()

chunk_size harus sesuai dengan chunk_size kebijakan Anda (default 50 untuk π₀). relative_exclude_joints mencantumkan nama sendi yang harus tetap berada di ruang absolut (misalnya perintah gripper). Gunakan --push_to_hub true untuk mengunggah statistik yang diperbarui ke Hub.

Lalu latih dengan aksi relatif diaktifkan:

lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=pi0 \
    --policy.use_relative_actions=true \
    --policy.relative_exclude_joints='["gripper"]' \
    ...

Lisensi

Model ini mengikuti Lisensi Apache 2.0, yang konsisten dengan repo OpenPI asli.

Update on GitHub