Matriks pelatihan AY-Robots dengan lima kebijakan sebagai baris dan empat lengan robot sebagai kolom, setiap sel adalah tautan ke panduan fine-tuning tertentu
Pi0.5Pencocokan AliranPelatihan VLALeRobotFine-Tuning

Cara Melatih Pi0.5 dengan Data Robot Anda Sendiri

AY-Robots ResearchAugust 23, 202616 menit baca

Lakukan fine-tuning Pi0.5, VLA pencocokan aliran dari Physical Intelligence, dengan data robot Anda sendiri. Perintah nyata untuk openpi dan lerobot pi05, jebakan format dataset, batas VRAM dan latensi.

Pi0.5 adalah model yang Anda gunakan ketika sebuah kebijakan harus bekerja di ruangan yang belum pernah dilihatnya. Ini juga merupakan yang paling canggung dari lima kebijakan yang dapat dilatih di sini untuk melakukan fine-tune secara manual: repositori hulu adalah JAX terlebih dahulu, port LeRobot memindahkan deployment keluar dari lerobot-record di 0.6.0 dan membuat instalasi dasar terlalu kecil untuk dilatih, dan fine-tune penuh tidak muat di 4090. Di bawah: berapa biaya pencocokan aliran pada inferensi, dua rute perintah, dan angka 485 ms yang menentukan apakah hasilnya dapat digunakan.

Yang perlu Anda ketahui

  • VLA pencocokan aliran: VLM PaliGemma 3B ditambah ahli tindakan 300M yang mendekode potongan tindakan berkelanjutan. Dua rute untuk melakukan fine-tune, openpi dan LeRobot pi05, terpisah 0.65 poin pada rata-rata LIBERO.
  • Fine-tuning penuh membutuhkan lebih dari 70 GB VRAM. openpi mencantumkan LoRA pada 22.5 GB, hanya pada jalur JAX-nya.
  • Dataset harus LeRobotDataset v3.0 dengan kuantil q01 dan q99 di meta/stats.json, atau batch pertama akan error.
  • Periksa versi lerobot Anda terlebih dahulu: 0.6.0 membuat paket dasar ringan dan memindahkan deployment keluar dari lerobot-record.
  • Di sini ia berjalan pada 485 ms per langkah tindakan, membutuhkan 50 episode, dan biayanya sekitar 4 hingga 12 USD per eksekusi.

Apa sebenarnya Pi0.5 itu

Physical Intelligence menerbitkan pi0 pada Oktober 2024: sebuah model visi-bahasa-tindakan pencocokan aliran pada VLM yang telah dilatih sebelumnya: PaliGemma dengan 3 miliar parameter ditambah ahli tindakan 300M yang diinisialisasi dari awal, total 3.3 miliar. Makalah tersebut melaporkan pra-pelatihan lebih dari 10.000 jam data robot di 7 konfigurasi robot dan 68 tugas. Lebih lanjut di artikel pi0.

Pi0.5 (arXiv 2504.16054, 22 April 2025) mempertahankan kerangka tersebut dan mengubah pola pelatihan: data web, deteksi objek, instruksi verbal dari manusia yang melatih robot, label subtugas, data lintas-embodimen dari robot di banyak rumah. Hasilnya adalah robot yang membersihkan dapur di rumah-rumah yang tidak termasuk dalam set pelatihan. README openpi menambahkan detail yang tidak disebutkan dalam judul: pi0.5 yang dirilis dilatih dengan isolasi pengetahuan (arXiv 2505.23705).

Propertipi0pi0.5
Varian backbone VLMgemma_2b (PaliGemma)gemma_2b (PaliGemma)
Varian pakar aksigemma_300mgemma_300m
action_dim3232
action_horizon default5050
max_token_len48200
discrete_state_inputfalsetrue, status didiskretisasi menjadi bin dalam prompt
Base checkpointgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
Apa yang dipublikasikan bukanlah keseluruhan makalah

README openpi secara eksplisit menyatakan: repositori hanya mendukung kepala pencocokan aliran (flow matching head), baik untuk pelatihan maupun inferensi pi0.5. Makalah ini menjelaskan dua tahap dan kode hanya menjalankan tahap kedua: pra-pelatihan merepresentasikan setiap aksi sebagai token diskrit melalui tokenizer FAST, dan saat penerapan model menyimpulkan subtugas tingkat tinggi sebelum setiap potongan aksi. Tidak satu pun dari itu ada di repositori. Kartu lerobot/pi05_base memberikan daftar yang sama dan menambahkan RL, meskipun makalah pi0.5 sama sekali tidak menjelaskan tahap pembelajaran penguatan (reinforcement learning). Port LeRobot mewarisi cakupan tersebut, begitu pula setiap pelatih yang di-host di dalamnya, termasuk yang ada di sini. Perizinan juga terbagi: halaman dokumen pi05 menyatakan Apache 2.0, kartu lerobot/pi05_base ditandai license: gemma.

Apa yang diubah oleh pencocokan aliran (flow matching) tentang pelatihan dan inferensi

Sebuah kebijakan yang dapat Anda latih pada SO-100 baik meregresi tindakan secara langsung (ACT) atau melakukan tokenisasi dan mendekode secara autoregresif (pi0-FAST). Pencocokan aliran tidak melakukan keduanya: ia mempelajari medan vektor yang mengangkut derau ke sebuah chunk tindakan yang bersih, kemudian mengintegrasikannya. Makalah pi0 menggunakan 10 langkah integrasi dengan ukuran langkah 0.1; konfigurasi pi05 LeRobot memiliki nilai `num_inference_steps: int = 10` yang sama.

  • Pelatihan: loss meregresi chunk tindakan yang berderau. Tidak ada tokenizer untuk disetel, tidak ada diskretisasi sudut sendi Anda.
  • Inferensi: satu chunk membutuhkan sepuluh forward pass melalui action expert. Itu bersifat struktural, bukan masalah penyetelan.
  • Output: tindakan kontinu berdimensi 32, di-padding secara internal, loss diambil pada dimensi yang dimiliki robot Anda. Lengan 6-DoF ditambah gripper menggunakan 7.
python
# 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 True
Dibaca dari src/openpi/models/pi0_config.py pada cabang utama openpi, 23 Agustus 2026.

Backbone PaliGemma, dan gerbang di depannya

PaliGemma (arXiv 2407.07726) adalah encoder visi SigLIP-So400m pada model bahasa Gemma-2B, sekitar 3B parameter. Pi0.5 mewarisi tokenizernya, dan tokenizer tersebut berada di repositori berpagar. Ini adalah cara paling umum sebuah percobaan pertama gagal, sebelum langkah pelatihan.

Terima lisensi berpagar sebelum Anda menyewa GPU

Dokumentasi LeRobot pi05 menyatakannya dengan jelas: pi0.5 menggunakan tokenizer google/paligemma-3b-pt-224 yang berpagar, jadi terima lisensinya di Hub dan jalankan hf auth login terlebih dahulu. Akses diberikan secara manual, tidak instan. Lewati ini, mulai jalankan cloud berbayar, dan Anda membayar untuk pod yang tidak dapat mengunduh tokenizer.

Sebelum Anda memulai: format dataset, episode, perangkat keras

Pi0.5 di LeRobot membaca dataset LeRobot dalam tata letak v3.0, yang hadir dengan lerobot 0.4.0 pada Oktober 2025: banyak episode per file Parquet dan MP4 alih-alih satu file per episode, dengan batasan di meta/episodes/ daripada nama file. Rekam dengan klien desktop atau ikuti rekam dataset pertama Anda dan Anda memilikinya.

ModeMemori GPU yang dibutuhkanContoh GPU
Inferensimore than 8 GBRTX 4090
Fine-tuning, LoRAmore than 22.5 GBRTX 4090
Fine-tuning, penuhmore than 70 GBA100 80 GB or H100
Jebakan versi yang memakan waktu sehari

Pi0.5 dan SmolVLA membutuhkan LeRobot v3.0. GR00T N1.7 dan GR00T N1.5 membutuhkan **v2.0 atau v2.1** dan akan mengalami crash pada dataset v3.0. Satu sesi perekaman tidak dapat digunakan untuk keduanya tanpa konversi, dan pesan kesalahan tidak menyatakan "wrong dataset version". Lihat dataset ditolak: v3 diperlukan.

bash
# 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 offsets
Dari dokumentasi LeRobotDataset v3.0.

Platform ini membutuhkan setidaknya 50 episode untuk Pi0.5, jumlah minimum yang sama dengan GR00T dan ACT. Pra-pelatihan melakukan sebagian besar pekerjaan, jadi 50 episode yang bersih lebih baik daripada 200 episode yang ceroboh. Baru mengenal ini? Mulailah dengan panduan pengumpulan data.

Halaman kebijakan AY-Robots membandingkan lima kebijakan yang dapat dilatih berdasarkan parameter, tingkatan GPU, latensi, dan episode minimum
Pi0.5 berada di tingkat A100 dan H100 dengan 485 ms per langkah aksi, dengan batas bawah 50 episode.

Rute A: fine-tune dengan repositori openpi

Implementasi referensi: JAX pertama, diuji hanya pada Ubuntu 22.04, didorong oleh objek konfigurasi daripada flag. Jalur PyTorch tiba pada September 2025, divalidasi pada LIBERO. Tiga langkah: konversi data Anda, definisikan konfigurasi, latih dan sajikan.

  1. 1
    Kloning dan instal

    openpi menggunakan uv. GIT_LFS_SKIP_SMUDGE adalah yang memungkinkan LeRobot masuk sebagai dependensi tanpa blob LFS.

    bash
    git 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 .
  2. 2
    Konversi data Anda ke dataset LeRobot

    Upstream menyediakan konverter untuk LIBERO dan DROID dan mengharapkan Anda untuk mengadaptasi salah satunya. Pekerjaannya adalah pemetaan kunci.

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    Tambahkan konfigurasi pelatihan

    Konfigurasi adalah entri TrainConfig di src/openpi/training/config.py. Yang ini mengadaptasi pi05_droid_finetune, dengan pemuat bobot diarahkan ke pi05_base.

    python
    TrainConfig(
        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,
    )
  4. 4
    Hitung statistik normalisasi

    Berjalan terhadap nama konfigurasi, bukan dataset. Melewatkannya adalah kegagalan pertama yang klasik di sini.

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    Latih

    Variabel ini memungkinkan JAX menggunakan 90 persen memori GPU alih-alih default 75. Pada kartu 80 GB, ini menentukan apakah proses berjalan akan bertahan.

    bash
    XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \
        --exp-name=my_experiment \
        --overwrite
  6. 6
    Sajikan

    Server mendengarkan di port 8000 dan menjawab kueri observasi; runtime robot Anda adalah kliennya.

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Jalur PyTorch bukan jalur JAX

Implementasi PyTorch openpi tidak mendukung bobot pi0-FAST, presisi campuran, FSDP, LoRA, atau EMA, sehingga LoRA yang mencapai 22.5 GB hanya tersedia di JAX, melalui varian gemma_2b_lora dan gemma_300m_lora. Lebih buruk lagi: pengaturan ini menyalin file yang ditambal ke atas transformers 4.53.2 yang Anda instal, dan README memperingatkan bahwa dengan mode hardlink default uv, ini secara permanen memodifikasi transformers di cache uv dan dapat bocor ke proyek lain. Batalkan dengan uv cache clean transformers.

Rute B: fine-tune dengan lerobot pi05

Port LeRobot membungkus bobot yang sama dalam CLI yang sudah Anda gunakan untuk ACT dan SmolVLA. Semua yang di bawah ini telah diperiksa terhadap lerobot 0.6.1, rilis sejak 3 Agustus 2026, dan dokumen pi05 pada 23 Agustus 2026. Versi penting di sini: dataset v3.0 tiba dengan 0.4.0 pada Oktober 2025, blog 0.5.0 pada 9 Maret 2026 menyajikan pi0-FAST dan Real-Time Chunking, dan 0.6.0 pada 6 Juli 2026 membuat paket dasar menjadi ringan dan memindahkan deployment ke lerobot-rollout.

Satu hal yang tidak berubah: lerobot-train dan lerobot-record sudah menjadi titik masuk di 0.3.2, Agustus 2025. Sebuah tutorial yang masih memanggil python -m lerobot.scripts.train mendahului perubahan selama setahun dan patut dicurigai juga pada bagian lainnya.

  1. 1
    Instal dengan Ekstra yang Tepat

    Sejak 0.6.0, instalasi dasar hanya membawa dependensi ML inti, dan ekstra pi tidak menambahkan kode dataset atau pelatihan, sehingga fine-tune juga memerlukan ekstra pelatihan. Perintah satu baris yang lebih lama akan gagal pada saat 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]'
  2. 2
    Autentikasi

    Terima lisensi paligemma-3b-pt-224 di browser, lalu masuk ke mesin yang melakukan pelatihan.

    bash
    hf auth login
  3. 3
    Tambahkan Statistik Kuantil

    Pi0.5 menormalisasi STATE dan ACTION dengan kuantil, sehingga meta/stats.json memerlukan q01 dan q99. Dataset yang lebih lama hanya berisi min, max, mean, std.

    bash
    lerobot-edit-dataset \
        --repo_id your_dataset \
        --new_repo_id your_dataset \
        --operation.type recompute_stats \
        --operation.overwrite true
  4. 4
    Fine-tune dari lerobot/pi05_base

    Atur ukuran batch sesuai kemampuan kartu Anda; dokumentasi menggunakan 64 pada LIBERO dengan 80 GB. Berikan bfloat16 secara eksplisit, default konfigurasi adalah float32.

    bash
    lerobot-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
  5. 5
    Jalankan di Lengan Robot

    Pada 0.6.x ini adalah lerobot-rollout: lerobot-record menolak kebijakan dan menolak nama dataset eval_. Base menggerakkan lengan, sentry merekam rollout.

    bash
    lerobot-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
FlagWhat it doesNote
--policy.type=pi05memilih Pi0.5diperlukan dengan pretrained_path, hilangkan dengan --policy.path
--policy.pretrained_pathhanya memuat bobotnama fitur dari dataset Anda, pengaturan yang tersimpan direset
--policy.pathbobot ditambah config.json checkpointpengaturan yang tersimpan seperti n_action_steps diwarisi
--policy.n_action_stepslangkah yang dikonsumsi per chunkkembali ke 50, tidak pernah di atas chunk_size (default 50)
--policy.train_expert_onlymembekukan VLM, melatih pakardefault false, memori lebih sedikit, ada biaya dalam keberhasilan
--policy.gradient_checkpointinghitung ulang alih-alih menyimpan aktivasidefault false, tuas pertama ketika sebuah proses tidak muat
--peft.method_type=LORAadapter LoRA alih-alih bobot penuhmembutuhkan ekstra peft, contoh yang didokumentasikan adalah SmolVLA
--policy.rtc_training_max_delaykondisi awalan aksi untuk RTChanya di branch utama, tidak di 0.6.1, harus tetap di bawah chunk_size
--rename_mapmemetakan kolom dataset ke fitur kebijakandiperlukan ketika kunci kamera Anda berbeda
Kesalahan yang paling sering ditemui pada percobaan pertama

Tanpa kuantil, Anda akan mendapatkan ValueError: QUANTILES normalization mode requires q01 and q99 stats pada batch pertama. Hitung ulang statistik, tetapi hasilnya akan berada di $HF_LEROBOT_HOME/your_dataset, bukan cache yang dibaca oleh --dataset.repo_id, jadi latih dengan --dataset.root yang menunjuk ke sana atau dorong ke Hub. Atau lewati kuantil dengan --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', seperti yang dilakukan perintah referensi LIBERO.

Tiga set default, dan mana yang mencapai pelatih

openpi's TrainConfig adalah referensi, PI05Config LeRobot adalah apa yang digunakan lerobot-train ketika Anda tidak mengatakan apa-apa, dan formulir di sini mengirimkan set ketiga. Kejutan ada pada laju pembelajaran: kedua default upstream mencapai puncaknya pada 2.5e-5, sementara konfigurasi pi05_libero milik openpi sendiri dan platform ini menaikkannya menjadi 5e-5.

Pengaturanopenpi TrainConfiglerobot pi05 dan lerobot-trainAY-Robots mengirimkan
Ukuran batch3281
Laju pembelajaran puncak2.5e-5, penurunan kosinusoptimizer_lr 2.5e-55e-5
Langkah pelatihan30,000100,00030,000
Interval checkpoint1,000 steps20,000 stepstidak ada di formulir
Seed421,000ada di formulir
Potongan aksiaction_horizon 50chunk_size 50, n_action_steps 50tidak ada di formulir
Tipe data bobotbfloat16float32 until you pass --policy.dtypetidak ada di formulir
Akumulasi gradientidak ada pengaturan seperti itu, fsdp_devices sebagai gantinyaabsent from every release so far16, dan itu dihilangkan

Apakah porting-nya akurat? Tim LeRobot menyempurnakan model dasar LIBERO selama 6 ribu langkah lebih lanjut dan membandingkannya dengan angka referensi openpi pada empat suite: rata-rata 97,5 persen berbanding 96,85, unggul pada Libero 10, tertinggal pada Spatial. Rute ini adalah pilihan perkakas, bukan pilihan kualitas.

Penyempurnaan Pi0.5 pada data Anda sendiri
Keuntungan
  • Lebih dari 10.000 jam pra-pelatihan robot di baliknya, jadi 50 episode tugas Anda bisa cukup.
  • Aksi berkelanjutan: tidak ada tokenizer untuk disetel, tidak ada batas diskretisasi pada sudut sendi Anda.
  • Port LeRobot mencetak 97,5 persen pada rata-rata LIBERO dibandingkan 96,85 milik openpi, jadi CLI yang lebih ramah tidak memakan biaya yang terukur.
  • Jalur efisien parameter di kedua sisi: varian JAX LoRA openpi, integrasi PEFT LeRobot.
Kompromi
  • Penyempurnaan penuh membutuhkan lebih dari 70 GB. Angka LoRA 22,5 GB adalah angka JAX openpi; tidak ada yang dipublikasikan untuk pi05 di bawah PEFT.
  • 485 ms per langkah aksi, paling lambat dari lima di sini: dua kali SmolVLA, dua puluh empat kali ACT.
  • LeRobot v3.0 diperlukan, jadi dataset yang direkam untuk eksekusi GR00T perlu dikonversi, dan sebaliknya.
  • Opsi baru mendarat di main terlebih dahulu: memori RTC dan MEM waktu pelatihan tidak ada di 0.6.1, jadi dokumen terbaru bisa berarti menginstal dari git.

Realitas 485 ms, dan di mana ia berhenti dapat digunakan

Ini menentukan proyek Anda, jadi ini ditempatkan sebelum tabel biaya. per langkah tindakan yang diukur di sini untuk Pi0.5 adalah 485 ms. Dibandingkan dengan empat lainnya:

KebijakanInferensi per langkah tindakanParameterTingkat GPUEpisode Minimum
ACT20 ms~80 MRTX 4090 or any 24 GB card50
GR00T N1.7152 ms~3 BA100 80 GB or H100 80 GB50
GR00T N1.5165 ms~3 BA100 80 GB or H100 80 GB50
SmolVLA245 ms~450 MRTX 4090 or any 24 GB card30
Pi0.5485 ms~3 BA100 80 GB or H100 80 GB50
Halaman perbandingan AY-Robots untuk GR00T N1.7 melawan Pi0.5, dengan parameter, tingkat GPU, latensi, dan format dataset
Tingkat GPU yang sama, batas episode yang sama, versi dataset yang berbeda, celah latensi tiga kali lipat.
Inferensi harus berada di dekat servo

Loop kontrol di kelima model ini berjalan 20 hingga 485 ms per langkah aksi. Perjalanan pulang-pergi internet publik di atas 485 ms mengubah kebijakan yang berfungsi menjadi ragu-ragu. Inferensi jarak jauh dapat dilakukan untuk tugas ambil-dan-letakkan yang lambat, bukan untuk gerakan reaktif yang cepat. Kami lebih suka mengatakan itu daripada menjual demo yang hanya berfungsi di LAN. Jika lengan Anda berhenti di antara potongan, mulailah dari kebijakan membeku di tengah gerakan.

Upstream memiliki jawaban, dan separuhnya sudah ada dalam rilis yang dapat Anda instal. Real-Time Chunking menghasilkan potongan berikutnya saat lengan masih mengeksekusi potongan saat ini, kemudian memandu langkah-langkah yang tumpang tindih dari potongan baru agar tetap dekat dengan bagian yang sudah dieksekusi, sehingga lengan tidak macet atau tersentak di sambungan. Bentuk waktu inferensi yang disertakan dalam changelog 0.4.2 untuk Pi0, Pi0.5, dan SmolVLA adalah flag rollout, bukan retrain:

bash
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=60
execution_horizon adalah berapa banyak langkah dari potongan sebelumnya yang harus disetujui oleh potongan baru; dokumen RTC memberikan 8 hingga 12 sebagai rentang yang biasa. Backend inferensi default adalah --inference.type=sync.

Ini tidak membuat model lebih cepat. Ini menyembunyikan celah: 485 ms masih dihabiskan, tetapi di luar jalur kritis, sehingga antrean tidak kosong di antara potongan. Varian waktu pelatihan dari arXiv 2512.05964 melangkah lebih jauh: model belajar untuk mengkondisikan awalan aksi yang bersih, sehingga pada inferensi tumpang tindih di-inpainting secara keras dengan timestep aliran per-aksi alih-alih dipandu, dan lintasan mundur panduan menghilang. Selama pelatihan, ia mengambil sampel panjang awalan per contoh dan mengambil kerugian aliran pada postfix yang tersisa. Flag itu hanya ada di main, bukan di 0.6.1, dan penundaan yang Anda latih harus tetap di bawah chunk_size.

Dua cara untuk mendapatkan checkpoint Pi0.5

Anda menyewa atau memiliki kartu 80 GB, menginstal salah satu stack di atas, mengonversi dataset Anda, dan mengawasi jalannya proses. Anda mempertahankan setiap kontrol: JAX LoRA dari openpi, adapter PEFT dari LeRobot, tindakan relatif, pemetaan kunci kustom. Anda juga menanggung setiap kegagalan.

  • Perangkat Keras: A100 80 GB atau H100, atau kartu 24 GB pada jalur JAX LoRA openpi.
  • Pengaturan: satu sore untuk percobaan pertama, sebagian besar untuk pemetaan kunci dan tokenizer berpagar.
  • Tidak tersedia di formulir yang di-host: adapter PEFT, tindakan relatif, RTC waktu pelatihan, memori MEM.
bash
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=1000
Perintah yang tidak dijalankan oleh formulir yang di-host, dan pip tidak dapat menginstal: RTC waktu pelatihan adalah flag cabang utama.

Ketika tidak berfungsi

GejalaPenyebab paling mungkin
Eksekusi ditolak sebelum dimulaiDataset v2.1 tetapi Pi0.5 menginginkan v3.0, atau sebaliknya untuk GR00T
ImportError, paket datasets hilanglerobot 0.6.x tanpa training extra
ValueError tentang q01 dan q99 pada batch satuTidak ada kuantil di meta/stats.json; hitung ulang atau gunakan MEAN_STD
CUDA kehabisan memori pada langkah 0Fine-tune penuh di bawah 70 GB; coba checkpointing atau train_expert_only
Error 401 atau gated repoLisensi tokenizer PaliGemma tidak diterima
Loss turun, robot tidak melakukan apa-apaKetidakcocokan normalisasi, atau kebijakan menyalin state
Lengan berhenti di antara chunkLatensi per langkah ditambah round trip; antrean chunk kosong
Berfungsi di satu pengaturan, gagal di pengaturan lainTerlalu sedikit episode, atau semuanya dalam satu konfigurasi

Berapa biaya satu kali jalankan

Pi0.5 berada di tingkat mahal karena membutuhkan kartu 80 GB, dan harga spot bergerak, sehingga angkanya adalah rentang daripada harga. Untuk banyak tugas SO-100, latih SmolVLA atau ACT pada tingkat 24 GB terlebih dahulu, pastikan tugas tersebut dapat dipelajari sama sekali, lalu habiskan jam A100 untuk itu. Latih kebijakan pertama Anda menjelaskan alur yang lebih murah itu, dan harga menampilkan tingkat saat ini.

TingkatKebijakanJalankan tipikalHarga per jamBiaya per jalankan
A100 80 GB atau H100Pi0.5, GR00T N1.7, GR00T N1.53 hingga 6 jam1.20 hingga 2.00 USDsekitar 4 hingga 12 USD
RTX 4090 atau kartu 24 GB apa punSmolVLA, ACT2 hingga 5 jam0.30 hingga 0.60 USDsekitar 1 hingga 3 USD
Tabel biaya AY-Robots yang menunjukkan GPU yang dibutuhkan setiap kebijakan, waktu proses dan harga tipikal, serta berapa banyak episode yang dibutuhkan sebelum suatu kebijakan berguna
Dua tingkatan yang sama di halaman produk: Pi0.5 menyewa kartu 80 GB, SmolVLA dan ACT muat di 4090.

Sebelum menghabiskan malam: GR00T N1.7 against Pi0.5 dan Pi0.5 against SmolVLA menyajikan angka-angka yang sama secara langsung. Arena berisi 85 model VLA dengan 332 hasil benchmark, masing-masing terhubung ke sumbernya, dan latar belakang tentang keluarga tersebut ada di ikhtisar VLA kami.

Latih Pi0.5 tanpa membangun tumpukan

Pilih dataset dan hyperparameter dalam sebuah formulir. Backend menyewa kartu 80 GB di pasar spot, menjalankan trainer, dan menulis checkpoint ke penyimpanan objek. Panduan untuk SO-100, SO-101, Koch v1.1, dan LeKiwi.

Buka panduan pelatihan
Bisakah saya melakukan fine-tune Pi0.5 pada RTX 4090?

Bukan fine-tune penuh: openpi mencantumkan lebih dari 70 GB untuk itu, jadi A100 80 GB atau H100. Angka LoRA 22.5 GB miliknya termasuk dalam jalur JAX; implementasi PyTorch tidak memiliki LoRA. Integrasi PEFT LeRobot ada, tetapi contoh yang didokumentasikan adalah SmolVLA dan tidak ada angka VRAM yang dipublikasikan untuk pi05.

Berapa banyak episode yang saya butuhkan?

Lima puluh, batas bawah yang sama dengan GR00T dan ACT; hanya SmolVLA yang lebih rendah, yaitu 30. Checkpoint dasar membawa lebih dari 10.000 jam pra-pelatihan, sehingga fine-tune beradaptasi daripada belajar dari nol: 50 episode yang bersih dan bervariasi mengalahkan dua ratus episode dari satu konfigurasi.

Apa perbedaan antara --policy.path dan --policy.pretrained_path?

--policy.path memuat bobot dan config.json checkpoint, sehingga pengaturan yang tersimpan seperti n_action_steps diwarisi dan --policy.type harus dihilangkan. --policy.pretrained_path hanya memuat bobot: nama fitur berasal dari dataset Anda, pengaturan yang tersimpan direset, --policy.type diperlukan. Itulah mengapa perintah LIBERO secara eksplisit meneruskan n_action_steps=10 dan empty_cameras=1; jika tidak, mereka akan kembali ke 50 dan 0.

Apakah versi terbuka memberikan saya Pi0.5 penuh dari makalah?

Tidak. Keduanya hanya mendukung kepala aksi pencocokan aliran. Tahap pra-pelatihan token diskrit dengan tokenizer aksi FAST dan prediksi subtugas tingkat tinggi tidak dirilis, dan kartu lerobot/pi05_base menambahkan RL ke daftar itu meskipun makalah pi0.5 tidak menjelaskan tahap pembelajaran penguatan. Anda melatih kebijakan tingkat rendah yang dikondisikan pada string bahasa yang Anda berikan, bukan model yang menguraikan tugas panjang itu sendiri.

Panduan ini ditulis berdasarkan versi berapa?

openpi di main dan lerobot 0.6.1, rilis sejak 3 Agustus 2026, keduanya dibaca pada 23 Agustus 2026. Dataset v3.0 tiba dengan 0.4.0 pada Oktober 2025. 0.6.0 membuat paket dasar ringan, sehingga lerobot[pi] saja tidak lagi menginstal tumpukan pelatihan, dan memindahkan deployment ke lerobot-rollout. RTC waktu pelatihan hanya ada di main; trainer yang di-host di sini menjalankan 0.5.1.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started