Ролевые игры — это захватывающе и интересно. И если вы хотите иметь возможность ролеплеить везде и всегда, то для вас открывается прекрасный мир искусственного интеллекта.
Это ремейк моей пробы пера в виде двух частей Виртуальной Любовницы. С тех недалёких пор я узнал много нового и интересного (отдельное спасибо всем комментаторам!) и этот гайд — улучшенная версия того, что было. Чуть меньше воды, чуть больше нужной инфы. Структура и некоторая часть материала остались неизменными, но дополненными.
Сообщество придумало бесчисленное множество персонажей и сюжетов, от дарк фентези до запретной любви, и кто вам что скажет?! Сейчас в этой теме настоящий Дикий Запад и абсолютное отсутствие цензуры. В две части я хочу уместить все, что вам нужно знать для установки и настройки ИИ чат-бота для ролевых игр.
Установка возможна на Windows, Mac (насчёт SillyTavern не уверен) и Linux, на видеокартах Nvidia (хороший выбор), AMD (выбор не очень), и CPU (немного больно)
Важная заметка: стоит упомянуть, что ИИ — не человек, и любые его проявления «разума» — случайное совпадение и мракобесие. Держите в голове, что все что пишет машина — плоды математических вычислений, и не более. Ролевые игры с живыми людьми всегда интереснее и красочнее. Спасибо 🙂
Два пути
Есть два способа для начала игры:
- SelfHost — все на вашей печке, и она должна быть мощной. ИИ требует много видеопамяти (Или ОЗУ, если запускаете на процессоре). Я проводил тест на GTX 1070 на модели Pygmalion-6B-4bit-128g (это модель «начального» уровня). Производительность – в среднем 15-20 секунд за сообщение. Плюсы: скорость, если у вас более менее мощное железо. Также все, что вы будете писать — останется только на вашей машине, а это важно в запретной любви
- KoboldAI Horde — Если у вас нет мощного железа. Вам нужно развернуть у себя только SillyTavern и подключиться к моделям, которые хостят неравнодушные энтузиасты. Сама SillyTavern ест только немного вашей ОЗУ. Минусы — долго: желающих много, а хостеров мало, так что рассчитывайте на ~80 секунд за сообщение. Также стоит учитывать, что данные из SillyTavern в KoboldAI хоста передаются в открытом виде, поэтому запретная любовь — можно, но осторожно.
Установка
oobabooga text-generation-webui — интерфейс для запуска LLM моделей, основанный на Stable Diffusion от automatic1111, и мне он показался более удобным и гибким, нежели KoboldAI.
Установка простая:
- Выбираете удобную папку, и клонируете репозиторий — git clone https://github.com/oobabooga/text-generation-webui
- Заходите и запускаете start_windows.bat (Также есть ярлыки для установки на Linux и Mac)
- Ждете, пока скрипт скачает все, что ему нужно
- В какой-то момент он спросит, какой мод вы хотите выбрать:
Собственно, выбирайте в зависимости от вашего конфига:
- NVIDIA — Ядра CUDA отлично справляются с нейронками, поэтому это лучший выбор
- AMD — больно и только на Linux/MacOS. У меня AMD видеокарты нет, так что пишите в комментах свои результаты, если среди вас есть владельцы
- Apple M Series — для богатых. Генерация быстрее, чем на Intel/AMD CPU, но медленнее, чем на GPU
- Intel Arc — это видеокарты от Intel. В виду их нераспространенности, инфы по скорости генерации не нашел
- None — генерация на вашем процессоре. Долго, в районе 120 секунд на маленькой модели, но работает, если нет мощной видеокарты.
Если вы выбрали Nvidia, то далее он спросит про версию CUDA. Если модель вашей видеокарты до тысячной серии, то во-первых, куда вы лезете?! А во-вторых, выбирайте версию 11.8. Подробнее про поддерживаемые версии Cuda тут. Если карточка выше тысячной серии, то пишите “N” и продолжаем.
Снова ждем, пока скрипт докачает все, что нужно, и в конце он запустит Web UI. По умолчанию он работает на порту 7860. Если нужно его изменить, то в корневой папке заходите в файл CMD_FLAGS.txt и там пропишите на новой строке –listen-port=6000. Кстати, раз мы сюда зашли, раскоментите строку # –listen –api, убрав символ #, только не занимайте порты 5000 и 5005, они служат для подключения SillyTavern к интерфейсу.
Настройка
Заходим по адресу localhost:7860 и сразу переходим во вкладку models:
Для работы интерфейса очевидно нужны LLM модели. Они подразделяются на количество параметров, считается в миллиардах. Модели 1,3B и 2,7B для слабых видеокарт, 6B для средних (как моя 1070), 13B и 20B для топовых карт, и далее до бесконечности. Сколько весит модель, столько и нужно видеопамяти +-2Гб
Но есть лайфхак — квантование. Методика, если интересно, описана в этой статье. Благодаря квантованию вы можете запускать более тяжеловесные модели на меньших мощностях. Если модель подверглась квантованию, то в ее названии будет что-то типа *название модели*-4bit-128g или *название модели*.Q4_K_M
Также модели подразделяются на виды. Запомните три основных — GPU использует GPTQ модели, а CPU — GGML модели. GGUF модели оптимизированы и для того, и для другого. Учитывайте это при поиске. Кстати, ищите их на Hugging Face.
GPTQ модели нужно скачивать полностью, для этого вам понадобится git lfs. Команда – git lfs clone *ссылка на модель*. GGML и GGUF модели скачиваются одним файлом, в репозиториях лежит несколько моделей с разной степенью квантования. В карточке модели автор обычно указывает параметры для каждого вида.
Я рекомендую вот эту и эту модель.
Что мне порекомендовали:
mythomax-l2-13b. Q8_0.gguf — умная, хорошо пишет, хорошо понимает, держит героя, очень литературная иногда даже слишком, привет Шекспиру.
mythomax-l2-kimiko-v2-13b. Q8_0.gguf — тоже самое что верхняя, но больше хорняшности и рукоблудия у героев.
xwin-lm-13b-v0.2.Q8_0.gguf — очень умная, очень хорошо держит контекст и образ, не заваливается под тип писанины пользователя, хорняшная.
MLewd-ReMM-L2-Chat-20B.q8_0.gguf — очень умная, хорошо держит контекст и героя, но страдает тем что скатывается под свои стандарты писанины забывая условия, грешит с местоимениям, супер хорняшная (руки держать на столе привязанные скотчем, иначе рискуете умереть от обезвоживания.)
Примечание: все перечисленные модели очень тяжеловесные, подбирайте степень квантования под вашу систему.
Diavator, спасибо за инфу!
Модели нужно класть в папку /models, после этого нажимаете на значок обновления списка:
При выборе модели загрузчик будет выбран автоматически. После нажимайте Load:
Установка и настройка SillyTavern
Установка SillyTavern практически аналогична:
- git clone https://github.com/SillyTavern/SillyTavern
- В папке запускайте Start.bat (или Start. sh для Linux).
SillyTavern по умолчанию запускается на порту 8000. Чтобы изменить его, заходите в config.js и пишите свое значение в первой строке port. Также, если планируете подключаться к SillyTavern с другого ПК или телефона, нужно в строке whitelistMode прописать false (ну или прописать все нужные IP в whitelist). При отключении белого списка нужно прописать логин и пароль для входа в строке basicAuthUser, и активировать его в строке basicAuthMode, прописав true. Вот такая паутина.
Перезапускайте SillyTavern, и вписывайте имя вашему персонажу.
Для начала нужно связать oobabooga и SillyTavern. Заходите в параметры подключения:
В Api выбирайте Text Gen WebUI, и если у вас все по дефолту, то она подключится автоматически. Если нет — вписываете свои значения.
Ищем персонажа
Основной хаб с персонажами находится на chub.ai. Там и фильтры, и разделение на N/SFW, в общем удобно. Также есть хранилище персонажей на GDrive.
Все персы хранятся в отдельной вкладке справа:
Можно импортировать персонажа из png (лучше так) или json файла, или «облачно», вставив ссылку с chub.ai
Чтобы персонажи понимали ваш язык и сами отвечали на вашем родном — есть поддержка переводчиков Google (бесплатно) и DeepL (нужен токен, платно). Есть DeepLX, чтобы бесплатно пользоваться DeepL, но разобраться в нем я предлагаю вам самим, там несложно.
Настройки перевода находятся во вкладке Extras:
Раскрываете вкладку Chat Translations, выбираете поставщика перевода и свой язык:
В общем-то уже можно играть! Общайтесь, развлекайтесь! Подробнее про настройку и использование SillyTavern описано во второй части Любовницы, но и на нее в скором времени будет сделан ремейк.
Ставьте плюсы, делитесь опытом в комментариях, донатьте, и приятного ролеплея!