Чатрулетка, что тут еще скажешь.
Поржал от души, особенно с последнего эпизода. Не уверен нужно ли ставить 18+, вроде бы как бы и нет )))
Привет всем кто в теме и кто только присоединился!
Предыдущийпост https://joyreactor.cc/post/5733950
Рассказывал о том, как быстро и просто запустить локальную языковую модель на удалённом сервере google colab и начать общение нейротян.
Но теперь настало время взяться за дело серьёзно, встречайте:
(автор не гарантирует, что написанное строчкой выше правда)
Предварительнаяустановка
1. Переходим поссылке https://nodejs.org/en/download искачиваем LTS версию. Нам подойдет и она.
2. Когда скачали,запускаем установку.
3. (опционально)Перейдите по ссылке https://git-scm.com/downloads и скачайте Git,для упрощения обновлений и прочего.
4. (опционально) Переходимпо ссылке https://www.python.org/downloads/ и качаем питонпоследней версии. Не то чтобы он был вообще нужен для установки таверны, но разуж мы начали идти по пути LLM, не стоит останавливаться надостигнутом!
5. Установка завершена.Переходим к самой таверне.
Установка SillyTavern.
С использованием Git:1. Выбираем папку, нажимаем ПКМ, git bash HERE.
2. Вводим в консоль git clone https://github.com/SillyTavern/SillyTavern
3. Для того что бы установить staging branch добавляем после ссылки -b staging
4. Всё устанавливается
Без использования Git:
1. Переходим поссылке https://github.com/SillyTavern/SillyTavern/tree/staging
2. Нажимаем на зеленую кнопку Code и download zip
3. Теперь, когда мы скачали наш ZIP архив (не важно, стейджинг ли этоверсия, или обычный релиз)*Лично я предпочитаю именно этот метод, сохраняя вотдельной папке каждую новую версию таверны, начиная с момента, когдасуществовала только оригинальная TavernAI, ещё храню в каждойпапке полный набор актуальных на тот момент скриптов, промптов и персонажей.Зачем? Вдруг пригодится!
Запуск таверны
После этого мы запускаем start.bat
Когда мы запустили start.bat, мы видим NPM install. Нам нужно дождатьсяустановки, затем оно само запустится.
*Если вам пишет missing module название модуля, то нужно ввестикоманду npm install название модуля, и так пока вы не установитевсе нужные.
Когда установка закончится, автоматически откроется вкладка браузера с интерфейсом таверны.При первом запуске вы увидите сообщение
Которое предложит вам заранее ввести имя, по которому к вам будет обращаться модель. Можете оставить его как есть и представиться кем угодно походу беседы, либо ввести своё имя, но тогда к вам всегда будут обращаться по нему. (Старые модели вроде Pygmalionвместо User, определяют пользователя как You)
*Также вам предложит включит упрощённую версию интерфейса. НЕ ДЕЛАЙТЕ ЭТОГО!Раз уж вы решили идти дальше пути текстовых нейросетей то привыкайте страдать!
Подключение к нейросети.
Теперь настало время изучить иконки расположенный сверху
Но делать это мы будем не по порядку, начнём с главного, источника. Тавернаэто очень удобный, но всё-же фронтенд. Иконка API предлагает нам выбратьоткуда конкретно мы будем черпать нейросетевые ресурсы.
Рассмотрим основные пункты, представляющие практический интерес.
1. Text Completion.
Первый пункт «TextCompletion» Предлагает вам подключить к вашей таверне в качестве бекэнда text-generation-webui.
О том, как его запустить написано в предыдущем посте. Ссылка на колаб: https://colab.research.google.com/drive/11U-bC6AxdmMhd3PF9vWZpLdi6LdfnBQ8?usp=sharing
Но прежде чем использовать его как API,убедитесь что отключены google translate и sileroTTS, они будут мешать генерации.
Чтобы подключить запущенный webui к таверне Скопируйте ссылку после строки'OpenAI-compatible API URL:' и вставьте её в 'Server URL'
При запуске локально дефолтный адрес подключения http://127.0.0.1:5000/api
2. KoboldCPP.
Этот пункт предлагает нам подключить к таверне аналог text-generation-webui,под названием «Koboldcpp»
Главных отличий от предыдущего сабжа два:
- Кобольд предназначен для запуска моделей,оптимизированных для процессора. Сейчас это формат GGUF
- Сильно проще в локальном запуске на Windows. Всегоодин exeфайл,после запуска которого вам предложат выбрать файл модели кнопкой «Browse». Изнастроек для начала можно выставить контекст в размере 4096. Для запуска этогоуже достаточно.У кобольда есть даже свой интерфейс чата, но он сильноуступает как webui так и таверне.
В качестве API URL в таверне вводим http://127.0.0.1:5001/api
Скачать последнюю версию можно здесь: https://github.com/LostRuins/koboldcpp/releases/
Почитать о разных загрузчиках и прочих вы можете на основнойстранице гитхаб: https://github.com/LostRuins/koboldcpp
Если ваш комп не тянет, есть также колаб: https://colab.research.google.com/github/LostRuins/koboldcpp/blob/concedo/colab.ipynb
Куда же без него.
3. ChatCompletion
Здесь нам предлагается подключиться к APIсоответствующихсервисов, при условии, что у нас есть ключ.
Выбираем поставщика, вводим ключ, радуемся! В целом всёпросто (кроме получения самого ключа)
4. KobaldAIHorde.
Но не печальтесь, если у вас нет ключа к GPT4 Turbo, нам поможет сервис AIHorde https://horde.koboldai.net/
(это не троллинг если что, нет правда!)
Более того, это, пожалуй, самый интересный пункт, потому чтоон позволяет нам сразу, без танцев с бубном, подключиться к языковой модели.
Всё что нам нужно это поставить курсор в поле Модели ивыбрать любую из них:
*Модели из списка работают на аппаратных мощностях участников сообщества и доступны для бесплатного использования! НО когда много людей сидит на одной модели, образуется очередь, а у анонимных подключений приоритет в очередях самый низкий.
Если хотите получить преимущество, регистрируйтесь https://horde.koboldai.net/registerЗа это вам выдадут личный ключ API, который можно будет вбить в таверну. Далее устанавливайте хорду и фармите Кудосы помогая людям, не имеющим мощного железа, приобщаться к нейронкам!
Какая модель лучше вопрос спорный.
Можете, например поизучать этот рейтинг: http://ayumi.m8geil.de/ayumi_bench_v3_results.html
По мне так методика тестирования в Аюми такая себе, но ничего лучше пока не встречал.
При подключении, не забудьте выставить галочку «Уточнить длину ответа в соответствии с возможностями рабочих машин» Иначе получите ошибку, если контекст установленный на сервере будет меньше вашего.
В принципе после этого уже +- можно начинать общение!
Поэтому переходим к обзору основных нюансов общения с нейровайфу.
Песеты настроекгенерации.
Первая из них это параметры генерации модели.
Главное, на что здесь стоит обратить внимание это
1. Длина ответа в токенах – ограничивает размер ответа модели.
2. Размер контекста – сколько текста вы посылаете нейросети при каждом запросе*
* тут стоит сделать небольшое отступление: многие думают, что общение с нейросетью происходит как с человеком. Вы ей что-то пишите – она на это запоминает и учитывает в последующих ответах. Это не совсем так: языковая модель может дать всего один ответ на один запрос. Памяти как таковой ни у одной современной LLM нет в принципе. Так как-же тогда происходить длинная переписка? Очень просто: в качестве запроса модели КАЖДЫЙ РАЗ посылается история всей вашей предыдущей переписки, она обрабатывает всю эту гору текста и отвечает один раз что она обо всём этом думает. Далее этот процесс повторяется, но в запрос включается предыдущий ответ нейросети.
Контекст - это максимальное количество текста, которое модель способна обработать. Если ваша беседа его превысит, таверна автоматически начнет удалять ваши сообщения, начиная с первых, а модель «забывать» с чего всё началось.
Оранжевая пунктирная полоска в чате таверны показывает до какого момента беседа входит в контекст.
3. Температура – один из важнейших параметров, отвечающий за «креативность» модели. Чем он выше, тем более разнообразным и менее адекватным будет ответ модели. Какую температуру, когда выставлять, лучше всего выяснить методом тыка. Но для небольших локальных моделей, как правило подходит температура 0.6-0.8, для более крупных, например, ChatGPT– 0.9-1.
Что же касается остальных параметров, на начальном этапе не стоит уделять им слишком много внимания. Можете подробно прочитать о них в вики таверны.
Всё что нужно знать, это то что они уже должным образом настроены в соответствующих пресетах.
Вы можете попробовать все и выбрать подходящий в зависимости от результатов. Но для начала советую выбрать “simple-proxy-for-tavern”или “Storywriter”, а далее играться с температурой.
Форматирование.
Эти настройки также оказывают очень большое влияние на генерацию, т.к. они определяют в каком виде модель будет получать ваши запросы.
Для локальных моделей часто критически важно выбрать нужное форматирование, от него будет завесить поймёт ли вас модель вообще.
ШаблонRoleplay один из самых универсальных, его понимают как крупные модели, вроде ChatGPT, таки локальные от 30-70В.
Но влокалках всё же стоит выбирать соответствующий им шаблон, это сделает модельгораздо «умнее».
Одним из самых распространённых является Alpaca, просто потому что большинство моделей основаны на ней. Но есть и исключения, список которых вы увидите, открыв вкладку «Предустановки».
Если по названию модели не понятно чьим файньтюном она является, попробуйте найти её страницу на https://huggingface.co/models
Там как правило указано откуда ноги растут.
С основными приготовлениями на этом мы закончили. Теперьпереходим к самому интересному – общению с нейротянами! Основные сопутствующиефишки рассмотрим по ходу дела.
Импорт персонажей.
В таверне уже имеется набор стандартных персонажей.
Вы можете побеседовать и с ними, но, чтобы показать максимум возможностей таверны, лучше сразу перейдем к добавлению новых.
Карточки персонажей можно найти на сайте: https://www.chub.ai/
В поиске находим нужного персонажа и скачиваем PNGфайлдля SillyTavern
https://www.chub.ai/characters/thecentuaro/rin-tohsaka
Кроме того, если есть, скачиваем Expressions ZIP и Лорбук (внизу вкладки Tavern, после описания карточки)Карточку персонажа кидаем в SillyTavern-staging\public\characters
Туда же извлекаем изображения из архива Expressions, папку не переименовываем, она должна соответствовать имени персонажа.
Лорбук же кидаем в SillyTavern-staging\public\worlds
Теперь можно обновить вкладку с таверной и нажать на иконку с появившимся персонажем.
Но при открытии мы увидим что чат на английском, а Рин обращается к нам как к Юзеру.
Чтобы исправить жмем на иконку Расширения и открываем вкладку Chat Translation
Здесь выбираем пункт Translation both, Googleи Русский язык.
Затем идём во вкладку «Миры» и выбираем Fate, чтобы беседа была более каноничной.
«Лордбуки» это сборники кратких сведений о мире или персонажах, в дополнение к основной карточке. Интересны они тем что, в отличие от карточки, количество записей в лорбуках не ограничено. Просто, когда речь аходит о каком-то событии или термине, название которого совпадает с записью влорбуке, таверна добавляет эту запись к промпту, чтобы модель понимала о чём идёт речь.
Я пару раз использовал лорбук для того чтобы написать персонажей с очень сложной предысторией, на десяток тысяч токенов) и это прекрасно работало при контексте всего в 4к.
Кроме того лорбук вполне можно использовать как замену «памяти» бота, записывая в него занимательные факты из вашего общения. Минус в том, что делать это надовручную.
Теперь заглянем в раздел Управления персоной. Здесь вы можете как описать свою личность, так и притвориться кем-то другим. Лично я всегда предпочитаю писать правдивое описание себя, ведь именно так вас будет воспринимать бот.
Кроме того, можно выбрать (или сгенерировать, об этом позже) подходящий фон беседы
По большей части всё – можно беседовать!
Стрелка справа от ответа персонажа это «свайп», при нажатии на неё сгенерится другой ответ, но вы всегда можете вернуться к предыдущему. Карандашик позволяет отредактировать любую реплику, как свою, так и бота в любой момент. Это очень полезно, если вдруг появилось желание разыграть другую сцену или просто что-то слегка подправить.
При нажатии на иконку персонажа, вы увидите его описание, которое точно также можно изменить в любой момент.
Что-ж, это был необходимый минимум, для начала использования таверны.
Но для тех, кому этого мало, продолжаем!
Особые возможности.
Преобразования вашей речи в текст. (STT) (понадобится микрофон)
Открываем расширения, вкладку «Download Extensions &Assets» и жмём кнопку подключения, соглашаясь с всплывающим сообщением.
Появится длинный список из разного рода улучшалок. У всех есть описания и их все вы можете попробовать самостоятельно, но я советую начать с «Speech Recognition»
После установки в расширениях появится новая вкладка. В ней нужно выбрать «браузер» и Русский язык. После этого рядом с кнопкой отправки сообщения появится также иконка микрофона, нажимаем её и говорим.
Преобразование текста в речь (TTS)
Дальше будет чуть сложнее, потому что теперь мы дадим голос ещё и нашей вайфу!
Для этого понадобится настроить вкладку расширений TTS.
Здесь интереснее всего 2 пункта: Silero и XTTSv2.
Результат работы Silero вы могли слышать в колабе text-generation-webui.Но в таверне подключение этого модуля на русском языке вызывает некоторое количество боли, так что как-нибудь в другой раз.
Поэтому подключаем https://github.com/daswer123/xtts-api-server
Вы можете установить его локально, следуя инструкции, но для начала лучше попробовать колаб: https://colab.research.google.com/drive/1b-X3q5miwYLVMuiH_T73odMO8cbtICEY?usp=sharing#scrollTo=nLS9QDgnrUmR
В настройках в строке Model_source: выбираем «apiManual»
Затем просто запускаем все ячейки по очереди сверху вниз, пока в консоли последней не получим строчку
После этого прокручиваем консоль в самое начало и ищем ссылку
Именно её нужно вставить в таверну:
После этого настройки должны выглядеть так. Если поля с выбором голоса персонажа не появилось, перезагрузите страницу и снова войдите в чат с персонажем. Ползунки можно пробовать двигать, чтобы получить другой результат.
Голос для персонажа нужно выбрать обязательно, иначе он не заговорит.
Запустить озвучку фразы можно кнопкой
Но если вы настроили всё как на картинке, генерация будет идти автоматически после ответа.
Эмоции и сумморайз.
Теперь мы наконец-то можем общаться в живую! Но как-жевизуальный контакт? Разумеется, это тоже не обошли стороной, именно для этого мы с вами скачивали спрайты эмоций в папку с персонажем!
Для этого нам понадобится запустить отдельный сервер расширений.
Итак, идём на гитхаб https://github.com/SillyTavern/SillyTavern-Extras
Лучше поставить всё это локально следуя инструкции на странице (что гораздо удобнее для повседневного использования).
Но попробовать можно и в колабе (не опять, а снова)
https://colab.research.google.com/github/SillyTavern/SillyTavern/blob/release/colab/GPU.ipynb
Ничего не меняем, запускаем последнюю ячейку и ждём ссылки
Ссылку вставляем в нижнее поле окна Расширения
Затем для удобства, рекомендую включить !!!РЕЖИМ ВАЙФУ!!! В настройках визуала.И вот, мы уже можем общаться лицом к лицу! Алилуйа!
Спрайты персонажа будут меняться в зависимости от его «эмоций». Кроме того, они могут быть анимированы (но встречаются такие редко).
Также стоит упомянуть о вкладке Summarize в расширениях.
Это очень полезная штука, увеличивающая «память» бота. Работает это так: в какой-то момент, пока размер контекста ещё не превышен, модель кратко конспектирует суть происходящего. Затем этот «конспект» будет отправляться вместо не входящей в контекст истории чата.
Есть два варианта конспектирования: С использованием основной модели (будет генерироваться как дополнительная реплика, с той же скоростью), либо с использованием специальной модели в сервере расширений (но тогда этот сервер должен быть запущен и подключен).
Групповые чаты
Но чего-то не хватает… Правильно, зачем общаться с одной аниме-тян, когда можно общаться с двумя?!
Выбираем опции в левом нижнем углу чата и жмём «превратить в группу»
Переходим в меню персонажа и в настройках открываем вкладку «добавить членов»
После чего составляем нужный нам для досуга список.
Генерация иллюстраций к чату.
Так, что же ещё нам может понадобиться? Конечно же иллюстрация происходящего с помощью Stable Diffusion!
На выбор есть несколько вариантов. Если у вас подключен сервер API, вы можете сгенерировать картинку через встроенный SDмодуль. Также можно подключить через APIсобственныйзапущенный StableDiffusion.Но мне больше нравится вариант StableHorde,т.к. он всегда доступен и не требует дополнительных модулей.
Жмём на волшебную палочку в нижней левой части чата и выбираем Generate Inage и далее один из пунктов
Теперь ждём пока не получим результат!Это может быть неплохой заменой спрайтам эмоций, превращающей чат в графическую новеллу.
Но учтите, что перед генерацией картинки, ваша текстовая модель сгенерирует для неё промпт. Так что всё это может занять дополнительное время.
Конечно в таверне ещё много фишек и настроек, но пока думаю стоит на этом остановиться.
Спасибо всем, кто дочитал до этого момента не пролистывая!
P.S. Если вы, чтобы не ждать очереди в Хорде, запустили LLMв колабе Text Generation WebUI, затем чтобы не устанавливать TTS, запустили в колабе и его, и в конце то же самое сделали с сервером дополнений, то поздравляю, у вас фуллхаус!
У меня не вопрос чей Крым, у меня вопрос в другом: вот как так – Россия, официально считая Крым своей республикой, назначает замминистрами шалав? Объясните мне, этого и хотели крымчане, которые так рвались в РФ?
Когда сегодня смотришь на «новые» лица новой крымской «власти», так и хочется сказать: «Где-то я вас раньше видел…»
Дальше текст автора:
Одна из заместителей Дмитрия Полонского, заместителя председателя Совета министров Республики Крым – министра внутренней политики, информации и связи Республики Крым, Юлия Мартынова (в девичестве – Кокорева) давно любит вечеринки – и официальные, и, судя по всему, неофициальные.
Одна из участниц вечеринки вспоминала: «Подвыпившим девушкам предложили показать нижнее белье в обмен на бутылку пива.
Я думала, что желающих не найдется, но тут повалили малолетки, которые стали не лифчики показывать, а грудь. Я была в шоке», – вспоминает девушка. Когда же ведущие поставили на кон карту VIP-клиента, студентки будто с ума сошли.
«Одна полезла на барную стойку и полностью разделась, сняв даже трусики. После этого ведущий стал рисовать узоры у нее на груди и интимных местах сливками», – рассказывает Елена.
Я, конечно, верю, что сегодня она выполняет важную государственную работу, не покладая рук, трудится на благо Крыма.
http://ru.krymr.com/content/article/27018853.html
Бывший сотрудник российского постоянного представительства при ООН в Женеве Борис Бондарев, который в понедельник заявил о своей отставке в знак протеста против войны с Украиной, рассказал западным СМИ о мотивах своей отставки и о том, кто, по его мнению, несёт наибольшую ответственность за войну.
В интервью The New York Times ( https://www.nytimes.com/2022/05/23/world/europe/boris-bondarev-russia-ukraine-war.html )Бондарев сказал, что в развязывании конфликта виноват не только президент России Владимир Путин, но и российский МИД. По словам дипломата, его бывшие сослуживцы, в частности, несут ответственность за то, что убеждали руководство, что Россия может одержать в Украине быструю победу.
"Они неправильно оценили Украину, неправильно оценили Запад, и вообще неправильно оценили всё", – сказал Бондарев об ошибках в анализе Кремля перед началом вторжения. "МИД тоже виноват, поскольку не сообщал ту информацию, которая должна была быть у дипломатов, а, наоборот, посылая отчёты о том, что всё прекрасно".
Издание "Важные истории" ранее писало, что Путин перед началом войны действительно был убеждён в скором разгроме Украины, но утверждало, что такое мнение у него формировала ФСБ, а не МИД.
По словам Бондарева, среди его коллег есть те, кто разделяет его взгляды на войну, и некоторые после её начала даже ушли в отставку, не выступив, впрочем, в отличие от него, с публичными заявлениями. Об этом же сообщал "Коммерсантъ". Дипломат, однако, признал, что такие взгляды среди сотрудников МИДа в меньшинстве: "Многие до сих пор верят в пропаганду, которую они при этом сами помогают создавать". По его словам, ряд коллег считает, что Запад пойдёт на уступки перед лицом ядерных угроз со стороны России. Он, как утверждает, спрашивал коллег, действительно ли они хотят, чтобы их дети жили среди "радиоактивных руин", на что получал ответ, что "ценности важнее".
Бондарев, согласно сайту отделения ООН в Женеве, занимал в постоянном представительстве должность советника. По его словам, он находился на дипломатической службе 20 лет. Он сообщил об отставке накануне, опубликовав открытое письмо. "Развязанная Путиным агрессивная война с Украиной, а по факту со всем западным миром, – не только преступление против украинского народа, но и, пожалуй, самое тяжкое преступление против народа России", – написал он на своей странице в социальной сети LinkedIn.
МИД отставку пока не комментировал. Пресс-секретарь Кремля Дмитрий Песков во вторник заявил: "Господин Бондарев больше не с нами, скорее против нас. Он осуждает действия российского руководства, а они поддерживаются почти всем населением нашей страны".
Вождь и админы, здравствуйте. У меня очень давно созрел вопрос, и я желаю узнать на него ответ.
Я сюда часто выкладываю свою музыку как для бесплатного использования, так и те работы, которые будут использоваться в играх или других проектах. Но в какой-то прекрасный момент получил аж три бана только за то, что посмел:
а) указать свои карты в комментариях (с этим баном согласен)
б) забанен за ссылку на свою группу в вк, когда просто аписал "если хочешь больше "ссылка на сайт"" (почему?)
в) админ отредактировал мой пост и убрал ссылку на мой тег (почему?)
То есть я просто пишу "если хочешь больше", мол, если тебе понравилось, что я делаю, вот там есть еще и все сразу.
Тем временем, люди, которые выкладывают фотографии с эро-порно-косплей-моделями, дают ссылку на сторонние сайты с фуллами в шапке поста, в комментариях и так далее. Часто это очень странные сайты с тонной рекламы, открывающихся окон и некоторые даже подкидывают майнеры.
Почему эти люди не нарушают правила и политику сайта, а художники, музыканты и просто творцы, которые дают ссылки на свои блоги - нарушают?
Тогда получается, я даю ссылку ведь и на свой ютуб-канал, где человек может посмотреть видео. Тоже сторонний сайт. А в чем разница между ссылкой на паблик в вк и телеграмм канале? ВК и Телега принадлежат разным людям, владельцем этих сайтов я не являюсь, а, грубо говоря, веду блоги. Получается, нельзя даже ютуб выкладывать на реактор?
Я не хочу нарушать правила и политику сайта и не хочу быть забаненным навеки (люблю реактор и сижу тут 11 лет), а хочу быть услышанным и иметь возможность получить ответ на свой вопрос. А также охватить аудиторию больше, именно в этом, мне кажется, и есть смысл для любого творческого человека - быть услышанным, для большего числа людей делиться своим мнением, рассказывать что-то из жизни и так далее.
Если нельзя, то нельзя, буду дальше выкладывать просто видео.
В чат рулетке много проходного контента, но этот рашистский дед меня поразил. Он выдал, можно сказать, выжимку, концентрат ватного бреда.
Отличный комментарий!