Углублённое понимание
В этом разделе подробно разбираются параметры конфигурации обучения, а также метки воплощений (embodiment), конфигурация модальностей и преобразования данных.
Дообучение головы действий для воплощения
GR00T работает с разными типами роботов (воплощениями) благодаря специальной конструкции головы действий. При дообучении нужно указать, какую голову воплощения обучать, в соответствии с набором данных:
-
Метка воплощения
- При создании экземпляра класса
LeRobotSingleDatasetкаждый набор данных обязан быть помечен конкретной меткойEmbodimentTag, например EmbodimentTag.GR1_UNIFIED. - Полный список меток воплощений находится в
gr00t/data/embodiment_tags.py. - Метка определяет, какая голова действий будет дообучаться.
- Для нового воплощения используйте метку
EmbodimentTag.NEW_EMBODIMENT, напримерnew_embodiment.your_custom_dataset.
- При создании экземпляра класса
-
Принцип работы
- Когда набор данных загружается с определённой меткой воплощения (например,
EmbodimentTag.GR1_UNIFIED), модель имеет несколько компонентов, которые можно настраивать при дообучении: визуальный энкодер, языковую модель, DiT и т. д. - Именно для головы действий дообучается только та, которая соответствует указанной метке воплощения. Остальные головы для других воплощений остаются замороженными.
- Когда набор данных загружается с определённой меткой воплощения (например,
Параметры расширенной настройки
Компоненты модели
У модели есть несколько компонентов, которые можно дообучать независимо. Эти параметры задаются в функции GR00T_N1.from_pretrained.
-
Визуальный энкодер (
tune_visual)- Установите
true, если данные визуально отличаются от данных предобучения. - Внимание: это вычислительно дорого.
- По умолчанию: false.
- Установите
-
Языковая модель (
tune_llm)- Ставьте
trueтолько тогда, когда язык конкретной области сильно отличается от стандартных инструкций. - В большинстве случаев должно быть
false. - По умолчанию: false.
- Ставьте
-
Проектор (
tune_projector)- По умолчанию проектор настраивается.
- Это помогает согласовать пространство действий и состояний конкретного воплощения.
-
Диффузионная модель (
tune_diffusion_model)- По умолчанию диффузионная модель не настраивается.
- Это голова действий, общая для проекторов всех воплощений.
Понимание преобразований данных
В этом документе описаны различные типы преобразований, которые используются в конвейере обработки данных. Всего есть четыре основные категории преобразований.
1. Преобразования видео
Преобразования видео применяются к видеоданным для подготовки к обучению модели. По результатам наших экспериментов лучше всего работает такое сочетание:
- VideoToTensor: переводит видеоданные из исходного формата в тензоры PyTorch для обработки.
- VideoCrop: обрезает кадры видео; в случайном режиме используется коэффициент масштаба 0,95, чтобы внести небольшие вариации.
- VideoResize: приводит кадры к стандартному размеру (224×224 пикселя) с помощью линейной интерполяции.
- VideoColorJitter: применяет цветовые аугментации, случайно меняя яркость (±0,3), контраст (±0,4), насыщенность (±0,5) и оттенок (±0,08).
- VideoToNumpy: переводит обработанные тензоры обратно в массивы NumPy для дальнейшей обработки.
2. Преобразования состояний
Преобразования состояний обрабатывают информацию о состоянии робота:
- StateActionToTensor: переводит данные состояния (например, положение руки, конфигурацию кисти) в тензоры PyTorch.
- StateActionTransform: применяет нормализацию к данным состояния. Для разных ключей модальностей используются разные режимы нормализации. Логику преобразования можно найти в файле state_action.py.
3. Преобразования действий
Преобразования действий обрабатывают данные действий робота:
- StateActionToTensor: аналогично преобразованию состояний, переводит данные действий в тензоры PyTorch.
- StateActionTransform: применяет нормализацию к данным действий. Как и для состояний, для стандартизации значений действий левой и правой руки, кисти и поясницы используется нормализация min-max.
4. Преобразование конкатенации
ConcatTransform объединяет обработанные данные в единый массив:
- Видеоданные конкатенируются в порядке, заданном ключами видеомодальностей.
- Данные состояний конкатенируются в порядке, заданном ключами состояний.
- Данные действий конкатенируются в порядке, заданном ключами действий.
Этот шаг важен, поскольку он подготавливает данные в формате, который ожидает модель, и гарантирует, что все модальности правильно согласованы и готовы к обучению или инференсу.
5. Преобразование GR00T
GR00TTransform — специальное преобразование, которое готовит данные для модели. Оно применяется в самом конце конвейера обработки данных.
- Оно дополняет данные до максимальной длины последовательности в пакете.
- Оно создаёт словарь, где ключами служат ключи модальностей, а значениями — обработанные данные.
На практике это преобразование обычно почти не требует изменений.
Совместимость набора данных LeRobot
Подробнее о наборах данных LeRobot, совместимых с GR00T, см. в файле LeRobot_compatible_data_schema.md.