
Rregulloni imët Pi0.5, VLA-në e përputhjes së fluksit nga Physical Intelligence, në të dhënat tuaja të robotit. Komanda reale për openpi dhe lerobot pi05, kurthe të formatit të grupit të të dhënave, kufizime të VRAM-it dhe vonesës.
Pi0.5 është modeli që zgjidhni kur një politikë duhet të funksionojë në një dhomë që nuk e ka parë kurrë. Është gjithashtu më i vështiri nga pesë politikat e trajnueshme këtu për të akorduar imët me dorë: depoja upstream është JAX së pari, porti LeRobot e zhvendosi vendosjen jashtë lerobot-record në 0.6.0 dhe e bëri instalimin bazë shumë të vogël për t'u trajnuar, dhe një akordim i plotë nuk përshtatet në një 4090. Më poshtë: çfarë përputhja e fluksit kushton në inferencë, dy rrugët e komandës, dhe numri 485 ms që vendos nëse rezultati është i përdorshëm.
Çfarë duhet të dini
- •Një VLA me përputhje fluksi: një VLM PaliGemma 3B plus një ekspert veprimi 300M që dekodon pjesë veprimi të vazhdueshme. Dy rrugë për ta akorduar imët, openpi dhe LeRobot pi05, 0.65 pikë larg në mesataren LIBERO.
- •Akordimi i plotë kërkon më shumë se 70 GB VRAM. openpi liston LoRA në 22.5 GB, vetëm në rrugën e tij JAX.
- •Seti i të dhënave duhet të jetë LeRobotDataset v3.0 me kuantilet q01 dhe q99 në meta/stats.json, ose batch one do të dështojë.
- •Kontrolloni versionin tuaj të lerobot së pari: 0.6.0 e bëri paketën bazë të lehtë dhe e zhvendosi vendosjen jashtë lerobot-record.
- •Këtu funksionon në 485 ms për hap veprimi, kërkon 50 episode, dhe kushton rreth 4 deri në 12 USD për ekzekutim.
Çfarë është në të vërtetë Pi0.5
Physical Intelligence publikoi pi0 në tetor 2024: një model vizion-gjuhë-veprim me përputhje fluksi në një VLM të paratrajnuar: PaliGemma me 3 miliardë parametra plus një ekspert veprimi 300M i inicializuar nga e para, 3.3 miliardë në total. Punimi raporton paratrajnimin në mbi 10,000 orë të dhëna robotike në 7 konfigurime robotike dhe 68 detyra. Më shumë në artikullin pi0.
Pi0.5 (arXiv 2504.16054, 22 Prill 2025) ruan atë skelet dhe ndryshon dietën e trajnimit: të dhëna nga uebi, zbulimi i objekteve, udhëzime verbale nga njerëzit që udhëzojnë robotin, etiketat e nën-detyrave, të dhëna ndër-trupi nga robotë në shumë shtëpi. Rezultati është një robot që pastron kuzhinat në shtëpi që nuk ishin në grupin e trajnimit. README i openpi shton një detaj që titulli nuk e bën: pi0.5 i lëshuar u trajnua me izolim të njohurive (arXiv 2505.23705).
| Vetia | pi0 | pi0.5 |
|---|---|---|
| Varianti i shtyllës kurrizore VLM | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Varianti i ekspertit të veprimit | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| horizonti i veprimit parazgjedhur | 50 | 50 |
| max_token_len | 48 | 200 |
| hyrja e gjendjes diskrete | false | true, gjendja e diskretizuar në kosha në prompt |
| Pika bazë e kontrollit | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
README i openpi është i qartë: depoja mbështet vetëm kokën e përputhjes së fluksit, si për trajnimin ashtu edhe për inferencën e pi0.5. Punimi përshkruan dy faza dhe kodi përmban vetëm të dytën: para-trajnimi paraqet çdo veprim si shenja diskrete përmes tokenizuesit FAST, dhe në vendosje modeli inferon një nën-detyrë të nivelit të lartë para çdo blloku veprimi. Asnjëra prej tyre nuk është në depo. Karta lerobot/pi05_base jep të njëjtën listë dhe shton RL, megjithëse punimi pi0.5 nuk përshkruan fare asnjë fazë të mësimit me përforcim. Porti LeRobot trashëgon atë fushëveprim, dhe po ashtu çdo trajner i hostuar në të, duke përfshirë atë këtu. Licencimi është gjithashtu i ndarë: faqja e dokumentacionit pi05 thotë Apache 2.0, karta lerobot/pi05_base është etiketuar license: gemma.
Çfarë ndryshon përputhja e fluksit në lidhje me trajnimin dhe inferencën
Një politikë që mund të trajnohet në një SO-100 ose regreson veprimet direkt (ACT) ose i tokenizon ato dhe i dekodon autoregresivisht (pi0-FAST). Përputhja e fluksit nuk bën asnjërën: ajo mëson një fushë vektoriale që transporton zhurmën në një copë veprimi, pastaj e integron atë. Punimi pi0 përdor 10 hapa integrimi me madhësi hapi 0.1; konfigurimi pi05 i LeRobot ka të njëjtën num_inference_steps: int = 10.
- Trajnimi: humbja regreson një copë veprimi të zhurmuar. Asnjë tokenizues për t'u akorduar, asnjë diskretizim i këndeve tuaja të nyjeve.
- Inferenca: një copë kushton dhjetë kalime përpara përmes ekspertit të veprimit. Kjo është strukturore, jo një problem akordimi.
- Dalja: veprime të vazhdueshme të dimensionit 32, të mbushura brenda, humbja merret në dimensionet që ka roboti juaj. Një krah 6-DoF plus kapëse përdor 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 TrueShtylla kurrizore PaliGemma, dhe porta para saj
PaliGemma (arXiv 2407.07726) është një enkoder vizual SigLIP-So400m në një model gjuhe Gemma-2B, rreth 3B parametra. Pi0.5 trashëgon tokenizuesin e tij, dhe ai tokenizues ndodhet në një depozitë të mbyllur. Kjo është mënyra më e zakonshme që një ekzekutim i parë dështon, para hapi i trajnimit.
Dokumentet e LeRobot pi05 e thonë qartë: pi0.5 përdor tokenizuesin e mbyllur google/paligemma-3b-pt-224, prandaj pranoni licencën e tij në Hub dhe ekzekutoni hf auth login së pari. Qasja jepet manualisht, jo menjëherë. Anashkalojeni, filloni një ekzekutim të paguar në cloud, dhe do të paguani për një pod që nuk mund të shkarkojë një tokenizues.
Para se të filloni: formati i grupit të të dhënave, episodet, hardueri
Pi0.5 në LeRobot lexon një grup të dhënash LeRobot në formatin v3.0, i cili erdhi me lerobot 0.4.0 në tetor 2025: shumë episode për skedar Parquet dhe MP4 në vend të një skedari për episod, me kufij në meta/episodes/ në vend të emrave të skedarëve. Regjistroni me klientin e desktopit ose ndiqni regjistroni grupin tuaj të parë të të dhënave dhe e keni.
| Mënyra | Memoria GPU e kërkuar | Shembull GPU |
|---|---|---|
| Inferenca | më shumë se 8 GB | RTX 4090 |
| Fine-tuning, LoRA | më shumë se 22.5 GB | RTX 4090 |
| Fine-tuning, i plotë | më shumë se 70 GB | A100 80 GB ose H100 |
Pi0.5 dhe SmolVLA kërkojnë LeRobot v3.0. GR00T N1.7 dhe GR00T N1.5 kërkojnë v2.0 ose v2.1 dhe bien në gabim me një dataset v3.0. Një sesion regjistrimi nuk mund t'i ushqejë të dyja pa një konvertim, dhe gabimi nuk thotë "version i gabuar i dataset-it". Shih dataset i refuzuar: kërkohet v3.
# 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 offsetsPlatforma kërkon të paktën 50 episode për Pi0.5, i njëjti prag si GR00T dhe ACT. Para-trajnimi bën punën e rëndë, kështu që 50 episode të pastra janë më të mira se 200 të çrregullta. I ri në këtë? Filloni me udhëzuesin e mbledhjes së të dhënave.

Rruga A: rregullim i imët me depozitën openpi
Implementimi i referencës: JAX së pari, i testuar vetëm në Ubuntu 22.04, i drejtuar nga objekte konfigurimi dhe jo nga flamuj. Një rrugë PyTorch mbërriti në shtator 2025, e vërtetuar në LIBERO. Tre hapa: konvertoni të dhënat tuaja, përcaktoni një konfigurim, trajnoni dhe shërbeni.
- 1Klononi dhe instaloni
openpi përdor uv. GIT_LFS_SKIP_SMUDGE është ajo që lejon LeRobot të vijë si një varësi pa blob-e 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 . - 2Konvertoni të dhënat tuaja në një dataset LeRobot
Upstream ofron konvertues për LIBERO dhe DROID dhe pret që ju të përshtatni njërin. Puna është hartimi i çelësave.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3Shtoni një konfigurim trajnimi
Konfigurimet janë hyrje TrainConfig në src/openpi/training/config.py. Ky përshtat pi05_droid_finetune, me ngarkuesin e peshës të drejtuar te 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, ) - 4Llogaritni statistikat e normës
Ekzekutohet kundrejt emrit të konfigurimit, jo dataset-it. Anashkalimi i tij është dështimi klasik i parë këtu.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5Trajnoni
Variabli lejon JAX të përdorë 90 për qind të memories së GPU-së në vend të 75-ës së paracaktuar. Në një kartë 80 GB kjo vendos nëse ekzekutimi mbijeton.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Shërbejeni
Serveri dëgjon në portën 8000 dhe u përgjigjet kërkesave të vëzhgimit; runtime-i i robotit tuaj është klienti.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Implementimi i PyTorch i openpi nuk mbështet peshat pi0-FAST, precizion të përzier, FSDP, LoRA ose EMA, kështu që LoRA që arrin 22.5 GB është vetëm JAX, nëpërmjet varianteve gemma_2b_lora dhe gemma_300m_lora. Më keq: konfigurimi kopjon skedarët e patch-uar mbi transformers 4.53.2 të instaluar, dhe README paralajmëron se me modalitetin e parazgjedhur të hardlink-ut të uv, kjo modifikon përgjithmonë transformers në cache-in e uv dhe mund të ndikojë në projekte të tjera. Anulojeni me uv cache clean transformers.
Rruga B: rregullim i imët me lerobot pi05
Porta LeRobot përfshin të njëjtat pesha në CLI që tashmë përdorni për ACT dhe SmolVLA. Gjithçka më poshtë u kontrollua kundrejt lerobot 0.6.1, versionit që nga 3 gusht 2026, dhe dokumentacionit të pi05 më 23 gusht 2026. Versionet kanë rëndësi këtu: grupet e të dhënave v3.0 mbërritën me 0.4.0 në tetor 2025, blogu 0.5.0 i 9 marsit 2026 prezanton pi0-FAST dhe Real-Time Chunking, dhe 0.6.0 më 6 korrik 2026 e bëri paketën bazë të lehtë dhe e zhvendosi vendosjen në lerobot-rollout.
Një gjë nuk ndryshoi: lerobot-train dhe lerobot-record ishin tashmë pika hyrëse në 0.3.2, gusht 2025. Një tutorial që ende thërret python -m lerobot.scripts.train i paraprin një viti ndryshimesh dhe nuk është i besueshëm as për pjesën tjetër.
- 1Instaloni me shtesat e duhura
Që nga versioni 0.6.0, instalimi bazë përmban vetëm varësitë thelbësore të ML-së, dhe shtesa pi nuk shton asnjë kod të të dhënave apo trajnimit, kështu që një fine-tune kërkon edhe shtesën e trajnimit. Komandat e vjetra me një rresht dështojnë këtu gjatë importimit.
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]' - 2Autentifikohuni
Pranoni licencën paligemma-3b-pt-224 në një shfletues, pastaj kyçuni në makinën që kryen trajnimin.
bashhf auth login - 3Shtoni statistikat e kuantileve
Pi0.5 normalizon STATE dhe ACTION me kuantile, kështu që meta/stats.json ka nevojë për q01 dhe q99. Setet e të dhënave të vjetra përmbajnë vetëm min, max, mean, std.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4Fine-tune nga lerobot/pi05_base
Vendosni madhësinë e batch-it sipas asaj që karta juaj mund të përballojë; dokumentacioni përdor 64 në LIBERO me 80 GB. Kaloni bfloat16 në mënyrë eksplicite, parazgjedhja e konfigurimit është 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 - 5Ekzekutojeni në krah
Në 0.6.x kjo është lerobot-rollout: lerobot-record refuzon një policy dhe refuzon emrat e seteve të të dhënave eval_. Base drejton krahun, sentry regjistron rollout-in.
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
| Flamuri | Çfarë bën | Shënim |
|---|---|---|
| --policy.type=pi05 | zgjedh Pi0.5 | e kërkuar me pretrained_path, lëreni jashtë me --policy.path |
| --policy.pretrained_path | ngarkon vetëm peshat | emrat e veçorive nga seti juaj i të dhënave, cilësimet e ruajtura rivendosen |
| --policy.path | peshat plus config.json e checkpoint-it | cilësimet e ruajtura si n_action_steps trashëgohen |
| --policy.n_action_steps | hapat e konsumuar për chunk | kthehet në 50, asnjëherë mbi chunk_size (parazgjedhja 50) |
| --policy.train_expert_only | ngrin VLM-në, trajnon ekspertin | parazgjedhja false, më pak memorie, njëfarë kostoje në sukses |
| --policy.gradient_checkpointing | rikalkulon në vend që të ruajë aktivizimet | parazgjedhja false, leva e parë kur një ekzekutim nuk do të përshtatet |
| --peft.method_type=LORA | adapterët LoRA në vend të peshave të plota | kërkon shtesën peft, shembulli i dokumentuar është SmolVLA |
| --policy.rtc_training_max_delay | kondicionimi i prefiksit të veprimit për RTC | vetëm në degën kryesore, jo në 0.6.1, duhet të mbetet nën chunk_size |
| --rename_map | harton kolonat e setit të të dhënave në veçoritë e policy-t | e nevojshme kur çelësat e kamerës suaj ndryshojnë |
Pa kuantile do të merrni ValueError: QUANTILES normalization mode requires q01 and q99 stats në batch-in e parë. Rikalkuloni statistikat, por rezultati përfundon në $HF_LEROBOT_HOME/your_dataset, jo në cache-in që lexon --dataset.repo_id, kështu që trajnoni me --dataset.root që tregon atje ose shtyjeni në Hub. Ose anashkaloni kuantilet me --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', siç bën komanda referencë e LIBERO-s.
Tre grupe parazgjedhjesh, dhe cilat prej tyre arrijnë te trajnuesi
TrainConfig i openpi është referenca, PI05Config i LeRobot është ajo që lerobot-train përdor kur nuk thoni asgjë, dhe formulari këtu dërgon një grup të tretë. Surpriza është shkalla e të mësuarit: të dy parazgjedhjet e sipërme arrijnë kulmin në 2.5e-5, ndërsa konfigurimi pi05_libero i openpi dhe kjo platformë e rrisin atë në 5e-5.
| Cilësimi | openpi TrainConfig | lerobot pi05 dhe lerobot-train | AY-Robots dërgon |
|---|---|---|---|
| Madhësia e grupit | 32 | 8 | 1 |
| Shkalla maksimale e të mësuarit | 2.5e-5, zbritje kosinusi | optimizer_lr 2.5e-5 | 5e-5 |
| Hapat e trajnimit | 30,000 | 100,000 | 30,000 |
| Intervali i pikës së kontrollit | 1,000 hapa | 20,000 hapa | nuk është në formular |
| Fara | 42 | 1,000 | në formular |
| Blloku i veprimit | action_horizon 50 | chunk_size 50, n_action_steps 50 | nuk është në formular |
| Tipi i të dhënave të peshës | bfloat16 | float32 derisa të kaloni --policy.dtype | nuk është në formular |
| Akumulimi i gradientit | nuk ka një rregullator të tillë, fsdp_devices në vend të kësaj | mungon në çdo version deri më tani | 16, dhe është hequr |
A është i besueshëm porti? Ekipi i LeRobot rregulloi modelin bazë LIBERO për 6 mijë hapa të tjerë dhe e krahasoi me numrat referencë të openpi në katër suita: 97.5 për qind mesatarisht kundrejt 96.85, përpara në Libero 10, prapa në Spatial. Rruga është një zgjedhje mjetesh, jo cilësie.
- Më shumë se 10,000 orë para-trajnimi robotik pas tij, kështu që 50 episode të detyrës suaj mund të jenë të mjaftueshme.
- Veprime të vazhdueshme: asnjë tokenizues për të rregulluar, asnjë kufi diskretizimi në këndet tuaja të kyçeve.
- Porti LeRobot shënon 97.5 për qind në mesataren LIBERO kundrejt 96.85 të openpi, kështu që CLI më miqësor nuk kushton asgjë të matshme.
- Shtigje efikase në parametra në të dy anët: variantet JAX LoRA të openpi, integrimi PEFT i LeRobot.
- Rregullimi i plotë i imët kërkon më shumë se 70 GB. Shifra 22.5 GB LoRA është numri JAX i openpi; asnjë nuk është publikuar për pi05 nën PEFT.
- 485 ms për hap veprimi, më i ngadalti nga pesë këtu: dy herë SmolVLA, njëzet e katër herë ACT.
- Kërkohet LeRobot v3.0, kështu që një grup të dhënash i regjistruar për një ekzekutim GR00T duhet të konvertohet, dhe anasjelltas.
- Opsionet e reja shfaqen së pari në main: RTC dhe memoria MEM gjatë trajnimit nuk janë në 0.6.1, kështu që dokumentet më të reja mund të nënkuptojnë instalimin nga git.
Realiteti i 485 ms, dhe ku pushon të jetë i përdorshëm
Kjo vendos për projektin tuaj, prandaj vjen para tabelës së kostos. për hap veprimi e matur këtu për Pi0.5 është 485 ms. Kundrejt katër të tjerave:
| Politika | Inferenca për hap veprimi | Parametrat | Niveli i GPU-së | Epizodat minimale |
|---|---|---|---|---|
| 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 |

Cikli i kontrollit në këto pesë modele zgjat 20 deri në 485 ms për hap veprimi. Udhëtimet vajtje-ardhje në internetin publik, mbi 485 ms, e kthejnë një politikë funksionale në një të hezituar. Inferenca në distancë është e realizueshme për marrje-vendosje të ngadaltë, jo për lëvizje të shpejtë reaktive. Më mirë ta themi këtë sesa të shesim një demo që funksionon vetëm në një LAN. Nëse krahu juaj ndalon midis copave, filloni te politika ngrin në mes të lëvizjes.
Upstream ka një përgjigje, dhe gjysma e saj është tashmë në versionin që mund të instaloni. Chunking në Kohë Reale gjeneron copën tjetër ndërsa krahu është ende duke ekzekutuar atë aktualen, pastaj udhëzon hapat mbivendosës të copës së re të qëndrojnë afër pjesës së ekzekutuar tashmë, në mënyrë që krahu të mos ngecë ose të dridhet në bashkim. Forma e kohës së inferencës u dërgua në changelog-un 0.4.2 për Pi0, Pi0.5 dhe SmolVLA dhe është një flamur shpërndarjeje, jo një ritrajnim:
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=60Nuk e bën modelin më të shpejtë. Ajo fsheh boshllëkun: 485 ms ende shpenzohen, por jashtë rrugës kritike, kështu që radha nuk thahet midis copave. Varianti i kohës së trajnimit nga arXiv 2512.05964 shkon më tej: modeli mëson të kushtëzohet nga një prefiks veprimi i pastër, kështu që në inferencë mbivendosja është e pikturuar fort me hapa kohorë të rrjedhës për veprim në vend të udhëzuar, dhe kalimi i pasmë i udhëzimit zhduket. Gjatë trajnimit, ai merr një gjatësi prefiksi për shembull dhe merr humbjen e rrjedhës në prapashtesën e mbetur. Ai flamur ekziston vetëm në main, jo në 0.6.1, dhe vonesa për të cilën trajnoni duhet të mbetet nën chunk_size.
Dy mënyra për të marrë një pikë kontrolli Pi0.5
Ju merrni me qira ose zotëroni një kartë 80 GB, instaloni një nga stack-et e mësipërme, konvertoni setin tuaj të të dhënave dhe mbikëqyrni ekzekutimin. Ju mbani çdo kontroll: JAX LoRA e openpi, adapterët PEFT të LeRobot, veprimet relative, hartimet e personalizuara të çelësave. Ju gjithashtu mbani çdo dështim.
- Hardware: A100 80 GB ose H100, ose një kartë 24 GB në rrugën JAX LoRA të openpi.
- Konfigurimi: një pasdite për ekzekutimin e parë, kryesisht hartimi i çelësave dhe tokenizuesi i mbyllur.
- Jo në formën e hostuar: adapterët PEFT, veprimet relative, RTC gjatë trajnimit, memoria 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=1000Ju zgjidhni modelin dhe setin e të dhënave në formularin e trajnimit, backend-i merr me qira një GPU në një treg spot sipas VRAM-it të kërkuar, ekzekuton trajnerin dhe shkruan pika kontrolli në ruajtjen e objekteve. Pi0.5 është vetëm në cloud këtu. Ekzistojnë udhëzues për SO-100, SO-101, Koch v1.1 dhe LeKiwi.
| Cilësimi | Çfarë dërgon platforma për Pi0.5 |
|---|---|
| Pikë kontrolli bazë | lerobot/pi05_base |
| Lloji i politikës | pi05 |
| Madhësia e batch-it | 1 |
| Shkalla e të mësuarit | 5e-5 |
| Hapat maksimalë | 30000 |
| Akumulimi i gradientit | 16, por shihni paralajmërimin më poshtë |
| Kontrolle shtesë në formular | seed, logFreq |
| Formati i setit të të dhënave | LeRobot v3.0 |
| Niveli i GPU-së | A100 80 GB ose H100 80 GB |
Trajneri dërgon një vlerë akumulimi gradienti prej 16 dhe lerobot 0.5.1 nuk ka asnjë flamur për ta marrë atë, kështu që ajo hidhet poshtë. Asnjë lerobot i lëshuar nuk e ka një të tillë: kontrolli ekziston vetëm në degën kryesore, si --accelerator.gradient_accumulation.steps. Madhësia efektive e batch-it këtu është 1, kundrejt 256 që përdor konfigurimi pi05_libero i openpi. Vlen të dihet para se të lexoni një kurbë humbjeje. Kontrolli zbatohet në GR00T N1.7 dhe ekzekutimet e GR00T N1.5.
Inferenca funksionon në të njëjtën mënyrë: një pod është i përgatitur për të shërbyer politikën dhe klienti juaj lokal komunikon me të. Pod-i ka një watchdog pasiv dhe shkatërron veten, kështu që një tab i harruar nuk faturohet në heshtje. Vlen paralajmërimi i latencës, prandaj ACT në 20 ms shpesh fiton një detyrë të shpejtë.
Kur nuk funksionon
| Simptoma | Shkaku më i mundshëm |
|---|---|
| Ekzekutimi u refuzua para se të fillonte | Seti i të dhënave v2.1 por Pi0.5 kërkon v3.0, ose e kundërta për GR00T |
| ImportError, paketa e seteve të të dhënave mungon | lerobot 0.6.x pa shtesën e trajnimit |
| ValueError rreth q01 dhe q99 në batch-in e parë | Nuk ka kuantile në meta/stats.json; rikomputoni ose përdorni MEAN_STD |
| CUDA pa memorie në hapin 0 | Fine-tune i plotë nën 70 GB; provoni checkpointing ose train_expert_only |
| Gabim 401 ose gabim i depozitës së mbyllur | Licenca e tokenizuesit PaliGemma nuk është pranuar |
| Humbja bie, roboti nuk bën asgjë | Mospërputhje normalizimi, ose politika kopjon gjendjen |
| Krahu ndalon midis copave | Latencë për hap plus udhëtim vajtje-ardhje; radha e copave thahet |
| Funksionon në një konfigurim, dështon në një tjetër | Shumë pak episode, ose të gjitha në një konfigurim |
- Set i të dhënave i refuzuar: kërkohet v3
- Mungesë memorie gjatë trajnimit
- Humbja bie, por politika nuk bën asgjë
- Politika ngrin në mes të lëvizjes
- Politika funksionon vetëm në një konfigurim
- Puna e trajnimit ngecur në radhë
Sa kushton një ekzekutim
Pi0.5 ndodhet në nivelin e shtrenjtë sepse kërkon një kartë 80 GB, dhe çmimet spot lëvizin, kështu që shifra është një interval dhe jo një çmim. Për shumë detyra SO-100, trajnoni SmolVLA ose ACT në nivelin 24 GB fillimisht, konfirmoni që detyra është e mësimshme, pastaj shpenzoni orë A100 për të. Trajnoni politikën tuaj të parë përshkruan atë cikël më të lirë, dhe çmimet përmban nivelet aktuale.
| Niveli | Politikat | Ekzekutim tipik | Çmimi për orë | Kostoja për ekzekutim |
|---|---|---|---|---|
| A100 80 GB ose H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 deri në 6 orë | 1.20 deri në 2.00 USD | rreth 4 deri në 12 USD |
| RTX 4090 ose çdo kartë 24 GB | SmolVLA, ACT | 2 deri në 5 orë | 0.30 deri në 0.60 USD | rreth 1 deri në 3 USD |

Para se të angazhoheni për një mbrëmje: dhe paraqesin të njëjtat numra kokë më kokë. përmban 85 modele VLA me 332 rezultate benchmark, secila e lidhur me burimin e saj, dhe informacione rreth familjes gjenden në .
Trajnoni Pi0.5 pa ndërtuar stack-un
Zgjidhni grupin e të dhënave dhe hiperparametrat në një formular. Backend-i merr me qira një kartë 80 GB në tregun spot, ekzekuton trajnerin dhe shkruan pikat e kontrollit në ruajtjen e objekteve. Udhëzues për SO-100, SO-101, Koch v1.1 dhe LeKiwi.
Hapni udhëzuesit e trajnimitA mund ta rregulloj Pi0.5 në një RTX 4090?▾
Jo një rregullim i plotë: openpi liston më shumë se 70 GB për këtë, pra një A100 80 GB ose një H100. Shifra e tij 22.5 GB LoRA i përket shtegut JAX; implementimi PyTorch nuk ka LoRA. Integrimi PEFT i LeRobot ekziston, por shembulli i tij i dokumentuar është SmolVLA dhe nuk është publikuar asnjë shifër VRAM për pi05.
Sa episode më duhen?▾
Pesëdhjetë, i njëjti nivel si GR00T dhe ACT; vetëm SmolVLA shkon më poshtë, në 30. Pika e kontrollit bazë mbart më shumë se 10,000 orë para-trajnimi, kështu që rregullimi përshtatet në vend që të mësojë nga asgjëja: 50 episode të pastra, të ndryshme mundin dyqind nga një konfigurim.
Cili është ndryshimi midis --policy.path dhe --policy.pretrained_path?▾
--policy.path ngarkon peshat dhe config.json e pikës së kontrollit, kështu që cilësimet e ruajtura si n_action_steps trashëgohen dhe --policy.type duhet të hiqet. --policy.pretrained_path ngarkon vetëm peshat: emrat e veçorive vijnë nga grupi juaj i të dhënave, cilësimet e ruajtura rivendosen, --policy.type kërkohet. Kjo është arsyeja pse komanda LIBERO kalon n_action_steps=10 dhe empty_cameras=1 në mënyrë eksplicite; përndryshe ato kthehen në 50 dhe 0.
A më jep versioni i hapur Pi0.5 të plotë nga punimi?▾
Jo. Të dyja mbështesin vetëm kokën e veprimit të përputhjes së fluksit. Faza e para-trajnimit me token diskret me tokenizuesin e veprimit FAST dhe parashikimi i nën-detyrave të nivelit të lartë nuk u lëshuan, dhe karta lerobot/pi05_base shton RL në atë listë edhe pse punimi pi0.5 nuk përshkruan asnjë fazë të mësimit përforcues. Ju trajnoni një politikë të nivelit të ulët të kushtëzuar nga një varg gjuhe që ju ofroni, jo një model që dekompozon vetë një detyrë të gjatë.
Kundër cilave versione është shkruar ky udhëzues?▾
openpi në main dhe lerobot 0.6.1, versioni që nga 3 gusht 2026, të dyja të lexuara më 23 gusht 2026. Grupet e të dhënave v3.0 mbërritën me 0.4.0 në tetor 2025. 0.6.0 e bëri paketën bazë të lehtë, kështu që lerobot[pi] vetëm nuk instalon më një stack trajnimi, dhe zhvendosi vendosjen në lerobot-rollout. RTC në kohë trajnimi është vetëm në main; trajneri i hostuar këtu ekzekuton 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