Играем в любую RPG на... ChatGPT
А что если нам больше не нужны никакие игровые платформы, издатели и даже разработчики игр?
Окей, окей, шутаны, скажем, нам все еще нужны, и кнопочки нам нажимать надо, и графон чтобы был красивый, и FPS побольше. Нейронки уже научились генерировать трехмерные игры последовательностью картинок, например, Quake от Microsoft:
До генерируемых AAA игр, работающих на домашних ПК нам еще далековато, слишком требовательно к железу, а еще мы не можем поиграть в неё на ChatGPT - такое нужно очень отдельно и дорого обучать.
Но что насчёт таких жанров, как RPG? Скажем, весь визуал и музыка в Fallout или Disco Elysium по сути приятная обертка к гигантской простыне текста.
Так вот.
Disco Elysium больше не нужен...
Открываем ChatGPT или любой другой LLM и пишем в него следующее:
И получаем... Игру.
И идём по сюжету.
И даже просим рисовать нам картинку
И оно играбельно! Я прошел небольшой и вполне интересный квест, в котором Шерлок с Ватсоном выследили маньяка, подрались с ним, забрали у него ключ, открыли этим ключом клетку жертвы в подвале, а из Скотланд-Ярда приехал инспектор Лестрейд с подмогой. И всё, что я давал ChatGPT - это исходный промпт и набор чисел 1/2/3/4/5 на каждый ход. Лестрейд явился самостоятельно из недр знаний модели, я его даже не упоминал.
Попробуйте сами с промтом из начала статьи!
А может вместо Шерлока мы хотим Disco Elysium?
Как видно, мы можем даже не использовать никаких промптов вообще. Я снял галстук с вентилятора и умер. Классика.
Валик-джан, я тебе один умный вещь скажу, но только ты не обижайся. Disco Elysium не нужен, родной.
...Или нужен?
Единственная причина, почему LLM модели (пока) не оставили представителей белых воротничков за воротами предприятий, а разработчиков RPG без работы - LLM модели всё знают, но ни чёрта лысого не помнят.
Что модель "знает", а что "помнит"
LLM модель обучается на датасете, содержащем гигантские объемы структурированного текста - скажем, на Википедии. В результате обучения модель будет "знать" все факты из Википедии и сможет отвечать нам на вопрос, в каком году было Ледовое побоище.
А вот "помнит" модель только то, что мы ей скормили на вход в виде "В каком году было Ледо��ое побоище?" и последующий ответ. И эта память ограничена.
Не просто ограничена - она ничто по сравнению со "знаниями" модели. Мы можем обучить модель на миллиардах слов, а контекст (память) модели в большинстве случаев лишь около 4000 токенов, или 2000-2500 слов на русском языке.
Почему?
Attention Is All You Need
Все современные большие LLM вроде ChatGPT построены на архитектуре Трансформеров, предложенных в статье Attention Is All You Need в 2017 году.
Ключевая проблема архитектуры трансформеров в том, что она построена на так называемом Внимании.
Внимание имеет квадратную сложность, а значит при работе с моделью у нас есть физическое ограничение размера контекста - около 4000 токенов.
Для генерации следующего хода в RPG нам нужно будет хранить в памяти (контексте) не более 2000-2500 слов. То есть на 5-6 страниц А4 должны помещаться описания всех персонажей, их состояния, всех локаций, всех предметов, всех взаимодействий за всю игру и всего лора вселенной.
На Disco Elysium этого не хватит, это качественный квест на пару сотен ходов, не более.
К тому же, мы можем строить таким образом "игры" только по максимально популярным и известным вселенным. ChatGPT подсунет нам Мориарти и инспектора Лестрейда во вселенной Шерлока Холмса, или Рона Уизли с Хагридом во вселенной Гарри Поттера, но новым Толкином со своим миром вам таким образом не стать (если вы не напишете пару тысяч Сильмариллионов и не обучите на них LLM с нуля).
Если мы хотим расширить контекст LLM - да пожалуйста, есть модели с контекстом и на 100000 токенов, и даже на миллионы. Но есть нюанс. Квадратичная сложность контекста. Если мы хотим помнить все 100000 токенов контекста, нам либо нужны терабайты ОЗУ, либо следующего хода игрок будет ожидать часами.
Внимание в моделях с контекстом больше 4000 токенов работает таким образом, что при обработке вашего запроса отдельные токены (слова) будут важнее других, и на длинной игре LLM предложит вам стрельнуть сигаретку у персонажа, которого вы убили в начале партии, потому что она просто не учла этот нюанс (несмотря на его наличие в памяти, то есть в тексте).
Такие дела.