Ролевые игры — это захватывающе и интересно. И если вы хотите иметь возможность ролеплеить везде и всегда, то для вас открывается прекрасный мир искусственного интеллекта.
В этом цикле я хотел бы описать полный путь от скачивания до запуска KoboldAI и самого удачного интерфейса для него — SillyTavern.
Для этой связки сообщество придумало бесчисленное множество персонажей и сюжетов, от исекай-приключения до запретной любви, и кто вам что скажет?! Я постараюсь расписать все, что вам нужно знать для комфортной игры.
Статья рассчитана на установку на ОС Windows и на видеокарты Nvidia. Работа на CPU тоже будет рассмотрена. На Linux установка также возможна, но в статье рассматриваться не будет.
Два пути
Есть два способа для начала игры:
- SelfHost. Все полностью на вашем ПК. ИИ требует много памяти, Вся модель загружается в память видеокарты, или в ОЗУ, если запускаете на процессоре. Я проводил тест на GTX 1070 на модели Pygmalion-6B-4bit-128g (по меркам «домашних ИИ» это средняя «мощность» модели), и ее производительность была в среднем 15-20 секунд за сообщение. Плюсы: скорость, если у вас более менее мощное железо. Также все, что вы будете писать — останется только на вашей машине.
- KoboldAI Horde. Если у вас нет мощного железа. Вам нужно развернуть у себя только SillyTavern и подключиться к моделям, которые хостят неравнодушные энтузиасты. Сама SillyTavern ест только вашу ОЗУ, и то немного (Около 400Мб). Минусы — долго. Желающих много, а хостеров мало, так что производительность — в среднем 110-120 секунд за сообщение в напряженные часы, а это весь день кроме раннего утра и глубокой ночи. Также стоит учитывать, что данные из SillyTavern в KoboldAI хоста передаются в открытом виде, поэтому лучше не писать какие-либо чувствительные данные при использовании Horde.
Установка
Основной метод запуска KoboldAI — на мощностях GPU. Ядра CUDA на видеокартах Nvidia отлично справляются с обработкой ИИ. Тут можно посмотреть, есть ли в вашей видеокарте эти ядра. На CPU медленнее, но тоже можно, на AMD можно, но с костылями и тоже медленно. В статье будет рассматриваться установка на Nvidia. Красные, извините.
Давайте скачаем сразу все, что нам нужно:
- Nvidia ToolKit
- VS Build Tools
- Git
- Git LFS
- KoboldAI Cтавим, но не запускаем.
- NodeJS
- Вы уже установили Git? Отлично! Запускаем cmd, выбираем папку, в которой будем держать Silly Tavern и пишем git clone https://github.com/SillyTavern/SillyTavern
- Если ваша видеокарта располагает физической памятью менее 10Гб, то качаем патч, его нужно поместить в папку с уже установленным KoboldAI и запустить.
Запуск и настройка
KoboldAI
Запускаем KoboldAI либо с рабочего стола, либо play.bat из папки.
По стандарту он запускается на порту 5000. Если нужно разместить его на другом порту, то необходимо зайти в свойства ярлыка KoboldAI и дописать аргумент —port. Выглядеть должно вот так: X:\KoboldAI\play.bat —port=ваш порт
После запуска браузер должен автоматически открыть страницу с веб-интерфейсом:
Заходим в вкладку AI и выбираем модель:
Для быстрого старта вы можете выбрать модель из списков Adventure, Novel, Chat или NSFW. KoboldAI сам загрузит эти модели и запустит их в своем интерфейсе. Далее при последующих запусках просто выбирайте их, и он их подгрузит.
Модели подразделяются на количество параметров, считается в миллиардах. Интерфейс KoboldAI дает представление, сколько Гб видеопамяти вам понадобится для разных моделей. 2,7B для слабых видеокарт, 6B для средних (как моя 1070), 13B для топовых карт, и далее до бесконечности. Грубо говоря: в среднем какое число параметров у модели — столько и нужно Гб видеопамяти +2-4Гб.
Но есть лайфхак — квантование. Методику оптимизации моделей я не объясню, но если вам очень интересно, как оно происходит, то вот очень подробная статья. Благодаря квантованию вы можете запускать более тяжеловесные модели на меньших мощностях.
Самая популярная и подходящая для ролеплея модель — PygmalionAI 6B-4bit-128g. 4bit-128g — как раз признак квантования модели, для ее установки требуется:
- В cmd зайти в папку KoboldAI\models
- git lfs clone https://huggingface.co/mayaeary/pygmalion-6b-4bit-128g
- Как git отработает, зайти в папку models и переименовать файл с расширением .savetensors в 4bit-128g.savetensors
Также у этого автора есть модель версии _dev. Она более разговорчивая, но менее хорни. Скачивание аналогичное — git lfs clone https://huggingface.co/mayaeary/pygmalion-6b_dev-4bit-128g
В интерфейсе KoboldAI эта модель будет лежать в первой вкладке — Load a model from its directory.
Как только вы выберете модель и она прогрузится, можно переходить к следующему этапу. Разбирать настройки KoboldAI не вижу смысла, так как всех их передает SillyTavern вместе с вашим сообщением.
CPU
Работа KoboldAI на процессоре — долго и мучительно, но если есть мощный проц, а на видеокарту не хватило, то попробовать можно.
Для запуска на CPU существует KoboldCPP
Скачиваете, запускаете. В нем не так много настроек. В Threads указываете, сколько ядер процессора будет использовано под ИИ, ниже в Model выбираете скачанную модель и нажимаете Launch. Во вкладке Network можно указать порт, на котором будет доступна модель, или сконфигурировать программу как хоста для KoboldAI Horde.
Важно
KoboldAI для GPU использует GGML модели, а для CPU — GGUF модели. Учитывайте это при поиске.
SillyTavern
SillyTavern по умолчанию запускается на порту 8000. Чтобы изменить порт, заходите в config.js, самая первая строка за него отвечает. А строка whitelistMode отвечает за включение или отключение белого списка (whitelist). Чтобы подключаться с других устройств, либо пропишите IP-адреса, либо выключите whitelistMode, прописав false. В случае отключения белого списка необходимо будет включить авторизацию (basicAuthMode = true, и впишите логин/пароль в параметре basicAuthUser)
Запускается интерфейс с файла Start.bat (Start.sh на Linux) и встречает нас приветственным сообщением с просьбой выбрать имя вашему персонажу:
Первым делом
Selfhost
Сначала необходимо связать KoboldAI и SillyTavern. Нажимайте на иконку вилки, выбираете из списка Api KoboldAI и вписывайте адрес вашего хоста. Скорее всего это http://127.0.0.1:5000/api. В моем случае хост — мой компьютер, а SillyTavern на ноутбуке.
Чтобы вы могли подключаться к KoboldAI с других устройств, запускайте ярлык с аргументом —host. В свойствах ярлыка это должно выглядеть вот так: X:\KoboldAI\play.bat —host.
Замечу, что подключиться из SillyTavern к KoboldAI вы сможете только после того, как выберете модель в нем! И установите галочку для вашего удобства.
KoboldAI Horde
Есть некоторое количество очень добрых людей с мощными ПК, которые хостят KoboldAI для всех желающих. Чтобы присоединиться к этой сети, во вкладке подключения из списка API выберите KoboldAI Horde и выбирайте модель по душе. Лучше зарегистрироваться на их сайте и вписать токен в SillyTavern, ответ от модели будет генерироваться быстрее.
Ищем персонажа
Основной хаб с персонажами находится на сайте chub.ai. Там и фильтры, и разделение на N/SFW, в общем удобно. Также есть хранилище персонажей на GDrive.
Все персы хранятся во вкладке с вот такой иконкой:
Быстрый старт
Если вы загружаете персонажа с chub.ai, то можно нажать кнопку облачной загрузки. Там вписываете ссылку на персонажа и SillyTavern добавляет его в список.
Ну а если загружаете персонажа с любого другого ресурса, то скачиваете его либо в виде json-файла, либо в виде png-файла (Этот вариант лучше, так как в json-файле нет аватарки персонажа), и загружаете его с помощью этой иконки:
Чтобы персонажи понимали ваш язык и сами отвечали на вашем родном — есть поддержка переводчиков Google (бесплатно) и DeepL (нужен токен, то есть платно). Есть DeepLX, но разобраться в нем я предлагаю вам самим, там несложно.
Найти настройки перевода вы можете во вкладке Extras:
Там раскрываете вкладку Chat Translations и выбираете поставщика перевода и свой язык.
В общем-то уже можно играть! Общайтесь, развлекайтесь, но лучше SillyTavern настроить, и это будет описано во второй части, когда она будет написана 🙂
Благодарности
Спасибо этому прекрасному автору за ссылки, некоторые тонкости установки и мое первое знакомство с темой данной статьи, а так же спасибо вот этому господину за мотивацию написать статью.