Habr AI→ оригинал

DeepSeek y Qwen intentaron pasarse "Everlasting Summer", pero se atascaron en el laberinto

Se probaron LLM locales en "Everlasting Summer": el juego en Ren’Py se conectó a Ollama mediante un puente TCP, y se hizo que los modelos eligieran líneas de di

◐ Слушать статью

В блоге Selectel на Хабре описали эксперимент, в котором локальные большие языковые модели подключили к визуальной новелле «Бесконечное лето» и заставили принимать сюжетные решения вместо игрока. Технически связка сработала, но на практике даже сильные модели часто путались в ответах, тормозили на длинном контексте и приводили историю к неудачным финалам.

Как устроили тест

Для эксперимента выбрали именно «Бесконечное лето», потому что визуальная новелла почти полностью состоит из текста, а значит хорошо подходит под сильную сторону LLM. У игры 13 концовок, а отношения с персонажами меняются в зависимости от реплик и действий, поэтому такой формат оказался удобным полигоном для проверки того, как модель ведет себя в длинном сюжетном диалоге. Дополнительный плюс был в том, что часть локальных моделей не знает эту игру заранее и не может просто «вспомнить» правильные ходы.

Техническая часть строилась вокруг Ren’Py, на котором написана игра. Автор добавил в проект файл bridge.rpy, поднял внутри игры TCP-сервер и перехватил ключевые функции: вывод реплик через say, меню выбора через display_menu и работу карты через store.

Так игра начала отправлять наружу весь диалог, а внешний координатор — принимать решения вместо человека. Модели запускались локально на облачном сервере с 12 vCPU, 128 ГБ RAM, одной H100 и 300 ГБ SSD через av/harbor, Docker и Ollama. Отдельно пришлось обойти сюжетную карточную мини-игру, чтобы не учить модель еще и дополнительной механике, не связанной с текстовым выбором.

Где всё ломалось После патча игра стала управляться извне через Ollama.

Координатор собирал реплики, размечал их ролями system, tool, user и assistant и отправлял модели простой запрос: перед тобой выбор, посоветуй нужный вариант и ответь одной цифрой. На бумаге схема выглядела прямолинейно, но уже на первых сценах модели начали отвечать по-человечески: добавляли пояснения, повторяли список вариантов, выбирали несуществующий номер или вообще выдавали фразу не по формату. Из-за этого пришлось вводить дополнительный запрос, который отдельно извлекал номер ответа из текста.

Вторая проблема оказалась еще болезненнее: контекст рос слишком быстро. В одном только прологе было 134 реплики, в первом дне — 862, а вся игра содержит десятки тысяч строк. После первой трети прохождения каждая развилка могла обрабатываться по 5–7 минут.

Решение оказалось грубым, но рабочим: старые сообщения начали сворачивать в краткие пересказы пакетами по сто штук, чтобы в активном диалоге оставалось не больше двухсот сообщений. Это заметно ускорило ответы и снизило долю странных реакций.

Чем закончились прогоны

После калибровки в финальный тест отправили пять локальных моделей: DeepSeek-R1:70b, Qwen3.5:9b, Qwen2.5:3b, gpt-oss:20b и Gemma3:27b. Все они проходили игру с начала, без доступа к готовым прохождениям, а координатор записывал сделанные выборы, промежуточные ответы и рассуждения. Идея была простой: проверить не теорию, а реальную способность модели удерживать сюжет, ориентироваться в развилках и доводить длинную историю до внятной концовки.

  • DeepSeek-R1:70b в тестах доходил до основной плохой концовки, но в записи зациклился в лабиринте. * gpt-oss:20b стабильно добирался до основной плохой концовки без заметных сюрпризов.
  • Qwen3.5:9b шла быстро, но на одном выборе думала больше двадцати минут.
  • Qwen2.5:3b смогла выйти на плохую концовку линии Лены.
  • Gemma3:27b дважды терялась в лабиринте и в тестах пришла к плохой концовке Алисы.
«Получился самый дорогой генератор псевдослучайных чисел», — так автор описал систему после прогонов.

Общий результат вышел слабым не только из-за самих финалов. Ключевая проблема проявилась в лабиринте, где нужно было учитывать уже сделанные повороты и не повторять один и тот же выбор. Именно там модели чаще всего застревали на старом паттерне и воспроизводили прежний ответ, даже когда он уже приводил в тупик. С учетом того, что у игры 13 концовок и многие сюжетные линии ломаются одним неверным решением ближе к финалу, даже формально рабочий агент пока остается слишком ненадежным игроком.

Что это значит

Эксперимент показал, что локальные LLM уже можно довольно быстро подключить к текстовой игре через Ren’Py, Ollama и простой сетевой мост. Но это пока не история про автономного агента, который уверенно понимает длинный сюжет и стратегически проходит новеллу: без жесткой нормализации ответов, сжатия контекста и ручных обходов такие модели легко зацикливаются, медлят на выборе и чаще приходят к плохому исходу, чем к хорошему.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Загружаем комментарии…