
Finomhangolja a Pi0.5-öt, a Physical Intelligence áramlás-illesztő VLA-ját, saját robotadataival. Valós parancsok az openpi és lerobot pi05 számára, adathalmaz formátum csapdák, VRAM és késleltetési korlátok.
A Pi0.5 az a modell, amihez akkor nyúlsz, ha egy irányelvnek olyan szobában kell működnie, amit még sosem látott. Ez az öt betanítható irányelv közül a legnehezebben kezelhető itt, ha kézzel finomhangoljuk : az upstream repository JAX-alapú, a LeRobot port a 0.6.0-ás verzióban kivette a telepítést a lerobot-recordból, és az alaptelepítés túl kicsi lett a betanításhoz, ráadásul egy teljes finomhangolás nem fér el egy 4090-esen. Alább: mennyibe kerül a flow matching az inferencia során, a két parancsútvonal, és a 485 ms-os szám, ami eldönti, hogy az eredmény használható-e.
Amit tudnod kell
- •Egy flow-matching VLA: egy 3B PaliGemma VLM, plusz egy 300M-os akció szakértő, amely folyamatos akcióblokkokat dekódol. Két útvonal a finomhangolásához, az openpi és a LeRobot pi05, 0.65 pont különbséggel a LIBERO átlagán.
- •A teljes finomhangoláshoz több mint 70 GB VRAM szükséges. Az openpi a LoRA-t 22.5 GB-nál említi, csak a JAX útvonalán.
- •Az adatkészletnek LeRobotDataset v3.0-nak kell lennie, q01 és q99 kvantilisekkel a meta/stats.json fájlban, különben az első batch hibát dob.
- •Először ellenőrizd a lerobot verziódat: a 0.6.0-ás verzió könnyűvé tette az alapcsomagot, és kivette a telepítést a lerobot-recordból.
- •Itt 485 ms-on fut akció lépésenként, 50 epizódot igényel, és futtatásonként körülbelül 4-12 USD-be kerül.
Mi is valójában a Pi0.5
A Physical Intelligence 2024 októberében publikálta a pi0-t: egy flow matching látás-nyelv-akció modell egy előre betanított VLM-en: PaliGemma 3 milliárd paraméterrel, plusz egy 300M-os akció szakértő, ami a nulláról lett inicializálva, összesen 3.3 milliárd. A tanulmány több mint 10 000 órányi robotadat előzetes betanításáról számol be, 7 robotkonfiguráción és 68 feladaton keresztül. További részletek a pi0 cikkben.
A Pi0.5 (arXiv 2504.16054, 2025. április 22.) megtartja ezt a vázat és megváltoztatja a képzési étrendet: webes adatok, objektumfelismerés, emberi verbális utasítások a robot edzéséhez, alfeladat címkék, kereszt-megtestesülési adatok számos otthonban lévő robotoktól. Az eredmény egy robot, amely olyan házakban takarít konyhákat, amelyek nem szerepeltek a képzési halmazban. Az openpi README hozzátesz egy részletet, amit a cím nem: a kiadott pi0.5 tudásizolációval (arXiv 2505.23705) lett kiképezve.
| Tulajdonság | pi0 | pi0.5 |
|---|---|---|
| VLM backbone variant | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Action expert variant | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon alapértelmezett | 50 | 50 |
| max_token_len | 48 | 200 |
| diszkrét_állapot_bemenet | false | true, az állapot diszkretizálva van rekeszekbe a promptban |
| Alap ellenőrzőpont | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
Az openpi README egyértelmű: a tároló csak a flow matching fejet támogatja, a pi0.5 képzéséhez és következtetéséhez egyaránt. A tanulmány két szakaszt ír le, és a kód csak a másodikat tartalmazza: az előképzés minden műveletet diszkrét tokenként reprezentál a FAST tokenizálóval, és telepítéskor a modell minden műveleti blokk előtt egy magas szintű alfeladatot következtet ki. Ezek közül egyik sem található meg a tárolóban. A lerobot/pi05_base kártya ugyanazt a listát adja és hozzáadja az RL-t, bár a pi0.5 tanulmány egyáltalán nem ír le megerősítéses tanulási szakaszt. A LeRobot port örökli ezt a hatókört, és így tesz minden rajta futó hosztolt tréner is, beleértve az itt találhatóat. A licencelés is megosztott: a pi05 dokumentációs oldal Apache 2.0-t mond, a lerobot/pi05_base kártya license: gemma címkével van ellátva.
Amit a flow matching megváltoztat a képzésben és a következtetésben
Egy szabályzat amit egy SO-100-on betaníthat, vagy közvetlenül regresszálja az akciókat (ACT) vagy tokenizálja és autoregresszíven dekódolja azokat (pi0-FAST). Az áramlásegyeztetés egyiket sem teszi: egy olyan vektoros mezőt tanul meg, amely zajt szállít egy tiszta akciócsomag-ba, majd integrálja azt. A pi0 tanulmány 10 integrációs lépést használ 0.1 lépésmérettel; a LeRobot pi05 konfigurációja ugyanazt a `num_inference_steps: int = 10` értéket tartalmazza.
- Betanítás: a veszteség egy zajos akciócsomagot regresszál. Nincs finomhangolható tokenizáló, nincs az ízületi szögek diszkretizálása.
- Inferálás: egy csomag tíz előremenő passzt igényel az akció-szakértőn keresztül. Ez strukturális, nem finomhangolási probléma.
- Kimenet: 32 dimenziós folytonos akciók, belsőleg kitöltve, a veszteség a robotod dimenzióin számítva. Egy 6-szabadságfokú kar plusz gripper 7-et használ.
# 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 TrueA PaliGemma gerinc, és az előtte lévő kapu
PaliGemma (arXiv 2407.07726) egy SigLIP-So400m látáskódoló egy Gemma-2B nyelvi modellen, körülbelül 3B paraméterrel. A Pi0.5 örökli a tokenizálóját, és ez a tokenizáló egy zárt tárolóban található. Ez a leggyakoribb módja annak, hogy egy első futtatás meghaljon, még az első betanítási lépés.
A LeRobot pi05 dokumentációja világosan kimondja: a pi0.5 a zárt google/paligemma-3b-pt-224 tokenizálót használja, ezért fogadja el a licencét a Hubon, és először futtassa a hf auth login parancsot. A hozzáférés manuálisan, nem azonnal kerül megadásra. Ha kihagyja, elindít egy fizetős felhőalapú futtatást, és fizet egy olyan podért, amely nem tud tokenizálót letölteni.
Mielőtt elkezdené: adathalmaz formátum, epizódok, hardver
A Pi0.5 a LeRobotban egy LeRobot adathalmazt olvas be v3.0 elrendezésben, amely a lerobot 0.4.0-val érkezett 2025 októberében: sok epizód Parquet és MP4 fájlonként egy fájl helyett epizódonként, a határokkal a meta/episodes/ mappában a fájlnevek helyett. Rögzítsen a asztali klienssel vagy kövesse a első adathalmaz rögzítése útmutatót, és máris megvan.
| Mód | Szükséges GPU memória | Példa GPU |
|---|---|---|
| Inferálás | more than 8 GB | RTX 4090 |
| Finomhangolás, LoRA | more than 22.5 GB | RTX 4090 |
| Finomhangolás, teljes | more than 70 GB | A100 80 GB or H100 |
A Pi0.5 és a SmolVLA a LeRobot v3.0-t igénylik. GR00T N1.7 és GR00T N1.5 a v2.0 vagy v2.1-et igénylik, és összeomlanak egy v3.0 adathalmazon. Egy felvételi munkamenet nem tudja mindkettőt táplálni konverzió nélkül, és a hibaüzenet nem mondja, hogy "wrong dataset version". Lásd: adathalmaz elutasítva: v3 szükséges.
# 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 offsetsA platform legalább 50 epizódot igényel a Pi0.5-höz, ugyanazt a minimumot, mint a GR00T és az ACT. Az előképzés végzi a nehéz munkát, így 50 tiszta epizód jobb, mint 200 hanyag. Új vagy ebben? Kezdd a adatgyűjtési útmutatóval.

A útvonal: finomhangolás az openpi tárolóval
A referencia implementáció: először JAX, csak Ubuntu 22.04-en tesztelve, konfigurációs objektumok vezérlik, nem pedig flagek. Egy PyTorch útvonal 2025 szeptemberében érkezett, LIBERO-n validálva. Három lépés: adatok konvertálása, konfiguráció definiálása, betanítás és kiszolgálás.
- 1Klónozás és telepítés
Az openpi uv-t használ. A GIT_LFS_SKIP_SMUDGE teszi lehetővé, hogy a LeRobot függőségként bekerüljön LFS blobok nélkül.
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 . - 2Adatok konvertálása LeRobot adatkészletté
Az upstream LIBERO és DROID konvertereket szállít, és elvárja, hogy adaptáljon egyet. A munka a kulcsleképezés.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3Edzési konfiguráció hozzáadása
A konfigurációk TrainConfig bejegyzések a src/openpi/training/config.py fájlban. Ez a pi05_droid_finetune-t adaptálja, a súlybetöltő a pi05_base-re mutat.
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ál statisztikák számítása
A konfiguráció neve ellen fut, nem az adatkészlet ellen. Ennek kihagyása a klasszikus első hiba itt.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5Betanítás
A változó lehetővé teszi a JAX számára, hogy a GPU memória 90 százalékát használja az alapértelmezett 75 helyett. Egy 80 GB-os kártyán ez dönti el, hogy a futtatás sikeres lesz-e.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Kiszolgálás
A szerver a 8000-es porton figyel, és válaszol a megfigyelési lekérdezésekre; a robot futásideje az ügyfél.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Az openpi PyTorch implementációja nem támogatja a pi0-FAST, vegyes precíziós, FSDP, LoRA vagy EMA súlyokat, így a 22.5 GB-ot elérő LoRA csak JAX-ban érhető el, a gemma_2b_lora és gemma_300m_lora variánsokon keresztül. Ráadásul: a beállítás felülírja a telepített transformers 4.53.2 fájljait javított fájlokkal, és a README figyelmeztet, hogy az uv alapértelmezett hardlink módjával ez tartósan módosítja a transformereket az uv gyorsítótárában, és más projektekbe is beszivároghat. Ezt a uv cache clean transformers paranccsal lehet visszavonni.
B útvonal: finomhangolás lerobot pi05-tel
A LeRobot port ugyanazokat a súlyokat foglalja magába abban a CLI-ben, amit már használsz a ACT és SmolVLA. Az alábbiak mindegyike a lerobot 0.6.1-gyel, a 2026. augusztus 3. óta megjelent kiadással, és a pi05 dokumentációjával lett ellenőrizve 2026. augusztus 23-án. A verziók itt számítanak: a v3.0 adatkészletek 2025 októberében érkeztek a 0.4.0-val, a 2026. március 9-i 0.5.0 blog bemutatja a pi0-FAST-ot és a Real-Time Chunkingot, a 2026. július 6-i 0.6.0 pedig könnyűvé tette az alapcsomagot, és a telepítést a lerobot-rollout-ra helyezte át.
Egy dolog nem változott: a lerobot-train és a lerobot-record már 2025 augusztusában, a 0.3.2-ben is belépési pontok voltak. Egy olyan oktatóanyag, amely még mindig a python -m lerobot.scripts.train parancsot hívja, egy évnyi változás előtt készült, és a többi részét is érdemes fenntartásokkal kezelni.
- 1Telepítés a megfelelő extrákkal
A 0.6.0-s verzió óta az alaptelepítés csak az alapvető ML függőségeket tartalmazza, és a pi extra nem ad hozzá adatkészletet vagy képzési kódot, így a finomhangoláshoz a training extra is szükséges. Régebbi egysoros parancsok itt importáláskor hibát jeleznek.
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]' - 2Hitelesítés
Fogadja el a paligemma-3b-pt-224 licencet egy böngészőben, majd jelentkezzen be a képzést végző gépen.
bashhf auth login - 3Kvantilis statisztikák hozzáadása
A Pi0.5 kvantilisekkel normalizálja a STATE és ACTION értékeket, így a meta/stats.json-nak szüksége van q01 és q99 értékekre. Régebbi adatkészletek csak min, max, mean, std értékeket tartalmaznak.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4Finomhangolás a lerobot/pi05_base-ből
Állítsa be a kötegméretet (batch size) úgy, hogy a kártyája elbírja; a dokumentáció 64-et használ LIBERO-n 80 GB-nál. Adja meg a bfloat16-ot expliciten, a konfiguráció alapértelmezettje 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 - 5Futtatás a karon
A 0.6.x verzióban ez a lerobot-rollout: a lerobot-record elutasítja a policy-t és az eval_ adatkészlet neveket. A Base vezérli a kart, a sentry rögzíti a rolloutot.
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
| Zászló | Mit csinál | Megjegyzés |
|---|---|---|
| --policy.type=pi05 | kiválasztja a Pi0.5-öt | kötelező a pretrained_path-tal, hagyja el a --policy.path-tal |
| --policy.pretrained_path | csak a súlyokat tölti be | a funkciónevek az adatkészletéből származnak, a tárolt beállítások visszaállnak |
| --policy.path | súlyok plusz a checkpoint config.json | a tárolt beállítások, mint például az n_action_steps, öröklődnek |
| --policy.n_action_steps | darabonként felhasznált lépések | visszaáll 50-re, soha nem haladja meg a chunk_size-t (alapértelmezett 50) |
| --policy.train_expert_only | befagyasztja a VLM-et, képzi a szakértőt | alapértelmezett hamis, kevesebb memória, némi költség a sikerben |
| --policy.gradient_checkpointing | újraszámolja az aktivációkat a tárolás helyett | alapértelmezett hamis, az első kar, ha egy futás nem fér el |
| --peft.method_type=LORA | LoRA adapterek a teljes súlyok helyett | szükséges a peft extra, dokumentált példa a SmolVLA |
| --policy.rtc_training_max_delay | akció-előtag kondicionálás az RTC-hez | csak a fő ágon, nincs benne a 0.6.1-ben, a chunk_size alatt kell maradnia |
| --rename_map | adatkészlet oszlopokat képez le a policy funkciókra | szükséges, ha a kamera kulcsai eltérnek |
Kvantilisek nélkül ValueError: QUANTILES normalization mode requires q01 and q99 stats hibát kap az első kötegnél. Számolja újra a statisztikákat, de az eredmény a $HF_LEROBOT_HOME/your_dataset mappába kerül, nem a --dataset.repo_id által olvasott gyorsítótárba, ezért képezzen a --dataset.root oda mutatóval, vagy töltse fel a Hubra. Vagy hagyja ki a kvantiliseket a --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}' paranccsal, ahogy a LIBERO referencia parancs is teszi.
Három alapértelmezett készlet, és melyek jutnak el a képzőhöz
Az openpi TrainConfig a referencia, a LeRobot PI05Config az, amit a lerobot-train használ, ha nem ad meg semmit, és az itt található űrlap egy harmadik készletet küld. A meglepetés a tanulási ráta: mindkét upstream alapértelmezett érték 2.5e-5-nél tetőzik, míg az openpi saját pi05_libero konfigurációja és ez a platform 5e-5-re emeli.
| Beállítás | openpi TrainConfig | lerobot pi05 and lerobot-train | AY-Robots küld |
|---|---|---|---|
| Kötegelt méret | 32 | 8 | 1 |
| Csúcs tanulási ráta | 2.5e-5, koszinuszos lecsengés | optimizer_lr 2.5e-5 | 5e-5 |
| Képzési lépések | 30,000 | 100,000 | 30,000 |
| Ellenőrzőpont intervallum | 1,000 lépés | 20,000 lépés | nincs az űrlapon |
| Mag | 42 | 1,000 | az űrlapon |
| Akció darab | action_horizon 50 | chunk_size 50, n_action_steps 50 | nincs az űrlapon |
| Súly adattípus | bfloat16 | float32, amíg nem adja át a --policy.dtype paramétert | nincs az űrlapon |
| Gradiens akkumuláció | nincs ilyen beállítás, helyette fsdp_devices | eddig minden kiadásból hiányzik | 16, és elvetésre kerül |
Hű a port? A LeRobot csapat további 6k lépésen keresztül finomhangolta a LIBERO alapmodellt, és összehasonlította az openpi referenciaértékeivel négy tesztcsomagban: 97,5 százalékos átlag a 96,85 ellenében, a Libero 10-en előrébb, a Spatial-on hátrébb. Az útvonal egy eszközválasztás, nem minőségi döntés.
- Több mint 10 000 órányi robot előképzés áll mögötte, így 50 epizód a feladatából elegendő lehet.
- Folyamatos akciók: nincs tokenizáló, amit hangolni kellene, nincs diszkretizációs korlát az ízületi szögeken.
- A LeRobot port 97,5 százalékot ér el a LIBERO átlagán az openpi 96,85-ével szemben, így a barátságosabb CLI mérhetően semmibe sem kerül.
- Paraméter-hatékony útvonalak mindkét oldalon: az openpi JAX LoRA variánsai, a LeRobot PEFT integrációja.
- A teljes finomhangoláshoz több mint 70 GB szükséges. A 22,5 GB-os LoRA adat az openpi JAX száma; a pi05-höz PEFT alatt nem publikáltak adatot.
- 485 ms akció lépésenként, a leglassabb az itt lévő ötből: kétszer SmolVLA, huszonnégy-szer ACT.
- LeRobot v3.0 szükséges, így egy GR00T futtatáshoz rögzített adatkészletet konvertálni kell, és fordítva.
- Az új opciók először a main ágon jelennek meg: a képzési idejű RTC és MEM memória nincs benne a 0.6.1-ben, így a legújabb dokumentációk a git-ből való telepítést jelenthetik.
A 485 ms valóság, és hol válik használhatatlanná
Ez dönti el a projektjét, ezért a költségtáblázat előtt szerepel. A műveleti lépésenként, amelyet itt a Pi0.5-nél mértek, 485 ms. A másik négyhez képest:
| Szabályzat | Következtetés műveleti lépésenként | Paraméterek | GPU szint | Minimális epizódok száma |
|---|---|---|---|---|
| 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 |

Az öt modell vezérlőhurka 20-485 ms-ot fut egy akció lépésenként. A nyilvános interneten keresztüli oda-vissza utak a 485 ms-on felül egy működő irányelvet bizonytalanná tesznek. A távoli inferencia lassú pick-and-place feladatokhoz életképes, de gyors reaktív mozgáshoz nem. Inkább ezt mondanánk, mintsem egy olyan demót adnánk el, ami csak LAN-on működik. Ha a karja megáll a darabok között, kezdje a politika megfagy a mozgás közepén résznél.
Az upstreamnek van válasza, és a fele már benne van a telepíthető kiadásban. A valós idejű darabolás (Real-Time Chunking) generálja a következő darabot, miközben a kar még az aktuálisat hajtja végre, majd irányítja az új darab átfedő lépéseit, hogy közel maradjanak a már végrehajtott részhez, így a kar nem áll le vagy rángatózik az illesztésnél. Az inferencia-idejű forma a 0.4.2-es változásnaplóban került kiadásra a Pi0, Pi0.5 és SmolVLA modellekhez, és egy bevezetési (rollout) flag, nem pedig újratanítás:
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=60Ez nem gyorsítja fel a modellt. Elrejti a rést: a 485 ms továbbra is eltelik, de nem a kritikus útvonalon, így a sor nem ürül ki a darabok között. Az arXiv 2512.05964-ből származó képzési idejű változat tovább megy: a modell megtanul egy tiszta akció-előtagra kondicionálni, így az inferencia során az átfedés keményen be van festve akciónkénti áramlási időlépésekkel a vezetés helyett, és a vezetés visszamenőleges passza eltűnik. A képzés során mintavételez egy előtaghosszt példánként, és az áramlási veszteséget a fennmaradó utótagra alkalmazza. Ez a flag csak a main ágon él, nem a 0.6.1-ben, és a késleltetés, amire tanít, a chunk_size alatt kell maradjon.
Két módja a Pi0.5 ellenőrzőpont megszerzésének
Bérelsz vagy birtokolsz egy 80 GB-os kártyát, telepíted a fenti stackek egyikét, konvertálod az adatkészletedet és felügyeled a futtatást. Minden beállítást megtartasz: az openpi JAX LoRA-ját, a LeRobot PEFT adaptereit, a relatív műveleteket, az egyedi billentyűkiosztásokat. Minden hibát is megtartasz.
- Hardver: A100 80 GB vagy H100, vagy egy 24 GB-os kártya az openpi JAX LoRA útvonalán.
- Beállítás: egy délután az első futtatáshoz, főleg billentyűkiosztás és a zárt tokenizáló.
- Nem elérhető a hosztolt űrlapon: PEFT adapterek, relatív műveletek, edzési idejű RTC, MEM memória.
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=1000Kiválasztod a modellt és az adatkészletet a képzési űrlapon, a backend bérel egy GPU-t a spot piacon a szükséges VRAM alapján, futtatja a trénert és ellenőrzőpontokat ír az objektumtárolóba. A Pi0.5 itt csak felhőben érhető el. Útmutatók léteznek a SO-100, SO-101, Koch v1.1 és a LeKiwi számára.
| Beállítás | Amit a platform küld a Pi0.5-höz |
|---|---|
| Alap ellenőrzőpont | lerobot/pi05_base |
| Szabályzat típusa | pi05 |
| Batch méret | 1 |
| Tanulási ráta | 5e-5 |
| Maximális lépések | 30000 |
| Grádiens akkumuláció | 16, de lásd az alábbi figyelmeztetést |
| További beállítások az űrlapon | seed, logFreq |
| Adatkészlet formátum | LeRobot v3.0 |
| GPU szint | A100 80 GB vagy H100 80 GB |
A tréner 16-os grádiens akkumulációs értéket küld, és a lerobot 0.5.1-nek nincs flagje ennek fogadására, így eldobásra kerül. Egyetlen kiadott lerobotnak sincs ilyen: a beállítás csak a main ágon létezik, mint --accelerator.gradient_accumulation.steps. Az effektív batch méret itt 1, szemben az openpi pi05_libero konfigurációja által használt 256-tal. Érdemes tudni, mielőtt elolvas egy veszteséggörbét. A beállítás érvényesül a GR00T N1.7 és GR00T N1.5 futtatásokon.
Az inferencia ugyanígy működik: egy podot biztosítanak a szabályzat kiszolgálására, és a helyi kliens kommunikál vele. A pod rendelkezik egy tétlen figyelővel és megsemmisíti magát, így egy elfelejtett lap nem számláz csendben. A késleltetési figyelmeztetés érvényes, ezért az ACT 20 ms-nál gyakran nyer egy gyors feladatot.
Amikor nem működik
| Tünet | Legvalószínűbb ok |
|---|---|
| A futtatás elutasítva az indulás előtt | Adatkészlet v2.1, de a Pi0.5 v3.0-t akar, vagy fordítva a GR00T esetében |
| ImportError, hiányzik a datasets csomag | lerobot 0.6.x a training extra nélkül |
| ValueError a q01 és q99-ről az első batch-en | Nincsenek kvantilisek a meta/stats.json-ban; számolja újra vagy használja a MEAN_STD-t |
| CUDA memória kifogyott a 0. lépésnél | Teljes finomhangolás 70 GB alatt; próbálja meg az ellenőrzőpontozást vagy a train_expert_only-t |
| 401-es vagy zárt repo hiba | PaliGemma tokenizáló licenc nem elfogadva |
| A veszteség csökken, a robot nem csinál semmit | Normalizációs eltérés, vagy a szabályzat másolja az állapotot |
| A kar szünetel a darabok között | Lépésenkénti késleltetés plusz oda-vissza út; a darabok sora kiürül |
| Egy beállításban működik, egy másikban hibázik | Túl kevés epizód, vagy mind egy konfigurációban |
- Adatkészlet elutasítva: v3 szükséges
- Memóriahiány a betanítás során
- A veszteség csökken, de a szabályzat nem csinál semmit
- A szabályzat mozgás közben lefagy
- A szabályzat csak egy beállításban működik
- A betanítási feladat beragadt a sorba
Mennyibe kerül egy futtatás
A Pi0.5 a drága kategóriába tartozik, mert egy 80 GB-os kártyát igényel, és a spot árak ingadoznak, így az adat inkább egy tartomány, mint egy fix ár. Számos SO-100 feladathoz először tanítsa be a SmolVLA vagy az ACT-t a 24 GB-os kategóriában, győződjön meg róla, hogy a feladat egyáltalán megtanulható, majd fordítson rá A100 órákat. A Tanítsa be első szabályzatát végigvezeti ezen az olcsóbb cikluson, és az árazás tartalmazza az aktuális kategóriákat.
| Kategória | Szabályzatok | Tipikus futtatás | Ár óránként | Költség futtatásonként |
|---|---|---|---|---|
| A100 80 GB vagy H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3-6 óra | 1.20-2.00 USD | körülbelül 4-12 USD |
| RTX 4090 vagy bármely 24 GB-os kártya | SmolVLA, ACT | 2-5 óra | 0.30-0.60 USD | körülbelül 1-3 USD |

Mielőtt elkötelezne egy estét: GR00T N1.7 a Pi0.5 ellen és Pi0.5 a SmolVLA ellen ugyanazokat a számokat mutatják be egymás ellen. Az Aréna 85 VLA modellt tartalmaz 332 benchmark eredménnyel, mindegyik a forrásához kapcsolódik, és a család háttere megtalálható VLA áttekintésünkben.
Pi0.5 betanítása a stack felépítése nélkül
Válassza ki az adatkészletet és a hiperparamétereket egy űrlapon. A backend bérel egy 80 GB-os kártyát a spot piacon, futtatja a trénert, és a checkpointokat objektumtárolóba írja. Útmutatók az SO-100, SO-101, Koch v1.1 és LeKiwi számára.
Nyissa meg a betanítási útmutatókatFinomhangolhatom a Pi0.5-öt egy RTX 4090-en?▾
Nem teljes finomhangolás: az openpi több mint 70 GB-ot sorol fel ehhez, tehát egy A100 80 GB-os vagy egy H100-as kártya szükséges. A 22.5 GB-os LoRA adat a JAX útvonalhoz tartozik; a PyTorch implementáció nem tartalmaz LoRA-t. A LeRobot PEFT integrációja létezik, de dokumentált példája a SmolVLA, és nincs közzétéve VRAM adat a pi05-höz.
Hány epizódra van szükségem?▾
Ötven, ugyanaz a minimum, mint a GR00T és az ACT esetében; csak a SmolVLA megy alacsonyabbra, 30-ra. Az alap checkpoint több mint 10 000 órányi előzetes betanítást tartalmaz, így a finomhangolás inkább alkalmazkodik, mintsem a semmiből tanul: 50 tiszta, változatos epizód jobb, mint kétszáz egyetlen konfigurációból.
Mi a különbség a --policy.path és a --policy.pretrained_path között?▾
--policy.path betölti a súlyokat és a checkpoint config.json fájlját, így az olyan tárolt beállítások, mint az n_action_steps, öröklődnek, és a --policy.type-ot el kell hagyni. A --policy.pretrained_path csak a súlyokat tölti be: a funkciónevek az adatkészletből származnak, a tárolt beállítások visszaállnak, a --policy.type kötelező. Ezért adja át a LIBERO parancs az n_action_steps=10 és empty_cameras=1 paramétereket explicit módon; különben visszaállnak 50-re és 0-ra.
Az nyílt verzió a teljes Pi0.5-öt adja a tanulmányból?▾
Nem. Mindkettő csak a flow matching action head-et támogatja. A diszkrét tokenes előzetes betanítási szakasz a FAST action tokenizerrel és a magas szintű alfeladat-előrejelzéssel nem került kiadásra, és a lerobot/pi05_base kártya RL-t is hozzáad ehhez a listához, annak ellenére, hogy a pi0.5 tanulmány nem ír le megerősítő tanulási szakaszt. Ön egy alacsony szintű irányelvet tanít be egy Ön által megadott nyelvi stringre kondicionálva, nem pedig egy olyan modellt, amely maga bontja fel a hosszú feladatot.
Mely verziókhoz készült ez az útmutató?▾
Az openpi a main ágon és a lerobot 0.6.1, a 2026. augusztus 3. óta kiadott verzió, mindkettő 2026. augusztus 23-án lett olvasva. A v3.0 adatkészletek 0.4.0-val érkeztek 2025 októberében. A 0.6.0 könnyűvé tette az alapcsomagot, így a lerobot[pi] önmagában már nem telepít betanítási stack-et, és a telepítést a lerobot-rollout-ra helyezte át. A betanítási idejű RTC csak a main ágon érhető el; az itt üzemeltetett tréner 0.5.1-et futtat.
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