Тонкая настройка моделей Pi0 и Pi0.5: Платформа машинного обучения роботов с открытым исходным кодом Physical Intelligence
Pi0 и Pi0.5 — это ведущие в отрасли серии моделей Vision-Language-Action (VLA), разработанные командой Physical Intelligence. Эти модели предварительно обучены на больших объемах данных роботов и могут быстро адаптироваться к конкретным робототехническим задачам и сценариям применения посредством тонкой настройки.
Данное руководство основано на официальном фреймворке OpenPI от Physical Intelligence и подробно описывает, как эффективно выполнять тонкую настройку предварительно обученных моделей Pi0/Pi0.5 на пользовательских наборах данных.
Обзор серии моделей
Репозиторий OpenPI в настоящее время предоставляет три типа моделей:
| Тип модели | Описание | Особенности | Случаи использования |
|---|---|---|---|
| π₀ (Pi0) | Модель Vision-Language-Action на основе потоков | Генерация потоков, высококачественное предсказание действий | Сложные манипуляционные задачи, требования высокой точности |
| π₀-FAST | Авторегрессионная VLA на основе токенизатора действий FAST | Авторегрессионная генерация, быстрый вывод | Управление в реальном времени, требования низкой задержки |
| π₀.₅ (Pi0.5) | Обновленная версия π₀ с лучшей обобщающей способностью в открытом мире | Обучение с изоляцией знаний, улучшенная обобщающая способность | Разнообразные среды, междоменные приложения |
Примечание: Все модели предварительно обучены на данных роботов объемом более 10 000 часов и предоставляют базовые контрольные точки модели для тонкой настройки.
Предварительные требования и настройка среды
Системные требования
Минимальная конфигурация:
- Python 3.11+ (рекомендуется использовать менеджер пакетов uv)
- GPU: Для обучения требуется NVIDIA GPU (рекомендуется A100/H100)
- Память: 32GB+ системной оперативной памяти
- Хранилище: 100GB+ доступного дискового пространства
Рекомендуемая конфигурация:
- Оборудование: NVIDIA A100/H100 или установка с несколькими GPU
- Хранилище: NVMe SSD-диски
- Сеть: Стабильное сетевое соединение для загрузки моделей и данных
Установка и настройка среды
Использование менеджера пакетов uv (Рекомендуется)
# Клонировать официальный репозиторий OpenPI
git clone https://github.com/Physical-Intelligence/openpi.git
cd openpi
# Установить зависимости с помощью uv (автоматически создает виртуальную среду)
uv sync
# Проверить установку
uv run python -c "from openpi.policies import policy_config; print('Среда OpenPI настроена успешно!')"
Традиционная установка pip
# Клонировать репозиторий
git clone https://github.com/Physical-Intelligence/openpi.git
cd openpi
# Создать виртуальную среду
python -m venv venv
source venv/bin/activate # Linux/macOS
# или venv\Scripts\activate # Windows
# Установить зависимости
pip install -e .
# Проверить установку
python -c "from openpi.policies import policy_config; print('Среда OpenPI настроена успешно!')"
Подготовка набора данных
Использование экспорта данных платформы AI-O
Платформа данных AI-O предоставляет полную функциональность экспорта данных, позволяя экспортировать аннотированные данные в формат LeRobot, поддерживаемый OpenPI, одним щелчком мыши:
Процесс экспорта:
- Выбор формата экспорта: Выберите экспорт в формате LeRobot или HDF5 на платформе AI-O
- Фильтрация данных: Фильтруйте необходимые данные по проекту, времени, уровню качества и другим измерениям
- Пакетный экспорт: Поддержка пакетной обработки экспорта для крупномасштабных наборов данных
- Преобразование формата: Преобразование экспортированных данных в формат LeRobot, требуемый OpenPI

Требования к формату данных
OpenPI поддерживает несколько форматов данных, наборы данных должны содержать:
- Данные наблюдений: Изображения, информация о состоянии и т.д.
- Данные действий: Последовательности действий выполнения роботом
- Языковые инструкции: Описания задач (опционально, для задач с языковыми условиями)
Конфигурация набора данных
OpenPI использует файлы конфигурации для определения наборов данных и параметров обучения. Вам необходимо:
- Создать конфигурацию набора данных: Определить пути к данным, форматы и т.д. в файлах конфигурации
- Предварительная обработка данных: Вычислить статистику нормализации
- Проверка данных: Убедиться в правильности формата данных
# Вычислить статистику нормализации набора данных (обязательный шаг)
uv run scripts/compute_norm_stats.py <config_name>
# Пример: Вычислить статистику для пользовательской конфигурации
uv run scripts/compute_norm_stats.py my_custom_config
Поддерживаемые форматы данных
OpenPI поддерживает несколько форматов данных роботов, включая:
- Наборы данных HuggingFace
- Данные в формате LeRobot
- Данные в формате HDF5
- Данные, экспортированные с платформы AI-O (поддерживается через преобразование формата)
Практика обучения модели
Использование платформы AI-O для обучения (Рекомендуется)
Платформа данных AI-O предоставляет полную функциональность обучения модели, поддерживая обучение OpenPI и других моделей машинного обучения роботов:

Преимущества обучения на платформе:
- Обучение без кода: Завершите весь процесс обучения через визуальный интерфейс, не требуя опыта программирования
- Гибкие вычислительные ресурсы: Поддержка частных и публичных облачных вычислительных ресурсов, выделяемых по требованию
- Мониторинг в реальном времени: Предоставление мониторинга в реальном времени метрик обучения, выходов модели, системных журналов
- Автоматизированное управление: Поддержка управления контрольными точками, возобновления после прерывания, настройки параметров и других функций
Процесс обучения
-
Подготовка данных: Выберите экспортированные наборы данных или загрузите внешние данные

-
Конфигурация модели: Выберите модель Pi0/Pi0.5 и настройте параметры обучения

-
Мониторинг обучения: Просмотр прогресса обучения и производительности модели в реальном времени

-
Экспорт модели: Получение контрольных точек модели после завершения обучения

Локальное обучение версии JAX
Если вам нужно обучение в локальной среде, OpenPI в основном использует JAX для обучения, обеспечивая оптимальную производительность и стабильность:
# Установить выделение памяти JAX (рекомендуется)
export XLA_PYTHON_CLIENT_MEM_FRACTION=0.9
# Базовая команда обучения
uv run scripts/train.py <config_name> --exp_name <имя_эксперимента>
# Пример: Обучить модель Pi0
uv run scripts/train.py pi0_aloha_sim --exp_name my_pi0_experiment
# Обучение с несколькими GPU (используя FSDP)
uv run scripts/train.py <config_name> --exp_name <имя_эксперимента> --fsdp-devices <количество_gpu>
# Пример: Обучение с использованием 4 GPU
uv run scripts/train.py pi0_aloha_sim --exp_name my_experiment --fsdp-devices 4
Обучение версии PyTorch
OpenPI также поддерживает обучение PyTorch, но сначала требует настройки среды:
Настройка среды PyTorch
# Установить поддержку PyTorch (требует замены файлов transformers)
cp -r src/openpi/models_pytorch/transformers_replace/* .venv/lib/python3.11/site-packages/transformers/
# Предупреждение: Это навсегда изменит библиотеку transformers, может повлиять на другие проекты
Команды обучения PyTorch
# Обучение с одним GPU
uv run scripts/train_pytorch.py <config_name> --exp_name <имя_эксперимента>
# Обучение с несколькими GPU (один узел)
uv run torchrun --standalone --nnodes=1 --nproc_per_node=<количество_gpu> \
scripts/train_pytorch.py <config_name> --exp_name <имя_эксперимента>
# Пример: Обучение с использованием 2 GPU
uv run torchrun --standalone --nnodes=1 --nproc_per_node=2 \
scripts/train_pytorch.py pi0_aloha_sim --exp_name pytorch_experiment
Вывод и развертывание модели
Использование платформы AI-O для развертывания вывода (Рекомендуется)
Платформа данных AI-O предоставляет полные сервисы вывода модели, поддерживая возможности ИИ-вывода во всех сценариях от облачной проверки до пограничного развертывания:

Преимущества вывода на платформе:
- Развертывание одним щелчком: Развертывание обученных моделей как производственных сервисов вывода одним щелчком
- Несколько методов тестирования: Поддержка симуляционного вывода, тестирования файлов MCAP, автономного пограничного развертывания
- Мониторинг в реальном времени: Предоставление мониторинга в реальном времени состояния сервиса, использования ресурсов, метрик производительности
- Интеллектуальная адаптация: Автоматическое распознавание и адаптация к требованиям ввода/вывода различных моделей
Функции сервиса вывода
-
Мониторинг состояния сервиса: Просмотр состояния работы и информации о конфигурации сервиса вывода

-
Симуляционное тестирование вывода: Использование случайных данных для быстрой проверки функциональности модели

-
Тестирование файлов MCAP: Использование реальных данных роботов для проверки эффективности вывода

-
Автономное пограничное развертывание: Развертывание сервиса вывода на локальном GPU робота

Срав нение методов развертывания
| Метод вывода | Случай использования | Описание |
|---|---|---|
| Симуляционное тестирование вывода | Быстрая проверка | Использование случайных данных или пользовательского ввода для быстрой проверки функциональности и производительности вывода модели |
| Тестирование файлов MCAP | Проверка реальных данных | Использование записанных демонстрационных данных робота для проверки эффективности вывода модели в реальных сценариях |
| Автономное пограничное развертывание | Применение в производственной среде | Развертывание сервиса вывода на локальном GPU робота для управления в реальном времени с низкой задержкой |