Матрица обучения 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 апреля 2025) сохраняет эту структуру и изменяет режим обучения: веб-данные, обнаружение объектов, устные инструкции от людей, обучающих робота, метки подзадач, кросс-телесные данные от роботов во многих домах. В результате робот убирает кухни в домах, которые не входили в обучающий набор. Файл README openpi добавляет деталь, которой нет в названии: выпущенный pi0.5 был обучен с изоляцией знаний (arXiv 2505.23705).

Свойствоpi0pi0.5
Вариант основы VLMgemma_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 явно указывает: репозиторий поддерживает только головку согласования потоков (flow matching head) как для обучения, так и для инференса 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-степенями свободы плюс захват использует 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
Инференсболее 8 ГБRTX 4090
Дообучение, LoRAболее 22.5 ГБRTX 4090
Дообучение, полноеболее 70 ГБA100 80 GB или H100
Версионная ловушка, которая отнимает день

Pi0.5 и SmolVLA требуют LeRobot v3.0. GR00T N1.7 и GR00T N1.5 требуют v2.0 или v2.1 и вызывают сбой на наборе данных v3.0. Одна сессия записи не может использоваться для обоих без преобразования, и ошибка не сообщает "wrong dataset version". См. набор данных отклонен: требуется 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=LORAадаптеры LoRA вместо полных весовтребует дополнительного пакета 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, cosine decayoptimizer_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, нуждается в конвертации, и наоборот.
  • Новые опции сначала появляются в main: память 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 на шаге 0Полная донастройка ниже 70 ГБ; попробуйте контрольные точки или train_expert_only
Ошибка 401 или закрытого репозиторияЛицензия токенизатора PaliGemma не принята
Потери падают, робот ничего не делаетНесоответствие нормализации, или политика копирует состояние
Рука останавливается между чанкамиЗадержка на шаг плюс время туда-обратно; очередь чанков иссякает
Работает в одной настройке, не работает в другойСлишком мало эпизодов, или все в одной конфигурации

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

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

УровеньПолитикиТипичный запускЦена за часСтоимость за запуск
A100 80 ГБ или H100Pi0.5, GR00T N1.7, GR00T N1.5от 3 до 6 часовот 1.20 до 2.00 USDпримерно от 4 до 12 USD
RTX 4090 или любая карта на 24 ГБSmolVLA, ACTот 2 до 5 часовот 0.30 до 0.60 USDпримерно от 1 до 3 USD
Таблица стоимости AY-Robots, показывающая, какой GPU требуется для каждой политики, типичное время выполнения и цену, а также сколько эпизодов необходимо до того, как политика станет полезной
Те же два уровня на странице продукта: Pi0.5 арендует карту на 80 ГБ, SmolVLA и ACT помещаются на 4090.

Прежде чем посвятить этому вечер: GR00T N1.7 против Pi0.5 и Pi0.5 против SmolVLA представляют одни и те же числа в сравнении. В Арене содержится 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 из статьи?

Нет. Оба поддерживают только головку действия flow matching. Этап предварительного обучения с дискретными токенами с токенизатором действий FAST и предсказанием высокоуровневых подзадач не был выпущен, а карта lerobot/pi05_base добавляет RL в этот список, хотя в статье pi0.5 не описывается этап обучения с подкреплением. Вы обучаете низкоуровневую политику, обусловленную предоставленной вами языковой строкой, а не модель, которая сама декомпозирует длинную задачу.

Для каких версий написано это руководство?

openpi в основной ветке и lerobot 0.6.1, релиз от 3 августа 2026 года, оба прочитаны 23 августа 2026 года. Наборы данных v3.0 появились с 0.4.0 в октябре 2025 года. Версия 0.6.0 сделала базовый пакет легковесным, так что lerobot[pi] сам по себе больше не устанавливает стек для обучения, и перенесла развертывание в lerobot-rollout. RTC во время обучения доступен только в основной ветке; размещенный здесь тренажер работает на версии 0.5.1.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started