Матриця навчання 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 мс, яке вирішує, чи є результат придатним для використання.

Що потрібно знати

  • VLA зі зіставленням потоків: 3B PaliGemma VLM плюс 300M експерт з дій, що декодує безперервні фрагменти дій. Два маршрути для його доналаштування, openpi та LeRobot pi05, з різницею в 0.65 балів за середнім показником LIBERO.
  • Повне доналаштування потребує понад 70 ГБ VRAM. openpi вказує LoRA на 22.5 ГБ, лише на своєму шляху JAX.
  • Набір даних має бути LeRobotDataset v3.0 з квантилями q01 та q99 у meta/stats.json, інакше перший пакет видасть помилку.
  • Спочатку перевірте свою версію lerobot: 0.6.0 зробила базовий пакет легким і перемістила розгортання з lerobot-record.
  • Тут він працює зі швидкістю 485 мс на крок дії, потребує 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 April 2025) зберігає цей скелет і змінює дієту навчання: веб-дані, виявлення об'єктів, усні інструкції від людей, які навчають робота, мітки підзадач, дані з різних втілень від роботів у багатьох будинках. Результатом є робот, який прибирає кухні в будинках, що не були в навчальному наборі. README openpi додає деталь, якої немає в назві: випущений pi0.5 був навчений з ізоляцією знань (arXiv 2505.23705).

Властивістьpi0pi0.5
Варіант VLM backbonegemma_2b (PaliGemma)gemma_2b (PaliGemma)
Варіант експерта з дійgemma_300mgemma_300m
action_dim3232
action_horizon за замовчуванням5050
max_token_len48200
discrete_state_inputfalsetrue, state discretized into bins in the prompt
Базовий чекпоінтgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
Що є публічним, не є повною статтею

README openpi чітко зазначає: репозиторій підтримує лише flow matching head, як для навчання, так і для висновку pi0.5. Стаття описує дві стадії, а код містить лише другу: попереднє навчання представляє кожну дію як дискретні токени через токенізатор FAST, а під час розгортання модель виводить підзадачу високого рівня перед кожним блоком дій. Жодна з них не знаходиться в репозиторії. Картка lerobot/pi05_base надає той самий список і додає RL, хоча стаття pi0.5 взагалі не описує жодної стадії навчання з підкріпленням. Порт LeRobot успадковує цю область, як і кожен розміщений на ньому тренажер, включаючи той, що тут. Ліцензування також розділене: сторінка документації pi05 вказує Apache 2.0, картка lerobot/pi05_base позначена license: gemma.

Що змінює flow matching у навчанні та висновку

Політика, яку можна навчити на SO-100, або безпосередньо регресує дії (політика) або токенізує їх і декодує авторегресивно (pi0-FAST). Зіставлення потоків не робить ні того, ні іншого: воно вивчає векторне поле, яке переносить шум до чистого 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 успадковує його токенізатор, і цей токенізатор знаходиться в закритому репозиторії. Це найпоширеніший спосіб, яким перший запуск завершується невдачею, ще до першого кроку навчання.

Прийміть закриту ліцензію, перш ніж орендувати GPU

Документація 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
Висновокmore than 8 GBRTX 4090
Додаткове налаштування, LoRAmore than 22.5 GBRTX 4090
Додаткове налаштування, повнеmore than 70 GBA100 80 GB or 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, що порівнює п'ять навчальних політик за параметрами, рівнем GPU, затримкою та мінімальною кількістю епізодів
Pi0.5 знаходиться в рівні A100 та H100 з 485 мс на крок дії, з мінімальною кількістю 50 епізодів.

Маршрут A: доналаштування за допомогою репозиторію 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

    Вихідний код постачає конвертери для 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 відсотків пам'яті GPU замість стандартних 75. На карті з 80 ГБ це вирішує, чи виживе запуск.

    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 ГБ, доступна лише для JAX, через варіанти gemma_2b_lora та gemma_300m_lora. Гірше: налаштування копіює виправлені файли поверх встановлених вами transformers 4.53.2, а файл README попереджає, що в режимі жорстких посилань за замовчуванням uv це назавжди змінює transformers у кеші uv і може просочитися в інші проєкти. Скасуйте це за допомогою uv cache clean transformers.

Маршрут B: доналаштування за допомогою 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 ГБ. Передайте 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 steps20,000 stepsне у формі
Зерно421,000у формі
Блок дійaction_horizon 50chunk_size 50, n_action_steps 50не у формі
Тип даних вагbfloat16float32 until you pass --policy.dtypeне у формі
Накопичення градієнтанемає такого параметра, замість цього fsdp_devicesвідсутній у всіх випусках досі16, і він відкидається

Чи є порт точним? Команда LeRobot доналаштувала базову модель LIBERO протягом додаткових 6 тис. кроків і порівняла її з еталонними показниками 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 ГБ. Значення LoRA 22.5 ГБ є показником JAX від openpi; для pi05 під PEFT нічого не опубліковано.
  • 485 мс на крок дії, найповільніший з п'яти тут: вдвічі повільніше за SmolVLA, у двадцять чотири рази повільніше за ACT.
  • Потрібен LeRobot v3.0, тому набір даних, записаний для запуску GR00T, потребує конвертації, і навпаки.
  • Нові опції спочатку з'являються в основній гілці: пам'ять RTC та MEM під час навчання відсутні у версії 0.6.1, тому найновіша документація може означати встановлення з git.

Реальність 485 мс і де вона перестає бути придатною для використання

Це визначає ваш проєкт, тому йде перед таблицею витрат. на крок дії, виміряна тут для Pi0.5, становить 485 мс. Порівняно з іншими чотирма:

ПолітикаВисновок на крок діїПараметриРівень GPUМінімальна кількість епізодів
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, з параметрами, рівнем GPU, затримкою та форматом набору даних
Той самий рівень GPU, той самий мінімум епізодів, інша версія набору даних, трикратна різниця в затримці.
Висновок має бути поруч із сервоприводами

Цикл керування для цих п'яти моделей виконується від 20 до 485 мс на крок дії. Затримки публічного інтернету понад 485 мс перетворюють робочу політику на нерішучу. Віддалений висновок є життєздатним для повільного захоплення та розміщення, але не для швидкого реактивного руху. Ми краще скажемо це, ніж продамо демонстрацію, яка працює лише в локальній мережі. Якщо ваша рука зупиняється між фрагментами, почніть з зависання політики під час руху.

Вищестоящий розробник має відповідь, і половина її вже є у випуску, який ви можете встановити. Розбиття на фрагменти в реальному часі (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 мс все ще витрачаються, але поза критичним шляхом, тому черга не вичерпується між фрагментами. Варіант часу навчання з arXiv 2512.05964 йде далі: модель вчиться обумовлювати чистий префікс дії, тому під час висновку перекриття жорстко заповнюється часовими кроками потоку для кожної дії замість керованого, і зворотний прохід керування зникає. Під час навчання він вибирає довжину префікса для кожного прикладу та обчислює втрату потоку на решті постфікса. Цей прапорець існує лише в основній гілці, а не в 0.6.1, і затримка, для якої ви навчаєте, має залишатися нижчою за chunk_size.

Два способи отримати контрольний пункт Pi0.5

Ви орендуєте або володієте картою на 80 ГБ, встановлюєте один із вищезгаданих стеків, конвертуєте свій набір даних і контролюєте запуск. Ви зберігаєте всі налаштування: JAX LoRA від openpi, адаптери PEFT від LeRobot, відносні дії, власні зіставлення клавіш. Ви також зберігаєте всі невдачі.

  • Апаратне забезпечення: A100 80 ГБ або H100, або карта на 24 ГБ для 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 під час навчання — це прапор головної гілки.

Коли це не працює

СимптомНайімовірніша причина
Запуск відхилено до початкуНабір даних v2.1, але Pi0.5 вимагає v3.0, або навпаки для GR00T
ImportError, відсутній пакет datasetslerobot 0.6.x без додаткових компонентів для навчання
ValueError щодо q01 та q99 для першого пакетуВідсутні квантилі в meta/stats.json; перерахуйте або використовуйте MEAN_STD
CUDA out of memory на кроці 0Повне доналаштування менше 70 ГБ; спробуйте контрольні точки або train_expert_only
Помилка 401 або помилка закритого репозиторіюЛіцензія токенізатора PaliGemma не прийнята
Втрати падають, робот нічого не робитьНевідповідність нормалізації, або політика копіює стан
Рука зупиняється між фрагментамиЗатримка на крок плюс час передачі; черга фрагментів вичерпується
Працює в одному налаштуванні, не працює в іншомуЗанадто мало епізодів, або всі в одній конфігурації

Скільки коштує один запуск

Pi0.5 знаходиться в дорогому рівні, оскільки йому потрібна карта на 80 ГБ, а спотові ціни змінюються, тому цифра є діапазоном, а не фіксованою ціною. Для багатьох завдань SO-100 спочатку навчайте SmolVLA або ACT на рівні 24 ГБ, спочатку переконайтеся, що завдання взагалі можна навчити, а потім витрачайте на нього години A100. Навчіть свою першу політику проходить цей дешевший цикл, а ціни містить поточні рівні.

РівеньПолітикиТиповий запускЦіна за годинуВартість за запуск
A100 80 GB or H100Pi0.5, GR00T N1.7, GR00T N1.53 to 6 hours1.20 to 2.00 USDabout 4 to 12 USD
RTX 4090 or any 24 GB cardSmolVLA, ACT2 to 5 hours0.30 to 0.60 USDabout 1 to 3 USD
Таблиця витрат AY-Robots, що показує, який графічний процесор потрібен для кожної політики, типовий час виконання та ціну, а також скільки епізодів потрібно, перш ніж політика стане корисною
Ті самі два рівні на сторінці продукту: Pi0.5 орендує карту на 80 ГБ, SmolVLA та ACT поміщаються на 4090.

Перш ніж присвятити вечір: GR00T N1.7 against Pi0.5 та Pi0.5 against SmolVLA порівнюють ті самі показники. Arena містить 85 VLA моделей з 332 результатами бенчмарків, кожен з яких пов'язаний зі своїм джерелом, а довідкова інформація про сімейство знаходиться в нашому огляді VLA.

Навчайте Pi0.5 без створення стеку

Виберіть набір даних та гіперпараметри у формі. Бекенд орендує карту на 80 ГБ на спотовому ринку, запускає тренажер та записує контрольні точки в об'єктне сховище. Посібники для SO-100, SO-101, Koch v1.1 та LeKiwi.

Відкрити посібники з навчання
Чи можу я доналаштувати Pi0.5 на RTX 4090?

Не повне доналаштування: openpi вказує понад 70 ГБ для цього, тому потрібна A100 80 ГБ або H100. Його показник LoRA 22.5 ГБ належить до шляху 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