
Physical Intelligence'ın akış eşleştirmeli VLA'sı Pi0.5'i kendi robot verilerinizle ince ayarlayın. openpi ve lerobot pi05 için gerçek komutlar, veri kümesi format tuzakları, VRAM ve gecikme sınırları.
Pi0.5, bir politikanın daha önce hiç görmediği bir odada çalışması gerektiğinde başvuracağınız modeldir. Aynı zamanda buradaki beş eğitilebilir politikadan elle ince ayar yapmak için en zorlu olanıdır: yukarı akış deposu öncelikle JAX tabanlıdır, LeRobot portu 0.6.0 sürümünde dağıtımı lerobot-record'dan çıkarmış ve temel kurulumu eğitim için çok küçük hale getirmiştir ve tam bir ince ayar 4090'a sığmaz. Aşağıda: akış eşleştirmesinin çıkarım sırasında maliyeti, iki komut yolu ve sonucun kullanılabilir olup olmadığını belirleyen 485 ms'lik sayı yer almaktadır.
Bilmeniz Gerekenler
- •Akış eşleştirmeli bir VLA: 3B PaliGemma VLM artı sürekli eylem parçalarını çözen 300M'lik bir eylem uzmanı. İnce ayar yapmak için iki yol, openpi ve LeRobot pi05, LIBERO ortalamasında 0.65 puan farkla.
- •Tam ince ayar 70 GB'tan fazla VRAM gerektirir. openpi, LoRA'yı yalnızca JAX yolunda 22.5 GB olarak listeler.
- •Veri kümesi, meta/stats.json dosyasında q01 ve q99 nicelikleri bulunan LeRobotDataset v3.0 olmalıdır, aksi takdirde ilk toplu iş hata verir.
- •Önce lerobot sürümünüzü kontrol edin: 0.6.0, temel paketi hafifletti ve dağıtımı lerobot-record'dan çıkardı.
- •Burada eylem adımı başına 485 ms'de çalışır, 50 bölüm ister ve çalıştırma başına yaklaşık 4 ila 12 USD maliyeti vardır.
Pi0.5 Gerçekte Nedir
Physical Intelligence, Ekim 2024'te pi0'ı yayınladı: önceden eğitilmiş bir VLM üzerinde akış eşleştirmeli bir görsel-dil-eylem modeli: 3 milyar parametreli PaliGemma artı sıfırdan başlatılan 300M'lik bir eylem uzmanı, toplamda 3.3 milyar. Makale, 7 robot konfigürasyonu ve 68 görevde 10.000 saatin üzerinde robot verisi üzerinde ön eğitimi rapor etmektedir. Daha fazlası pi0 makalesinde.
Pi0.5 (arXiv 2504.16054, 22 Nisan 2025) bu iskeleti korur ve eğitim diyetini değiştirir: web verileri, nesne algılama, robotu eğiten insanlardan gelen sözlü talimatlar, alt görev etiketleri, birçok evdeki robotlardan gelen çapraz-beden verileri. Sonuç, eğitim setinde olmayan evlerde mutfakları temizleyen bir robottur. openpi README, başlığın içermediği bir ayrıntı ekler: yayınlanan pi0.5, bilgi izolasyonu (arXiv 2505.23705) ile eğitilmiştir.
| Özellik | pi0 | pi0.5 |
|---|---|---|
| VLM omurga varyantı | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Eylem uzmanı varyantı | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon varsayılan | 50 | 50 |
| max_token_len | 48 | 200 |
| discrete_state_input | false | true, durum istemde bölmelere ayrılmıştır |
| Temel kontrol noktası | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
openpi README açıkça belirtir: depo, pi0.5 eğitimi ve çıkarımı için yalnızca akış eşleştirme başlığını destekler. Makale iki aşamayı tanımlar ve kod yalnızca ikincisini taşır: ön eğitim, her eylemi FAST belirteci aracılığıyla ayrık belirteçler olarak temsil eder ve dağıtımda model, her eylem öbeğinden önce yüksek seviyeli bir alt görevi çıkarır. Bunların hiçbiri depoda değildir. lerobot/pi05_base kartı aynı listeyi verir ve RL ekler, ancak pi0.5 makalesi hiçbir takviyeli öğrenme aşaması tanımlamaz. LeRobot portu bu kapsamı miras alır ve buradaki dahil olmak üzere üzerindeki her barındırılan eğitmen de öyle. Lisanslama da bölünmüştür: pi05 belge sayfası Apache 2.0 derken, lerobot/pi05_base kartı license: gemma olarak etiketlenmiştir.
Akış eşleştirmenin eğitim ve çıkarım hakkında değiştirdikleri
SO-100 üzerinde eğitebileceğiniz bir ilke eylemleri doğrudan regresyonla (ACT) veya onları tokenize edip otoregresif olarak çözerek (pi0-FAST) gerçekleştirir. Akış eşleştirme ikisini de yapmaz: gürültüyü temiz bir eylem öbeğine taşıyan bir vektör alanı öğrenir, sonra onu entegre eder. pi0 makalesi 0.1 adım boyutunda 10 entegrasyon adımı kullanır; LeRobot'un pi05 yapılandırması aynı num_inference_steps: int = 10 değerini taşır.
- Eğitim: kayıp, gürültülü bir eylem öbeğini regresyonla işler. Ayarlanacak bir belirteçleyici yok, eklem açılarının ayrıklaştırılması yok.
- Çıkarım: bir öbek, eylem uzmanı üzerinden on ileri geçişe mal olur. Bu yapısal bir durumdur, bir ayarlama problemi değildir.
- Çıktı: dahili olarak doldurulmuş, 32 boyutlu sürekli eylemler, robotunuzun sahip olduğu boyutlar üzerinden kayıp alınır. 6-Serbestlik Dereceli bir kol artı tutucu 7 kullanır.
# 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 TruePaliGemma omurgası ve önündeki geçit
PaliGemma (arXiv 2407.07726), yaklaşık 3B parametreye sahip bir Gemma-2B dil modeli üzerinde SigLIP-So400m bir görüntü kodlayıcıdır. Pi0.5, belirteçleyicisini (tokenizer) ondan miras alır ve bu belirteçleyici, erişimi kısıtlı bir depoda bulunur. İlk çalıştırmanın, ilk eğitim adımı öncesinde başarısız olmasının en yaygın yolu budur.
LeRobot pi05 belgeleri açıkça belirtiyor: pi0.5, erişimi kısıtlı google/paligemma-3b-pt-224 belirteçleyicisini (tokenizer) kullanır, bu nedenle önce Hub'daki lisansını kabul edin ve hf auth login komutunu çalıştırın. Erişim anında değil, manuel olarak verilir. Bunu atlarsanız, ücretli bir bulut çalıştırması başlatırsınız ve bir belirteçleyiciyi indiremeyen bir pod için ödeme yapmış olursunuz.
Başlamadan önce: veri kümesi formatı, bölümler, donanım
LeRobot'taki Pi0.5, lerobot 0.4.0 ile Ekim 2025'te gelen v3.0 düzeninde bir LeRobot veri kümesi okur: sınırlar dosya adlarında değil meta/episodes/ içinde olmak üzere, her bölüm için bir dosya yerine her Parquet ve MP4 dosyası başına birden fazla bölüm bulunur. masaüstü istemcisi ile kaydedin veya ilk veri kümenizi kaydedin adımlarını izleyin, böylece hazır olur.
| Mod | Gerekli GPU belleği | Örnek GPU |
|---|---|---|
| Çıkarım | more than 8 GB | RTX 4090 |
| İnce ayar, LoRA | more than 22.5 GB | RTX 4090 |
| İnce ayar, tam | more than 70 GB | A100 80 GB or H100 |
Pi0.5 ve SmolVLA, LeRobot v3.0 gerektirir. GR00T N1.7 ve GR00T N1.5, v2.0 veya v2.1 gerektirir ve v3.0 veri kümesinde çöker. Tek bir kayıt oturumu, dönüştürme olmadan her ikisini de besleyemez ve hata "yanlış veri kümesi sürümü" demez. veri kümesi reddedildi: v3 gerekli bölümüne bakın.
# 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, Pi0.5 için en az 50 bölüm istiyor; bu, GR00T ve ACT ile aynı taban. Ön eğitim asıl işi yapar, bu yüzden 50 temiz bölüm 200 özensiz bölümden daha iyidir. Bu konuda yeni misiniz? Şuradan başlayın: veri toplama kılavuzu.

Rota A: openpi deposu ile ince ayar yapın
Referans uygulama: Öncelikle JAX, yalnızca Ubuntu 22.04 üzerinde test edildi, bayraklar yerine yapılandırma nesneleri tarafından yönlendiriliyor. Eylül 2025'te bir PyTorch yolu geldi ve LIBERO üzerinde doğrulandı. Üç adım: verilerinizi dönüştürün, bir yapılandırma tanımlayın, eğitin ve sunun.
- 1Klonlayın ve Kurun
openpi, uv kullanır. GIT_LFS_SKIP_SMUDGE, LeRobot'un LFS blobları olmadan bir bağımlılık olarak gelmesini sağlar.
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 . - 2Verilerinizi bir LeRobot veri kümesine dönüştürün
Yukarı akış, LIBERO ve DROID için dönüştürücüler sağlar ve bunlardan birini uyarlamanızı bekler. İş, anahtar eşlemesidir.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3Bir eğitim yapılandırması ekleyin
Yapılandırmalar, src/openpi/training/config.py içindeki TrainConfig girdileridir. Bu, ağırlık yükleyicisi pi05_base'e işaret eden pi05_droid_finetune'u uyarlar.
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, ) - 4Norm istatistiklerini hesaplayın
Veri kümesine değil, yapılandırma adına göre çalışır. Bunu atlamak, buradaki klasik ilk hatadır.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5Eğitin
Bu değişken, JAX'in varsayılan %75 yerine GPU belleğinin %90'ını kullanmasına olanak tanır. 80 GB'lık bir kartta, bu, çalıştırmanın başarılı olup olmayacağını belirler.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Sunun
Sunucu 8000 numaralı bağlantı noktasını dinler ve gözlem sorgularını yanıtlar; robot çalışma zamanınız istemcidir.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
openpi'nin PyTorch uygulaması pi0-FAST, karma hassasiyet, FSDP, LoRA veya EMA ağırlıklarını desteklemez, bu nedenle 22.5 GB'a ulaşan LoRA, yalnızca JAX üzerinden, gemma_2b_lora ve gemma_300m_lora varyantları aracılığıyla kullanılabilir. Daha da kötüsü: kurulum, yama uygulanmış dosyaları kurulu transformers 4.53.2 üzerine kopyalar ve README, uv'nin varsayılan hardlink moduyla bunun uv önbelleğindeki transformers'ı kalıcı olarak değiştirebileceği ve diğer projelere sızabileceği konusunda uyarır. Bunu uv cache clean transformers ile geri alın.
B Rotası: lerobot pi05 ile ince ayar yapın
LeRobot portu, zaten kullandığınız CLI'da aynı ağırlıkları şunlar için sarmalar: ACT ve SmolVLA. Aşağıdaki her şey, 3 Ağustos 2026'dan bu yana çıkan lerobot 0.6.1 sürümü ve 23 Ağustos 2026 tarihli pi05 belgeleriyle kontrol edildi. Sürümler burada önemlidir: v3.0 veri kümeleri Ekim 2025'te 0.4.0 ile geldi, 9 Mart 2026 tarihli 0.5.0 blogu pi0-FAST ve Gerçek Zamanlı Parçalama'yı sunar ve 6 Temmuz 2026'daki 0.6.0 sürümü temel paketi hafifletti ve dağıtımı lerobot-rollout'a taşıdı.
Tek bir şey değişmedi: lerobot-train ve lerobot-record, Ağustos 2025'te 0.3.2'de zaten giriş noktalarıydı. Hala python -m lerobot.scripts.train komutunu çağıran bir eğitim, bir yıllık değişikliklerden öncesine aittir ve geri kalan kısımlarına da güvenilmemelidir.
- 1Doğru ekstralarla kurun
0.6.0 sürümünden itibaren temel kurulum yalnızca çekirdek ML bağımlılıklarını içerir ve pi eklentisi hiçbir veri kümesi veya eğitim kodu eklemez, bu nedenle ince ayar için eğitim eklentisi de gereklidir. Daha eski tek satırlık komutlar burada içe aktarma sırasında başarısız olur.
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]' - 2Kimlik Doğrulama
Bir tarayıcıda paligemma-3b-pt-224 lisansını kabul edin, ardından eğitim yapan makinede oturum açın.
bashhf auth login - 3Kantil İstatistikleri Ekle
Pi0.5, STATE ve ACTION'ı kantillerle normalleştirir, bu nedenle meta/stats.json'ın q01 ve q99'a ihtiyacı vardır. Daha eski veri kümeleri yalnızca min, max, mean, std içerir.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4lerobot/pi05_base'den ince ayar yapın
Kartınızın kaldırabileceği toplu iş boyutunu ayarlayın; belgeler 80 GB'lık LIBERO'da 64 kullanır. bfloat16'yı açıkça belirtin, yapılandırma varsayılanı float32'dir.
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 - 5Kolda çalıştırın
0.6.x'te bu lerobot-rollout'tur: lerobot-record bir politikayı reddeder ve eval_ veri kümesi adlarını kabul etmez. Base kolu sürer, sentry ise yayılımı kaydeder.
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
| Bayrak | Ne işe yarar | Not |
|---|---|---|
| --policy.type=pi05 | Pi0.5'i seçer | pretrained_path ile zorunlu, --policy.path ile atlanabilir |
| --policy.pretrained_path | yalnızca ağırlıkları yükler | veri kümenizdeki özellik adları, depolanan ayarlar sıfırlanır |
| --policy.path | ağırlıklar artı kontrol noktası config.json | n_action_steps gibi depolanan ayarlar devralınır |
| --policy.n_action_steps | parça başına tüketilen adımlar | 50'ye geri döner, chunk_size'ın (varsayılan 50) üzerine çıkmaz |
| --policy.train_expert_only | VLM'yi dondurur, uzmanı eğitir | varsayılan false, daha az bellek, başarıda bir miktar maliyet |
| --policy.gradient_checkpointing | aktivasyonları depolamak yerine yeniden hesaplar | varsayılan false, bir çalıştırma sığmadığında ilk kaldıraç |
| --peft.method_type=LORA | tam ağırlıklar yerine LoRA adaptörleri | peft eklentisine ihtiyaç duyar, belgelenmiş örnek SmolVLA'dır |
| --policy.rtc_training_max_delay | RTC için eylem ön eki koşullandırması | yalnızca ana dalda, 0.6.1'de yok, chunk_size'ın altında kalmalı |
| --rename_map | veri kümesi sütunlarını politika özelliklerine eşler | kamera anahtarlarınız farklı olduğunda gereklidir |
Kantiller olmadan, ilk toplu işte ValueError: QUANTILES normalization mode requires q01 and q99 stats hatasını alırsınız. İstatistikleri yeniden hesaplayın, ancak sonuç $HF_LEROBOT_HOME/your_dataset konumuna değil, --dataset.repo_id'in okuduğu önbelleğe düşer, bu nedenle --dataset.root'u oraya işaret ederek eğitin veya Hub'a gönderin. Ya da LIBERO referans komutunun yaptığı gibi --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}' ile kantilleri atlayın.
Üç varsayılan kümesi ve hangilerinin eğiticilere ulaştığı
openpi's TrainConfig referanstır, LeRobot'ın PI05Config'i, siz hiçbir şey söylemediğinizde lerobot-train'in kullandığıdır ve buradaki form üçüncü bir set gönderir. Şaşırtıcı olan öğrenme oranıdır: hem yukarı akış varsayılanları 2.5e-5'te zirve yaparken, openpi'nin kendi pi05_libero yapılandırması ve bu platform bunu 5e-5'e çıkarır.
| Ayar | openpi TrainConfig | lerobot pi05 ve lerobot-train | AY-Robots gönderir |
|---|---|---|---|
| Yığın boyutu | 32 | 8 | 1 |
| En yüksek öğrenme oranı | 2.5e-5, kosinüs bozunumu | optimizer_lr 2.5e-5 | 5e-5 |
| Eğitim adımları | 30,000 | 100,000 | 30,000 |
| Kontrol noktası aralığı | 1,000 adım | 20,000 adım | formda yok |
| Tohum | 42 | 1,000 | formda |
| Eylem öbeği | action_horizon 50 | chunk_size 50, n_action_steps 50 | formda yok |
| Ağırlık veri tipi | bfloat16 | float32 until you pass --policy.dtype | formda yok |
| Gradyan birikimi | böyle bir ayar yok, yerine fsdp_devices | şimdiye kadarki her sürümde yok | 16, ve düşürüldü |
Port sadık mı? LeRobot ekibi, LIBERO temel modelini 6 bin adım daha ince ayarladı ve openpi'nin dört süitteki referans sayılarıyla karşılaştırdı: %96.85'e karşı %97.5 ortalama, Libero 10'da önde, Spatial'da geride. Bu yol, bir kalite seçimi değil, bir araç seçimidir.
- Arkasında 10.000 saatten fazla robot ön eğitimi var, bu nedenle görevinizin 50 bölümü yeterli olabilir.
- Sürekli eylemler: ayarlanacak bir belirteçleyici yok, eklem açılarınızda ayrıklaştırma tabanı yok.
- LeRobot portu, openpi'nin %96.85'ine karşı LIBERO ortalamasında %97.5 puan alıyor, bu nedenle daha kullanıcı dostu CLI ölçülebilir hiçbir maliyet getirmiyor.
- Her iki tarafta da parametre açısından verimli yollar: openpi'nin JAX LoRA varyantları, LeRobot'ın PEFT entegrasyonu.
- Tam ince ayar 70 GB'tan fazla alan gerektirir. 22.5 GB LoRA rakamı openpi'nin JAX sayısıdır; PEFT altında pi05 için hiçbiri yayınlanmamıştır.
- Eylem adımı başına 485 ms, buradaki beş taneden en yavaşı: SmolVLA'nın iki katı, ACT'nin yirmi dört katı.
- LeRobot v3.0 gereklidir, bu nedenle bir GR00T çalıştırması için kaydedilen bir veri setinin dönüştürülmesi gerekir ve bunun tersi de geçerlidir.
- Yeni seçenekler önce ana dala gelir: eğitim zamanı RTC ve MEM belleği 0.6.1'de yoktur, bu nedenle en yeni belgeler git'ten yüklemeyi gerektirebilir.
485 ms gerçeği ve nerede kullanılamaz hale geldiği
Bu, projenizi belirler, bu yüzden maliyet tablosundan önce gelir. Pi0.5 için burada ölçülen eylem adımı başına 485 ms'dir. Diğer dördüne karşı:
| Politika | Eylem adımı başına çıkarım | Parametreler | GPU seviyesi | Minimum bölüm sayısı |
|---|---|---|---|---|
| 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 |

Bu beş modeldeki kontrol döngüsü, eylem adımı başına 20 ila 485 ms arasında çalışır. 485 ms'nin üzerine eklenen genel internet gidiş-dönüş süreleri, çalışan bir politikayı tereddütlü bir hale getirir. Uzaktan çıkarım, yavaş toplama ve yerleştirme işlemleri için uygunken, hızlı reaktif hareketler için uygun değildir. Yalnızca bir LAN'da çalışan bir demo satmaktansa bunu söylemeyi tercih ederiz. Kolunuz parçalar arasında duraklıyorsa, hareket ortasında politika donmaları bölümünden başlayın.
Yukarı akışın bir cevabı var ve bunun yarısı zaten yükleyebileceğiniz sürümde mevcut. Gerçek Zamanlı Parçalama (Real-Time Chunking), kol mevcut parçayı yürütürken bir sonraki parçayı oluşturur, ardından yeni parçanın çakışan adımlarını zaten yürütülmüş kısma yakın kalacak şekilde yönlendirir, böylece kol ek yerinde duraksamaz veya sarsılmaz. Pi0, Pi0.5 ve SmolVLA için 0.4.2 değişiklik günlüğünde yer alan çıkarım zamanı formu bir dağıtım bayrağıdır, yeniden eğitim gerektirmez:
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=60Bu, modeli daha hızlı yapmaz. Boşluğu gizler: 485 ms hala harcanır, ancak kritik yolun dışında olduğu için parçalar arasında kuyruk boşalmaz. arXiv 2512.05964'teki eğitim zamanı varyantı daha da ileri gider: model, temiz bir eylem öneki üzerinde koşullandırmayı öğrenir, böylece çıkarım sırasında çakışma, yönlendirilmek yerine eylem başına akış zaman adımlarıyla sert bir şekilde doldurulur ve yönlendirme geri geçişi ortadan kalkar. Eğitim sırasında, örnek başına bir önek uzunluğu örnekler ve kalan sonek üzerindeki akış kaybını alır. Bu bayrak yalnızca ana dalda bulunur, 0.6.1'de değil ve eğitim yaptığınız gecikme chunk_size'ın altında kalmalıdır.
Pi0.5 kontrol noktası edinmenin iki yolu
80 GB'lık bir kart kiralarsınız veya sahip olursunuz, yukarıdaki yığınlardan birini kurarsınız, veri kümenizi dönüştürür ve çalıştırmayı denetlersiniz. Her ayarı kontrol edersiniz: openpi'nin JAX LoRA'sı, LeRobot'un PEFT adaptörleri, göreceli eylemler, özel anahtar eşlemeleri. Ayrıca her hatayı da siz üstlenirsiniz.
- Donanım: A100 80 GB veya H100, ya da openpi'nin JAX LoRA yolu üzerinde 24 GB'lık bir kart.
- Kurulum: İlk çalıştırma için bir öğleden sonrası, çoğunlukla anahtar eşleme ve geçitli belirteçleyici.
- Barındırılan formda olmayanlar: PEFT adaptörleri, göreceli eylemler, eğitim zamanı RTC, MEM belleği.
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=1000Model ve veri kümesini eğitim formunda seçersiniz, arka uç gerekli VRAM'e göre spot piyasadan bir GPU kiralar, eğiticisi çalıştırır ve kontrol noktalarını nesne depolamaya yazar. Pi0.5 burada yalnızca bulutta çalışır. SO-100, SO-101, Koch v1.1 ve LeKiwi için rehberler mevcuttur.
| Ayar | Platformun Pi0.5 için gönderdikleri |
|---|---|
| Temel kontrol noktası | lerobot/pi05_base |
| Politika türü | pi05 |
| Yığın boyutu | 1 |
| Öğrenme oranı | 5e-5 |
| Maksimum adım | 30000 |
| Gradyan birikimi | 16, ancak aşağıdaki uyarıya bakın |
| Formdaki ek ayarlar | seed, logFreq |
| Veri kümesi formatı | LeRobot v3.0 |
| GPU katmanı | A100 80 GB veya H100 80 GB |
Eğitici 16'lık bir gradyan birikim değeri gönderir ve lerobot 0.5.1'de bunu alacak bir bayrak yoktur, bu yüzden düşürülür. Yayınlanmış hiçbir lerobot sürümünde bu yoktur: bu ayar yalnızca ana dalda --accelerator.gradient_accumulation.steps olarak mevcuttur. Buradaki etkili yığın boyutu 1'dir, openpi'nin pi05_libero yapılandırmasının kullandığı 256'ya karşı. Bir kayıp eğrisini okumadan önce bunu bilmekte fayda var. Bu ayar GR00T N1.7 ve GR00T N1.5 çalıştırmalarında geçerlidir.
Çıkarım aynı şekilde çalışır: politikayı sunmak için bir pod sağlanır ve yerel istemciniz onunla konuşur. Pod'un bir boşta kalma izleyicisi vardır ve kendini yok eder, böylece unutulmuş bir sekme sessizce faturalandırılmaz. Gecikme uyarısı geçerlidir, bu yüzden 20 ms'deki ACT genellikle hızlı bir görevi kazanır.
Çalışmadığında
| Belirti | En olası neden |
|---|---|
| Çalıştırma başlamadan reddedildi | Veri kümesi v2.1 ama Pi0.5 v3.0 istiyor, veya GR00T için tersi |
| ImportError, datasets paketi eksik | Eğitim eklentisi olmayan lerobot 0.6.x |
| q01 ve q99 hakkında ValueError, ilk yığında | meta/stats.json'da çeyreklikler yok; yeniden hesaplayın veya MEAN_STD kullanın |
| Adım 0'da CUDA bellek yetersizliği | 70 GB'ın altında tam ince ayar; kontrol noktası kullanmayı veya train_expert_only'yi deneyin |
| 401 veya geçitli depo hatası | PaliGemma belirteçleyici lisansı kabul edilmedi |
| Kayıp düşüyor, robot hiçbir şey yapmıyor | Normalleştirme uyumsuzluğu veya politika durumu kopyalıyor |
| Kol parçalar arasında duraklıyor | Adım başına gecikme artı gidiş-dönüş; parça kuyruğu boşalıyor |
| Bir kurulumda çalışıyor, diğerinde başarısız oluyor | Çok az bölüm veya hepsi tek bir yapılandırmada |
- Veri kümesi reddedildi: v3 gerekli
- Eğitim sırasında bellek yetersizliği
- Kayıp düşüyor ama politika hiçbir şey yapmıyor
- Politika hareketin ortasında donuyor
- Politika sadece tek bir kurulumda çalışıyor
- Eğitim işi kuyrukta takılı kaldı
Tek bir çalıştırmanın maliyeti
Pi0.5, 80 GB'lık bir karta ihtiyaç duyduğu ve spot fiyatlar değiştiği için pahalı seviyede yer almaktadır, bu nedenle rakam bir fiyattan ziyade bir aralıktır. Birçok SO-100 görevi için, önce SmolVLA veya ACT'yi 24 GB seviyesinde eğitin, görevin öğrenilebilir olup olmadığını doğrulayın, ardından A100 saatlerini buna harcayın. İlk politikanızı eğitin bu daha ucuz döngüyü anlatır ve fiyatlandırma mevcut seviyeleri içerir.
| Seviye | Politikalar | Tipik çalıştırma | Saatlik fiyat | Çalıştırma başına maliyet |
|---|---|---|---|---|
| A100 80 GB or H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 to 6 hours | 1.20 to 2.00 USD | about 4 to 12 USD |
| RTX 4090 or any 24 GB card | SmolVLA, ACT | 2 to 5 hours | 0.30 to 0.60 USD | about 1 to 3 USD |

Bir akşamınızı ayırmadan önce: GR00T N1.7 ile Pi0.5 karşılaştırması ve Pi0.5 ile SmolVLA karşılaştırması aynı sayıları karşılaştırır. Arena 332 kıyaslama sonucuyla 85 VLA modelini barındırır, her biri kaynağına bağlıdır ve aile hakkında arka plan bilgisi şurada bulunmaktadır: VLA genel bakışımız.
Yığını kurmadan Pi0.5'i eğitin
Bir formda veri kümesini ve hiperparametreleri seçin. Arka uç, spot piyasadan 80 GB'lık bir kart kiralar, eğiticiyi çalıştırır ve kontrol noktalarını nesne depolamaya yazar. SO-100, SO-101, Koch v1.1 ve LeKiwi için kılavuzlar.
Eğitim kılavuzlarını açınPi0.5'i bir RTX 4090 üzerinde ince ayar yapabilir miyim?▾
Tam bir ince ayar değil: openpi bunun için 70 GB'tan fazla listeliyor, bu yüzden bir A100 80 GB veya bir H100 gerekir. 22.5 GB'lık LoRA değeri JAX yoluna aittir; PyTorch uygulamasında LoRA yoktur. LeRobot'un PEFT entegrasyonu mevcut, ancak belgelenmiş örneği SmolVLA'dır ve pi05 için VRAM değeri yayınlanmamıştır.
Kaç bölüme ihtiyacım var?▾
Elli, GR00T ve ACT ile aynı taban; sadece SmolVLA 30 ile daha düşüktür. Temel kontrol noktası 10.000 saatten fazla ön eğitim taşır, bu nedenle ince ayar sıfırdan öğrenmek yerine adapte olur: 50 temiz, çeşitli bölüm, tek bir yapılandırmadan gelen iki yüz bölümden daha iyidir.
--policy.path ve --policy.pretrained_path arasındaki fark nedir?▾
--policy.path ağırlıkları ve kontrol noktasının config.json dosyasını yükler, bu nedenle n_action_steps gibi depolanmış ayarlar devralınır ve --policy.type atlanmalıdır. --policy.pretrained_path yalnızca ağırlıkları yükler: özellik adları veri kümenizden gelir, depolanmış ayarlar sıfırlanır, --policy.type gereklidir. Bu nedenle LIBERO komutu n_action_steps=10 ve empty_cameras=1'i açıkça geçirir; aksi takdirde 50 ve 0'a geri dönerler.
Açık sürüm bana makaledeki tam Pi0.5'i veriyor mu?▾
Hayır. Her ikisi de yalnızca akış eşleştirme eylem başlığını destekler. FAST eylem belirteci ile ayrık belirteç ön eğitim aşaması ve yüksek seviyeli alt görev tahmini yayınlanmadı ve lerobot/pi05_base kartı, pi0.5 makalesi herhangi bir pekiştirmeli öğrenme aşaması tanımlamasa bile bu listeye RL ekler. Uzun bir görevi kendi başına ayrıştıran bir model değil, sağladığınız bir dil dizisine koşullandırılmış düşük seviyeli bir politika eğitirsiniz.
Bu kılavuz hangi sürümlere göre yazılmıştır?▾
Ana daldaki openpi ve 3 Ağustos 2026'dan bu yana yayınlanan lerobot 0.6.1, her ikisi de 23 Ağustos 2026'da okunmuştur. v3.0 veri kümeleri Ekim 2025'te 0.4.0 ile geldi. 0.6.0 temel paketi hafifletti, böylece tek başına lerobot[pi] artık bir eğitim yığını kurmuyor ve dağıtımı lerobot-rollout'a taşıdı. Eğitim zamanı RTC yalnızca ana daldadır; buradaki barındırılan eğitici 0.5.1 sürümünü çalıştırır.
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