
Фино настройте Pi0.5, VLA модела с flow-matching от 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).
| Свойство | pi0 | pi0.5 |
|---|---|---|
| Вариант на VLM гръбнак | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Вариант на експерт по действия | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon по подразбиране | 50 | 50 |
| max_token_len | 48 | 200 |
| discrete_state_input | false | вярно, състоянието е дискретизирано в контейнери в подканата |
| Базова контролна точка | gs://openpi-assets/checkpoints/pi0_base | gs://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.
# 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Гръбнакът на PaliGemma и портата пред него
PaliGemma (arXiv 2407.07726) е SigLIP-So400m визуален енкодер върху езиков модел Gemma-2B, с около 3B параметъра. 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 |
|---|---|---|
| Инференция | more than 8 GB | RTX 4090 |
| Финно настройване, LoRA | more than 22.5 GB | RTX 4090 |
| Финно настройване, пълно | more than 70 GB | A100 80 GB or H100 |
Pi0.5 и SmolVLA изискват LeRobot v3.0. GR00T N1.7 и GR00T N1.5 изискват v2.0 или v2.1 и се сриват при набор от данни v3.0. Една сесия за запис не може да захранва и двете без преобразуване, а грешката не казва "грешна версия на набора от данни". Вижте набор от данни отхвърлен: изисква се v3.
# v2.1 -> v3.0, run against a dataset already on the Hub
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=<HF_USER/DATASET_ID>
# aggregates episode-0000.parquet, episode-0001.parquet, ... -> file-0000.parquet
# aggregates episode-0000.mp4, episode-0001.mp4, ... -> file-0000.mp4
# rewrites meta/episodes/* with per-episode lengths, tasks and offsetsПлатформата изисква поне 50 епизода за Pi0.5, същия минимум като GR00T и ACT. Предварителното обучение върши по-голямата част от работата, така че 50 чисти епизода са по-добри от 200 небрежни. Нови ли сте в това? Започнете с ръководството за събиране на данни.

Маршрут А: фина настройка с хранилището openpi
Референтната имплементация: първо JAX, тествана само на Ubuntu 22.04, управлявана от конфигурационни обекти, а не от флагове. Път за PyTorch пристигна през септември 2025 г., валидиран на LIBERO. Три стъпки: конвертирайте данните си, дефинирайте конфигурация, обучете и обслужвайте.
- 1Клониране и инсталиране
openpi използва uv. GIT_LFS_SKIP_SMUDGE е това, което позволява на LeRobot да бъде зависимост без LFS блобове.
bashgit clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git cd openpi GIT_LFS_SKIP_SMUDGE=1 uv sync GIT_LFS_SKIP_SMUDGE=1 uv pip install -e . - 2Конвертирайте данните си в набор от данни на LeRobot
Upstream предоставя конвертори за LIBERO и DROID и очаква от вас да адаптирате един. Работата е в картографирането на ключовете.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3Добавяне на конфигурация за обучение
Конфигурациите са записи на TrainConfig в src/openpi/training/config.py. Тази адаптира pi05_droid_finetune, като зареждащото устройство за тежести е насочено към pi05_base.
pythonTrainConfig( name="pi05_so100", model=pi0_config.Pi0Config( pi05=True, action_dim=32, # pi05 is trained with 32-dim actions action_horizon=16, ), # Copy LeRobotLiberoDataConfig in the same file and rewrite the key # mapping for your camera names, then reference your copy here. data=LeRobotLiberoDataConfig( repo_id="your_hf_username/my_so100_dataset", base_config=DataConfig(prompt_from_task=True), ), weight_loader=weight_loaders.CheckpointWeightLoader( "gs://openpi-assets/checkpoints/pi05_base/params" ), batch_size=32, num_train_steps=20_000, ) - 4Изчисляване на нормализиращи статистики
Изпълнява се спрямо името на конфигурацията, а не на набора от данни. Пропускането му е класическата първа грешка тук.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5Обучение
Променливата позволява на JAX да използва 90 процента от паметта на GPU вместо стандартните 75. На 80 GB карта това решава дали изпълнението ще оцелее.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Обслужване
Сървърът слуша на порт 8000 и отговаря на заявки за наблюдения; вашата роботска среда за изпълнение е клиентът.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
Имплементацията на openpi за PyTorch не поддържа 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Инсталиране с правилните допълнения
Тъй като версия 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Удостоверяване
Приемете лиценза на paligemma-3b-pt-224 в браузър, след което влезте в машината, която извършва обучението.
bashhf auth login - 3Добавяне на квантилни статистики
Pi0.5 нормализира STATE и ACTION с квантили, така че meta/stats.json се нуждае от q01 и q99. По-старите набори от данни съдържат само min, max, mean, std.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4Фино настройване от lerobot/pi05_base
Задайте размера на пакета според възможностите на вашата карта; документацията използва 64 на LIBERO при 80 GB. Подайте bfloat16 изрично, тъй като стандартната конфигурация е float32.
bashlerobot-train \ --dataset.repo_id=${HF_USER}/my_so100_dataset \ --policy.type=pi05 \ --policy.pretrained_path=lerobot/pi05_base \ --policy.gradient_checkpointing=true \ --policy.dtype=bfloat16 \ --policy.device=cuda \ --policy.push_to_hub=false \ --output_dir=./outputs/pi05_so100 \ --job_name=pi05_so100 \ --batch_size=4 \ --num_workers=8 \ --steps=30000 \ --save_freq=5000 \ --seed=1000 - 5Изпълнение на ръката
Във версия 0.6.x това е lerobot-rollout: lerobot-record отказва политика и отхвърля имена на набори от данни eval_. Base управлява ръката, sentry записва изпълнението.
bashlerobot-rollout \ --strategy.type=base \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \ --task="Put lego brick into the transparent box" \ --duration=60 # same run, recorded into an eval_ dataset lerobot-rollout \ --strategy.type=sentry \ --policy.path=${HF_USER}/my_policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM1 \ --dataset.repo_id=${HF_USER}/eval_so100 \ --dataset.single_task="Put lego brick into the transparent box" \ --duration=600
| Флаг | Какво прави | Забележка |
|---|---|---|
| --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 TrainConfig | lerobot pi05 и lerobot-train | AY-Robots изпраща |
|---|---|---|---|
| Размер на пакета | 32 | 8 | 1 |
| Пикова скорост на обучение | 2.5e-5, косинусов спад | optimizer_lr 2.5e-5 | 5e-5 |
| Стъпки на обучение | 30,000 | 100,000 | 30,000 |
| Интервал на контролни точки | 1,000 стъпки | 20,000 стъпки | не е във формата |
| Сийд | 42 | 1,000 | във формата |
| Парче действие | action_horizon 50 | chunk_size 50, n_action_steps 50 | не е във формата |
| Тип данни на теглото | bfloat16 | float32 until you pass --policy.dtype | не е във формата |
| Акумулиране на градиент | няма такава настройка, вместо това fsdp_devices | absent from every release so far | 16, и е отпаднало |
Надежден ли е портът? Екипът на LeRobot донастрои базовия модел LIBERO за още 6k стъпки и сравни резултатите с референтните числа на openpi по четири набора: 97.5 процента средно срещу 96.85, напред при Libero 10, назад при Spatial. Изборът на маршрут е избор на инструменти, а не на качество.
- Повече от 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. Спрямо останалите четири:
| Политика | Извод на стъпка на действие | Параметри | Ниво на GPU | Минимален брой епизоди |
|---|---|---|---|---|
| ACT | 20 ms | ~80 M | RTX 4090 or any 24 GB card | 50 |
| GR00T N1.7 | 152 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| GR00T N1.5 | 165 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| SmolVLA | 245 ms | ~450 M | RTX 4090 or any 24 GB card | 30 |
| Pi0.5 | 485 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |

Контролният цикъл при тези пет модела работи от 20 до 485 ms на стъпка на действие. Кръговите пътувания през публичния интернет, добавени към 485 ms, превръщат работещата политика в колеблива. Отдалеченият извод е приложим за бавно взимане и поставяне (pick-and-place), но не и за бързо реактивно движение. Предпочитаме да кажем това, отколкото да продаваме демонстрация, която работи само в LAN мрежа. Ако ръката ви спира между частите, започнете от политиката замръзва по средата на движението.
Upstream има отговор и половината от него вече е в изданието, което можете да инсталирате. Real-Time Chunking генерира следващата част, докато ръката все още изпълнява текущата, след което насочва припокриващите се стъпки на новата част да останат близо до вече изпълнената част, така че ръката да не спира или да не се движи рязко на мястото на свързване. Формата за време на извод е включена в промените на версия 0.4.2 за Pi0, Pi0.5 и SmolVLA и е флаг за разгръщане, а не за преобучение:
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Това не прави модела по-бърз. То скрива пролуката: 485 ms все още се изразходват, но извън критичния път, така че опашката да не изсъхва между частите. Вариантът за време на обучение от arXiv 2512.05964 отива по-далеч: моделът се научава да се обуславя от чист префикс на действие, така че при извод припокриването е твърдо запълнено с времеви стъпки на потока за всяко действие, вместо да е насочено, и обратният проход на насочването изчезва. По време на обучението той избира дължина на префикса за всеки пример и изчислява загубата на потока върху оставащия постфикс. Този флаг съществува само в основната версия, не и в 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 памет.
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Избирате модел и набор от данни във формата за обучение, бекендът наема GPU на спот пазар според необходимата VRAM, изпълнява обучителя и записва контролни точки в обектно хранилище. Pi0.5 е само в облак тук. Съществуват ръководства за SO-100, SO-101, Koch v1.1 и LeKiwi.
| Настройка | Какво изпраща платформата за Pi0.5 |
|---|---|
| Базова контролна точка | lerobot/pi05_base |
| Тип политика | pi05 |
| Размер на пакета | 1 |
| Скорост на обучение | 5e-5 |
| Максимални стъпки | 30000 |
| Натрупване на градиент | 16, но вижте предупреждението по-долу |
| Допълнителни контроли във формата | seed, logFreq |
| Формат на набора от данни | LeRobot v3.0 |
| GPU ниво | A100 80 GB или H100 80 GB |
Обучителят изпраща стойност за натрупване на градиент от 16, а lerobot 0.5.1 няма флаг да я получи, така че тя се отхвърля. Никой пуснат lerobot няма такъв: контролът съществува само в основния клон, като --accelerator.gradient_accumulation.steps. Ефективният размер на пакета тук е 1, срещу 256, които използва конфигурацията pi05_libero на openpi. Струва си да се знае, преди да прочетете крива на загубите. Контролът се прилага при изпълнения на GR00T N1.7 и GR00T N1.5.
Инференцията работи по същия начин: под се осигурява, за да обслужва политиката, и вашият локален клиент комуникира с него. Подът има пазач за неактивност и се самоунищожава, така че забравен таб да не таксува безшумно. Прилага се предупреждението за латентност, поради което ACT при 20 ms често печели бърза задача.
Когато не работи
| Симптом | Най-вероятна причина |
|---|---|
| Изпълнението е отхвърлено преди да започне | Dataset v2.1 но Pi0.5 иска v3.0, или обратното за GR00T |
| ImportError, липсва пакет datasets | lerobot 0.6.x без допълнението за обучение |
| ValueError относно q01 и q99 при първия пакет | Няма квантили в meta/stats.json; преизчислете или използвайте MEAN_STD |
| CUDA извън памет на стъпка 0 | Пълна фина настройка под 70 GB; опитайте checkpointing или train_expert_only |
| 401 или грешка в gated repo | Лицензът на токенизатора PaliGemma не е приет |
| Загубата спада, роботът не прави нищо | Несъответствие в нормализацията, или политиката копира състоянието |
| Ръката спира между частите | Латентност на стъпка плюс двупосочно пътуване; опашката за части изсъхва |
| Работи в една настройка, проваля се в друга | Твърде малко епизоди, или всички в една конфигурация |
- Набор от данни отхвърлен: изисква се v3
- Недостиг на памет по време на обучение
- Загубата намалява, но политиката не прави нищо
- Политиката замръзва по средата на движение
- Политиката работи само в една настройка
- Задачата за обучение е заседнала в опашка
Какво струва едно изпълнение
Pi0.5 е в скъпия клас, защото има нужда от 80 GB карта, а спот цените се променят, така че цифрата е диапазон, а не цена. За много SO-100 задачи, обучете SmolVLA или ACT на 24 GB клас първо, потвърдете, че задачата е изобщо научима, след това прекарайте A100 часове върху нея. Обучете първата си политика описва този по-евтин цикъл, и ценообразуване съдържа текущите класове.
| Клас | Политики | Типично изпълнение | Цена на час | Цена на изпълнение |
|---|---|---|---|---|
| A100 80 GB or H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 to 6 hours | 1.20 to 2.00 USD | about 4 to 12 USD |
| RTX 4090 or any 24 GB card | SmolVLA, ACT | 2 to 5 hours | 0.30 to 0.60 USD | about 1 to 3 USD |

Преди да отделите една вечер: и представят същите числа едно до друго. съдържа 85 VLA модела с 332 резултата от бенчмаркове, всеки свързан с източника си, а информация за семейството е в .
Обучете 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 от статията?▾
Не. И двете поддържат само главата за действие с flow matching. Етапът на предварително обучение с дискретни токени с 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.
Sources
- Physical-Intelligence/openpi: open-source models and packages for robotics
- openpi training configs, including pi05_libero and pi05_droid_finetune
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- pi0.5: a Vision-Language-Action Model with Open-World Generalization
- Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better
- PaliGemma: A versatile 3B VLM for transfer
- Training-Time Action Conditioning for Efficient Real-Time Chunking
- LeRobot pi05 documentation on the main branch, including training-time RTC
- LeRobot documentation: parameter efficient fine-tuning with PEFT
- LeRobotDataset v3.0 format documentation
- LeRobot release notes: v0.3.2 through v0.6.1, with the v0.6.0 breaking changes
- LeRobot v0.5.0: Scaling Every Dimension
- lerobot/pi05_base model card
- LeRobot documentation: Real-Time Chunking (RTC)
- openpi Pi0Config: the model defaults pi0 and pi05 inherit
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started