
Lakukan penalaan halus Pi0.5, VLA padanan aliran dari Physical Intelligence, menggunakan data robot anda sendiri. Perintah sebenar untuk openpi dan lerobot pi05, perangkap format set data, had VRAM dan kependaman.
Pi0.5 ialah model yang anda gunakan apabila sesuatu polisi perlu berfungsi dalam bilik yang belum pernah dilihatnya. Ia juga yang paling rumit antara lima polisi boleh latih di sini untuk penalaan halus secara manual: repositori huluan adalah JAX dahulu, port LeRobot memindahkan penggunaan keluar dari lerobot-record dalam 0.6.0 dan menjadikan pemasangan asas terlalu kecil untuk dilatih, dan penalaan halus penuh tidak muat pada 4090. Di bawah: apa yang padanan aliran kos pada inferens, dua laluan arahan, dan nombor 485 ms yang menentukan sama ada hasilnya boleh digunakan.
Apa yang perlu anda tahu
- •VLA padanan aliran: VLM PaliGemma 3B ditambah pakar tindakan 300M yang menyahkod cebisan tindakan berterusan. Dua laluan untuk menala halusnya, openpi dan LeRobot pi05, 0.65 mata berbeza pada purata LIBERO.
- •Penalaan halus penuh memerlukan lebih daripada 70 GB VRAM. openpi menyenaraikan LoRA pada 22.5 GB, hanya pada laluan JAXnya.
- •Set data mestilah LeRobotDataset v3.0 dengan kuantil q01 dan q99 dalam meta/stats.json, atau kelompok pertama akan gagal.
- •Semak versi lerobot anda dahulu: 0.6.0 menjadikan pakej asas ringan dan memindahkan penggunaan keluar dari lerobot-record.
- •Di sini ia berjalan pada 485 ms setiap langkah tindakan, memerlukan 50 episod, dan berharga kira-kira 4 hingga 12 USD setiap larian.
Apa sebenarnya Pi0.5
Physical Intelligence menerbitkan pi0 pada Oktober 2024: sebuah padanan aliran model tindakan bahasa-penglihatan pada VLM pra-latih: PaliGemma pada 3 bilion parameter ditambah pakar tindakan 300M yang dimulakan dari awal, 3.3 bilion secara keseluruhan. Kertas kerja itu melaporkan pra-latihan selama lebih 10,000 jam data robot merentasi 7 konfigurasi robot dan 68 tugas. Lebih lanjut dalam artikel pi0.
Pi0.5 (arXiv 2504.16054, 22 April 2025) mengekalkan rangka tersebut dan mengubah diet latihan: data web, pengesanan objek, arahan lisan daripada manusia yang melatih robot, label subtugas, data rentas-embodimen daripada robot di banyak rumah. Hasilnya ialah robot yang membersihkan dapur di rumah-rumah yang tidak termasuk dalam set latihan. README openpi menambah butiran yang tiada pada tajuk: pi0.5 yang dikeluarkan dilatih dengan penebat pengetahuan (arXiv 2505.23705).
| Ciri | pi0 | pi0.5 |
|---|---|---|
| Varian tulang belakang VLM | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Varian pakar tindakan | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon lalai | 50 | 50 |
| max_token_len | 48 | 200 |
| input keadaan diskret | false | true, keadaan didiskretkan ke dalam tong dalam gesaan |
| Titik semak asas | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
README openpi adalah jelas: repositori ini hanya menyokong kepala padanan aliran (flow matching head), untuk latihan dan inferens pi0.5. Kertas kerja ini menerangkan dua peringkat dan kod hanya membawa yang kedua: pra-latihan mewakili setiap tindakan sebagai token diskret melalui tokenizer FAST, dan semasa penggunaan model menyimpulkan subtugas peringkat tinggi sebelum setiap cebisan tindakan. Tiada satu pun daripada itu dalam repositori. Kad lerobot/pi05_base memberikan senarai yang sama dan menambah RL, walaupun kertas pi0.5 tidak menerangkan sebarang peringkat pembelajaran pengukuhan sama sekali. Port LeRobot mewarisi skop itu, begitu juga setiap pelatih yang dihoskan di atasnya, termasuk yang di sini. Pelesenan juga terbahagi: halaman dokumen pi05 menyatakan Apache 2.0, kad lerobot/pi05_base ditandakan license: gemma.
Apa yang diubah oleh padanan aliran mengenai latihan dan inferens
Satu polisi yang boleh anda latih pada SO-100 sama ada meregres tindakan secara langsung (ACT) atau menokenkannya dan menyahkod secara autoregresif (pi0-FAST). Padanan aliran tidak melakukan kedua-duanya: ia mempelajari medan vektor yang mengangkut hingar kepada ketulan tindakan yang bersih, kemudian mengintegrasikannya. Kertas kerja pi0 menggunakan 10 langkah integrasi pada saiz langkah 0.1; konfigurasi pi05 LeRobot membawa num_inference_steps: int = 10 yang sama.
- Latihan: kerugian meregres ketulan tindakan yang bising. Tiada tokenizer untuk ditala, tiada diskretisasi sudut sendi anda.
- Inferens: satu ketulan memerlukan sepuluh laluan ke hadapan melalui pakar tindakan. Itu adalah struktur, bukan masalah penalaan.
- Output: tindakan berterusan berdimensi 32, dipadatkan secara dalaman, kerugian diambil pada dimensi yang dimiliki robot anda. Lengan 6-DoF ditambah pengepit menggunakan 7.
# openpi/src/openpi/models/pi0_config.py - the defaults every pi05 config inherits
@dataclasses.dataclass(frozen=True)
class Pi0Config(_model.BaseModelConfig):
dtype: str = "bfloat16"
paligemma_variant: _gemma.Variant = "gemma_2b"
action_expert_variant: _gemma.Variant = "gemma_300m"
action_dim: int = 32
action_horizon: int = 50
max_token_len: int = None # 200 if pi05 else 48
pi05: bool = False # flips discrete_state_input to TrueTulang belakang PaliGemma, dan gerbang di hadapannya
PaliGemma (arXiv 2407.07726) ialah pengekod penglihatan SigLIP-So400m pada model bahasa Gemma-2B, kira-kira 3B parameter. Pi0.5 mewarisi tokenizernya, dan tokenizer itu berada dalam repositori berpagar. Ini adalah cara paling biasa larian pertama gagal, sebelum langkah latihan.
Dokumen LeRobot pi05 menyatakan dengan jelas: pi0.5 menggunakan tokenizer google/paligemma-3b-pt-224 yang berpagar, jadi terima lesennya di Hub dan jalankan hf auth login terlebih dahulu. Akses diberikan secara manual, bukan serta-merta. Langkaukannya, mulakan larian awan berbayar, dan anda membayar untuk pod yang tidak dapat memuat turun tokenizer.
Sebelum anda bermula: format set data, episod, perkakasan
Pi0.5 dalam LeRobot membaca set data LeRobot dalam susun atur v3.0, yang disertakan dengan lerobot 0.4.0 pada Oktober 2025: banyak episod setiap fail Parquet dan MP4 dan bukannya satu fail setiap episod, dengan sempadan dalam meta/episodes/ dan bukannya nama fail. Rekod dengan klien desktop atau ikuti rekod set data pertama anda dan anda memilikinya.
| Mod | Memori GPU diperlukan | Contoh GPU |
|---|---|---|
| Inferens | more than 8 GB | RTX 4090 |
| Penalaan halus, LoRA | more than 22.5 GB | RTX 4090 |
| Penalaan halus, penuh | more than 70 GB | A100 80 GB or H100 |
Pi0.5 dan SmolVLA memerlukan LeRobot v3.0. GR00T N1.7 dan GR00T N1.5 memerlukan v2.0 atau v2.1 dan akan ranap pada set data v3.0. Satu sesi rakaman tidak boleh menyuap kedua-duanya tanpa penukaran, dan ralat tidak menyatakan "wrong dataset version". Lihat set data ditolak: v3 diperlukan.
# v2.1 -> v3.0, run against a dataset already on the Hub
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=<HF_USER/DATASET_ID>
# aggregates episode-0000.parquet, episode-0001.parquet, ... -> file-0000.parquet
# aggregates episode-0000.mp4, episode-0001.mp4, ... -> file-0000.mp4
# rewrites meta/episodes/* with per-episode lengths, tasks and offsetsPlatform ini memerlukan sekurang-kurangnya 50 episod untuk Pi0.5, had yang sama seperti GR00T dan ACT. Pra-latihan melakukan kerja berat, jadi 50 episod bersih lebih baik daripada 200 episod yang tidak kemas. Baru dalam hal ini? Mulakan dengan panduan pengumpulan data.

Laluan A: penalaan halus dengan repositori openpi
Pelaksanaan rujukan: JAX dahulu, diuji pada Ubuntu 22.04 sahaja, didorong oleh objek konfigurasi dan bukannya bendera. Laluan PyTorch tiba pada September 2025, disahkan pada LIBERO. Tiga langkah: tukar data anda, takrifkan konfigurasi, latih dan hidangkan.
- 1Klon dan pasang
openpi menggunakan uv. GIT_LFS_SKIP_SMUDGE membolehkan LeRobot menjadi kebergantungan tanpa blob LFS.
bashgit clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git cd openpi GIT_LFS_SKIP_SMUDGE=1 uv sync GIT_LFS_SKIP_SMUDGE=1 uv pip install -e . - 2Tukar data anda kepada set data LeRobot
Upstream menghantar penukar untuk LIBERO dan DROID dan menjangkakan anda untuk menyesuaikan salah satu daripadanya. Kerjanya adalah pemetaan kunci.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3Tambah konfigurasi latihan
Konfigurasi adalah entri TrainConfig dalam src/openpi/training/config.py. Yang ini menyesuaikan pi05_droid_finetune, dengan pemuat berat menunjuk kepada pi05_base.
pythonTrainConfig( name="pi05_so100", model=pi0_config.Pi0Config( pi05=True, action_dim=32, # pi05 is trained with 32-dim actions action_horizon=16, ), # Copy LeRobotLiberoDataConfig in the same file and rewrite the key # mapping for your camera names, then reference your copy here. data=LeRobotLiberoDataConfig( repo_id="your_hf_username/my_so100_dataset", base_config=DataConfig(prompt_from_task=True), ), weight_loader=weight_loaders.CheckpointWeightLoader( "gs://openpi-assets/checkpoints/pi05_base/params" ), batch_size=32, num_train_steps=20_000, ) - 4Kira statistik norma
Berjalan terhadap nama konfigurasi, bukan set data. Melangkauinya adalah kegagalan pertama yang klasik di sini.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5Latih
Pemboleh ubah membolehkan JAX menggunakan 90 peratus memori GPU dan bukannya 75 peratus lalai. Pada kad 80 GB, ini menentukan sama ada larian itu berjaya.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Hidangkannya
Pelayan mendengar pada port 8000 dan menjawab pertanyaan pemerhatian; runtime robot anda adalah klien.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Implementasi PyTorch openpi tidak menyokong pi0-FAST, ketepatan campuran, FSDP, LoRA atau pemberat EMA, jadi LoRA yang mencapai 22.5 GB adalah JAX sahaja, melalui varian gemma_2b_lora dan gemma_300m_lora. Lebih teruk: persediaan ini menyalin fail yang ditampal ke atas transformers 4.53.2 yang anda pasang, dan README memberi amaran bahawa dengan mod hardlink lalai uv, ini secara kekal mengubah transformers dalam cache uv dan boleh bocor ke projek lain. Batalkannya dengan uv cache clean transformers.
Laluan B: penalaan halus dengan lerobot pi05
Port LeRobot membalut pemberat yang sama dalam CLI yang sudah anda gunakan untuk ACT dan SmolVLA. Semua yang di bawah telah disemak terhadap lerobot 0.6.1, keluaran sejak 3 Ogos 2026, dan dokumen pi05 pada 23 Ogos 2026. Versi adalah penting di sini: set data v3.0 tiba dengan 0.4.0 pada Oktober 2025, blog 0.5.0 pada 9 Mac 2026 membentangkan pi0-FAST dan Real-Time Chunking, dan 0.6.0 pada 6 Julai 2026 menjadikan pakej asas ringan dan memindahkan penggunaan ke lerobot-rollout.
Satu perkara tidak berubah: lerobot-train dan lerobot-record sudah menjadi titik masuk dalam 0.3.2, Ogos 2025. Tutorial yang masih memanggil python -m lerobot.scripts.train mendahului perubahan setahun dan patut diragui untuk selebihnya juga.
- 1Pasang dengan tambahan yang betul
Sejak 0.6.0, pemasangan asas hanya membawa kebergantungan ML teras, dan tambahan pi tidak menambah kod set data atau latihan, jadi penalaan halus memerlukan tambahan latihan juga. Baris tunggal yang lebih lama gagal di sini pada masa import.
bash# policy dependencies plus the training stack pip install 'lerobot[pi,training]' # from a source checkout pip install -e ".[pi,training]" # driving an SO-100 afterwards needs the robot extras too pip install 'lerobot[core_scripts,feetech]' - 2Sahkan
Terima lesen paligemma-3b-pt-224 dalam pelayar, kemudian log masuk pada mesin yang melatih.
bashhf auth login - 3Tambah statistik kuantil
Pi0.5 menormalkan STATE dan ACTION dengan kuantil, jadi meta/stats.json memerlukan q01 dan q99. Set data yang lebih lama hanya mengandungi min, maks, purata, std.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4Penalaan halus dari lerobot/pi05_base
Tetapkan saiz kelompok kepada apa yang kad anda mampu; dokumen menggunakan 64 pada LIBERO pada 80 GB. Lulus bfloat16 secara eksplisit, lalai konfigurasi adalah float32.
bashlerobot-train \ --dataset.repo_id=${HF_USER}/my_so100_dataset \ --policy.type=pi05 \ --policy.pretrained_path=lerobot/pi05_base \ --policy.gradient_checkpointing=true \ --policy.dtype=bfloat16 \ --policy.device=cuda \ --policy.push_to_hub=false \ --output_dir=./outputs/pi05_so100 \ --job_name=pi05_so100 \ --batch_size=4 \ --num_workers=8 \ --steps=30000 \ --save_freq=5000 \ --seed=1000 - 5Jalankannya pada lengan robot
Dalam 0.6.x ini adalah lerobot-rollout: lerobot-record menolak polisi dan menolak nama set data eval_. Base menggerakkan lengan, sentry merekodkan pelancaran.
bashlerobot-rollout \ --strategy.type=base \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \ --task="Put lego brick into the transparent box" \ --duration=60 # same run, recorded into an eval_ dataset lerobot-rollout \ --strategy.type=sentry \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --dataset.repo_id=${HF_USER}/eval_so100 \ --dataset.single_task="Put lego brick into the transparent box" \ --duration=600
| Bendera | Fungsinya | Nota |
|---|---|---|
| --policy.type=pi05 | memilih Pi0.5 | diperlukan dengan pretrained_path, abaikan dengan --policy.path |
| --policy.pretrained_path | memuatkan berat sahaja | nama ciri dari set data anda, tetapan tersimpan ditetapkan semula |
| --policy.path | berat serta config.json titik semak | tetapan tersimpan seperti n_action_steps diwarisi |
| --policy.n_action_steps | langkah yang digunakan setiap cebisan | kembali kepada 50, tidak pernah melebihi chunk_size (lalai 50) |
| --policy.train_expert_only | membekukan VLM, melatih pakar | lalai false, kurang memori, sedikit kos dalam kejayaan |
| --policy.gradient_checkpointing | mengira semula dan bukannya menyimpan pengaktifan | lalai false, tuil pertama apabila larian tidak muat |
| --peft.method_type=LORA | penyesuai LoRA dan bukannya berat penuh | memerlukan tambahan peft, contoh yang didokumenkan ialah SmolVLA |
| --policy.rtc_training_max_delay | penyediaan awalan tindakan untuk RTC | cawangan utama sahaja, bukan dalam 0.6.1, mesti kekal di bawah chunk_size |
| --rename_map | memetakan lajur set data kepada ciri polisi | diperlukan apabila kunci kamera anda berbeza |
Tanpa kuantil anda akan mendapat ValueError: QUANTILES normalization mode requires q01 and q99 stats pada kelompok pertama. Kira semula statistik, tetapi hasilnya akan berada di $HF_LEROBOT_HOME/your_dataset, bukan cache yang dibaca oleh --dataset.repo_id, jadi latih dengan --dataset.root menunjuk ke sana atau tolak ke Hub. Atau langkau kuantil dengan --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', seperti yang dilakukan oleh arahan rujukan LIBERO.
Tiga set lalai, dan yang mana sampai kepada pelatih
TrainConfig openpi adalah rujukan, PI05Config LeRobot adalah apa yang digunakan oleh lerobot-train apabila anda tidak menyatakan apa-apa, dan borang di sini menghantar set ketiga. Yang mengejutkan ialah kadar pembelajaran: kedua-dua lalai hulu memuncak pada 2.5e-5, manakala konfigurasi pi05_libero openpi sendiri dan platform ini meningkatkannya kepada 5e-5.
| Tetapan | openpi TrainConfig | lerobot pi05 dan lerobot-train | AY-Robots hantar |
|---|---|---|---|
| Saiz kelompok | 32 | 8 | 1 |
| Kadar pembelajaran puncak | 2.5e-5, susutan kosinus | optimizer_lr 2.5e-5 | 5e-5 |
| Langkah latihan | 30,000 | 100,000 | 30,000 |
| Selang titik semak | 1,000 langkah | 20,000 langkah | tiada dalam borang |
| Benih | 42 | 1,000 | dalam borang |
| Cebisan tindakan | action_horizon 50 | chunk_size 50, n_action_steps 50 | tiada dalam borang |
| Jenis data berat | bfloat16 | float32 sehingga anda lulus --policy.dtype | tiada dalam borang |
| Pengumpulan kecerunan | tiada tombol sedemikian, fsdp_devices sebaliknya | tiada dalam setiap keluaran setakat ini | 16, dan ia digugurkan |
Adakah port itu setia? Pasukan LeRobot menala halus model asas LIBERO untuk 6k langkah lagi dan membandingkan dengan nombor rujukan openpi pada empat suite: purata 97.5 peratus berbanding 96.85, mendahului pada Libero 10, ketinggalan pada Spatial. Laluan ini adalah pilihan perkakas, bukan pilihan kualiti.
- Lebih daripada 10,000 jam pra-latihan robot di belakangnya, jadi 50 episod tugas anda mungkin mencukupi.
- Tindakan berterusan: tiada tokeniser untuk ditala, tiada lantai diskretisasi pada sudut sendi anda.
- Port LeRobot mencatat 97.5 peratus pada purata LIBERO berbanding 96.85 openpi, jadi CLI yang lebih mesra tidak menelan kos yang boleh diukur.
- Laluan cekap parameter pada kedua-dua belah: varian JAX LoRA openpi, integrasi PEFT LeRobot.
- Penalaan halus penuh memerlukan lebih daripada 70 GB. Angka LoRA 22.5 GB adalah nombor JAX openpi; tiada yang diterbitkan untuk pi05 di bawah PEFT.
- 485 ms setiap langkah tindakan, paling perlahan antara lima di sini: dua kali SmolVLA, dua puluh empat kali ACT.
- LeRobot v3.0 diperlukan, jadi set data yang direkodkan untuk larian GR00T perlu ditukar, dan sebaliknya.
- Pilihan baharu mendarat di utama dahulu: memori RTC dan MEM masa latihan tiada dalam 0.6.1, jadi dokumen terbaharu boleh bermakna pemasangan dari git.
Realiti 485 ms, dan di mana ia berhenti menjadi boleh digunakan
Ini menentukan projek anda, jadi ia datang sebelum jadual kos. per langkah tindakan yang diukur di sini untuk Pi0.5 ialah 485 ms. Berbanding dengan empat yang lain:
| Dasar | Inferens per langkah tindakan | Parameter | Tahap GPU | Episod minimum |
|---|---|---|---|---|
| ACT | 20 ms | ~80 M | RTX 4090 or any 24 GB card | 50 |
| GR00T N1.7 | 152 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| GR00T N1.5 | 165 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| SmolVLA | 245 ms | ~450 M | RTX 4090 or any 24 GB card | 30 |
| Pi0.5 | 485 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |

Gelung kawalan merentasi lima model ini berjalan 20 hingga 485 ms setiap langkah tindakan. Perjalanan pergi balik internet awam di atas 485 ms menjadikan polisi yang berfungsi menjadi ragu-ragu. Inferens jauh boleh dilaksanakan untuk pilih-dan-letak yang perlahan, bukan untuk gerakan reaktif yang pantas. Kami lebih suka menyatakan demikian daripada menjual demo yang hanya berfungsi pada LAN. Jika lengan anda berhenti seketika antara cebisan, mulakan pada polisi terhenti di tengah-tengah gerakan.
Upstream mempunyai jawapan, dan separuh daripadanya sudah ada dalam keluaran yang boleh anda pasang. Pencungkilan Masa Nyata (Real-Time Chunking) menjana cebisan seterusnya semasa lengan masih melaksanakan cebisan semasa, kemudian membimbing langkah-langkah bertindih cebisan baharu untuk kekal dekat dengan bahagian yang telah dilaksanakan, supaya lengan tidak terhenti atau tersentak pada sambungan. Bentuk masa inferens yang dihantar dalam changelog 0.4.2 untuk Pi0, Pi0.5 dan SmolVLA adalah bendera pelancaran, bukan latihan semula:
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/my_policy \
--inference.type=rtc \
--inference.rtc.execution_horizon=10 \
--inference.rtc.max_guidance_weight=10.0 \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM1 \
--robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \
--task="Put lego brick into the transparent box" \
--duration=60Ia tidak menjadikan model lebih pantas. Ia menyembunyikan jurang: 485 ms masih dibelanjakan, tetapi di luar laluan kritikal, jadi barisan tidak kering antara cebisan. Varian masa latihan dari arXiv 2512.05964 melangkah lebih jauh: model belajar untuk mengkondisikan awalan tindakan yang bersih, jadi pada inferens pertindihan diwarnakan secara keras dengan langkah masa aliran setiap tindakan dan bukannya dibimbing, dan laluan belakang bimbingan hilang. Semasa latihan, ia mengambil sampel panjang awalan setiap contoh dan mengambil kerugian aliran pada postfix yang tinggal. Bendera itu hanya terdapat pada main, bukan dalam 0.6.1, dan kelewatan yang anda latih perlu kekal di bawah chunk_size.
Dua cara untuk mendapatkan checkpoint Pi0.5
Anda menyewa atau memiliki kad 80 GB, memasang salah satu tumpukan di atas, menukar set data anda dan memantau jalannya. Anda mengekalkan setiap kawalan: JAX LoRA openpi, penyesuai PEFT LeRobot, tindakan relatif, pemetaan kunci tersuai. Anda juga mengekalkan setiap kegagalan.
- Perkakasan: A100 80 GB atau H100, atau kad 24 GB pada laluan JAX LoRA openpi.
- Persediaan: satu petang untuk larian pertama, kebanyakannya pemetaan kunci dan tokenizer berpagar.
- Tidak terdapat pada borang hos: penyesuai PEFT, tindakan relatif, RTC masa latihan, memori MEM.
lerobot-train \
--dataset.repo_id=${HF_USER}/my_so100_dataset \
--policy.type=pi05 \
--policy.pretrained_path=lerobot/pi05_base \
--policy.rtc_training_max_delay=10 \
--policy.gradient_checkpointing=true \
--policy.dtype=bfloat16 \
--batch_size=4 --steps=30000 --seed=1000Anda memilih model dan set data dalam borang latihan, backend menyewa GPU di pasaran spot mengikut VRAM yang diperlukan, menjalankan pelatih dan menulis checkpoint ke storan objek. Pi0.5 adalah khusus awan di sini. Panduan wujud untuk SO-100, SO-101, Koch v1.1 dan LeKiwi.
| Tetapan | Apa yang platform hantar untuk Pi0.5 |
|---|---|
| Base checkpoint | lerobot/pi05_base |
| Policy type | pi05 |
| Batch size | 1 |
| Learning rate | 5e-5 |
| Max steps | 30000 |
| Gradient accumulation | 16, but see the warning below |
| Extra knobs in the form | seed, logFreq |
| Dataset format | LeRobot v3.0 |
| GPU tier | A100 80 GB or H100 80 GB |
Pelatih menghantar nilai pengumpulan gradien 16 dan lerobot 0.5.1 tidak mempunyai bendera untuk menerimanya, jadi ia digugurkan. Tiada lerobot yang dikeluarkan memilikinya: kawalan itu hanya wujud pada main, sebagai --accelerator.gradient_accumulation.steps. Saiz kelompok efektif di sini adalah 1, berbanding 256 yang digunakan oleh konfigurasi pi05_libero openpi. Penting untuk diketahui sebelum anda membaca lengkung kerugian. Kawalan ini berlaku pada GR00T N1.7 dan larian GR00T N1.5.
Inferens berfungsi dengan cara yang sama: pod disediakan untuk melayani polisi dan klien tempatan anda berkomunikasi dengannya. Pod mempunyai pengawas terbiar dan memusnahkan dirinya sendiri, jadi tab yang terlupa tidak akan dibilkan secara senyap. Peringatan latensi berlaku, itulah sebabnya ACT pada 20 ms sering memenangi tugas pantas.
Apabila ia tidak berfungsi
| Simptom | Punca paling mungkin |
|---|---|
| Larian ditolak sebelum bermula | Set data v2.1 tetapi Pi0.5 mahukan v3.0, atau sebaliknya untuk GR00T |
| ImportError, pakej set data tiada | lerobot 0.6.x tanpa tambahan latihan |
| ValueError mengenai q01 dan q99 pada kelompok satu | Tiada kuantil dalam meta/stats.json; kira semula atau gunakan MEAN_STD |
| CUDA kehabisan memori pada langkah 0 | Penalaan halus penuh di bawah 70 GB; cuba checkpointing atau train_expert_only |
| Ralat 401 atau repo berpagar | Lesen tokenizer PaliGemma tidak diterima |
| Kerugian menurun, robot tidak melakukan apa-apa | Ketidakpadanan normalisasi, atau polisi menyalin keadaan |
| Lengan berhenti seketika antara cebisan | Latensi setiap langkah ditambah perjalanan pergi balik; barisan cebisan kering |
| Berfungsi dalam satu persediaan, gagal dalam yang lain | Terlalu sedikit episod, atau semuanya dalam satu konfigurasi |
- Dataset ditolak: v3 diperlukan
- Memori tidak mencukupi semasa latihan
- Kerugian menurun tetapi polisi tidak melakukan apa-apa
- Polisi membeku di tengah-tengah pergerakan
- Polisi hanya berfungsi dalam satu persediaan
- Tugas latihan tersekat dalam barisan
Berapa kos satu larian
Pi0.5 berada dalam peringkat mahal kerana ia memerlukan kad 80 GB, dan harga spot berubah, jadi angka tersebut adalah julat dan bukannya harga. Untuk banyak tugas SO-100, latih SmolVLA atau ACT pada peringkat 24 GB terlebih dahulu, sahkan tugas itu boleh dipelajari sama sekali, kemudian luangkan jam A100 untuknya. Latih polisi pertama anda menerangkan gelung yang lebih murah itu, dan harga membawa peringkat semasa.
| Peringkat | Polisi | Larian biasa | Harga per jam | Kos per larian |
|---|---|---|---|---|
| A100 80 GB atau H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 hingga 6 jam | 1.20 to 2.00 USD | kira-kira 4 hingga 12 USD |
| RTX 4090 atau mana-mana kad 24 GB | SmolVLA, ACT | 2 hingga 5 jam | 0.30 to 0.60 USD | kira-kira 1 hingga 3 USD |

Sebelum meluangkan masa petang: dan membentangkan nombor yang sama secara berhadapan. mengandungi 85 model VLA dengan 332 hasil penanda aras, setiap satu dipautkan kepada sumbernya, dan latar belakang mengenai keluarga tersebut terdapat dalam .
Latih Pi0.5 tanpa membina timbunan
Pilih set data dan hiperparameter dalam borang. Bahagian belakang menyewa kad 80 GB di pasaran spot, menjalankan pelatih dan menulis titik semak ke storan objek. Panduan untuk SO-100, SO-101, Koch v1.1 dan LeKiwi.
Buka panduan latihanBolehkah saya menala halus Pi0.5 pada RTX 4090?▾
Bukan penalaan halus penuh: openpi menyenaraikan lebih daripada 70 GB untuk itu, jadi A100 80 GB atau H100. Angka LoRA 22.5 GBnya adalah untuk laluan JAX; pelaksanaan PyTorch tidak mempunyai LoRA. Integrasi PEFT LeRobot wujud, tetapi contoh yang didokumenkan adalah SmolVLA dan tiada angka VRAM diterbitkan untuk pi05.
Berapa banyak episod yang saya perlukan?▾
Lima puluh, had yang sama seperti GR00T dan ACT; hanya SmolVLA yang lebih rendah, pada 30. Titik semak asas membawa lebih daripada 10,000 jam pra-latihan, jadi penalaan halus menyesuaikan diri daripada belajar dari kosong: 50 episod yang bersih dan pelbagai mengalahkan dua ratus dari satu konfigurasi.
Apakah perbezaan antara --policy.path dan --policy.pretrained_path?▾
--policy.path memuatkan pemberat dan config.json titik semak, jadi tetapan yang disimpan seperti n_action_steps diwarisi dan --policy.type mesti diabaikan. --policy.pretrained_path memuatkan pemberat sahaja: nama ciri datang dari set data anda, tetapan yang disimpan diset semula, --policy.type diperlukan. Itulah sebabnya arahan LIBERO meluluskan n_action_steps=10 dan empty_cameras=1 secara eksplisit; jika tidak, ia akan kembali kepada 50 dan 0.
Adakah versi terbuka memberikan saya Pi0.5 penuh dari kertas kerja?▾
Tidak. Kedua-duanya hanya menyokong kepala tindakan padanan aliran. Peringkat pra-latihan token diskret dengan tokenisasi tindakan FAST dan ramalan subtugas peringkat tinggi tidak dikeluarkan, dan kad lerobot/pi05_base menambah RL ke senarai itu walaupun kertas pi0.5 tidak menerangkan peringkat pembelajaran pengukuhan. Anda melatih polisi peringkat rendah yang dikondisikan pada rentetan bahasa yang anda berikan, bukan model yang menguraikan tugas panjang itu sendiri.
Panduan ini ditulis berdasarkan versi yang mana?▾
openpi on main and lerobot 0.6.1, keluaran sejak 3 Ogos 2026, kedua-duanya dibaca pada 23 Ogos 2026. Set data v3.0 tiba dengan 0.4.0 pada Oktober 2025. 0.6.0 menjadikan pakej asas ringan, jadi lerobot[pi] sahaja tidak lagi memasang timbunan latihan, dan memindahkan penggunaan ke lerobot-rollout. RTC masa latihan hanya pada main; pelatih yang dihoskan di sini menjalankan 0.5.1.
Sources
- Physical-Intelligence/openpi: open-source models and packages for robotics
- openpi training configs, including pi05_libero and pi05_droid_finetune
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- pi0.5: a Vision-Language-Action Model with Open-World Generalization
- Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better
- PaliGemma: A versatile 3B VLM for transfer
- Training-Time Action Conditioning for Efficient Real-Time Chunking
- LeRobot pi05 documentation on the main branch, including training-time RTC
- LeRobot documentation: parameter efficient fine-tuning with PEFT
- LeRobotDataset v3.0 format documentation
- LeRobot release notes: v0.3.2 through v0.6.1, with the v0.6.0 breaking changes
- LeRobot v0.5.0: Scaling Every Dimension
- lerobot/pi05_base model card
- LeRobot documentation: Real-Time Chunking (RTC)
- openpi Pi0Config: the model defaults pi0 and pi05 inherit
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started