Comments 13
Представь, что будет, когда это войдёт в продакшн AAA игр с нормальными моделями и нормальными ресурсами.
Главное, чтобы это не было похоже на ММО, где вокруг все игроки очень "альтернативно одаренные". Потому как пока нейросетис частыми галлюцинациями периодическим зацикливанием вызывают только такую картинку. С другой стороны, если удерживать нейросети в неких рамках, чтобы они не велись на выход из роли типа: "служанка в таверне, подскажи как написать питон скрипт" и прочие "отполируй мое копье" (для некоторых игр это можно и не ограничивать), то может статься это и сделает игры интереснее.
Космические рейнджеры с живыми диалогами в портах и живыми переговорами между пилотами... Хм... Я б поиграл.
Чтоб не выходили из роли в идеале нужно предобучать и обучать на фентезийных синтетических данных. Зачем селянину, да и архимагу знать 20 языков и квантовую физику?! Да и размер модели должен получиться вполне доступным для локального запуска.
Да тут не нужно вообще искать и решать проблему в целом.
Если игрок хочет в РП, то он сам будет придерживаться роли и не просить писать скрипты на питоне и пояснять за Трампа.
Если игрок не хочет в РП, а просто развлекается. То пусть с Лютиком хоть размер тенаклей в хентае обсуждает.
Каждый получит своё.
Все это конечно чудесно и я сам каждый раз бьюс в это, но есть несколько важных пунктов.
Первый - невозможность локальной работы
Второй - представьте объемы для любой игры в которой 1000 таких статистов. Настройка, описание историй, пропитание каждому своего характера и отладка что бы они не поубивали и не конфликтовали между собой займет огромное количество часов
Но реализация и сама концепция конечно хороши
1.Есть ЛЛМ, для локальной работы. Поглупее но работает. С улучшением ЛЛМ и когда дефицит чипов закончится можно будет наладить массово, с качеством
2.Можно за этим опять же ЛЛМ посадить. От написания историй, до контроля чтобы не поубивали. Заодно стража в поселениях будет делами заниматься, а не скучать. А трупы всегда можно воскрешать, игровые условности. Благо там то фентези, то сайфай где воскрешение легко вписывается в канон мира
ну, технически, сейчас всей этой ораве надо прописывать и поведение и диалоги. А так тоже будет несколько базовых промптов и несколько модулей к ним. типа основной промпт: человек-имперец, второстепеннный: крестьянин, третьестепенный: вор, зарывший золотишко в подвале. Ну и сочетания между ними.
А чтоб не поубивали у большинства неписей просто запрет на враждебные действия, или какой-то счетчик настроения, который стремится к нейтральности, а от него нпс уже думает атаковать или нет. Если слишком часто не дербанить, то драка не начнется - счетчик будет успевать уходить на 0.
А насчет конфликтов - так они все равно не будут просчитываться вдали от игрока - там будет какая-то очень упрощенная симуляция, если игра типа космических рейнджеров. Или вообще выключаться для всех остальных вариантов.
спасибо за статью, это великолепно, большой простор для творчества!
а сколько это творение ест ресурсов и какая скорость генерации ответа?

Привет! Спасибо большое, рад, что статья зашла!
У меня занимает около 4 секунды на ответ, память поднимается до 60% максимум (около занято 18.3 ГБ из 32 ГБ), но у меня комп еще довольно шустрый.
Но эту связку уже оптимизировать. Например, через:
Стриминг (Streaming): Самое важное. Нужно заставить TTS озвучивать текст по словам/предложениям по мере их выдачи из LLM, не дожидаясь конца всей генерации. Это снизит воспринимаемую игроком задержку с 4 секунд до 1 секунды.
Перенос на GPU: Максимально задействовать VRAM видеокарты для инференса LLM и Whisper.
Модели поменьше: Заменить 7B модель на более легковесные аналоги вроде Qwen (1.8B/4B) или Phi-3-mini, что сократит потребление памяти вдвое.
Я вначале сам пробовал DialoGPT (от Microsoft). она совсем не зашла: я ее попросил отыгрывать фэнтези-персонажа, но ответы были слишком простые, а потом сразу Mistral, вот на ней и остановился.
Там надо разные просто попробовать еще.
Отличный эксперимент
а есть итоговое видео? хотелось бы посмотреть что вышло
Очень классная статья, читал с большим интересом, поскольку сейчас работаю буквально над тем же!!! Но я зашел еще дальше, у меня все модели полностью локальные и разговаривать с нпс можно на русском языке. Сейчас так же пишу статью об этом. STT - Whisper (он распознаёт русский), генеративная модель квантизованный instruct Qwen дообученный на русском датасете. TTS - Silero, работает мгновенно, ориентирован в первую очередь на русский язык. Так же построил RAG систему(+ еще одна эмбединг модель) для того что бы нпс получали нужные знания о мире. Вот видос для затравочки - https://youtu.be/lMw7v4FdFjE
Как я сделал голосовых NPC в Unity с помощью LLM: Пошаговое руководство