Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Короткая проверка дообучения π0.5 на OMY на удалённой машине (пять шагов)

2026-10-04 на рабочей станции Ubuntu выполнены: реальная загрузка предобученных параметров, пять обновлений весов, сохранение, повторная загрузка и инференс на отложенном кадре. Запуск использовал команды, которые генерирует pi05_omy_utils.py в этой главе, и точку входа pi05_omy_train.py.

Веса и окружение

  • Видеокарта: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96 ГБ видеопамяти.
  • Отдельное окружение: /path/to/data-disk/envs/every-embodied-omy-pi05-061; Python 3.12.3, LeRobot 0.6.1, PyTorch 2.7.1, CUDA 12.8, MuJoCo 3.1.6.
  • Фактической отправной точкой стала кэшированная на станции официальная предобученная политика OpenPi π0.5 для LIBERO: /path/to/data-disk/robotics_shared/checkpoints/openpi/openpi-assets/checkpoints/pi05_libero_pytorch/model.safetensors, 7 233 650 408 байт, 812 тензоров.
  • Общие веса lerobot/pi05_base в этом эксперименте не использовались. Предобученная политика LIBERO уже дообучалась на другой задаче, поэтому пятишаговый результат подтверждает только совместимость этой отправной точки с текущим интерфейсом обучения OMY.

Корневой каталог эксперимента:

/path/to/data-disk/robotics_shared/experiments/omy-pi05-notebook-20261004/short_finetune_20261004

В его каталоге pi05_libero_start символическая ссылка указывает на исходные веса; три конфигурационных файла LeRobot взяты из lerobot/pi05_base версии b211f3d44c36b6acfcf7ae94a64e8e96f75a64ba. Кэшированные веса совпадают с этой моделью по именам ключей и формам; официальный загрузчик переводит ключи OpenPi и строго загружает параметры, в журнале явно видно All keys loaded successfully!. Исходная предобученная модель сохранена в исходном каталоге.

В этой главе для фиксированной версии загрузчика добавлена проверка успеха: при ошибке чтения или несовпадении параметров выполнение останавливается. Соответствующие тесты покрывают два сценария отказа: неполную загрузку и случай, когда официальный загрузчик возвращает модель со случайной инициализацией.

Данные и настройки обучения

В реальной сцене MuJoCo с одной кружкой OMY записаны три коротких траектории по 20 кадров, всего 60 кадров при частоте 20 Гц. Целевые углы суставов немного меняются около начальной конфигурации, захват синхронно открывается и закрывается; эти траектории не выполняют задачу захвата и укладки, а нужны только для проверки конвейера обучения.

Состояние — шестимерная поза конца манипулятора; действие — шесть фактически отправленных абсолютных целевых углов суставов и нормализованная команда захвата; два изображения — внешняя и запястьевая камеры размером 256×256. Порядок записи соответствует исправленной логике сбора из раздела 1.

  • Исходные данные: real_omy_v21 в корневом каталоге эксперимента.
  • Преобразованные данные: real_omy_v3; обучающие эпизоды 0 и 1, всего 40 кадров; отложенный эпизод 2, 20 кадров.
  • Квантили нормализации считались только по обучающим эпизодам; блоки действий и заполнение в конце эпизода проверены через реальный новый интерфейс чтения.
  • Число обновлений 5, размер батча 1, длина блока предсказания действий 50, число последовательно выполняемых шагов 5.
  • Отключены относительные действия; обучается только экспертный блок действий, визуальный энкодер заморожен, включены контрольные точки градиента и BF16; отключены компиляция модели, загрузка на онлайн-платформу и оценка в среде во время обучения.

Фактические результаты

Шаг обновленияФункция потерьНорма градиентаПиковая выделенная видеопамять (ГиБ)
11.33211.55012.85
21.4466.75212.85
31.1009.36412.85
40.9793.01112.85
50.9223.35012.85

Значения видеопамяти получены из torch.cuda.max_memory_allocated() тренера и показывают пиковое выделение тензоров процессом, а не общую занятость всей видеокарты. Потери и градиенты на всех пяти обновлениях — конечные числа; код выхода процесса обучения — 0.

После сравнения сохранённой модели с отправной точкой поэлементно: во входном слое действий изменились 32 763 из 32 768 элементов, в выходном слое действий — 32 768 из 32 768 элементов, максимальное изменение около 8e-5; выборочно проверенный замороженный слой проекции признаков не изменился. Модель действительно получила обновления параметров.

Состояние обучения сохранило шаг обновления 5. Сохранённая модель строго загрузилась повторно; сохранённые нормализатор и денормализатор прошли проверку обратного преобразования действий; для первого кадра отложенного эпизода с его состоянием выполнен инференс, получен конечный результат формы (1, 50, 7). Первый инференс занял около 0,86 с; это число нельзя считать показателем производительности в реальном времени.

В исходной модели 812 тензоров, в сохранённой — 813: лишний элемент появился из-за общего языкового эмбеддинга, который фреймворк при сохранении разворачивает отдельно. При повторной строгой загрузке ни пропущенных, ни лишних параметров не возникло.

Полный каталог результатов:

train-5steps/checkpoints/000005/pretrained_model
train-5steps/checkpoints/000005/training_state
train-5steps/checkpoints/last -> 000005

Локальная копия журналов обучения, команд, вывода тестов и численных проверок находится в validation/pi05_omy_20261004, исходные файлы — на удалённой машине в корневом каталоге эксперимента. Все шесть вспомогательных тестов программы прошли.

Повторное использование локальной модели

Чтобы переиспользовать подготовленный совместимый каталог на этой рабочей станции, перед запуском ноутбука задайте переменные окружения:

export OMY_PI05_PRETRAINED=/path/to/data-disk/robotics_shared/experiments/omy-pi05-notebook-20261004/short_finetune_20261004/pi05_libero_start
export HF_HOME=/path/to/data-disk/robotics_shared/cache/huggingface

Всё равно нужно указать собственный источник демонстраций, каталог для преобразования и новый выходной каталог, как описано в ноутбуке. Упрощённая конфигурация из исходного каталога OpenPi не является полной конфигурацией LeRobot и не может заменить подготовленный здесь адаптированный каталог.

Этот эксперимент подтверждает только работоспособность цепочки дообучения: он не оценивал успешность захвата и укладки в OMY и не проверял полноценный эффект обучения. Полное воспроизведение требует заново собрать успешные демонстрации с разными начальными положениями, провести оценку с отложенными эпизодами, выполнить полноценное обучение и затем замкнутые тесты захвата и укладки.