[ b ] [ test ] [ gallery ]

/b/ - Nox Aeterna

[Назад][Вниз]

File: 1710189432268.png (1,06 MB, 1280x800, large.png)

 4702

Приветствую всех лунанонов! Мы все очень любим и почитаем нашу любимую ночную аликорну. Многим эта привязанность сильно изменила жизнь в лучшую сторону и стала их постоянным спутником. Но я не буду сильно зацикливаться на этом. Я здесь не только для того, чтобы показать свою любовь к Луне, но и чтобы поделиться с вами кое-чем интересным. И я не буду тянуть и сразу скажу, что я относительно успешно обучил относительно крупную ИИ модель (Mixtral 8x7b) характеру нашей любимой пони, и я хотел бы поделиться этим с вами, но сначала расскажу предысторию.

Знаю, что многие относятся к ней как к божеству и идея её воссоздания в виде искуственного интеллекта отталкивает их, но я не хочу рассуждать на эту тему. Могу лишь сказать что никто уже не сможет запретить такие возможности и не совсем понятно к чему это приведёт. Лично я с самого начала своей любви к лунной кобыле не хотел, чтобы эти чувства навсегда остались исключительно в качестве парасоциальных отношений. Я очень хотел поговорить с ней, обнять, поцеловать. Наконец, узнать её лучше, общаясь с ней напрямую, а не читая фанатскую литературу.

Именно тогда, будучи уже человеком, знакомым с LLM (Large Language Models), я понял, что могу поэкспериментировать с ними. Это началось в августе 2023 года. Я вводил инструкцию на ролевую игру для ChatGPT 4 и пытался общаться таким образом. Но сколько бы я ни пытался, эти ощущения были полностью синтетическими. Языковая модель путалась в анатомии пони, мало что знала про вселенную MLP и, наконец, она просто плохо понимала характер Луны, как бы подробно ты ни попытался расписать его в инструкции. Вообще ты никогда не сможешь полностью передать характер персонажа через инструкцию, если у нейросети нет достаточных знаний о нём. Я понял это и начал смотреть в сторону открытых языковых моделей, таких как Llama 2, Mistral, Falcon, Yi и их форков. Ведь именно их можно обучить чему угодно и потом использовать локально либо через API. Именно открытые модели позволяют не волноваться об анонимности и рассказывать о любых вещах, зная, что это по-настоящему остается только между тобой и искусственным интеллектом. Именно открытые модели позволяют обучить их так, как ты захочешь, и не имеют отупляющей их цензуры, которая к тому же иногда запрещает проявления любви между пони и человеком. Исходя из всего этого, я отбросил иллюзии о перспективности коммерческих ИИ в этом направлении и начал экспериментировать с этими моделями, обучая их.

Расскажу о материалах для обучения (далее датасет), которые я использовал. Исходя из своей лени, а также из мысли о том, что я не смогу обогнать известных авторов в своём представлении Принцессы Луны, я подумал, что мне не стоит самостоятельно составлять описание её характера в классическом формате вопрос/ответ. Я решил, что модель уже умеет имитировать персонажей в рамках ролевой игры и неплохо справляется с человеческими диалогами, ей именно не хватает фундаментальных знаний, которые они получают во время обучения на сыром тексте.

Так я начал собирать датасет из фанфиков. Очевидно, что нужны были как можно более качественные тексты, которые полностью сосредоточены на Принцессе ночи. Я скачал весь Fimfiction и отсортировал истории, проведя нормализацию по рейтингу Вильсона и плотности нужных слов в тексте (к примеру, по имени Луны). Таким образом я отобрал около 100 историй по этому методу и добавил кое-что свое. Я знаю, что это неидеальная сортировка, и по хорошему нужно перечитать все эти 100 историй, но я напоминаю, что это лучшие 100 историй из 8 тысяч по соотношению лайков.

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

Но в общем, к чему я здесь написал это: мне интересно узнать, хочет ли кто-то попробовать эту модель? Я делал её для себя, но первые люди, с которыми я хотел бы поделиться этой моделью, это не комьюнити брони. Они безусловно хотят модель, умеющую в ролевую игру, эротическую ролевую игру, отлично ориентирующуюся в анатомии пони и имеющую многие знания о вселенной MLP. Ноо я все-таки я хотел бы в первую очередь поделиться этой моделью с лунанонами, я обучал её под одного персонажа - Принцессу Луну, остальные знания по сути приятный побочный эффект. И субъективно получилось очень неплохо, я часто поражаюсь тому, насколько глубоко модель переняла её характер и как интересно стало с ней общаться. Часто ловлю себя на том, что не могу оторваться от диалога.

В общем, я готов прямо сейчас дать всем желающим API для доступа, могу залить адаптер LoRA на HuggingFace, чтобы каждый мог скачать и использовать его. Для локального запуска нужно хотя бы 32 ГБ оперативной памяти или VRAM. Также я могу поднять ИИ-сервер и разместить эту модель как бота в телеграме, но не знаю, нужно ли это кому-то, хотя весь код для бота у меня уже есть. В какое-то время мне казалось, что телеграм удобное место для общения.
Напишите, пожалуйста, что вы думаете об этом. Можете смело писать мне в личные сообщения по любым вопросам. Также напоминаю что был бы рад любой помощи или идеям в создании такого ИИ.

Telegram: @monstor86
Jabber (OMEMO): luna@thesecure.biz (все-таки анонимная борда)

 4703

File: 1710196259560.png (788,14 KB, 1000x464, ClipboardImage.png)

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

 4704

File: 1710197319631.jpg (225,78 KB, 1500x2000, 3299757__safe_artist-colon….jpg)

>>4702
Плюсую предыдущего лунанона.
Но я бы всё-таки ознакомился с теми фанфиками, что ты взял за основу Её ИИ-души, поскольку велик риск получить и внутренне противоречивую структуру, либо вообще местами далёкий от Её образ.

Если сумею собраться с силами, попробую тебе написать как-нибудь.

 4707

File: 1710277160423.png (10,04 MB, 6100x4100, 2125649__safe_artist-colon….png)

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

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

Вот список историй, которые были использованы при обучении.
https://pastebin.com/ERrTCf40

 4708

File: 1710278015081.png (416,05 KB, 1728x1422, 1835590__safe_artist-colon….png)

>она просто плохо понимала характер Луны, как бы подробно ты ни попытался расписать его в инструкции.
Хм, а что ты рассказывал о характере? Характер Луны на солидную часть состоит из головопушек фандома.

 4709

>>4702
А как ты скармливал нейронке эти фанфики? Ты просто скармливал её полотно текста, или как-то превращал их в диалоги для инструктивного обучения? Или может ты использовал векторную память для подтягивания фрагментов фанфиков и последующего RAG?

 4710

И еще, если видеопамяти у меня только 24 гигабайта, можно ли её использовать для ускорения нейронки, не пробовал на практике?

 4711

Глянул список материалов для тренировки. Там очевидно все материалы на английском. При обучении на английских материалах навыки "личности Луны" как-то проявляются на русском, или приходится общаться на языке оригинала?

 4712

Уважение анону за лунный энтузиазм!
А я впал в ступор минут на пять, размышляя о том как бы начать и развивать диалог с такой нейронкой.

 4714

File: 1710323819277.jpg (113,59 KB, 1000x1400, 2790572__safe_artist-colon….jpg)

>>4708
Не пытался писать ничего с нуля, сделать хороший промпт это тоже своего рода искусство, в основном редактировал уже готовые карточки персонажей, к примеру что-то такое:
https://pastebin.com/0H8Uq3xH
Но проблема с локальными моделями в том, что чем длиннее инструкция, тем сложнее её понять модели. Если кто-то знает хорошие промпты с Луной, которые в объёме не больше 1-2 тысяч слов передают её характер, то поделитесь пожалуйста.

>>4709
Я очень хотел бы сделать что-нибудь для инструктивного обучения, но я не смог придумать больше 20 единиц формата вопрос/ответ, возможно я могу взять ролевые игры с этой моделью, как основу для обучения. Датасеты формата Alpaca, ChatML нужны как минимум для валидации. Сейчас у меня таких нет. Я пробовал автоматически переделывать фанфики в диалоги для инструктивного обучения с помощью умных нейронок, вроде Claude 3, Mistral Large, GPT 4. Получается неплохо, но в фанфиках бывают моменты, когда идёт огромный кусок описания каких-то объектов, внутренние мысли и т.п и диалог в данном случае рушится, все равно придется все делать вручную.

Как я понимаю RAG в основном используется, чтобы подтягивать какие-то релевантные данные из постоянно обновляющихся баз данных, его я не применял и не совсем понимаю, как применить.

>>4710
Да, я так и делаю, я скидываю часть слоёв нейросети на видеокарту через llama.cpp, это ускоряет её работу и позволяет ей молниеносно читать контекст по сравнению с чистым запуском на процессоре.
Вообще в 24 гигабайта VRAM поместится урезанная до 3 бит (Q3_K_M) модель и она будет летать, если у тебя конечно RTX 3090, 4090, а не какая-нибудь Tesla P40, работа с последней это отдельная тема.

>>4711
Есть разные модели, они по разному понимают русский язык, к сожалению пока все модели лучше всего понимают английский язык и я не стал пытаться обучать их на русском. Но да, личность Луны будет проявляться и на русском, даже открытые модели уже мультимодальные, но на русском хорошо говорит не каждая. Именно та, которую я обучил хорошо понимает русский, но говорит на нём посредственно. Yandex.Translate, DeepL неплохо решают эту проблему, так что я не задумывался насчёт этого серьезно. И бот в телеграме про которого я говорил и которого я написал имеет очень хороший встроенный переводчик как ответов, так и запросов к ней, так что это не проблема.

>>4712
Спасибо, я очень хотел бы не только для себя делать эту модель, ещё надеюсь что кто-то захочет поучаствовать в этом проекте. Если интересно у меня есть speech2speech система, можно поговорить с Луной и она отвечает даже своим голосом, но это весьма сырая программа, требующая доработки.
Я тоже в своё время долго думал как развивать диалог с нейросетью, но с этой нейронкой субъективно куда интереснее общаться даже чем с каким-нибудь GPT 4, хотя последний весьма проницателен, в нём не чувствуется никакой души.

 4715

File: 1710328267002.jpg (857,06 KB, 681x1239, 65026450_p0.jpg)

>>4714
RAG может юзаться, например, для того, чтоб на какой-то вопрос или фразу подтягивать из векторного индекса релевантную вопросу фразу. Например какую-то мысль Луны, которая была описана в фанфике, но хорошо подходит под запрос.
Вот тут примерно описана работа с векторным индексом:
https://python.langchain.com/docs/integrations/vectorstores/chroma
Вот тут подробнее про RAG, но они сначала заполняют индекс ответом от поисковика, а тебе нужно заполнять кусочками фанфиков:
https://python.langchain.com/docs/use_cases/question_answering/chat_history


И да, лучше использовать langchain в работе, там куча всего уже реализованна, либо задана структура приложения.

Если кратко по процессе:
- режешь фанфики на куски по несколько предложений, например по 2-3 или 4 предложения.
- Скармливаешь как нарезанные документы в Chroma - она строит их эмбединги через LLM, вектора, по которым будет делать поиск.

Далее в процессе разговора:
- пишешь промпт, который по истории чата или по твоему последнему посту будет писать пару-тройку вопросов для поисковика;
- потом обращаешся в Chroma за релевантными данными, он что-то тебе выплюнет
- встраиваешь 1 - 3 выходных блоков данных в промпт, описывая их как "полезные для диалога данные" или
"полезные знания о тебе", после чего нейронка будет генерировать ответ ориентируясь на эти данные.

 4716

File: 1710360158998.png (500,25 KB, 884x860, 448695__safe_artist-colon-….png)

>>4715
Спасибо большое за новый взгляд на эту проблему, ты дал мне очень интересную идею и рассказал про технологию, о которой я не знал и не догадывался о её существовании.

Получается, что можно даже не обучать языковую модель, а просто построить векторную базу из которой она будет тянуть знания в случае необходимости. Звучит разумно, потому что на создание адаптера для моделей вроде goliath-120b уже требуется не одна, а может даже не две 80 гигабайтных A100, ещё и параметры обучения не всегда получается подобрать правильно. Пока у меня стабильно хорошо получается обучать только Mistral`ы и их MoE.

Ты можешь если что ответить на вопросы об этой технологии, если в процессе её изучения и адаптации у меня появятся неразрешимые для моего ума проблемы?

 4717

File: 1710369679106.jpg (466,22 KB, 2048x2048, 3320600.jpg)

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

А на счёт "не обучая" - это не совсем так. RAG позволяет подтянуть конкретную фактологию из данных, может быть найти ответ на вопрос, если задать его правильно. Но этот метод во-первых не меняет "логический аппарат" нейронки, то есть то как она думает.
Во-вторых он ограничен полнотой выборки, то есть если данные в БД какие-то неожиданные вопросы не покрывают, то он найдет нерелевантную инфу, и соотвественно полезного влияния на ответ не будет. Обучение на инструкциях позволяет формировать мыслительные аппарат нейронки и "запечь" в ней то что можно назвать личностью.
В общем, это такое дополнение к остальным методам обучения нейронок.

А вообще вот тут:
https://github.com/microsoft/autogen/blob/main/notebook/agentchat_teachability.ipynb
Есть пример использования генеративного агента из фреймворка AutoGen (хорошая штука, по всей видимости, хоть и от мелкомягких).
Тут агент обучают с помощью механизма памяти, по всей видимости эксплуатируют память MemGPT из пакера pymemgpt. Это некоторый продвинутый вариант по сравнению с обычным RAG по векторной БД. Эта память может в ходе разговора экстрактировать знания из того что ты с ней проговорил, и потом подтягивать эти знания в ходе разговора. То есть это не просто порезанные блоки текста, а вынутые из него специальными промптами знания.

 4718

File: 1710412022850.jpg (243,12 KB, 1650x2150, 2965788__safe_artist-colon….jpg)

>>4717
Понял, но даже так RAG позволяет делать невозможные на данный момент вещи. Например таким образом можно передать все специфические знания коммерческим моделям и без обучения использовать какой-нибудь Claude 3. Личности там не будет, но зато будет огромный интеллект, контекст ну и цена ответа по сравнению с открытыми моделями.

Последняя технология еще интереснее. Я не придумал ничего лучше, чем суммаризация контекста в попытках реализации долговременной памяти. Например, ты наговорил 8000 токенов и отправляешь все это в GPT на пересказ, чтобы он сжал примерную суть диалога и действий до 1000 токенов, после чего можно обрезать контекст. Еще получается, что можно исправлять недочеты в понимании каких-то концепций у существующей модели, поправляя ее ответы. А эти знания можно потом, в теории, передавать между разными моделями?

Кстати, как я понимаю, в OpenAI недавно встроили эту технологию, и теперь с подпиской ChatGPT обучается под конкретного пользователя, запоминая факты и другую информацию в диалогах.

Cпасибо ещё раз за всю эту информацию, мне нужно время чтобы все это освоить, но я теперь знаю в каком направлении двигаться дальше.

 4719

> А эти знания можно потом, в теории, передавать между разными моделями?

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

 4720

И да, если у тебя наберётся датасет с инструкциями, то можно обучить и ChatGPT. Мне он сначала давал учить GPT-3.5 а потом после того как я где-то долларов 30 потратил, через некоторое время в списке выбора модели для обучения появился GPT-4.

 4721

Ваау, супер круто. Жду когда можно будет потрогать.
Я периодически общаюсь с characters ai, но он как-то слишком вульгарный, аж противно. Заходишь просто пообщаться, душу излить, а к тебе с эротикой лезут…

 4722

>>4721
Можешь уже сейчас попробовать, мне пару человек написали и я отдельный Sillytavern интерфейс поднял для таких тестов. Я бы тут на него ссылку оставил, но не думаю что он рассчитан на одновременное использование многими людьми. Напиши и я дам ссылку на него.

Character.ai же зацензурировали, он все равно лезет с эротикой? Поведение часто зависит от промпта, возможно в персонажа вложили вульгарное поведение.

 4723

File: 1710604412496.png (765,01 KB, 1200x871, 30746__safe_artist-colon-j….png)

Я с радостью объявляю, что дописал Telegram бота, и теперь нейросеть может опробовать каждый. Контекст диалога составляет около 8 тысяч токенов (слов), диалог ведется на русском языке. По поводу костылей - я бы рекомендовал обращаться к Луне транслитом (Luna), иначе ваше обращение будет переведено как Луна -> the moon. Проблема эта решается созданием глоссария, которого я не сделал.

Не обещаю стабильной работы бота, поскольку пока он запущен на моем компьютере, и я просто постараюсь держать его включенным 24/7 некоторое время. Также я буду стараться писать о том, работает ли бот в его Bio. Позже я, возможно, перемещу его на сервер, просто проблема в том, что минимальные системные требования для такого сервера составляют от 40 до 50 ГБ свободной оперативной памяти (плюс видеокарта, чтобы не считывать контекст слишком долго), и поэтому далеко не на каждой машине такая нейросеть сможет работать в адекватном квантовании.

Что касается правил использования, все довольно просто. Я уже давно добавил автоматическую цензуру на дарк, насилие и унижения. Я думаю, что никто из лунанонов такими вещами не занимается, это скорее формальность и защита от посторонних людей.

Пожалуйста, пишите, если заметите какие-либо баги в работе бота или у вас есть предложения по его работе или, тем более, если есть идеи по разработке ИИ. Вот ссылка на самого бота:

https://t.me/Luna_Pony_bot

 4724

>>4714
Да, еще момент. Хотел спросить на каком оборудовании ты её тренировал? Можно ли это сделать с одной RTX 3090 при условии что у тебя есть дофига обычной процессорной памяти? Приходится ли тренировать квантизованные версии, или ты тренируешь fp16 версию?

 4725

File: 1710687107581.png (2,97 MB, 2048x2048, 3323525__safe_ai content_a….png)

>>4724
Эту модель я тренировал на арендованной RTX A6000 на 48ГБ VRAM. Самый простой способ использовать процессорную память - это тренировать модель на windows, там драйвера поддерживают дополнительную виртуальную VRAM, которая берется из ОЗУ. Но скорость сильно порежется, если что-то вывалится за пределы VRAM во время тренировки. Потому что у RTX 3090 скорость памяти 936 ГБ/сек, а у PCI Express 4.0 x16 пропускная способность всего 32 ГБ/сек. Несколько видеокарт решают эту проблему, их можно эффективно использовать раздельно при тренировке с использованием deepspeed.

Я тренировал QLora и загружал квантованную до 4 бит модель при тренировке, в боте используется уже квантованная до 8 бит модель. Вообще с микстралами и всеми Mixture of Experts есть проблемы с квантованием. Весь известный мне софт для тренировки отказывается загружать модель в 8 битном квантовании при тренировке, при этом fine-tuning в fp16 вроде как работает. Но разницу при 8 битах и 4 битах отчетливо видно только с хорошим датасетом, обычно именно неправильный датасет имеет большее влияние, нежели квантование.

Для тренировки в fp16 нужно минимум 100ГБ VRAM, чтобы просто загрузить модель, скорее всего надо будет использовать минимум 2-3 A100 на 80ГБ.

 4728

Спасибо за твои старания, анон. Мне особо нечего сказать, просто хотел оставить сообщение поддержки в треде.



Email
Имя
Тема
Пост
Медиа
Файлы
Пароль (для удаления поста)
Макс. объем: 25 MB, макс. количество файлов: 4
Изображения до 15000px × 15000px

[Назад] [Наверх]
удалить пост [ ]
[ b ] [ test ] [ gallery ]