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

Углублённое понимание

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

Дообучение головы действий для воплощения

GR00T работает с разными типами роботов (воплощениями) благодаря специальной конструкции головы действий. При дообучении нужно указать, какую голову воплощения обучать, в соответствии с набором данных:

  1. Метка воплощения

    • При создании экземпляра класса LeRobotSingleDataset каждый набор данных обязан быть помечен конкретной меткой EmbodimentTag, например EmbodimentTag.GR1_UNIFIED.
    • Полный список меток воплощений находится в gr00t/data/embodiment_tags.py.
    • Метка определяет, какая голова действий будет дообучаться.
    • Для нового воплощения используйте метку EmbodimentTag.NEW_EMBODIMENT, например new_embodiment.your_custom_dataset.
  2. Принцип работы

    • Когда набор данных загружается с определённой меткой воплощения (например, EmbodimentTag.GR1_UNIFIED), модель имеет несколько компонентов, которые можно настраивать при дообучении: визуальный энкодер, языковую модель, DiT и т. д.
    • Именно для головы действий дообучается только та, которая соответствует указанной метке воплощения. Остальные головы для других воплощений остаются замороженными.

Параметры расширенной настройки

Компоненты модели

У модели есть несколько компонентов, которые можно дообучать независимо. Эти параметры задаются в функции GR00T_N1.from_pretrained.

  1. Визуальный энкодер (tune_visual)

    • Установите true, если данные визуально отличаются от данных предобучения.
    • Внимание: это вычислительно дорого.
    • По умолчанию: false.
  2. Языковая модель (tune_llm)

    • Ставьте true только тогда, когда язык конкретной области сильно отличается от стандартных инструкций.
    • В большинстве случаев должно быть false.
    • По умолчанию: false.
  3. Проектор (tune_projector)

    • По умолчанию проектор настраивается.
    • Это помогает согласовать пространство действий и состояний конкретного воплощения.
  4. Диффузионная модель (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.