В 2021 году в рамках конференции NeurIPS прошел конкурс MineRL BASALT, целью которого было создание ИИ-агентов, способных выполнять сложные, субъективно оцениваемые задачи в Minecraft. Команда Kairos стала победителем, предложив гибридный подход, сочетающий поведенческий клонинг и классическую инженерию состояний. Ведущий Янник Килчер (Yannic Kilcher) обсудил с авторами решения — Дэвидом Уоткинсом, Ником Вайтовичем и Винисиусом Герксом — механизмы работы их системы и причины превосходства над чисто нейросетевыми методами.
🏗️ Суть вызова MineRL BASALT: задачи без функции вознаграждения 4:10
Главная особенность BASALT Challenge заключается в полном отсутствии математической функции вознаграждения (reward function) . Вместо того чтобы оптимизировать конкретное число, агенты должны выполнять задачи, результат которых оценивают люди-судьи. Участникам предлагалось решить четыре иерархические задачи:
- FindCave: найти вход в пещеру .
- MakeWaterfall: построить «красивый» водопад, отойти и сделать его живописный снимок .
- CreateVillageAnimalPen: построить загон для животных рядом с домом в деревне и загнать туда двух животных одного вида .
- BuildVillageHouse: построить дом в деревне .
Технические ограничения конкурса:
- Входные данные: только RGB-изображение размером 64x64 пикселя и состояние инвентаря .
- Отсутствие доступа к координатам (меню F3) или внутренним данным симулятора .
- Набор данных: от 40 до 80 демонстраций человеческой игры на каждую задачу, при этом не все из них были успешными .
По словам Винисиуса Геркса, простым клонированием поведения (Behavior Cloning) на таком малом объеме данных задачу решить невозможно . Команда Kairos пришла к выводу, что необходимо внедрять в архитектуру экспертные знания о мире игры (knowledge engineering).
🧠 Архитектура решения: государственная машина и классификатор состояний 19:31
В основе системы победителей лежит иерархическая структура, управляемая конечным автоматом (State Machine) . Вместо одной монолитной нейросети, команда разделила каждую задачу на логические этапы.
Ключевые компоненты системы:
- Конечный автомат (State Machine): Жестко запрограммированная логика переключения между подзадачами . Например, для водопада: «поиск места» -> «строительство» -> «позиционирование для фото» .
- Классификатор состояний (State Classifier): Обученная нейросеть, которая анализирует текущий кадр 64x64 и определяет, выполнено ли условие для перехода к следующему этапу (например, «вижу ли я гору?» или «нахожусь ли я в пещере?») .
- Подзадачи (Sub-policies): Модули действий, которые могут быть как обученными (навигация), так и жестко прописанными кодом (размещение блоков) .
Ник Вайтович отмечает, что использование человеческих знаний позволило «не заставлять модель учить с нуля то, что мы и так знаем, как сделать» .
🖱️ Секрет успеха: 88 000 человеческих меток и эффективная разметка 26:55
Команда Kairos была единственной, кто активно использовал дополнительную разметку данных людьми . Правила конкурса позволяли включать до 30 МБ дополнительных данных. Команда создала собственный интерфейс для быстрой аннотации кадров из видео-демонстраций.
Методика разметки:
- Вместо разметки каждого кадра по отдельности, пользователи удерживали кнопку, пока состояние на видео не менялось .
- Это позволило разметить около 88 000 изображений силами самих разработчиков «под просмотр телевизора» .
- Классификатор обучался распознавать такие состояния, как «опасность впереди» (лава или обрывы), «наличие животных» и «живописный вид» .
Винисиус Геркс подчеркивает: высокое качество данных, размеченных людьми, имело решающее значение для победы, так как классификатор стал «сердцем», управляющим всей логикой агента .
🧭 Навигация и одометрия без GPS 38:24
Одной из сложнейших технических проблем стало отсутствие координат. Чтобы агент мог возвращаться к построенному загону или отходить от водопада для фото, команда реализовала эстимацию одометрии (Odometry Estimation).
Механизм работы одометрии:
- Симулятор Minecraft работает на частоте 20 кадров в секунду (dt = 0.05 сек) .
- Из официальной Wiki игры известно, что скорость ходьбы составляет 4.32 метра в секунду .
- Агент интегрировал свои действия во времени: если нажата кнопка «вперед», система прибавляла расчетное расстояние к виртуальным координатам X и Y .
- Направление взгляда (heading) также рассчитывалось на основе команд управления камерой .
Дэвид Уоткинс признает, что этот метод страдает от дрейфа (drift), особенно если агент упирается в стену, но продолжает «идти» . Однако для коротких перемещений в рамках одной задачи точности было достаточно .
🐎 Почему агент Kairos прыгает как человек? 54:34
Агент Kairos выиграл не только основной конкурс, но и приз за «человекоподобность» (human-like behavior) . Янник Килчер заметил на видео, что агент совершает, казалось бы, лишние прыжки во время движения.
Авторы объяснили этот эффект особенностями Behavior Cloning:
- Навигационная политика обучалась на демонстрациях живых игроков.
- Многие игроки в Minecraft постоянно прыгают либо для ускорения (спринт-прыжки), либо просто по привычке .
- Нейросеть скопировала эту манеру поведения, что сделало движения агента менее «роботизированными» по сравнению с чисто инженерными решениями .
🔮 Будущее и ограничения: почему Minecraft еще не пройден 1:09:44
Несмотря на победу, разработчики признают, что задачи BASALT — это лишь верхушка айсберга.
- Задачи «найти пещеру» и «построить водопад» можно считать практически решенными .
- Задачи «построить загон» и особенно «построить дом» остаются крайне сложными; ни одно решение пока не приблизилось к идеальному выполнению .
- В текущих симуляциях нет крафта, сражений и долгосрочного планирования, которые составляют основу реального геймплея Minecraft .
Если бы условия конкурса изменились и задачи не были известны заранее, Дэвид Уоткинс считает, что пришлось бы использовать системы обучения по обратной связи в реальном времени (real-time human feedback) . Текущий подход с жестко прописанным конечным автоматом в такой ситуации бы не сработал.