LeRobot documentation
π₀ (Pi0)
π₀ (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.
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
Install LeRobot dengan mengikuti Panduan Instalasi kami.
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:
- Prapelatihan Skala Internet: Data bahasa-visi dari web untuk pemahaman semantik
- Open X-Embodiment Dataset: Dataset manipulasi robot open-source
- 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=pi0Pelatihan
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=32Parameter 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:- lerobot/pi0_base
- lerobot/pi0_libero (dipelatih secara khusus pada dataset Libero)
--policy.optimizer_fused=true: Menggunakan fused AdamW untuk langkah optimizer yang lebih cepat; flag ini diabaikan saat melanjutkan run
Penjelasan Parameter Pelatihan
| Parameter | Default | Deskripsi |
|---|---|---|
freeze_vision_encoder | false | Jangan bekukan encoder visual |
train_expert_only | false | Jangan 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 trueAtau 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