Матрицата за обука на AY-Robots со пет политики како редови и четири роботски раце како колони, секоја ќелија е врска до специфичен водич за фино подесување
Pi0.5Совпаѓање на протокОбука на VLALeRobotФино подесување

Како да тренирате Pi0.5 на сопствени роботски податоци

AY-Robots ResearchAugust 23, 202616 мин читање

Фино подесете го Pi0.5, VLA моделот за совпаѓање на проток од Physical Intelligence, на вашите сопствени роботски податоци. Вистински команди за openpi и lerobot pi05, замки во форматот на податоци, ограничувања на VRAM и латентност.

Pi0.5 е моделот по кој посегнувате кога политиката треба да работи во просторија што никогаш не ја видела. Исто така е најнезгодниот од петте политики за тренирање тука за фино подесување рачно: изворното складиште е прво JAX, LeRobot портот го премести распоредувањето надвор од lerobot-record во 0.6.0 и ја направи основната инсталација премала за тренирање, а целосното фино подесување не се вклопува на 4090. Подолу: што усогласување на проток чини при заклучување, двете командни рути и бројката од 485 ms што одлучува дали резултатот е употреблив.

Што треба да знаете

  • VLA за усогласување на проток: 3B PaliGemma VLM плус 300M акционен експерт кој декодира континуирани акциони делови. Две рути за фино подесување, openpi и LeRobot pi05, со разлика од 0.65 поени на просекот на LIBERO.
  • Целосното фино подесување бара повеќе од 70 GB VRAM. openpi го наведува LoRA на 22.5 GB, само на неговата JAX патека.
  • Податочното множество мора да биде LeRobotDataset v3.0 со q01 и q99 квантили во meta/stats.json, или првата серија ќе фрли грешка.
  • Прво проверете ја вашата lerobot верзија: 0.6.0 го направи основниот пакет лесен и го премести распоредувањето надвор од lerobot-record.
  • Овде работи со 485 ms по акционен чекор, бара 50 епизоди и чини околу 4 до 12 USD по извршување.

Што всушност е Pi0.5

Physical Intelligence го објави pi0 во октомври 2024 година: модел за усогласување на проток визуелно-јазично-акционен модел на претходно трениран VLM: PaliGemma со 3 милијарди параметри плус 300M акционен експерт иницијализиран од нула, вкупно 3.3 милијарди. Трудот известува за претходно тренирање на над 10,000 часа роботски податоци низ 7 роботски конфигурации и 68 задачи. Повеќе во статијата за pi0.

Pi0.5 (arXiv 2504.16054, 22 април 2025) го задржува тој скелет и ја менува диетата за тренирање: веб податоци, детекција на објекти, вербални инструкции од луѓе кои го тренираат роботот, ознаки за подзадачи, податоци од вкрстено отелотворување од роботи во многу домови. Резултатот е робот кој чисти кујни во куќи кои не биле во сетот за тренирање. README-то на openpi додава детал што насловот не го прави: објавениот pi0.5 беше трениран со изолација на знаење (arXiv 2505.23705).

Својствоpi0pi0.5
Варијанта на VLM основаgemma_2b (PaliGemma)gemma_2b (PaliGemma)
Варијанта на експерт за акцијаgemma_300mgemma_300m
action_dim3232
Стандарден акционен хоризонт5050
max_token_len48200
discrete_state_inputfalsetrue, состојбата дискретизирана во корпи во промптот
Основна контролна точкаgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
Она што е јавно не е целиот труд

README-то на openpi е експлицитно: репозиториумот поддржува само главата за совпаѓање на проток, за тренирање и инференција на pi0.5. Трудот опишува две фази, а кодот ја носи само втората: пред-тренирањето ја претставува секоја акција како дискретни токени преку FAST токенизаторот, а при распоредувањето моделот заклучува подзадача на високо ниво пред секој акционен блок. Ниту едно од нив не е во репозиториумот. Картичката lerobot/pi05_base го дава истиот список и додава RL, иако трудот за pi0.5 воопшто не опишува фаза на засилено учење. Портот на LeRobot го наследува тој опсег, како и секој хостиран тренер на него, вклучувајќи го и овој овде. Лиценцирањето е исто така поделено: страницата со документација за pi05 вели Apache 2.0, картичката lerobot/pi05_base е означена со license: gemma.

Што менува совпаѓањето на протокот во врска со тренирањето и инференцијата

Политика политика што можете да ја тренирате на SO-100 или директно ги регресира дејствата (ACT) или ги токенизира и декодира авторегресивно (pi0-FAST). Поклопувањето на тековите не прави ниту едно од овие: тоа учи векторско поле кое го пренесува шумот до чист акционен блок, а потоа го интегрира. Трудот за pi0 користи 10 чекори на интеграција со големина на чекор 0.1; конфигурацијата pi05 на LeRobot го носи истиот num_inference_steps: int = 10.

  • Тренинг: загубата регресира шумовит акционен блок. Нема токенизатор за подесување, нема дискретизација на вашите агли на зглобовите.
  • Инференца: еден блок чини десет пропуштања нанапред низ акциониот експерт. Тоа е структурно, а не проблем со подесувањето.
  • Излез: континуирани дејства со димензија 32, интерно пополнети, загубата е земена на димензиите што ги има вашиот робот. Рака со 6-DoF плус грабнувач користи 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
Прочитано од src/openpi/models/pi0_config.py на главната гранка openpi, 23 август 2026.

Основата PaliGemma и портата пред неа

PaliGemma (arXiv 2407.07726) е SigLIP-So400m визиски енкодер на јазичен модел Gemma-2B, со околу 3 милијарди параметри. Pi0.5 го наследува својот токенизатор, а тој токенизатор се наоѓа во затворен репозиториум. Ова е најчестиот начин на кој првото извршување пропаѓа, пред првиот чекор на обука.

Прифатете ја затворената лиценца пред да изнајмите графичка картичка

Документацијата на LeRobot pi05 јасно наведува: pi0.5 го користи затворениот google/paligemma-3b-pt-224 токенизатор, затоа прифатете ја неговата лиценца на Hub и прво извршете hf auth login. Пристапот се доделува рачно, не веднаш. Прескокнете го, започнете платено извршување во облак, и ќе платите за под кој не може да преземе токенизатор.

Пред да започнете: формат на податочно множество, епизоди, хардвер

Pi0.5 во LeRobot чита LeRobot податочно множество во распоред v3.0, кој пристигна со lerobot 0.4.0 во октомври 2025: многу епизоди по Parquet и MP4 датотека наместо една датотека по епизода, со граници во meta/episodes/ наместо во имињата на датотеките. Снимајте со десктоп клиент или следете снимање на вашето прво податочно множество и ќе го имате.

РежимПотребна GPU меморијаПример GPU
Заклучување (Inference)повеќе од 8 GBRTX 4090
Дотерување (Fine-tuning), LoRAповеќе од 22.5 GBRTX 4090
Дотерување (Fine-tuning), целосноповеќе од 70 GBA100 80 GB или H100
Верзиската замка која чини еден ден

Pi0.5 и SmolVLA бараат LeRobot v3.0. GR00T N1.7 и GR00T N1.5 бараат v2.0 или v2.1 и паѓаат на v3.0 збир на податоци. Една сесија на снимање не може да ги напојува двете без конверзија, а грешката не вели "погрешна верзија на збирот на податоци". Видете збир на податоци одбиен: потребна е 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
Од документацијата на LeRobotDataset v3.0.

Платформата бара најмалку 50 епизоди за Pi0.5, истиот минимум како за GR00T и ACT. Пред-обуката ја врши најголемата работа, така што 50 чисти епизоди се подобри од 200 невешти. Нови сте во ова? Започнете со водичот за собирање податоци.

Страницата со политики на AY-Robots која ги споредува петте политики за тренирање според параметрите, нивото на графички процесор, латентноста и минималниот број на епизоди
Pi0.5 се наоѓа во нивото A100 и H100 со 485 ms по чекор на акција, со минимум 50 епизоди.

Рута А: фино подесување со openpi складиштето

Референтната имплементација: прво JAX, тестирана само на Ubuntu 22.04, водена од конфигурациски објекти наместо знаменца. Патека за PyTorch пристигна во септември 2025 година, валидирана на LIBERO. Три чекори: конвертирајте ги вашите податоци, дефинирајте конфигурација, тренирајте и сервирајте.

  1. 1
    Клонирај и инсталирај

    openpi користи uv. GIT_LFS_SKIP_SMUDGE е она што му овозможува на LeRobot да дојде како зависност без LFS блобови.

    bash
    git clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git
    cd openpi
    
    GIT_LFS_SKIP_SMUDGE=1 uv sync
    GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
  2. 2
    Конвертирај ги твоите податоци во LeRobot податочно множество

    Upstream испорачува конвертори за LIBERO и DROID и очекува од вас да прилагодите еден. Работата е мапирањето на клучевите.

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    Додај конфигурација за тренирање

    Конфигурациите се записи на TrainConfig во src/openpi/training/config.py. Оваа ја прилагодува pi05_droid_finetune, со вчитувачот на тежини насочен кон 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
    Пресметај нормални статистики

    Се извршува според името на конфигурацијата, а не според податочното множество. Прескокнувањето е класичен прв неуспех овде.

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    Тренирај

    Променливата му овозможува на JAX да користи 90 проценти од меморијата на графичкиот процесор наместо стандардните 75. На картичка од 80 GB тоа одлучува дали извршувањето ќе преживее.

    bash
    XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \
        --exp-name=my_experiment \
        --overwrite
  6. 6
    Сервирај го

    Серверот слуша на порта 8000 и одговара на барања за набљудување; вашето роботско извршување е клиентот.

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Патеката на PyTorch не е патеката на JAX

Имплементацијата на PyTorch на openpi не поддржува pi0-FAST, мешана прецизност, FSDP, LoRA или EMA тежини, така што LoRA што достигнува 22.5 GB е само за JAX, преку варијантите gemma_2b_lora и gemma_300m_lora. Полошо: поставувањето копира закрпени датотеки преку вашите инсталирани transformers 4.53.2, а README предупредува дека со стандардниот режим на хардлинк на uv, ова трајно ги менува transformers во кешот на uv и може да се прошири во други проекти. Поништете го со uv cache clean transformers.

Рута Б: фино подесување со lerobot pi05

Портот на LeRobot ги обвиткува истите тежини во CLI што веќе го користите за ACT и SmolVLA. Сè подолу беше проверено наспроти lerobot 0.6.1, изданието од 3 август 2026 година, и документите за pi05 на 23 август 2026 година. Верзиите се важни овде: v3.0 податочните множества пристигнаа со 0.4.0 во октомври 2025 година, блогот 0.5.0 од 9 март 2026 година ги претставува pi0-FAST и Real-Time Chunking, а 0.6.0 на 6 јули 2026 година го направи основниот пакет лесен и го премести распоредувањето на lerobot-rollout.

Една работа не се промени: lerobot-train и lerobot-record веќе беа влезни точки во 0.3.2, август 2025 година. Упатство што сè уште повикува python -m lerobot.scripts.train претходи на една година промени и вреди да не му се верува и за останатото.

  1. 1
    Инсталирајте со соодветните додатоци

    Од верзија 0.6.0, основната инсталација содржи само основни ML зависности, а додатокот pi не додава код за податоци или обука, така што за фино подесување е потребен и додатокот за обука. Постарите еднолиниски команди не успеваат овде при увоз.

    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
    Автентицирајте се

    Прифатете ја лиценцата paligemma-3b-pt-224 во прелистувач, потоа најавете се на машината што тренира.

    bash
    hf auth login
  3. 3
    Додадете квантилни статистики

    Pi0.5 ги нормализира STATE и ACTION со квантили, така што meta/stats.json бара q01 и q99. Постарите множества на податоци содржат само 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
    Фино подесување од lerobot/pi05_base

    Поставете ја големината на пакетот на она што вашата картичка може да го издржи; документацијата користи 64 на LIBERO со 80 GB. Предадете bfloat16 експлицитно, стандардната конфигурација е 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
    Извршете го на роботската рака

    Во 0.6.x ова е lerobot-rollout: lerobot-record одбива политика и ги отфрла имињата на множествата податоци eval_. Base го управува роботската рака, sentry го снима извршувањето.

    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
ФлагШто правиЗабелешка
--policy.type=pi05избира Pi0.5задолжително со pretrained_path, изоставете со --policy.path
--policy.pretrained_pathвчита само тежиниимиња на карактеристики од вашето множество податоци, зачуваните поставки се ресетираат
--policy.pathтежини плус config.json на контролната точказачуваните поставки како n_action_steps се наследуваат
--policy.n_action_stepsчекори потрошени по парчесе враќа на 50, никогаш над chunk_size (стандардно 50)
--policy.train_expert_onlyзамрзнува VLM, тренира експертстандардно false, помалку меморија, одредена цена во успехот
--policy.gradient_checkpointingпресметува повторно наместо да складира активациистандардно false, прва опција кога извршувањето нема да се вклопи
--peft.method_type=LORALoRA адаптери наместо целосни тежинипотребен е peft додатокот, документиран пример е SmolVLA
--policy.rtc_training_max_delayакција-префикс кондиционирање за RTCсамо главна гранка, не во 0.6.1, мора да остане под chunk_size
--rename_mapмапира колони од множеството податоци на карактеристики на политикатапотребно кога вашите клучеви на камерата се разликуваат
Грешката што ја среќаваат повеќето први извршувања

Без квантили ќе добиете ValueError: QUANTILES normalization mode requires q01 and q99 stats на првиот пакет. Пресметајте ги статистиките повторно, но резултатот завршува во $HF_LEROBOT_HOME/your_dataset, а не во кешот што го чита --dataset.repo_id, па тренирајте со --dataset.root што покажува таму или турнете на Hub. Или прескокнете ги квантилите со --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}', како што прави референтната команда LIBERO.

Три групи на стандардни вредности и кои од нив стигнуваат до тренерот

TrainConfig на openpi е референца, PI05Config на LeRobot е она што lerobot-train го користи кога ништо не кажувате, а формата овде испраќа трет сет. Изненадувањето е стапката на учење: двете стандардни поставки нагоре достигнуваат максимум 2.5e-5, додека сопствената pi05_libero конфигурација на openpi и оваа платформа ја зголемуваат на 5e-5.

Поставкаopenpi TrainConfiglerobot pi05 и lerobot-trainAY-Robots испраќа
Големина на серија3281
Врвна стапка на учење2.5e-5, косинусно опаѓањеoptimizer_lr 2.5e-55e-5
Чекори на тренирање30,000100,00030,000
Интервал на контролна точка1,000 чекори20,000 чекорине е во формата
Почетна вредност421,000во формата
Парче акцијаaction_horizon 50chunk_size 50, n_action_steps 50не е во формата
Тип на податок за тежинаbfloat16float32 додека не го поминете --policy.dtypeне е во формата
Акумулација на градиентнема таква опција, наместо тоа fsdp_devicesотсутен од секое досегашно издание16, и е отфрлен

Дали портот е верен? Тимот на LeRobot го дотера основниот модел LIBERO за дополнителни 6k чекори и го спореди со референтните бројки на openpi на четири пакети: 97.5 проценти просек наспроти 96.85, понапред на Libero 10, поназад на Spatial. Рутата е избор на алатки, а не избор на квалитет.

Дотерување на Pi0.5 на сопствени податоци
Предности
  • Повеќе од 10,000 часа претходно тренирање на робот стојат зад него, така што 50 епизоди од вашата задача може да бидат доволни.
  • Континуирани акции: нема токенизатор за дотерување, нема под на дискретизација на вашите агли на зглобовите.
  • Портот на LeRobot постигнува 97.5 проценти на просекот LIBERO наспроти 96.85 на openpi, така што попријателскиот CLI не чини ништо мерливо.
  • Патеки ефикасни во однос на параметрите од двете страни: JAX LoRA варијанти на openpi, PEFT интеграција на LeRobot.
Компромиси
  • Целосното дотерување бара повеќе од 70 GB. Бројката од 22.5 GB за LoRA е бројка на JAX од openpi; ниту една не е објавена за pi05 под PEFT.
  • 485 ms по чекор на акција, најбавно од петте овде: двојно поспоро од SmolVLA, дваесет и четири пати поспоро од ACT.
  • Потребен е LeRobot v3.0, така што збир на податоци снимен за извршување на GR00T треба да се конвертира, и обратно.
  • Новите опции прво слетуваат на main: RTC и MEM меморијата за време на тренирање не се во 0.6.1, така што најновите документи може да значат инсталирање од git.

Реалноста од 485 ms и каде престанува да биде употреблива

Ова го одлучува вашиот проект, па затоа доаѓа пред табелата со трошоци. по чекор на акција измерен овде за Pi0.5 е 485 ms. Во споредба со другите четири:

ПолитикаЗаклучување по чекор на акцијаПараметриНиво на графичка картичкаМинимални епизоди
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 за GR00T N1.7 наспроти Pi0.5, со параметри, ниво на графичка картичка, латентност и формат на податочно множество
Исто ниво на графичка картичка, ист минимум на епизоди, различна верзија на податочно множество, трикратен јаз во латентноста.
Инференсот мора да биде до сервомоторите

Контролната јамка кај овие пет модели работи од 20 до 485 ms по чекор на акција. Повратните патувања преку јавниот интернет, над 485 ms, претвораат една функционална политика во колеблива. Далечинскиот инференс е изводлив за бавно земање и поставување, но не и за брзо реактивно движење. Попрво би го кажале тоа отколку да продаваме демо што работи само на LAN. Ако вашата рака паузира помеѓу делови, започнете од политиката замрзнува среде движење.

Upstream има одговор, а половина од него е веќе во изданието што можете да го инсталирате. Real-Time Chunking го генерира следниот дел додека раката сè уште го извршува тековниот, потоа ги води преклопувачките чекори на новиот дел да останат блиску до веќе извршениот дел, така што раката не застанува или не се грчи на спојот. Формата за време на инференс е испорачана во дневникот за промени 0.4.2 за Pi0, Pi0.5 и SmolVLA и е знаменце за распоредување, а не за претренирање:

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 е колку чекори од претходниот дел новиот треба да се согласи со нив; документацијата на RTC дава 8 до 12 како вообичаен опсег. Стандардниот инференс бекенд е --inference.type=sync.

Тоа не го прави моделот побрз. Тоа ја крие празнината: 485 ms сè уште се трошат, но надвор од критичната патека, така што редот не се празни помеѓу деловите. Варијантата за време на тренирање од arXiv 2512.05964 оди подалеку: моделот учи да се условува на чист префикс на акција, така што при инференс преклопувањето е цврсто вметнато со временски чекори на проток по акција наместо водено, а повратниот премин на водење исчезнува. За време на тренирањето, тој зема должина на префикс по пример и ја пресметува загубата на проток на преостанатиот постфикс. Тоа знаменце постои само на main, не во 0.6.1, а доцнењето за кое тренирате мора да остане под chunk_size.

Два начини да добиете Pi0.5 контролна точка

Изнајмувате или поседувате картичка од 80 GB, инсталирате еден од горенаведените стекови, го конвертирате вашето множество податоци и го надгледувате извршувањето. Ги задржувате сите контроли: JAX LoRA на openpi, PEFT адаптерите на LeRobot, релативни дејства, прилагодени мапирања на копчиња. Ги задржувате и сите неуспеси.

  • Хардвер: A100 80 GB или H100, или картичка од 24 GB на патеката JAX LoRA на openpi.
  • Поставување: едно попладне за првото извршување, главно мапирање на копчиња и токенизаторот со порта.
  • Не е достапно на хостираната форма: PEFT адаптери, релативни дејства, RTC за време на тренирање, MEM меморија.
bash
lerobot-train \
    --dataset.repo_id=${HF_USER}/my_so100_dataset \
    --policy.type=pi05 \
    --policy.pretrained_path=lerobot/pi05_base \
    --policy.rtc_training_max_delay=10 \
    --policy.gradient_checkpointing=true \
    --policy.dtype=bfloat16 \
    --batch_size=4 --steps=30000 --seed=1000
Командата што не се извршува на хостирана форма, и pip не може да ја инсталира: RTC за време на тренирање е знаменце од главната гранка.

Кога не работи

СимптомНајверојатна причина
Извршувањето е одбиено пред да започнеDataset v2.1 but Pi0.5 wants v3.0, or reverse for GR00T
ImportError, недостасува пакетот datasetslerobot 0.6.x without the training extra
ValueError за q01 и q99 на првата серијаNo quantiles in meta/stats.json; recompute or use MEAN_STD
CUDA нема доволно меморија на чекор 0Full fine-tune below 70 GB; try checkpointing or train_expert_only
401 или грешка во затворено складиштеPaliGemma tokenizer license not accepted
Загубата паѓа, роботот не прави ништоNormalisation mismatch, or the policy copies the state
Раката паузира помеѓу парчињатаPer-step latency plus round trip; the chunk queue runs dry
Работи во едно поставување, не успева во другоToo few episodes, or all in one configuration

Колку чини едно извршување

Pi0.5 се наоѓа во скапиот слој бидејќи му треба картичка од 80 GB, а спот цените се менуваат, па бројката е опсег наместо цена. За многу SO-100 задачи, обучете SmolVLA или ACT на слојот од 24 GB прво, потврдете дека задачата е воопшто научлива, а потоа потрошете A100 часови на неа. Обучете ја вашата прва политика го поминува тој поевтин циклус, и цени ги содржи тековните слоеви.

СлојПолитикиТипично извршувањеЦена по часЦена по извршување
A100 80 GB или H100Pi0.5, GR00T N1.7, GR00T N1.53 до 6 часа1.20 до 2.00 USDоколу 4 до 12 USD
RTX 4090 или која било картичка од 24 GBSmolVLA, ACT2 до 5 часа0.30 до 0.60 USDоколу 1 до 3 USD
Табелата со трошоци на AY-Robots која покажува кое графичко процесорско единица (GPU) е потребно за секоја политика, типичното време на извршување и цена, и колку епизоди се потребни пред политиката да биде корисна
Истите две нивоа на страницата на производот: Pi0.5 изнајмува картичка од 80 GB, SmolVLA и ACT се вклопуваат на 4090.

Пред да посветите една вечер: GR00T N1.7 против Pi0.5 и Pi0.5 против SmolVLA ги прикажуваат истите бројки еден до еден. Арената содржи 85 VLA модели со 332 резултати од бенчмарк, секој поврзан со неговиот извор, а позадината за семејството е во нашиот преглед на VLA.

Обучете го Pi0.5 без да го градите стекот

Изберете го множеството податоци и хиперпараметрите во форма. Бекендот изнајмува картичка од 80 GB на спот пазарот, го извршува тренерот и ги запишува контролните точки во складиштето за објекти. Водичи за SO-100, SO-101, Koch v1.1 и LeKiwi.

Отворете ги водичите за обука
Може ли да го фино подесам Pi0.5 на RTX 4090?

Не е целосно фино подесување: openpi наведува повеќе од 70 GB за тоа, така што A100 80 GB или H100. Неговата бројка од 22.5 GB LoRA припаѓа на патеката JAX; имплементацијата на PyTorch нема LoRA. Интеграцијата на PEFT на LeRobot постои, но нејзиниот документиран пример е SmolVLA и не е објавена бројка за VRAM за pi05.

Колку епизоди ми се потребни?

Педесет, истото дно како GR00T и ACT; само SmolVLA оди пониско, на 30. Основната контролна точка носи повеќе од 10.000 часа претходна обука, така што финото подесување се прилагодува наместо да учи од ништо: 50 чисти, разновидни епизоди се подобри од двесте од една конфигурација.

Која е разликата помеѓу --policy.path и --policy.pretrained_path?

--policy.path вчитува тежини и config.json на контролната точка, така што зачуваните поставки како n_action_steps се наследуваат и --policy.type мора да се изостави. --policy.pretrained_path вчитува само тежини: имињата на карактеристиките доаѓаат од вашето множество податоци, зачуваните поставки се ресетираат, --policy.type е задолжително. Затоа командата LIBERO експлицитно ги предава n_action_steps=10 и empty_cameras=1; инаку тие се враќаат на 50 и 0.

Дали отворената верзија ми го дава целиот Pi0.5 од трудот?

Не. И двете поддржуваат само главата за акција со усогласување на протокот. Фазата на претходна обука со дискретни токени со FAST токенизаторот за акција и предвидувањето на подзадачи на високо ниво не беа објавени, а картичката lerobot/pi05_base додава RL на таа листа иако трудот за pi0.5 не опишува фаза на учење со засилување. Вие обучувате политика на ниско ниво условена од јазичен стринг што го давате, а не модел што сам разложува долга задача.

Против кои верзии е напишан овој водич?

openpi на main и lerobot 0.6.1, изданието од 3 август 2026 година, и двете прочитани на 23 август 2026 година. v3.0 множествата податоци пристигнаа со 0.4.0 во октомври 2025 година. 0.6.0 го направи основниот пакет лесен, така што lerobot[pi] сам повеќе не инсталира стек за обука, и го премести распоредувањето на lerobot-rollout. RTC за време на обука е само на main; хостираниот тренер овде работи 0.5.1.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started