В августе 2017 года на турнире The International ИИ-бот от OpenAI разгромил сильнейших мировых киберспортсменов в Dota 2 в формате 1 на 1. За этим историческим триумфом стояла небольшая команда всего из десятка человек, совершившую колоссальный объем чисто инженерной работы. Сооснователь OpenAI Грег Брокман и инженер-исследователь Шимон Сидор в беседе с президентом Y Combinator Сэмом Альтманом подробно рассказали о кулуарной драме разработки пайплайна, ночных кризисах в Сиэтле и о том, почему практические навыки программирования в ИИ-стартапах сегодня ценятся гораздо выше докторских степеней.
🧠 Масштабирование моделей и тупик традиционной архитектуры 0:00
Развитие индустрии искусственного интеллекта в ближайшие годы во многом будет определяться тем, что аппаратное обеспечение для запуска нейросетей начнет ускоряться гораздо быстрее, чем ожидает большинство людей. Как утверждает Грег Брокман, это позволит существенно масштабировать модели, что приведет к появлению качественно новых типов поведения систем, которые ранее никто не наблюдал. В качестве примера Брокман приводит прошлый исследовательский проект OpenAI по обучению языковой модели на базе отзывов Amazon. Задачей алгоритма было простое предсказание следующего символа в тексте. Однако по мере увеличения масштаба модель неожиданно для разработчиков самостоятельно эволюционировала в передовой классификатор для анализа тональности текста.
Подобные качественные скачки, по словам спикеров, напрямую зависят от размера архитектуры: на чуть более мелких моделях этот эффект полностью исчезает. При этом Шимон Сидор обращает внимание на серьезный перекос в современном ИИ-сообществе: многие исследователи пытаются искусственно придумывать сложные проблемы и добавлять лишние надстройки в архитектуры вместо того, чтобы детально изучить лимиты уже существующих методов. Долгое время в индустрии глубокого обучения господствовало убеждение, что для эффективного распараллеливания вычислений необходимо использовать минимальный размер батча (объема данных, обрабатываемого за один шаг). Компания Baidu даже совершила сложнейший инженерный подвиг, написав ассемблерный код для GPU, чтобы упаковать рекуррентные нейросети с размером батча, равным единице. Однако, как отмечает Сидор, проект компании Facebook под названием «ImageNet за один час» доказал обратное: простое исправление багов в коде классификации позволило использовать огромные батчи и завершать обучение в разы быстрее.
С аппаратной точки зрения индустрия вплотную подошла к смене парадигмы. Традиционные компьютеры строятся на фон-неймановской архитектуре, где процессор и память разделены, что создает жесткое бутылочное горлышко при передаче данных. Грег Брокман прогнозирует, что будущие специализированные ИИ-чипы будут напоминать структуру человеческого мозга. В такой архитектуре каждый условный нейрон обладает собственной локальной памятью и напрямую коммуницирует с соседними элементами. Переход от стандартных CPU к графическим чипам GPU с тысячами CUDA-ядер уже дал колоссальный прирост производительности, но истинный прорыв, по мнению Брокмана, произойдет с внедрением узкоспециализированного железа, на котором модели будут работать безумно быстро.
🛠️ Инженерия против академической науки: миф о необходимости PhD 4:31
Один из главных вопросов начинающих специалистов касается порога входа в индустрию ИИ. Сэм Альтман отмечает устоявшийся стереотип: многие талантливые разработчики считают, что без защиты докторской степени (PhD) по искусственному интеллекту им нет смысла даже пытаться устроиться в такие компании, как OpenAI. Опыт проекта по созданию Dota-ботов полностью опровергает это заблуждение. По оценке Шимона Сидора, доля чистой академической науки в повседневной работе над проектом была практически ничтожной — на нее ушло всего несколько человеко-недель, в то время как на чистую инженерию были затрачены многие человеко-месяцы.
Грег Брокман подчеркивает, что первоклассный инженер без какого-либо опыта в ИИ может стать продуктивным в OpenAI буквально с первого дня. Задачи внутри команды распределяются по широкому спектру, во многом напоминая классический хардкорный ИТ-стартап:
- Развертывание и поддержка масштабной инфраструктуры на базе оркестратора Kubernetes поверх облачных платформ.
- Создание кастомных инструментов внутреннего мониторинга и логирования для отслеживания аномалий.
- Оптимизация производительности распределенных вычислений и устранение инфраструктурных сбоев.
Современная система машинного обучения, с точки зрения Брокмана, представляет собой небольшой, но крайне требовательный к вычислительным ресурсам «магический черный ящик». Задача команды — сделать это ядро как можно более простым и компактным, но окружить его максимально мощной, надежной и масштабируемой инженерной обвязкой. Как добавляет Шимон Сидор, наиболее удачные и сильные решения на стороне ИИ-модели чаще всего заключались не в изобретении экзотических архитектур в TensorFlow, а в четком понимании того, каких шагов делать как раз не следует.
🎮 Выбор поля боя: почему именно Dota 2 и при чём тут Linux 7:48
В конце 2016 года команда OpenAI, состоявшая на тот момент всего из десяти человек, искала сложную среду для тестирования и расширения лимитов своих алгоритмов обучения с подкреплением. Выбор пал на индустрию видеоигры, так как игры предоставляют идеальную, полностью виртуальную и бинарно проверяемую среду. Процесс отбора начался прагматично: инженеры открыли стриминговую платформу Twitch и пошли сверху вниз по списку самых популярных игр в мире.
Первое место занимала League of Legends, однако проект пришлось сразу отбросить по чисто техническим причинам: игра не поддерживала операционную систему Linux и не имела открытого программного интерфейса (API). Спустившись по списку ниже, команда остановилась на Dota 2, которая идеально соответствовала всем критериям:
- Нативная и стабильная поддержка работы на Linux.
- Огромное развитое сообщество, создавшее инструменты для парсинга игровых записей (реплеев).
- Наличие встроенного API на языке Lua.
Любопытно, что изначально данный Lua API создавался разработчиками из Valve для разработки пользовательских модификаций, а не для интеграции искусственного интеллекта. Тем не менее инженеры OpenAI решили адаптировать его под свои нужды. Философия Valve, поощряющая открытость и кастомизацию своих продуктов, идеально совпала с целями стартапа. Проект стартовал в конце декабря, и по удивительному совпадению именно в середине декабря Valve неожиданно выпустила новое специализированное API, ориентированное исключительно на создание ботов, признав, что их собственные стандартные алгоритмы критически устарели.
💻 Архитектура пайплайна: от Lua к Python и Docker-контейнерам 10:00
На раннем этапе проект развивали всего два человека. Первым шагом стало детальное изучение семантики игрового API и создание стабильного окружения для разработки. Один из инженеров, Рафаэль, занялся написанием классического заскриптованного бота на Lua. До этого момента он сыграл в Dota 2 всего три-четыре раза в жизни, но посмотрел более тысячи часов профессиональных матчей. В результате ему удалось создать лучшего в мире заскриптованного Dota-бота, основанного на жесткой человеческой логике.
В это же время Грег Брокман в одиночку выстраивал инфраструктуру автоматизации. Ему пришлось столкнуться со специфическими платформенными ограничениями Steam, который мог работать в офлайн-режиме не более двух недель подряд, постоянно требуя загрузки свежих патчей. Полный объем файлов игры составлял около 17 гигабайт, тогда как внутренний Docker-реестр OpenAI поддерживал максимальный размер слоя лишь в 5 гигабайт. Брокману пришлось написать кастомный скрипт, который дробил массив данных на 5-гигабайтные архивы формата tarball, загружал их в облачное хранилище AWS S3, а затем автоматически собирал обратно на целевых машинах.
Для обеспечения максимальной скорости итераций ИИ-модель необходимо было писать на связке Python и TensorFlow. Чтобы перенести логику Lua-бота в экосистему Python, Брокман применил метод механической транскомпиляции:
- Переименовал все Lua-файлы в расширение
.py. - Полностью закомментировал весь код.
- Пошагово раскомментировал функцию за функцией, исправляя синтаксические несовместимости.
Основная сложность заключалась в разнице индексации массивов (в Lua индексы стартуют с единицы, в Python — с нуля), а также в том, что структуры данных Lua не разделяют типы обычного массива и ассоциативного словаря. Взаимодействие между игрой и Python-сервером было реализовано на базе протокола gRPC и сериализации Protocol Buffers. На каждом игровом шаге Dota 2 выгружала полный снимок состояния, вычисляла разницу и передавала её по сети. Python-код восстанавливал объект состояния в памяти и вызывал соответствующие методы. В итоге систему упаковали в стандартный интерфейс OpenAI Gym, позволяя запускать игру простой командой gym.make().
📈 Обучение с подкреплением и метрика TrueSkill на стене 14:14
Сам Грег Брокман иронично замечает, что у него нет ученой степени и он даже не окончил колледж, поэтому его личный вклад в ML-составляющую проекта был исключительно прикладным. Он настроил систему поведенческого клонирования. Каждый день Valve публикует около 1,5 миллионов публичных записей матчей, которые удаляются через две недели. Этот поток генерировал около 2 терабайт данных в сутки. Команда настроила фильтрацию, скачивая только игры экспертов высокого уровня, чтобы обучить базовую модель имитировать действия профессионалов.
Брокман обратил внимание на специфику ML-разработки, которая часто шокирует традиционных программистов: обилие версий файлов вроде experiment_1, experiment_2. В машинном обучении прогресс носит бинарный характер — код либо работает, либо выдает странные аномалии, и для поиска скрытых багов авторам жизненно необходимо запускать новую версию параллельно со старой для лобового сравнения. Шимон Сидор объясняет базовый принцип обучения с подкреплением: бот считывает параметры окружения, совершает действия, а алгоритм переводит успешность этих действий в единую числовую метрику — награду. Разработка точной формулы этой награды — это скорее тяжелый инженерный процесс, чем теоретическая наука.
Главным ориентиром прогресса стала выведенная на стену офиса метрика TrueSkill (рейтинг, отражающий процент побед бота против предыдущих версий самого себя). График TrueSkill демонстрировал плавный, почти линейный рост, что на практике означало экспоненциальное увеличение игровой силы агента со временем. Средняя продолжительность непрерывного обучения одной модели составляла до двух недель.
Ключевым фактором ускорения прогресса, по мнению Брокмана, стала смена управленческой тактики. Вместо жестких дедлайнов по результатам (например, «победить полупрофессионала к конкретной дате»), которые регулярно срывались, менеджмент перешел на еженедельное планирование конкретных активностей и гипотез («какие идеи мы протестируем до следующего понедельника»). За две недели до старта крупнейшего мирового чемпионата The International команда зафиксировала код и запустила свой самый масштабный эксперимент, направив все доступные вычислительные мощности на финальное обучение модели. Первую уверенную победу над полупрофессиональным тест-игроком бот одержал 8 июля.
🏟️ Драма в подвале KeyArena: wand-эксплойт и стратегия приманки 25:00
Прибыв на чемпионат в Сиэтл, команда OpenAI оказалась в буквальном смысле за кулисами: им выделили раздевалку в подвале стадиона KeyArena, переоборудованную под съемочную студию. Разработчики сидели со своими ноутбуками, отделенные от приглашенных профессиональных игроков лишь тонкой перегородкой из черной ткани. В понедельник ИИ триумфально обыграл первых двух про-игроков и одного топового аналитика со счетом 3-0. Однако затем Valve привела профессионального игрока с никнеймом Pajkatt, который смог нащупать уязвимость и нанес боту первое поражение.
Причиной проигрыша стал предмет Magic Wand (волшебная палочка), накапливающий заряды, когда соперник рядом использует заклинания. Игрок купил этот артефакт на ранней стадии игры — сценарий, который бот никогда не встречал в процессе самообучения. Модель просто не понимала физику накопленных зарядов, и киберспортсмен мастерски использовал это в критический момент боя.
Инженеры экстренно провели сложнейшую операцию прямо на работающем эксперименте. Чтобы закрыть уязвимость, они внесли изменения в логику выбора предметов, добавив фиксированную вероятность покупки раннего Magic Wand, чтобы бот в процессе ускоренных матчей против самого себя быстро освоил внутриигровые последствия этого артефакта. Кроме того, разработчики обнаружили критический баг в фича-инжиниринге: модель получала чистые данные из API, но создатели забыли передать в числовом векторе состояние анимации телепортации игрока, из-за чего бот буквально «не видел» этот важнейший элемент на экране.
В среду в 13:00 представитель Valve сообщил, что в 16:00 прибудут суперзвезды мировой сцены Dota 2 — Arteezy и Sumail. Срочный тест против штатного полупрофессионала поверг команду в панику: тестер заявил, что новая версия бота полностью сломана. Бот без видимых причин впитывал колоссальный урон на первой волне крипов. Однако, сыграв пять матчей подряд, тестер проиграл все пять.
Выяснилось, что нейросеть самостоятельно изобрела изощренную психологическую стратегию блефа (baiting): она умышленно имитировала глупое поведение и низкое здоровье, заманивая человека совершить агрессивный выпад под вышку, а затем мгновенно включала режим «супер-бота» и уничтожала оппонента. Для элиты это могло стать фатальной уязвимостью. У инженеров оставалось три часа. Инженер Джей зафиксировал код и совершил сложнейшую склейку двух разных моделей (Franken-bot): первая безопасная модель играла стартовую волну, после чего управление бесшовно перехватывал «супер-бот» второй версии. Склейку закончили за 20 минут до начала матча. В итоге эта гибридная версия разгромила Arteezy три раза подряд.
⏰ Инженерный ад: шесть часов на исправление одной строчки 43:12
За этой гладкой историей успеха скрывался жестокий ночной инцидент, произошедший накануне среды. Шимон Сидор подробно описал изнурительный рабочий процесс, когда после тяжелого дня общения с прессой и игроками команда садилась за код в полночь в состоянии крайнего истощения.
Уровень когнитивной усталости четырех инженеров был настолько высок, что они не доверяли проверку кода одному человеку: каждую строчку и константу в конфигурационных файлах эксперимента верифицировали как минимум двое коллег одновременно. Сидор лично занимался деликатным обновлением параметров модели. Процесс, сопряженный с опасностью логических ошибок со сдвигом индексов, занял долгие шесть часов непрерывной концентрации. В три часа ночи серверная инфраструктура начала превышать жесткие внутренние лимиты, что потребовало экстренных звонков сисадминам для ручного расширения квот. Лишь к 6:00 утра код был готов к деплою, который выполнял инженер Якуб. Шимон Сидор оставался рядом исключительно ради того, чтобы физически не дать Якубу уснуть за клавиатурой. Эксперимент перезапустили в 11:00 утра, после чего авторы рухнули спать до 16:00.
Этот опыт, по словам Сидора, сформировал жесткие правила разработки в OpenAI:
- Каждый баг в коде обучения имеет колоссальную стоимость, так как аномалии проявляются лишь спустя сутки в виде слегка просевших графиков.
- Основной метод отладки в глубоком обучении — это внимательное чтение исходного кода, а не использование классических дебаггеров.
- Команда сознательно жертвует модульностью и красивой архитектурой кода ради его краткости и простоты, минимизируя общее число строк, где человек может совершить ошибку.
Грег Брокман добавляет, что инженерам из традиционного ИТ-сектора требуется большая ментальная гибкость и смирение. Нужно уметь вовремя отключать перфекционизм и привычку усложнять архитектуру там, где исследователям нужен максимально короткий и прозрачный скрипт.
🚀 Изменение стиля игры людей и горизонты сильного ИИ 47:46
Самым удивительным долгосрочным эффектом проекта стало обратное влияние искусственного интеллекта на человеческую стратегию. В процессе тренировок штатный полупрофессиональный тестер OpenAI сыграл против бота сотни матчей. В один из дней разработчики устроить бенчмарк-матч между ним и суперзвездой Arteezy. Arteezy доминировал всю игру, опережая тестера по механике добивания крипов на микросекунды. В финальной стадии тестер применил сложную тактику «тройной волны» под вражескую башню с последующей регенерацией здоровья — стратегию, которой его научил бот OpenAI. К изумлению команды, этот прием сработал, и обычный игрок смог переиграть топ-профессионала мира.
В четверг ИИ-агент встретился с Sumail и завершил серию с абсолютным триумфом со счетом 5-0. Позже Arteezy признался Брокману, что опыт игр с ботом заставил его полностью перестроить фокус внимания и существенно улучшить собственную механику удержания линии.
Завершая дискуссию, спикеры сошлись во мнении, что видеоигры являются лучшим виртуальным полигоном для движения к сильному искусственному интеллекту. В отличие от робототехники, требующей дорогостоящего физического обслуживания, игры позволяют запускать тысячи копий симуляций параллельно и собирать чистую статистику. По прогнозу Грега Брокмана, профессия ИИ-исследователя и инженера станет самой последней человеческой работой, которую автоматизирует ИИ, поскольку эти специалисты будут до последнего момента необходимы для улучшения и контроля самих интеллектуальных систем.