Тонкая настройка модели ACT (Action Chunking Transformer)
Обзор
ACT (Action Chunking Transformer) - это сквозная модель имитационного обучения, специально разработанная для задач точных манипуляций. Модель преодолевает проблему накопления ошибок в традиционном имитационном обучении путем предсказания блоков действий (action chunks), достигая высоких показателей успеха в манипуляциях роботов на недорогом оборудовании.
Основные особенности
- Предсказание блоков действий: Предсказывает несколько последовательных действий одновременно, уменьшая накопление ошибок
 - Архитектура Transformer: Использует механизм внимания для обработки последовательных данных
 - Сквозное обучение: Напрямую предсказывает действия из необработанных наблюдений
 - Высокая частота успеха: Отличные результаты в задачах точных манипуляций
 - Дружелюбность к оборудованию: Может работать на потребительском оборудовании
 
Предварительные требования
Системные требования
- Операционная система: Linux (рекомендуется Ubuntu 20.04+) или macOS
 - Версия Python: 3.8+
 - GPU: NVIDIA GPU (рекомендуется RTX 3070 или выше), минимум 6GB видеопамяти
 - Память: Минимум 16GB RAM
 - Дисковое пространство: Минимум 30GB свободного места
 
Подготовка среды
1. Установка LeRobot
# Клонировать репозиторий LeRobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
# Создать виртуальную среду
conda create -n lerobot python=3.10
conda activate lerobot
# Установить зависимости
pip install -e .
2. Установка специфичных зависимостей ACT
# Установить дополнительные пакеты
pip install einops
pip install timm
pip install wandb
# Войти в Weights & Biases (опционально)
wandb login
Архитектура модели ACT
Основные компоненты
- Кодировщик изображений: Обрабатывает входные изображения с нескольких ракурсов
 - Кодировщик состояний: Обрабатывает информацию о состоянии робота
 - Декодер Transformer: Генерирует последовательности действий
 - Головка действий: Выводит финальные предсказания действий
 
Ключевые параметры
- Chunk Size: Количество предсказываемых действий за раз (обычно 50-100)
 - Context Length: Длина исторических наблюдений
 - Hidden Dimension: Скрытая размерность Transformer
 - Number of Heads: Количество голов внимания
 - Number of Layers: Количество слоев Transformer
 
Подготовка данных
Данные формата LeRobot
ACT требует использования наборов данных формата LeRobot, содержащих следующую структуру:
your_dataset/
├── data/
│   ├── chunk-001/
│   │   ├── observation.images.cam_high.png
│   │   ├── observation.images.cam_low.png
│   │   ├── observation.images.cam_left_wrist.png
│   │   ├── observation.images.cam_right_wrist.png
│   │   ├── observation.state.npy
│   │   ├── action.npy
│   │   └── ...
│   └── chunk-002/
│       └── ...
├── meta.json
├── stats.safetensors
└── videos/
    ├── episode_000000.mp4
    └── ...
Требования к качеству данных
- Минимум 50 эпизодов для базового обучения
 - Рекомендуется 200+ эпизодов для оптимальных результатов
 - Каждый эпизод должен содержать полное выполнение задачи
 - Изображения с нескольких ракурсов (минимум 2 камеры)
 - Высококачественные аннотации действий
 
Тонкая настройка обучения
Важное ограничение параметров
Параметр n_action_steps модели ACT должен быть ≤ chunk_size. Рекомендуется установить оба параметра на одно и то же значение (например, оба на 100).
chunk_size: Длина последовательности действий, предсказываемой моделью за разn_action_steps: Количество фактически выполняемых шагов действий
Базовая команда обучения
# Установить переменные среды
export HF_USER="your-huggingface-username"
export CUDA_VISIBLE_DEVICES=0
# Запустить обучение ACT
lerobot-train \
  --policy.type act \
  --dataset.repo_id ${HF_USER}/your_dataset \
  --batch_size 8 \
  --steps 50000 \
  --output_dir outputs/train/act_finetuned \
  --job_name act_finetuning \
  --policy.device cuda \
  --policy.chunk_size 100 \
  --policy.n_action_steps 100 \
  --policy.n_obs_steps 1 \
  --policy.optimizer_lr 1e-5 \
  --policy.optimizer_weight_decay 1e-4 \
  --policy.push_to_hub false \
  --save_checkpoint true \
  --save_freq 10000 \
  --wandb.enable true
Расширенная конфигурация обучения
Конфигурация с несколькими камерами
# Обучение ACT с настройкой нескольких камер
lerobot-train \
  --policy.type act \
  --dataset.repo_id ${HF_USER}/your_dataset \
  --batch_size 4 \
  --steps 100000 \
  --output_dir outputs/train/act_multicam \
  --job_name act_multicam_training \
  --policy.device cuda \
  --policy.chunk_size 100 \
  --policy.n_action_steps 100 \
  --policy.n_obs_steps 2 \
  --policy.vision_backbone resnet18 \
  --policy.dim_model 512 \
  --policy.dim_feedforward 3200 \
  --policy.n_encoder_layers 4 \
  --policy.n_decoder_layers 1 \
  --policy.n_heads 8 \
  --policy.optimizer_lr 1e-5 \
  --policy.optimizer_weight_decay 1e-4 \
  --policy.push_to_hub false \
  --save_checkpoint true \
  --wandb.enable true