# Как нейросеть OpenAI научилась крафтить алмазную кирку в Minecraft

Источник: https://www.youtube.com/watch?v=oz5yZc9ULAc
Канал: Yannic Kilcher
Опубликовано: 26.06.2022

---

Популярный ИТ-исследователь Янник Килчер представил подробный разбор научной работы компании OpenAI под названием Video PreTraining (VPT). Разработчикам впервые удалось обучить ИИ-агента создавать алмажную кирку в Minecraft с нуля, используя только интерфейс клавиатуры и мыши без жесткого кодирования действий. Этот прорыв стал возможен благодаря инновационной методике предварительного обучения на десятках тысяч часов обычных видеороликов с YouTube.

## ⛏️ Вызов Minecraft: почему классический RL бессилен
[[JUMP:0:00]]

Minecraft уже многие годы служит полигоном для алгоритмов обучения с подкреплением (Reinforcement Learning), однако игра остается невероятно сложной для искусственного интеллекта. Агент оказывается в открытом процедурно генерируемом мире, где ландшафт полностью уникален при каждом новом запуске. Чтобы выжить и продвинуться по игровому дереву технологий, ИИ должен освоить цепочку крафта, которая для случайных действий практически невыполнима.

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

* Игрок должен вручную ломать деревья, чтобы получить древесину.
* Древесина крафтится в доски, а доски — в верстак.
* С помощью верстака создается деревянная кирка, позволяющая добывать булыжник.
* Из булыжника создается каменная кирка, которой можно добыть железную руду.
* Железная руда переплавляется в печи в железные слитки, из которых создается железная кирка.
* Только железной киркой можно добыть алмазы, чтобы в итоге собрать алмазную кирку.

Как отмечает Янник Килчер, эта задача не из легких даже для людей. Участники сообщества в Discord-канале Янника проверяли этот вызов на себе, и самому ведущему за 10–15 минут игрового времени удалось добыть лишь два алмаза, тогда как для кирки требуется три. Если обучать ИИ-модель со случайной инициализацией чисто методом проб и ошибок (классический RL), она предсказуемо показывает нулевой результат. Основной вопрос исследования заключается в том, как решить эту проблему с минимальными затратами.

## 💰 Экономика данных: куда эффективнее тратить доллары?
[[JUMP:3:33]]

Разработка современных ИИ-систем упирается в финансирование, и Янник Килчер предлагает взглянуть на задачу через призму эффективного распределения бюджета. При обучении агента клонированию поведения (Behavior Cloning) у разработчиков есть три основных пути расходования средств.

Основные направления инвестиций в данные:

* Заказ размеченных данных у подрядчиков — дорогой путь, при котором людям платят за часы игры с прямой записью их кликов и нажатий клавиш.
* Сбор неразмеченных данных — максимально дешевый способ получить огромные массивы видео (например, с YouTube), но в них отсутствуют технические логи действий.
* Инвестиции в саму разметку — создание алгоритмов, способных связать готовое видео с действиями управления.

По словам Янника, OpenAI не были первыми, кто применил комбинированный подход, но они первыми доказали, что такая стратегия радикально снижает затраты на создание умного игрового агента. Их метод универсален и применим практически в любой сфере, где есть избыток видеонаблюдений, но мало прямой разметки.

## 🔄 Обратная динамика: взгляд из будущего
[[JUMP:5:46]]

В основе предложенного OpenAI метода VPT лежит простое, но фундаментальное наблюдение за логикой каузальных моделей. Обычный ИИ-агент во время игры должен действовать «вслепую» относительно будущего: смотреть на прошлые кадры и предсказывать следующее нажатие клавиши. Это авторегрессионная, каузальная задача, требующая от модели глубокого понимания контекста и планов игрока.

Однако ситуация кардинально меняется, если мы анализируем уже записанное видео. По утверждению авторов работы, намного проще определить конкретное действие человека между двумя кадрами, если модель имеет доступ одновременно и к прошлым, и к будущим кадрам видеопоследовательности. В таком ретроспективном анализе ИИ видит непосредственные последствия действий и может легко вычислить, какие клавиши были нажаты.

Янник Килчер проводит аналогию с лекцией Андрея Карпатого (Andrei Karpathy) о системах автоматической разметки в компании Tesla. Разработчикам автопилота столкнулись с тем же эффектом: если машина на видео скрывается за препятствием, а затем появляется снова, алгоритму в ретроспективе гораздо легче восстановить ее точную траекторию движения в слепой зоне, чем предсказывать ее положение в реальном времени.

## 🧼 Конвейер OpenAI: от подрядчиков к 70 000 часов YouTube
[[JUMP:8:25]]

Инженеры OpenAI реализовали элегантный двухэтапный процесс генерации обучающих данных. На первом этапе они наняли подрядчиков, которые суммарно наиграли 2000 часов в Minecraft. Во время этих сессий тщательно фиксировались все движения мыши и нажатия клавиш. На этой небольшой, но качественной выборке была обучена «модель обратной динамики» (Inverse Dynamics Model). Этот алгоритм научился сопоставлять изменения на экране с действиями управления.

На втором этапе команда обратилась к YouTube, который буквально переполнен игровыми видеороликами. Однако использовать их напрямую мешает обилие «визуального мусора».

Критерии фильтрации игровых видео:

* Ролик не должен содержать веб-камеру с лицом стримера или всплывающие анимации вроде кнопок подписки.
* Интерфейс игры должен быть чистым, включая стандартные панели здоровья и быстрого доступа (hotbar).
* Игровой процесс должен проходить исключительно в режиме выживания (survival mode).

Для очистки данных OpenAI обучили простую систему: кадры пропускались через предобученную нейросеть ResNet, а затем классифицировались с помощью метода опорных векторов (SVM). В итоге было собрано 70 000 часов «чистого», но неразмеченного видео. Обученная ранее модель обратной динамики разметила этот гигантский массив с точностью более 90%, создав массив так называемых псевдо-лейблов (pseudo-labels). Именно на этих псевдодемонстрациях и обучалась финальная модель клонирования поведения.

## 🏗️ Архитектура сети и концепция «базовых моделей»
[[JUMP:13:29]]

Янник Килчер обращает внимание на то, что авторы работы активно называют получившуюся нейросеть «базовой моделью» (Foundation Model). По шутливому мнению ведущего, количество упоминаний этого слова в тексте выглядит слегка избыточным, будто Стэнфордский университет доплачивал им за маркетинг. Тем не менее, это действительно предобученная сеть, способная к работе в режиме zero-shot или дальнейшей тонкой настройке.

Существует важное архитектурное отличие VPT от языковых моделей семейства GPT:

* Модели GPT работают в рамках одного домена: получают на вход текст и генерируют текст.
* Модель VPT осуществляет кросс-доменный перенос: принимает на вход последовательность видеокадров, а на выходе выдает управляющие действия.

Технически обработка видео устроена следующим образом. Сначала видеоряд обрабатывается с помощью 3D-свертки (3D convolution) с размером ядра равным 5 во временной области. Это позволяет объединять информацию из пяти соседних перекрывающихся кадров. Затем полученные данные проходят через серию полносвязных слоев (feed-forward layers) для формирования индивидуальных векторов-эмбеддингов. Финальным этапом эти эмбеддинги обрабатываются большим Трансформером (Transformer), который и вычисляет иерархически закодированное действие игрока.

## 📊 Результаты: от базовых навыков до алмазной кирки
[[JUMP:19:22]]

Эксперименты показали высокую эффективность предложенного метода. Базовая модель, обученная на 70 000 часов случайных видео, изначально не имеет конкретной игровой цели, но отлично осваивает базовые механики перемещения и взаимодействия с миром. Она способна самостоятельно собирать блоки грязи, рубить деревья и делать доски.

Для достижения более сложных целей OpenAI применили несколько стратегий тонкой настройки:

* Фильтрация по ключевым словам: модель дообучили на видео с тегом «early game» (руководства для новичков). Это привело к взрывному росту эффективности сбора базовых предметов — в некоторых позициях метрики выросли на порядок.
* Целевые демонстрации: тонкая настройка на данных подрядчиков, которым дали конкретное задание построить дом, увеличила частоту создания верстаков в 213 раз.
* Обучение с подкреплением (RL): поверх «ранней» модели запустили классический RL с интенсивным формированием вознаграждения (reward shaping) за каждый предмет в технологической цепочке.

Комбинация предварительного обучения на YouTube и последующего RL дала феноменальный результат. В то время как стандартный RL с нуля показал ровно 0%, агент OpenAI смог успешно скрафтить алмазную кирку в 2,5% тестовых симуляций. Учитывая, что проверка проходила на абсолютно случайных картах (random seeds) с непредсказуемым рельефом, Янник считает этот результат поразительным.

Тем не менее, за успехом стоят колоссальные вычислительные мощности. Обучение моделей OpenAI потребовало 9 дней непрерывной работы 720 графических процессоров Nvidia V100. В завершение Янник Килчер отметил, что авторы выложили модель в открытый доступ, и теперь любой желающий может использовать её для экспериментов или участия в ИИ-соревновании MineRL.