Нейросети развились до такой степени, что с ними можно проводить время и выстраивать ролевые сюжеты. Этот текст - попытка заинтересовать вас войти в мир РП, в частности РП с нейросетью в интерфейсе SIllyTavern.

Что такое этот ваш ролеплей вообще?

Да в целом все просто. Есть персонаж с прописанным бекграундом, сюжетом и завязкой. На основе этой завязки ты пишешь свой текст, потом ИИ тебе отвечает в рамках сюжета, и так далее и так далее.

Что привлекает в ИИ-ролеплее? Ну во-первых, у тебя всегда есть собеседник. Персонажей тысячи, на любой вкус и цвет. А если нет того, который бы тебя устраивал - просто напиши своего, это не очень сложно.

Во-вторых - максимальная свобода. Тут реально царит тотальная анархия в плане цензуры, начиная с самих моделей ИИ, заканчивая персонажами. И во славу Плети, что до комьюнити ИИ-ролеплея еще не добрались цензоры, очень чувствительные персоны с тонкой натурой или обостренным чувством справедливости.

Нет, я серьезно, ты можешь делать вообще ВСЕ, вплоть до откровенно жесткой чернухи, и нейросеть, не обремененная цензурой это спокойно отыграет.

Первая страница chub.ai. Извращенцы
Первая страница chub.ai. Извращенцы

Чтобы вы сразу поняли, чего стоит и не стоит ждать от ИИ-ролеплея. Вы не получите длинную историю (upd: без углубления в тему), 8-месячный отыгрыш внутри гильдии с кучей игроков и глубоким лором, как в варкрафте в былые времена ждать не стоит, к сожалению. ИИ-персонаж "живет" максимум где-то 200-250 сообщений в чате. Это примерно 2-4 часа, в зависимости от длины сообщений.

В среднем у меня получались истории на час-полтора, потому что я виабу, который просто хочет покутить со своими вайфу. Если персонаж очень хорошо прописан, а модель очень мощная, то можно растянуть ролеплей хоть до бесконечности, но это очень вряд ли получится, и так или иначе старые детали он будет постепенно забывать.

Интерфейс SillyTavern
Интерфейс SillyTavern

Есть два основных способа заставить 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

Вот с ней чуть-чуть сложней, но не намного.

  1. Заходите сюда

  2. Скачивайте (Code -> Download ZIP)

  3. Распаковывайте в любую удобную папку

  4. Запускайте Start.bat (start.sh для Linux)

  5. ???

  6. 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 и выбирайте как на картинке:

А что дальше?

А в целом то и все! Можно общаться со своей вайфу. Вы гарантированно получите какое-то удовольствие от этого.

Этот пост рассчитан на вкат в тему, а дальше начинаются... приколы. Документация толком ничего не объясняет, тема максимально молодая и новая, так что сообщество все еще ищет правильные подходы по созданию персонажей, системных инструкций к ИИ и много много чего еще. Это я и постараюсь осветить в следующих постах этого цикла. Если на Хабре эта тема возымеет интерес - то продолжим погружение.

Комментарии (1)


  1. MountainGoat
    23.11.2024 06:33

    У KoboldCPP есть параметры командной строки --flashattention --quantkv 2 которые сильно сокращают потребление памяти, и помогают уместить больше на видеокарту. Они выключены по умолчанию потому что работают не со всеми моделями. Не знаю, доступны ли они через GUI - не пользуюсь.

    Судя по разделу "Выбор пресета для генерации" статья лежала в черновиках больше года. От этих настроек давно отказались, там совсем другие сэмплеры уже.

    Брать действия в звёздочки имеет смысл только если пишешь пьесу, и действия редкие и короткие. Если брать в звёздочки целые абзацы, у LLM тратится внимание впустую.