Играем в любую RPG на... ChatGPT

А что если нам больше не нужны никакие игровые платформы, издатели и даже разработчики игр?

Окей, окей, шутаны, скажем, нам все еще нужны, и кнопочки нам нажимать надо, и графон чтобы был красивый, и FPS побольше. Нейронки уже научились генерировать трехмерные игры последовательностью картинок, например, Quake от Microsoft:

Впечатляющий, но слабоватый копайлот гейминг экспириенс, я вам скажу.
Впечатляющий, но слабоватый копайлот гейминг экспириенс, я вам скажу.

До генерируемых AAA игр, работающих на домашних ПК нам еще далековато, слишком требовательно к железу, а еще мы не можем поиграть в неё на ChatGPT - такое нужно очень отдельно и дорого обучать.

Но что насчёт таких жанров, как RPG? Скажем, весь визуал и музыка в Fallout или Disco Elysium по сути приятная обертка к гигантской простыне текста.

Так вот.

Disco Elysium больше не нужен...

Открываем ChatGPT или любой другой LLM и пишем в него следующее:

Ты - игровой движок. Пусть игра будет по вселенной Шерлока Холмса. Сюжет - раскрытие очередного преступления Шерлоком вместе с его другом, Доктором Ватсоном. Играбельный персонаж, Шерлок Холмс, имеет здоровье, ману для магии и предметы (лечение, восстановление маны, оружие и крестовые предметы - максимум 9 штук). Шерлок Холмс может задавать вопросы, выполнять действия (например, атаковать противника, взламывать замки, обманывать или втираться в доверие). Иногда к нему может присоединяться Доктор Ватсон, имеющий все те же характеристики, но им управляешь ты, а не игрок. Игра по ходам. Пусть одна история - один день. Один день - 20-30 ходов. Каждый ход ты даешь мне: - состояние игрока одной строкой - второй строкой список доступных предметов, помечая их числами от 1 до 9 - игровую ситуацию и её описание в 2-5 предложениях (окружение, персонажи вокруг) - список из 5 действий (варианты диалогов и/или варианты контекстных действий) - "сохранение" - строку, по которой ты сохраняешь в памяти всех созданных персонажей и места, и текущий сюжет, чтобы его продолжить. Начинаем.

И получаем... Игру.

Играем в любую RPG на... ChatGPT

И идём по сюжету.

Играем в любую RPG на... ChatGPT

И даже просим рисовать нам картинку

Правда, ждём её несколько минут...
Правда, ждём её несколько минут...

И оно играбельно! Я прошел небольшой и вполне интересный квест, в котором Шерлок с Ватсоном выследили маньяка, подрались с ним, забрали у него ключ, открыли этим ключом клетку жертвы в подвале, а из Скотланд-Ярда приехал инспектор Лестрейд с подмогой. И всё, что я давал ChatGPT - это исходный промпт и набор чисел 1/2/3/4/5 на каждый ход. Лестрейд явился самостоятельно из недр знаний модели, я его даже не упоминал.

Попробуйте сами с промтом из начала статьи!

А может вместо Шерлока мы хотим Disco Elysium?

Играем в любую RPG на... ChatGPT

Как видно, мы можем даже не использовать никаких промптов вообще. Я снял галстук с вентилятора и умер. Классика.

Валик-джан, я тебе один умный вещь скажу, но только ты не обижайся. Disco Elysium не нужен, родной.

Играем в любую RPG на... ChatGPT

...Или нужен?

Единственная причина, почему 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 предложит вам стрельнуть сигаретку у персонажа, которого вы убили в начале партии, потому что она просто не учла этот нюанс (несмотря на его наличие в памяти, то есть в тексте).

Такие дела.

Disco Elysium всё еще нужен.

3
1
6 комментариев