В рамках конференции AI Dev 25 сооснователь и генеральный директор Chroma Джефф Хьюбер (Jeff Huber) представил необычный эксперимент в духе «code golf». Его целью было проверить, насколько далеко можно продвинуться в создании игрового ИИ, полностью отказавшись от этапа логического вывода (reasoning) и полагаясь исключительно на механизмы памяти. В качестве полигона для испытаний была выбрана легендарная игра Doom.
🧠 Философия ИИ: память против рассуждений 1:20
Джефф Хьюбер отмечает тенденцию в современной индустрии ИИ: основное внимание уделяется логическому выводу (reasoning) и возможностям больших языковых моделей (LLM), в то время как память часто воспринимается как второстепенный инструмент, сводящийся к простому поиску по PDF-файлам (Retrieval-Augmented Generation, RAG) .
По мнению Хьюбера, ИИ следует рассматривать не как магическое решение всех проблем человечества, а как новый способ написания программного обеспечения . В этой парадигме LLM выступает в роли процессора (CPU), который обрабатывает неструктурированные данные, используя «здравый смысл» (common sense).
Ключевые тезисы Хьюбера о роли памяти в архитектуре ИИ:
- Динамический контекст: Память делает контекстное окно модели адаптивным к реальному миру, полному краевых случаев (edge cases) .
- Альтернатива дообучению: В отличие от fine-tuning, системы на базе памяти обновляются в реальном времени и легко интерпретируются человеком .
- Замкнутый цикл: Использование памяти позволяет создавать системы, которые учатся на собственном опыте, записывая результаты своих действий и корректируя будущие ответы.
🕹️ Технология «обучения» Chroma игре в Doom 6:08
Для реализации этой задачи Джефф Хьюбер применил подход, схожий с обучением с подкреплением (Reinforcement Learning), но перенесённый на рельсы векторной базы данных Chroma . Вместо сложной политики нейросети используется прямое сопоставление визуальных состояний и действий.
Процесс обучения и игры разделен на три этапа:
- Сбор данных (Запись пар «кадр-действие»): Хьюбер прошел один и тот же уровень Doom восемь раз . В процессе игры система делала «снимки» экрана и фиксировала соответствующие нажатия клавиш и движения мыши.
- Создание эмбеддингов: Каждый кадр был преобразован в вектор с помощью модели CLIP (или OpenCLIP) и сохранен в Chroma . В метаданных вектора записывались бинарные значения действий (например, «1» — клавиша нажата, «0» — нет) .
- Воспроизведение (Retrieval): Во время автономной игры агент Chroma на каждом кадре ищет в базе данных семантически похожие изображения, извлекает связанные с ними действия и выполняет их .
В качестве технического фундамента использовалась библиотека ViZDoom — популярный в академической среде фреймворк, предоставляющий Python-интерфейс для взаимодействия с движком Doom .
🧪 Демонстрация и анализ «глюков» 12:41
Во время живой демонстрации ИИ-агент под управлением Chroma показал смешанные результаты, что, по словам Хьюбера, было предсказуемо и полезно для анализа.
Интересные наблюдения и ошибки:
- «Любовь к окнам»: Агент упорно стремился подойти к определённому окну и стрелять в него. Хьюбер объяснил это спецификой обучающих данных: вероятно, в процессе записи он провел там много времени, и система посчитала это действие приоритетным .
- Проблема дверей: ИИ часто зацикливался, открывая и тут же закрывая двери. Это происходит из-за того, что система нажимает «пробел», видя закрытую дверь, но не учитывает время, необходимое для её полного открытия, и нажимает клавишу снова .
- Отсутствие функции вознаграждения: Поскольку в эксперименте была «вырезана» логика, у агента нет понимания прогресса. Он может начать двигаться в обратную сторону по уровню, так как просто видит «знакомый коридор» и не понимает, ведет ли он к цели .
Хьюбер подчеркнул важность обучения на «грязных» данных. В первой итерации он играл идеально, и когда агент попадал в нестандартную ситуацию (упирался в стену), он не знал, что делать. Во второй раз Хьюбер намеренно играл хаотично, врезаясь в препятствия и разворачиваясь, что сделало ИИ более устойчивым .
🛠️ Будущее систем с «человеком в контуре» 13:22
Одной из ключевых особенностей системы стала функция «запроса помощи». Если агент понимает, что он застрял (состояние не меняется), он подаёт сигнал человеку . Когда Джефф перехватывает управление на несколько секунд, эти новые кадры и действия мгновенно отправляются в базу данных Chroma. Таким образом, система доучивается прямо в процессе эксплуатации (human-in-the-loop) .
Джефф Хьюбер подытожил, что создание ИИ-систем сегодня очень похоже на классическую разработку ПО: это постоянный процесс исправления багов и добавления фич, с той лишь разницей, что в мире ИИ типы данных не являются «строго типизированными» и могут вести себя непредсказуемо .
Весь код проекта был обещан к публикации в открытом доступе в GitHub-репозитории автора (Jeffy Huber) для дальнейших экспериментов сообщества по замыканию цикла обучения через функции вознаграждения .