AY-Robots apmokymo matrica su penkiomis politikomis eilutėse ir keturiomis roboto rankomis stulpeliuose, kiekviena ląstelė yra nuoroda į konkretų tikslinimo vadovą
Pi0.5Srauto atitikimasVLA apmokymasLeRobotTikslinimas

Kaip apmokyti Pi0.5 su savo roboto duomenimis

AY-Robots ResearchAugust 23, 202616 min. skaitymo

Tiksliai suderinkite Pi0.5, srauto atitikimo VLA iš Physical Intelligence, su savo roboto duomenimis. Tikros komandos openpi ir lerobot pi05, duomenų rinkinio formato spąstai, VRAM ir vėlavimo ribos.

Pi0.5 yra modelis, kurį pasirenkate, kai politika turi veikti kambaryje, kurio niekada nematė. Tai taip pat yra nepatogiausia iš penkių apmokomos politikos čia, kad tiksliai sureguliuotumėte rankiniu būdu: pirminė saugykla pirmiausia yra JAX, LeRobot prievadas perkėlė diegimą iš lerobot-record 0.6.0 versijoje ir padarė bazinį diegimą per mažą apmokymui, o pilnas tikslus sureguliavimas netelpa į 4090. Žemiau: ką srauto derinimas kainuoja išvados metu, du komandų maršrutai ir 485 ms skaičius, kuris nusprendžia, ar rezultatas yra tinkamas naudoti.

Ką reikia žinoti

  • Srauto derinimo VLA: 3B PaliGemma VLM plius 300M veiksmo ekspertas, dekoduojantis ištisinius veiksmo fragmentus. Du būdai jį tiksliai sureguliuoti: openpi ir LeRobot pi05, 0.65 punkto skirtumas LIBERO vidurkiu.
  • Visam tiksliam sureguliavimui reikia daugiau nei 70 GB VRAM. openpi nurodo LoRA 22.5 GB, tik JAX kelyje.
  • Duomenų rinkinys turi būti LeRobotDataset v3.0 su q01 ir q99 kvantiliais meta/stats.json, kitaip pirmoji partija sukels klaidą.
  • Pirmiausia patikrinkite savo lerobot versiją: 0.6.0 padarė bazinį paketą lengvą ir perkėlė diegimą iš lerobot-record.
  • Čia jis veikia 485 ms per veiksmo žingsnį, reikalauja 50 epizodų ir kainuoja apie 4–12 USD už paleidimą.

Kas iš tikrųjų yra Pi0.5

Physical Intelligence 2024 m. spalio mėn. paskelbė pi0: srauto derinimo regos-kalbos-veiksmo modelis ant iš anksto apmokyto VLM: PaliGemma su 3 milijardais parametrų plius 300M veiksmo ekspertas, inicializuotas nuo nulio, iš viso 3.3 milijardo. Straipsnyje pranešama apie išankstinį apmokymą naudojant daugiau nei 10 000 valandų roboto duomenų, apimančių 7 robotų konfigūracijas ir 68 užduotis. Daugiau pi0 straipsnyje.

Pi0.5 (arXiv 2504.16054, 2025 m. balandžio 22 d.) išlaiko tą karkasą ir keičia mokymo dietą: žiniatinklio duomenys, objektų aptikimas, žodinės instrukcijos iš žmonių, mokančių robotą, potaskių etiketės, kryžminio įkūnijimo duomenys iš robotų daugelyje namų. Rezultatas – robotas, valantis virtuves namuose, kurie nebuvo mokymo rinkinyje. „openpi README“ prideda detalę, kurios nėra pavadinime: išleistas pi0.5 buvo apmokytas su žinių izoliacija (arXiv 2505.23705).

Savybėpi0pi0.5
VLM pagrindinio tinklo variantasgemma_2b (PaliGemma)gemma_2b (PaliGemma)
Veiksmų eksperto variantasgemma_300mgemma_300m
action_dim3232
numatytasis veiksmų horizontas5050
max_token_len48200
diskrečios būsenos įvestisfalsetrue, būsena diskretizuota į segmentus raginime
Bazinis kontrolinis taškasgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
Kas yra vieša, nėra visas straipsnis

„openpi README“ aiškiai nurodo: saugykla palaiko tik srauto atitikimo galvutę, skirtą pi0.5 mokymui ir išvadoms. Straipsnyje aprašomi du etapai, o kode yra tik antrasis: išankstinis mokymas kiekvieną veiksmą atvaizduoja kaip diskrečius žetonus per FAST tokenizatorių, o diegimo metu modelis numato aukšto lygio potaskį prieš kiekvieną veiksmų fragmentą. Nė vienas iš jų nėra saugykloje. Kortelė lerobot/pi05_base pateikia tą patį sąrašą ir prideda RL, nors pi0.5 straipsnyje apskritai neaprašomas joks stiprinimo mokymosi etapas. „LeRobot“ prievadas paveldi tą apimtį, kaip ir kiekvienas jame esantis prieglobos mokytojas, įskaitant šį čia. Licencijavimas taip pat padalintas: pi05 dokumentacijos puslapyje nurodoma Apache 2.0, kortelė lerobot/pi05_base pažymėta license: gemma.

Ką srauto atitikimas keičia mokyme ir išvadose

Politika, politiką, kurią galite apmokyti SO-100, tiesiogiai regresuoja veiksmus (ACT) arba juos tokenizuoja ir dekoduoja autoregresyviai (pi0-FAST). Srauto derinimas nedaro nei vieno iš šių: jis išmoksta vektorinį lauką, kuris perneša triukšmą į švarų veiksmų fragmentą, tada jį integruoja. pi0 straipsnyje naudojami 10 integravimo žingsnių, kurių žingsnio dydis yra 0.1; LeRobot pi05 konfigūracija turi tą patį `num_inference_steps: int = 10`.

  • Apmokymas: nuostolis regresuoja triukšmingą veiksmų fragmentą. Nėra tokenizatoriaus, kurį reikėtų derinti, jokio jūsų sąnarių kampų diskretizavimo.
  • Išvada: vienas fragmentas kainuoja dešimt tiesioginių perdavimų per veiksmų ekspertą. Tai yra struktūrinė, o ne derinimo problema.
  • Išvestis: tolydūs 32 matmenų veiksmai, viduje užpildyti, nuostolis apskaičiuojamas pagal jūsų roboto matmenis. 6-Laisvės laipsnių ranka plius griebtuvas naudoja 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
Perskaityta iš src/openpi/models/pi0_config.py, esančio openpi pagrindinėje šakoje, 2026 m. rugpjūčio 23 d.

PaliGemma pagrindas ir vartai prieš jį

PaliGemma (arXiv 2407.07726) yra SigLIP-So400m vaizdo kodavimo įrenginys, veikiantis su Gemma-2B kalbos modeliu, turinčiu apie 3B parametrų. Pi0.5 paveldi savo tokenizatorių, ir tas tokenizatorius yra uždaroje saugykloje. Tai yra dažniausias būdas, kaip pirmasis paleidimas žlunga, dar prieš pirmąjį mokymo žingsnį.

Priimkite uždarą licenciją prieš nuomodami GPU

LeRobot pi05 dokumentacija aiškiai nurodo: pi0.5 naudoja uždarą google/paligemma-3b-pt-224 tokenizatorių, todėl pirmiausia priimkite jo licenciją Hub'e ir paleiskite hf auth login. Prieiga suteikiama rankiniu būdu, ne iš karto. Praleiskite tai, paleiskite mokamą debesies vykdymą ir mokėsite už pod'ą, kuris negali atsisiųsti tokenizatoriaus.

Prieš pradedant: duomenų rinkinio formatas, epizodai, aparatinė įranga

Pi0.5 LeRobot'e nuskaito LeRobot duomenų rinkinį v3.0 išdėstymu, kuris pasirodė su lerobot 0.4.0 2025 m. spalį: daug epizodų viename Parquet ir MP4 faile, o ne vienas failas vienam epizodui, su ribomis meta/episodes/ kataloge, o ne failų pavadinimuose. Įrašykite naudodami darbalaukio klientą arba sekite įrašykite savo pirmąjį duomenų rinkinį ir turėsite tai.

RežimasReikalinga GPU atmintisPavyzdinė GPU
Inferencijadaugiau nei 8 GBRTX 4090
Tikslinimas, LoRAdaugiau nei 22.5 GBRTX 4090
Tikslinimas, pilnasdaugiau nei 70 GBA100 80 GB or H100
Versijos spąstai, kainuojantys dieną

Pi0.5 ir SmolVLA reikalauja LeRobot v3.0. GR00T N1.7 ir GR00T N1.5 reikalauja v2.0 arba v2.1 ir sugenda su v3.0 duomenų rinkiniu. Viena įrašymo sesija negali maitinti abiejų be konversijos, o klaida nenurodo "neteisinga duomenų rinkinio versija". Žr. duomenų rinkinys atmestas: reikalinga v3.

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
Iš LeRobotDataset v3.0 dokumentacijos.

Platforma reikalauja bent 50 epizodų Pi0.5, tas pats minimumas kaip GR00T ir ACT. Išankstinis apmokymas atlieka didžiąją dalį darbo, todėl 50 švarių epizodų yra geriau nei 200 aplaidžių. Naujokas šioje srityje? Pradėkite nuo duomenų rinkimo vadovo.

AY-Robots politikų puslapis, lyginantis penkias apmokomas politikas pagal parametrus, GPU lygį, delsą ir minimalų epizodų skaičių
Pi0.5 yra A100 ir H100 lygio, veiksmo žingsnis trunka 485 ms, su 50 epizodų minimumu.

A maršrutas: tikslinimas naudojant openpi saugyklą

Etaloninė implementacija: pirmiausia JAX, išbandyta tik Ubuntu 22.04, valdoma konfigūracijos objektais, o ne vėliavėlėmis. PyTorch kelias atsirado 2025 m. rugsėjį, patvirtintas LIBERO. Trys žingsniai: konvertuokite duomenis, apibrėžkite konfigūraciją, apmokykite ir paleiskite.

  1. 1
    Klonuoti ir įdiegti

    openpi naudoja uv. GIT_LFS_SKIP_SMUDGE leidžia LeRobot būti priklausomybe be LFS didelių dvejetainių failų.

    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
    Konvertuokite savo duomenis į LeRobot duomenų rinkinį

    Aukštesnio lygio tiekėjas pateikia konverterius LIBERO ir DROID ir tikisi, kad pritaikysite vieną iš jų. Darbas yra raktų susiejimas.

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    Pridėti apmokymo konfigūraciją

    Konfigūracijos yra TrainConfig įrašai src/openpi/training/config.py. Ši pritaiko pi05_droid_finetune, o svorio įkėliklis nukreiptas į 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
    Apskaičiuoti normos statistiką

    Vykdoma pagal konfigūracijos pavadinimą, o ne duomenų rinkinį. Praleidus tai, čia yra klasikinė pirmoji klaida.

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

    Šis kintamasis leidžia JAX naudoti 90 procentų GPU atminties vietoj numatytųjų 75. 80 GB kortelėje tai lemia, ar paleidimas išgyvens.

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

    Serveris klausosi 8000 prievado ir atsako į stebėjimo užklausas; jūsų roboto vykdymo aplinka yra klientas.

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
PyTorch kelias nėra JAX kelias

openpi PyTorch implementacija nepalaiko pi0-FAST, mišraus tikslumo, FSDP, LoRA ar EMA svorių, todėl LoRA, kuri pasiekia 22.5 GB, yra tik JAX, per gemma_2b_lora ir gemma_300m_lora variantus. Blogiau: sąranka nukopijuoja pataisytus failus ant jūsų įdiegtų transformers 4.53.2, o README įspėja, kad naudojant uv numatytąjį kietosios nuorodos režimą tai visam laikui modifikuoja transformers uv talpykloje ir gali paveikti kitus projektus. Atšaukite tai su uv cache clean transformers.

B maršrutas: tikslus derinimas su lerobot pi05

LeRobot prievadas apjungia tuos pačius svorius CLI, kurį jau naudojate ACT ir SmolVLA. Viskas toliau buvo patikrinta su lerobot 0.6.1, išleistu nuo 2026 m. rugpjūčio 3 d., ir pi05 dokumentacija 2026 m. rugpjūčio 23 d. Versijos čia svarbios: v3.0 duomenų rinkiniai pasirodė su 0.4.0 2025 m. spalį, 2026 m. kovo 9 d. 0.5.0 tinklaraštis pristato pi0-FAST ir Real-Time Chunking, o 0.6.0 2026 m. liepos 6 d. padarė bazinį paketą lengvą ir perkėlė diegimą į lerobot-rollout.

Vienas dalykas nepasikeitė: lerobot-train ir lerobot-record jau buvo įėjimo taškai 0.3.2 versijoje, 2025 m. rugpjūtį. Mokomoji medžiaga, kuri vis dar naudoja python -m lerobot.scripts.train, yra senesnė nei metų pokyčiai ir ja neverta pasitikėti ir dėl kitų dalykų.

  1. 1
    Įdiekite su tinkamais priedais

    Nuo 0.6.0 bazinis diegimas apima tik pagrindines ML priklausomybes, o „pi“ priedas neprideda duomenų rinkinio ar mokymo kodo, todėl smulkiam derinimui reikalingas ir mokymo priedas. Senesnės vienos eilutės komandos čia nepavyksta importavimo metu.

    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
    Autentifikuoti

    Naršyklėje priimkite paligemma-3b-pt-224 licenciją, tada prisijunkite prie mašinos, kuri treniruoja.

    bash
    hf auth login
  3. 3
    Pridėti kvantilių statistiką

    Pi0.5 normalizuoja STATE ir ACTION su kvantiliais, todėl meta/stats.json reikalingi q01 ir q99. Senesni duomenų rinkiniai turi tik 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
    Smulkus derinimas iš lerobot/pi05_base

    Nustatykite paketo dydį pagal tai, ką jūsų kortelė gali atlaikyti; dokumentuose naudojama 64 LIBERO su 80 GB. Aiškiai nurodykite bfloat16, numatytasis konfigūracijos nustatymas yra 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
    Paleiskite ant roboto rankos

    0.6.x versijoje tai yra lerobot-rollout: lerobot-record atmeta politiką ir atmeta eval_ duomenų rinkinių pavadinimus. Bazė valdo ranką, sentry įrašo išleidimą.

    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
FlagKą tai daroPastaba
--policy.type=pi05pasirenka Pi0.5reikalingas su pretrained_path, praleisti su --policy.path
--policy.pretrained_pathįkelia tik svoriusfunkcijų pavadinimai iš jūsų duomenų rinkinio, išsaugoti nustatymai atstatomi
--policy.pathsvoriai ir kontrolinio taško config.jsonišsaugoti nustatymai, tokie kaip n_action_steps, yra paveldimi
--policy.n_action_stepsžingsniai, sunaudoti vienam gabaluigrįžta prie 50, niekada neviršija chunk_size (numatytasis 50)
--policy.train_expert_onlyužšaldo VLM, apmoko ekspertąnumatytasis false, mažiau atminties, tam tikra sėkmės kaina
--policy.gradient_checkpointingperskaičiuoti vietoj aktyvacijų saugojimonumatytasis false, pirmasis svertas, kai paleidimas netelpa
--peft.method_type=LORALoRA adapteriai vietoj pilnų svoriųreikalingas peft priedas, dokumentuotas pavyzdys yra SmolVLA
--policy.rtc_training_max_delayveiksmo-priešdėlio sąlygojimas RTCtik pagrindinėje šakoje, ne 0.6.1, turi likti žemiau chunk_size
--rename_mapsusieja duomenų rinkinio stulpelius su politikos funkcijomisreikalingas, kai jūsų kameros raktai skiriasi
Klaida, su kuria susiduria dauguma pirmųjų paleidimų

Be kvantilių gausite ValueError: QUANTILES normalization mode requires q01 and q99 stats pirmoje partijoje. Perskaičiuokite statistiką, bet rezultatas atsidurs $HF_LEROBOT_HOME/your_dataset, o ne talpykloje, kurią skaito --dataset.repo_id, todėl treniruokite su --dataset.root, nukreipiančiu ten, arba įkelkite į Hub. Arba praleiskite kvantilius su --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', kaip tai daro LIBERO nuorodos komanda.

Trys numatytųjų nustatymų rinkiniai ir kurie iš jų pasiekia treniruoklį

openpi TrainConfig yra etalonas, LeRobot PI05Config yra tai, ką lerobot-train naudoja, kai nieko nenurodote, o čia esanti forma siunčia trečią rinkinį. Staigmena yra mokymosi sparta: abi aukštesnio lygio numatytosios reikšmės pasiekia 2.5e-5, o openpi pi05_libero konfigūracija ir ši platforma ją padidina iki 5e-5.

Nustatymasopenpi TrainConfiglerobot pi05 ir lerobot-trainAY-Robots siunčia
Paketo dydis3281
Didžiausia mokymosi sparta2.5e-5, kosinusinis mažėjimasoptimizer_lr 2.5e-55e-5
Mokymo žingsniai30,000100,00030,000
Kontrolinio taško intervalas1 000 žingsnių20 000 žingsniųnėra formoje
Sėkla421,000formoje
Veiksmo gabalasaction_horizon 50chunk_size 50, n_action_steps 50nėra formoje
Svorio duomenų tipasbfloat16float32 until you pass --policy.dtypenėra formoje
Gradiento kaupimastokio nustatymo nėra, vietoj to fsdp_devicesiki šiol nebuvo nė viename leidime16, ir jis atmetamas

Ar perkėlimas yra tikslus? LeRobot komanda toliau derino LIBERO bazinį modelį 6 tūkst. žingsnių ir palygino su openpi etaloniniais skaičiais keturiuose rinkiniuose: 97.5 procento vidurkis prieš 96.85, pirmauja Libero 10, atsilieka Spatial. Kelias yra įrankių, o ne kokybės pasirinkimas.

Pi0.5 tikslinimas su savo duomenimis
Privalumai
  • Už jo slypi daugiau nei 10 000 valandų roboto išankstinio mokymo, todėl 50 jūsų užduoties epizodų gali būti pakankamai.
  • Nepertraukiami veiksmai: nereikia derinti tokenizatoriaus, nėra diskretizacijos ribos jūsų jungčių kampams.
  • LeRobot perkėlimas pasiekia 97.5 procento LIBERO vidurkio, palyginti su openpi 96.85, todėl patogesnis CLI nieko apčiuopiamo nekainuoja.
  • Parametrų efektyvūs keliai abiejose pusėse: openpi JAX LoRA variantai, LeRobot PEFT integracija.
Kompromisai
  • Visam tikslinimui reikia daugiau nei 70 GB. 22.5 GB LoRA skaičius yra openpi JAX skaičius; pi05 pagal PEFT nėra paskelbta jokio.
  • 485 ms vienam veiksmo žingsniui, lėčiausias iš penkių čia: dvigubai lėtesnis už SmolVLA, dvidešimt keturis kartus lėtesnis už ACT.
  • Reikalinga LeRobot v3.0, todėl duomenų rinkinys, įrašytas GR00T paleidimui, turi būti konvertuojamas, ir atvirkščiai.
  • Naujos parinktys pirmiausia atsiranda pagrindinėje šakoje: mokymo laiko RTC ir MEM atmintis nėra 0.6.1 versijoje, todėl naujausi dokumentai gali reikšti diegimą iš git.

485 ms realybė ir kur ji nustoja būti tinkama naudoti

Tai lemia jūsų projektą, todėl tai pateikiama prieš išlaidų lentelę. vienam veiksmo žingsniui, išmatuotas čia Pi0.5 modeliui, yra 485 ms. Palyginus su kitais keturiais:

PolitikaIšvadų vėlavimas vienam veiksmo žingsniuiParametraiGPU lygisMinimalus epizodų skaičius
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
AY-Robots tiesioginio palyginimo puslapis GR00T N1.7 modeliui prieš Pi0.5, su parametrais, GPU lygiu, vėlavimu ir duomenų rinkinio formatu
Tas pats GPU lygis, tas pats minimalus epizodų skaičius, skirtinga duomenų rinkinio versija, trijų kartų vėlavimo skirtumas.
Išvados turi būti šalia servovariklių

Valdymo ciklas per šiuos penkis modelius veikia 20–485 ms per veiksmo žingsnį. Viešojo interneto kelionės pirmyn ir atgal, viršijančios 485 ms, paverčia veikiančią politiką nedrąsia. Nuotolinės išvados yra tinkamos lėtam paėmimui ir padėjimui, bet ne greitam reaktyviam judesiui. Verčiau tai pasakytume, nei parduotume demonstracinę versiją, kuri veikia tik LAN tinkle. Jei jūsų ranka sustoja tarp dalių, pradėkite nuo politika sustoja judesio viduryje.

Aukštesnis lygis turi atsakymą, ir pusė jo jau yra leidime, kurį galite įdiegti. Realaus laiko skaidymas (Real-Time Chunking) generuoja kitą dalį, kol ranka dar vykdo dabartinę, tada nukreipia persidengiančius naujos dalies žingsnius, kad jie liktų arti jau įvykdytos dalies, todėl ranka nestringa ir netrūkčioja ties sujungimu. Išvadų laiko forma, pristatyta 0.4.2 pakeitimų žurnale, skirta Pi0, Pi0.5 ir SmolVLA, yra diegimo (rollout) vėliavėlė, o ne pertrainavimas:

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 nurodo, su kiek ankstesnės dalies žingsnių naujoji turi sutapti; RTC dokumentuose nurodoma, kad įprastas diapazonas yra nuo 8 iki 12. Numatytasis išvadų posistemis yra --inference.type=sync.

Tai nepagreitina modelio. Tai paslepia tarpą: 485 ms vis dar išleidžiama, bet ne kritiniame kelyje, todėl eilė neišsenka tarp dalių. Mokymo laiko variantas iš arXiv 2512.05964 eina toliau: modelis mokosi sąlygoti švarų veiksmo prefiksą, todėl išvadų metu persidengimas yra griežtai įterpiamas su veiksmo srauto laiko žingsniais, o ne nukreipiamas, ir nukreipimo atgalinis perdavimas dingsta. Mokymo metu jis pavyzdžiui parenka prefikso ilgį ir apskaičiuoja srauto nuostolius likusiam postfiksui. Ši vėliavėlė yra tik pagrindinėje versijoje, ne 0.6.1, ir vėlavimas, kuriam treniruojate, turi likti mažesnis nei chunk_size.

Du būdai gauti Pi0.5 kontrolinį tašką

Nuomojatės arba turite 80 GB kortelę, įdiegiate vieną iš aukščiau nurodytų rinkinių, konvertuojate savo duomenų rinkinį ir prižiūrite vykdymą. Jūs išlaikote kiekvieną nustatymą: openpi JAX LoRA, LeRobot PEFT adapterius, santykinius veiksmus, pasirinktinius klavišų susiejimus. Jūs taip pat išlaikote kiekvieną gedimą.

  • Aparatinė įranga: A100 80 GB arba H100, arba 24 GB kortelė openpi JAX LoRA kelyje.
  • Nustatymas: popietė pirmajam paleidimui, daugiausia klavišų susiejimas ir uždaras tokenizatorius.
  • Nepasiekiami hostingo formoje: PEFT adapteriai, santykiniai veiksmai, mokymo laiko RTC, MEM atmintis.
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
Komanda, kurios nevykdo jokia hostingo forma ir kurios pip negali įdiegti: mokymo laiko RTC yra pagrindinės šakos vėliavėlė.

Kai neveikia

SimptomasTikėtina priežastis
Vykdymas atmestas prieš pradedantDuomenų rinkinys v2.1, bet Pi0.5 nori v3.0, arba atvirkščiai GR00T atveju
ImportError, trūksta datasets paketolerobot 0.6.x be mokymo priedo
ValueError dėl q01 ir q99 pirmajame paketeNėra kvantilių meta/stats.json; perskaičiuokite arba naudokite MEAN_STD
CUDA atminties trūkumas 0 žingsnyjePilnas tikslinimas žemiau 70 GB; pabandykite kontrolinius taškus arba train_expert_only
401 arba uždaro repozitorijos klaidaPaliGemma tokenizatoriaus licencija nepriimta
Nuostoliai krenta, robotas nieko nedaroNormalizavimo neatitikimas, arba politika kopijuoja būseną
Ranka sustoja tarp gabalųVėlavimas per žingsnį plius kelionė pirmyn ir atgal; gabalų eilė ištuštėja
Veikia vienoje konfigūracijoje, neveikia kitojePer mažai epizodų, arba visi vienoje konfigūracijoje

Kiek kainuoja vienas vykdymas

Pi0.5 patenka į brangią pakopą, nes jam reikalinga 80 GB kortelė, o momentinės kainos kinta, todėl nurodyta suma yra diapazonas, o ne konkreti kaina. Daugeliui SO-100 užduočių, pirmiausia apmokykite SmolVLA arba ACT 24 GB pakopoje, patvirtinkite, kad užduotis apskritai yra išmokstama, tada skirkite jai A100 valandų. Apmokykite savo pirmąją politiką paaiškina tą pigesnį ciklą, o kainodara nurodo dabartines pakopas.

PakopaPolitikosĮprastas vykdymasKaina už valandąKaina už vykdymą
A100 80 GB arba H100Pi0.5, GR00T N1.7, GR00T N1.53–6 valandos1.20 to 2.00 USDapie 4–12 USD
RTX 4090 arba bet kokia 24 GB kortelėSmolVLA, ACT2–5 valandos0.30 to 0.60 USDapie 1–3 USD
AY-Robots kainų lentelė, rodanti, kokio GPU reikia kiekvienai politikai, tipinį vykdymo laiką ir kainą bei kiek epizodų reikia, kol politika tampa naudinga
Tos pačios dvi pakopos produkto puslapyje: Pi0.5 nuomojasi 80 GB kortelę, SmolVLA ir ACT telpa į 4090.

Prieš skiriant vakarą: GR00T N1.7 prieš Pi0.5 ir Pi0.5 prieš SmolVLA pateikia tuos pačius skaičius palyginimui. Arena talpina 85 VLA modelius su 332 etaloniniais rezultatais, kiekvienas susietas su savo šaltiniu, o informacija apie šeimą yra mūsų VLA apžvalgoje.

Treniruokite Pi0.5 nestatydami sistemos

Formoje pasirinkite duomenų rinkinį ir hiperparametrus. Užpakalinė sistema nuomojasi 80 GB kortelę neatidėliotinų sandorių rinkoje, paleidžia treniruoklį ir įrašo kontrolinius taškus į objektų saugyklą. Vadovai SO-100, SO-101, Koch v1.1 ir LeKiwi.

Atidaryti mokymo vadovus
Ar galiu tikslinti Pi0.5 su RTX 4090?

Ne pilnas tikslinimas: openpi tam nurodo daugiau nei 70 GB, taigi A100 80 GB arba H100. Jo 22,5 GB LoRA skaičius priklauso JAX keliui; PyTorch implementacija neturi LoRA. LeRobot PEFT integracija egzistuoja, tačiau jos dokumentuotas pavyzdys yra SmolVLA ir nėra paskelbta VRAM reikšmė pi05.

Kiek epizodų man reikia?

Penkiasdešimt, tas pats minimumas kaip GR00T ir ACT; tik SmolVLA yra mažiau, 30. Bazinis kontrolinis taškas turi daugiau nei 10 000 valandų išankstinio apmokymo, todėl tikslinimas prisitaiko, o ne mokosi nuo nulio: 50 švarių, įvairių epizodų yra geriau nei du šimtai iš vienos konfigūracijos.

Kuo skiriasi --policy.path ir --policy.pretrained_path?

--policy.path įkelia svorius ir kontrolinio taško config.json, todėl paveldimi išsaugoti nustatymai, tokie kaip n_action_steps, o --policy.type turi būti praleistas. --policy.pretrained_path įkelia tik svorius: funkcijų pavadinimai gaunami iš jūsų duomenų rinkinio, išsaugoti nustatymai atstatomi, --policy.type yra privalomas. Štai kodėl LIBERO komanda aiškiai perduoda n_action_steps=10 ir empty_cameras=1; priešingu atveju jie grįžta prie 50 ir 0.

Ar atvira versija suteikia man visą Pi0.5 iš straipsnio?

Ne. Abu palaiko tik srauto atitikimo veiksmų galvutę. Diskrečiųjų žetonų išankstinio apmokymo etapas su FAST veiksmų žetonizatoriumi ir aukšto lygio užduočių prognozavimas nebuvo išleisti, o lerobot/pi05_base kortelė prideda RL į tą sąrašą, nors pi0.5 darbe nėra aprašytas joks sustiprinimo mokymosi etapas. Jūs treniruojate žemo lygio politiką, sąlygotą jūsų pateiktos kalbos eilutės, o ne modelį, kuris pats suskaido ilgą užduotį.

Prieš kokias versijas parašytas šis vadovas?

openpi pagrindinėje versijoje ir lerobot 0.6.1, išleista nuo 2026 m. rugpjūčio 3 d., abi perskaitytos 2026 m. rugpjūčio 23 d. v3.0 duomenų rinkiniai pasirodė su 0.4.0 2025 m. spalį. 0.6.0 padarė bazinį paketą lengvą, todėl vien lerobot[pi] nebeįdiegia mokymo sistemos ir perkėlė diegimą į lerobot-rollout. Mokymo laiko RTC yra tik pagrindinėje versijoje; čia esantis hostintas treniruoklis veikia 0.5.1.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started