Нейросети развились до такой степени, что с ними можно проводить время и выстраивать ролевые сюжеты. Этот текст - попытка заинтересовать вас войти в мир РП, в частности РП с нейросетью в интерфейсе SIllyTavern.
Что такое этот ваш ролеплей вообще?
Да в целом все просто. Есть персонаж с прописанным бекграундом, сюжетом и завязкой. На основе этой завязки ты пишешь свой текст, потом ИИ тебе отвечает в рамках сюжета, и так далее и так далее.
Что привлекает в ИИ-ролеплее? Ну во-первых, у тебя всегда есть собеседник. Персонажей тысячи, на любой вкус и цвет. А если нет того, который бы тебя устраивал - просто напиши своего, это не очень сложно.
Во-вторых - максимальная свобода. Тут реально царит тотальная анархия в плане цензуры, начиная с самих моделей ИИ, заканчивая персонажами. И во славу Плети, что до комьюнити ИИ-ролеплея еще не добрались цензоры, очень чувствительные персоны с тонкой натурой или обостренным чувством справедливости.
Нет, я серьезно, ты можешь делать вообще ВСЕ, вплоть до откровенно жесткой чернухи, и нейросеть, не обремененная цензурой это спокойно отыграет.
Чтобы вы сразу поняли, чего стоит и не стоит ждать от ИИ-ролеплея. Вы не получите длинную историю (upd: без углубления в тему), 8-месячный отыгрыш внутри гильдии с кучей игроков и глубоким лором, как в варкрафте в былые времена ждать не стоит, к сожалению. ИИ-персонаж "живет" максимум где-то 200-250 сообщений в чате. Это примерно 2-4 часа, в зависимости от длины сообщений.
В среднем у меня получались истории на час-полтора, потому что я виабу, который просто хочет покутить со своими вайфу. Если персонаж очень хорошо прописан, а модель очень мощная, то можно растянуть ролеплей хоть до бесконечности, но это очень вряд ли получится, и так или иначе старые детали он будет постепенно забывать.
Есть два основных способа заставить SillyTavern работать. Либо подключить ее в локальной модели (с помощью либо oobabooga, либо CoboldCPP), которая запускается на твоем ПК, либо подключаться к облачным решениям, которые дают тебе намного большую скорость и огромный выбор достаточно тяжелых моделей, которые на ПК надо еще постараться запустить. Собственно, плюсы и минусы каждого из решений:
Локальный запуск
Все на вашей печке, но нужны мощности. Лично я давно забил на расчеты на видеокарте, потому что 8Гб ну вообще не хватает, поэтому мои модели работают на процессорных вычислениях - Ryzen 5600X и 32 Гб памяти. 16 тоже норм, но больше - лучше.
Собственно, для локального запуска моделей есть два самых популярных интерфейса - Oobabooga и KoboldCPP. Второй и будет рассматриваться в этой статье, потому что он - проще, но ничуть не хуже.
Облако
Облачные вычисления - это круто! Но есть и ложка дегтя в этой бочке меда. В посте будет фигурировать Together.ai.
Вы сможете запускать очень тяжеловесные модели. Они даже обещают новую Llama 3.1 на 405 миллиардов параметров. Я использую в основном 70b модели (которые на реальном железе требуют около 64Гб ОЗУ вместе с контекстом и т.д.)
Очень быстрый ответ от серверов. От мощной модели, которая на вашем ПК варила бы ответ минуты 3, от together вы будете получать примерно за 10 секунд. Круто? Круто!
Дается стартовый депозит в $5. Его хватит на 2-3 дня активной игры на тяжелой модели. Дальше - либо по новой создавать аккаунт (Google), либо быть добропорядочным.
Вычисления облачные, а значит вся та чернуха, что ты делаешь со своей фентези-жертвой в фентези-подвале, будет течь по проводам прямо на сервера Together.ai, и я не знаю, насколько они конфиденциальны.В общем насчет того самого - на свой страх и риск, но навряд ли кому-то интересно, что ты там делаешь и как извращаешься.
Собственно, для локального запуска инструкции довольно простые, просто качайте exe-шник с последнего релиза. Но выбирайте с умом:
KoboldCPP_cu12 - для поддержки видеокарт NVIDIA от 1000-й серии.
koboldcpp_nocuda - если не нужно использовать CUDA (Карты Intel или маломощная NVIDIA по типу 1050)
koboldcpp_oldcpu - старые процессоры
Для видеокарт AMD - форк от YellowRoseCx
Для Linux - инструкция, дальше сами. Удачи!
Хоть KoboldCPP и работает с моделями GGUF, но видеокарта может подхватывать вычисления и ускоряет их, так что выбор правильного файла тут действительно важен.
Как только exe-шник запущен, перед вами будет вот такая картина:
Вообще, можно даже никуда не лезть больше, просто нажимаете Browse, выбираете модель и нажимаете Launch. Да, все так просто. Подробно будет в других частях этого цикла.
Моделей куча, сотни, тысячи! И каждая подходит для своих разных задач. Давайте пробежимся по их характеристикам, чтобы вы поняли, а что вообще надо искать и как:
Ищите GGUF модели. Это указано в названии. Это модели, использующие в основном процессорные вычисления. (Есть GGML модели, опирающиеся онли на видеокарту)
Чем больше циферок с буквой "b", тем лучше. Это количество так называемых параметров, которых хранит в себе модель.Грубо говоря:- Если у вас 8 Гб ОЗУ, ищите 7b модели. Они немного туповаты, но под пиво пойдет- 16 Гб ОЗУ - уже можно смело запускать 13b модели. Золотая середина между экономностью ресурсов и "умом"- 32 Гб ОЗУ - вам уже доступны 20b и 23b модели. Они достаточно умные, чтобы поддержать любой вид диалога и не скатываться в уныние через 150 сообщений
Степень квантования. Это вот эти Q5_K_M, Q8 и все такое. Чем меньше число после Q, тем более шакальная модель из-за сжатия. Не разбирался, как оно устроено технически, но знайте, что Q5_K_M - золотая середина. Хорошее сжатие, но на качество не влияет.
Размер контекста. Он служит "памятью" для модели. В ней она хранит карточку персонажа, инструкции, а также последние сообщения из диалога между вами и ею. Вот в этом и проблема РП-гейминга с ИИ. Обычно модели поддерживают 4096 токенов контекста. Если персонаж не очень большой, то это где-то 10-15 сообщений в диалоге. Что было написано раньше - ИИ уже "не помнит".Но если контекста больше, то в названии модели это будет указано как *число*k. Например, ,LLaMA-2-7B-32K. Оно жрет вашу ОЗУ, кстати
Ну и я хотел бы дать список "для старта":
MythoMax-L2-13B-GGUF - Это классика!!! Это знать надо!!! Модель старая, но все еще прекрасная. Она идеально заточена под РП, отвечает хорошо и складно. Умеет как в философские диалоги, так и в хорни
Pantheon-RP-1.5-12b-Nemo-GGUF - по отзывам превосходит MythoMax в понимании ситуаций текста. Отлично поймет, что вы не человек, а русалка (что для моделей очень сложно осознать), и не очень хорни - придется немного поуговаривать. Да, как с настоящей женщиной
L3-8B-Lunar-Stheno-GGUF - компактная, умная, хорошо пишет. Что еще нужно для счастья?
Nethena-MLewd-Xwin-23B-GGUF - старая, большая, тяжелая, но очень умная и хорошо пишет. Осторожно - очень хорни, оседлает вас при первом попавшемся случае
MLewd-ReMM-L2-Chat-20B-GGUF - тоже самое. И тоже хорни
Все эти модели хороши по-своему. Тестируйте, смотрите, какая понравится больше.
Установка SillyTavern
Вот с ней чуть-чуть сложней, но не намного.
Заходите сюда
Скачивайте (Code -> Download ZIP)
Распаковывайте в любую удобную папку
Запускайте Start.bat (start.sh для Linux)
???
PROFIT!
Как оно все установит и запустится, перед вами появится вот такое окошко:
Выбирайте язык интерфейса и вводите имя вашему первому персонажу (которым будете вы).
Более тонкая настройка SillyTavern будет в следующих частях, а пока давайте быстренько приведем его к рабочему виду.
Вас встречает интерфейс! Нужно сделать несколько вещей, чтобы опыт игры был максимально приятным:
Связать CoboldCPP и SillyTavern
ОБЛАКО: подключение Together.AI
Описать своего персонажа
Скачать карточки персонажей для игры
Выбрать пресет генерации
Подключение CoboldCPP и SillyTavern
Сверху будет много вкладок, и вам нужна одна из них, со значком вилки. Выбираете "Тип API" - KoboldCPP и жмите подключиться. Как только чуть ниже появится зеленый кружок с названием модели - Congratulations! Все подключено.
Подключение облака через Together.AI
Тут все еще проще, KoboldCPP не нужон. Регистрируйтесь на Together.AI, и после входа вам покажут ваш API-ключ. Его вводите сюда:
В "Тип AI" выбирайте TogetherAI, вставляйте ключ, и выбирайте модель! Для меня самой лучшей оказалась WizardLM-2.
Напомню, ваш стартовый капитал - $5. Дальше либо регайте новый акк и вписывайте новый ключ, либо ПЛАТИТЕ.
А вот расценки к каждой из моделей. Если используете 70B модель, вам хватит примерно на 3 дня активнейшей игры.
Описание вашего персонажа
Скрывается во вкладке со смайликом. В описании... Просто опишите себя. Возраст, характер, характеристики тела и все такое. Вместо вашего имени пишите {{user}}. Если вы хотите что-то описать с персонажем, с которым будете играть, его указывайте как {{char}}.
Кстати, некоторые модели отлично понимают MBTI. Это типы личности. Можете пройти тест и просто ввести эти 4 буквы в описание персонажа, указав Personality: *ваш тип личности*.
И да, вы можете создать несколько своих личностей, для этого слева есть кнопочка "создать".
Ищем персонажей
Главный хаб персонажей - chub.ai. Фильтры по жанрам (работают не очень, так как авторы часто забивают на указание тегов), поиск, и все такое. Если кто-то понравился, жмите на персонажа, копируйте ссылку на него, и вставляйте вот тут:
Самая правая вкладка, это ваш список персонажей. Вам нужна иконка с облачком:
Кстати, чуть левее от нее иконка есть с файликом. Это если вы скачали PNG или JSON персонажа
Выбираем пресет генерации
Оно находится в самой левой вкладке
Тут много крутилок и галочек, но вам нужны лишь пресеты. У меня сейчас выбран Mirostat. Просто выбирайте из списка, сохранять ничего не надо. Рекомендую следующие пресеты:
Mirostat
Midnight Enigma
Kobold (GodLike)
Поэкспериментируйте, и оставляйте то, что по вашему мнению лучше пишет для вас. Главное - Top P выставляйте ближе к 1.
Ответ в токенах - длина сообщения, которую будет писать ИИ. Выбирайте между 300 и 450. Если меньше, то тупо будет мало текста, а если больше, то будет риск того, что ИИ начнет писать за вас.
Контекст в токенах: Выбирайте 4096, если модель не предполагает большего количества
Как общаться правильно
Тут есть некий синтаксис. Не все модели поголовно его понимают, но большинство - поймут:
*Действие*
"Цитата или мысли"
Просто текст, разговор
[] - инструкции для ИИ, например [двигайся дальше по сюжету]
Как общаться на русском языке
Все просто! Заходите во вкладку с кубами, которая сверху, открывайте вкладочку Chat Translation и выбирайте как на картинке:
А что дальше?
А в целом то и все! Можно общаться со своей вайфу. Вы гарантированно получите какое-то удовольствие от этого.
Этот пост рассчитан на вкат в тему, а дальше начинаются... приколы. Документация толком ничего не объясняет, тема максимально молодая и новая, так что сообщество все еще ищет правильные подходы по созданию персонажей, системных инструкций к ИИ и много много чего еще. Это я и постараюсь осветить в следующих постах этого цикла. Если на Хабре эта тема возымеет интерес - то продолжим погружение.
MountainGoat
У KoboldCPP есть параметры командной строки --flashattention --quantkv 2 которые сильно сокращают потребление памяти, и помогают уместить больше на видеокарту. Они выключены по умолчанию потому что работают не со всеми моделями. Не знаю, доступны ли они через GUI - не пользуюсь.
Судя по разделу "Выбор пресета для генерации" статья лежала в черновиках больше года. От этих настроек давно отказались, там совсем другие сэмплеры уже.
Брать действия в звёздочки имеет смысл только если пишешь пьесу, и действия редкие и короткие. Если брать в звёздочки целые абзацы, у LLM тратится внимание впустую.