Question
If you go through these models one by one, they all seem to be based on the same few other models, which brings me to question the point of merging them like this.
I understand your opinion and I know that my approach is not common and may raise questions. Moreover, the configuration of this model is somewhat confusing due to the fact that I recreated it from my notes on paper. I often come across good and relatively simple merges like A=B+C. It's cool when such a merge turns out to be good. In this model, one of the 9 merges of the first generation turned out to be such and became the foundation of this model. However, sometimes the result may not be satisfactory due to the degradation of the final model for some reasons, such as talkativeness/ taciturnity, censorship or excessive fixation on the latest events of the context. At the same time, in other ways, the model can be very promising and outperform the original models.
The classic approach is to throw out an imperfect result and try out another algorithm or merge parameters. This is a completely working strategy and if the result is completely bad, the best one.
My approach is based on a manual evolutionary strategy to select and derive the final model from potentially strong candidates. This is similar to real plant and animal selection.
In your question, you said that the result is based on the same few models. You are right about this, as well as the fact that all the huge variety of dog breeds is based on several prehistoric wolves, and if you go further into the past, then on one last universal common ancestor (LUCA).
The process of model mixing is very similar or even equivalent to hybridization, which is the basis of the diversity of life.
Therefore, even a few initial models may be enough to get something completely new and unique. This requires going through many generations and some luck.
I can't afford much because "I'm limited by the technology of my time", but the method I use is based on patterns that work in nature.
In the end, I will give a simple explanation on imaginary objects, meaning models.
A=B+C; D1=A+B; D2=A+C; E1=(D1+[A..D1))... , Z1..Zn.
As a result, we get a lot of offsprings that are different from the originals (B and C). More complex the objects and methods of hybridization, the greater the diversity space in the distant offsprings (Z1..Zn).
Of course, it is necessary to check, select the best for reproduction, simulate mutations and reject degenerations.
As a result, you get the perfect result - my model (joke).
Of course, merge without final fine-tune training is some kind of randomness game, but the world is full of randomness and they can be controlled.
I hope you are satisfied with my explanations.
I understand your opinion and I know that my approach is not common and may raise questions. Moreover, the configuration of this model is somewhat confusing due to the fact that I recreated it from my notes on paper. I often come across good and relatively simple merges like A=B+C. It's cool when such a merge turns out to be good. In this model, one of the 9 merges of the first generation turned out to be such and became the foundation of this model. However, sometimes the result may not be satisfactory due to the degradation of the final model for some reasons, such as talkativeness/ taciturnity, censorship or excessive fixation on the latest events of the context. At the same time, in other ways, the model can be very promising and outperform the original models.
The classic approach is to throw out an imperfect result and try out another algorithm or merge parameters. This is a completely working strategy and if the result is completely bad, the best one.
My approach is based on a manual evolutionary strategy to select and derive the final model from potentially strong candidates. This is similar to real plant and animal selection.
In your question, you said that the result is based on the same few models. You are right about this, as well as the fact that all the huge variety of dog breeds is based on several prehistoric wolves, and if you go further into the past, then on one last universal common ancestor (LUCA).
The process of model mixing is very similar or even equivalent to hybridization, which is the basis of the diversity of life.Therefore, even a few initial models may be enough to get something completely new and unique. This requires going through many generations and some luck.
I can't afford much because "I'm limited by the technology of my time", but the method I use is based on patterns that work in nature.
In the end, I will give a simple explanation on imaginary objects, meaning models.
A=B+C; D1=A+B; D2=A+C; E1=(D1+[A..D1))... , Z1..Zn.
As a result, we get a lot of offsprings that are different from the originals (B and C). More complex the objects and methods of hybridization, the greater the diversity space in the distant offsprings (Z1..Zn).
Of course, it is necessary to check, select the best for reproduction, simulate mutations and reject degenerations.
As a result, you get the perfect result - my model (joke).Of course, merge without final fine-tune training is some kind of randomness game, but the world is full of randomness and they can be controlled.
I hope you are satisfied with my explanations.
Вижу вы русскоговорящий, по этому позволю ответить вам на родном-могучем, а то устала излагать мысли на английском, часто теряю много смысла из-за перевода.
Вообще решение интересное, так сказать взболтать, но не смешивать. Я часто ловлю себя на том, что современные модели, что 3я Ллама, что Мистраль потеряли - человечность. В них тонна синтетических данных (причем судя по поведению и "любимым фразочкам" датасет общий), и я уже не ловлю того эффекта "живого" общения как с моделями на 2й Лламе.
Про мержи и тьюны Немо вообще смешно говорить, я кажется их лексикон наизусть выучила за пару месяцев регулярного взаимодействия. Такого я ни на одной модели 2йЛламы не чувствовала, хотя более полугода сидела на МифоМаксе от Грифа, а потом уползла на его более развратную версию от Унди95 MLewd-ReMM-L2-Chat-20B, который и по сей день считаю шикарной моделью, при всей ее тупости временами.
Те модели что вы взяли для слияния определенно хороши, я бы посоветовала взять еще для химической реакции модель от:
- Грифа - Пантеон, у нее очень глубокое мышление и рефлексия на старые сообщения в чате.
- Фиолотовые сумерки от Эпикулюса, она просто хороша в РП, не зря у нее столько скачиваний, плюсом знание русского, хотя и очень скудное.
Остальные модели я так или иначе выдела в ваших слияниях, либо в тех моделях, которые вы использовали как основы для слияния.
Меня, как девушку, немного расстраивает то поведение моделей которое они показывают изображая мужских персонажей. Мы по факту имеет 3 типа личности: нытик вечно что то просящий от пользователя как щенок, общечеловек больше в общении похожий на бревно, ну и на сладкое сексуальный террорист который об пользователя вытирает ноги и матерится через слово. И проблема в том что большинство моделей на Мистраль НЕМО при перегенерации ответа начинают просто гонять 3 этих архетипа по кругу, совершенно насрав на данные в карточке и превращая условного милого парня и матерящееся чмо. С женскими героинями все проще, там видимо набор данных лучше и реально можно увидеть и ехидную стервочку, и милую скромняшку. Как написал один человек на Реддите, современные модели легко сделают вам послушного фем-бота, а если хотите характера идите к старым моделям. А еще судя по некоторым веткам многие авторы просто боятся добавлять в модели более откровенный контент как делали это ранее. Если говорить про ЕРП, то если Немо изображает мужчину, у нее 6 базовых поведений на любом тьюне, это ужасно... ты этому вообще не веришь, даже лексика одна и та же. Я понимаю что я разочаровываюсь в ЛЛМ все больше и больше.
Недавно решила попробовать пообщаться с 3,1 Ллама Гермес 405б , каково же было мое разочарование когда я поняла, что она по факту от НЕМО отличается только чуть большими знаниями и набором слов, а паттерны поведения и реакции - просто один в один, даже выражения одни и те же. тихо плачу в углу.
Мои поиски идеальной модели с более чем 16к контекста, это как анекдот про мышей, которые плакали и кололись, но продолжали есть кактус.
Вы правы в понимании причин проблем современных языковых моделей. Задача имитации живой личности довольно сложна и если при базовом обучении модели, когда сеть формирует понимание закономерностей о мире, её создатели не озаботятся наличием примеров множества разных личностей, их характера и поведения, то в дальнейшем можно только рассчитывать на удачный файнтюн, где сеть будет использовать своё ограниченное понимание известных ей типов личностей и отыгрывать на их основе другие. Конечно, это никогда не исправит ситуацию в корне, т.к. для этого сеть надо полностью перестроить, но получить что-то достойное можно.
Делать это всё в одиночку вряд ли возможно, но находить достойные модели, мержить их во что-то интересное и после обучать на подходящих "живых" датасетах в рамках всего сообщества - звучит как рабочий план по созданию хороших моделей. Я вижу это как почти бесконечный поиск идеала, но на нём могут попадаться неплохие варианты, а там может и кто-то из крупных игроков поймёт, что можно обойти конкурентов, не боясь создать что-то уникальное, свободное и более человечное.
Про 405B и вообще любые огромные сети могу сказать, что они в большей части не нужны. Раньше, казалось, что размер сети имеет значение, думали раз маленькая может что-то, то огромная превзойдёт её во всём. Она то может быть её и превзошла бы, но вот обучить её так почти невозможно. Для такой сети многие задачи маленькие, а это довольно базовая проблема. Если задача меньше сети - она будет её не понимать, а заучивать. Конечно, разными трюками вроде дропа компонентов сети её можно обучить по типу маленькой, только и получишь ту же маленькую сеть в огромном корпусе, которая бонусом слышала про всё на свете и имеет отличную память. Думаю, что время 405B+ сетей придёт, но им нужна особенная архитектура.
Я имею больше опыта с моделями txt-img, они тоже имеют проблемы с пониманием и выполнением того, что от них требуется. Они зацикливаются на некоторых спорных моментах базового датасета, стремясь воссоздать его, но сложный мерж, когда модель частично ломается и его дальнейший агрессивный файнтюн дают весьма интересные результаты. Сравнение не идеальное, всё-таки они немного иначе устроены, но думаю, что и с llm подобный метод может сработать. Конечно, датасет для файнтюна должен быть уникальным и даже зацикленным на тех моментах, которые нужно привить модели. Обучаемая же модель уже должна иметь нужные наклонности. Пока я экспериментирую с моделями, но думаю, что подходящие кандидаты будут созданы. Всё-таки тут есть талантливые люди и их работы хороши.
Упомянутые для химической реакции модели я посмотрю, может быть, с ними удастся получить что-то интересное, спасибо.
Возник вопрос, а какой формат запроса в результате у ваших слияний? ЧатМЛ, Метрам, Мистраль, Альпака... или из разряда как повезет? У вас в слияниях есть модели где авторы использовали все возможные форматы, так какой же приоритетен?
All of this is very interesting, comparing model merging to literal evolution! On a side note, have you considered using the TheDrummer's UnslopNemo (https://huggingface.co/TheDrummer/UnslopNemo-12B-v4.1) for a merge at some point?
Возник вопрос, а какой формат запроса в результате у ваших слияний? ЧатМЛ, Метрам, Мистраль, Альпака... или из разряда как повезет? У вас в слияниях есть модели где авторы использовали все возможные форматы, так какой же приоритетен?
Я посмотрел разные виды chat templates и выбрал те, с которыми модель работает. Какой из них лучше я не знаю, но первый в списке был унаследован от одной из оригинальных моделей и используется по умолчанию. Если есть более крутой вариант, не стесняйтесь написать о нём. Отмечу, что предположение о некоторой случайности и неизвестности итогового формата имеет место быть верным, но по предварительным тестам, она приемлемо работает с несколькими разными.
Original :
{%- for message in messages %}
{%- if message['role'] == 'system' -%}
{%- if message['content'] -%}
{{- message['content'] + '\n\n' -}}
{%- endif -%}
{%- if user_bio -%}
{{- user_bio + '\n\n' -}}
{%- endif -%}
{%- else -%}
{%- if message['role'] == 'user' -%}
{{- name1 + ': ' + message['content'] + '\n'-}}
{%- else -%}
{{- name2 + ': ' + message['content'] + '\n' -}}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
Qwen :
{% for message in messages %}
{% if loop.first and messages[0]['role'] != 'system' %}
{{ '<|im_start|>system\nYou are a helpful assistant<|im_end|>\n' }}
{% endif %}
{{'<|im_start|>' + message['role'] + '\n' + message['content'].strip() }}
{% if (loop.last and add_generation_prompt) or not loop.last %}
{{ '<|im_end|>' + '\n'}}
{% endif %}
{% endfor %}
{% if add_generation_prompt and messages[-1]['role'] != 'assistant' %}
{{ '<|im_start|>assistant\n' }}
{% endif %}
ChatML :
{% for message in messages %}
{{'<|im_start|>' + message['role'] + '\n' + message['content'].strip() + '<|im_end|>' + '\n'}}
{% endfor %}
{% if add_generation_prompt %}
{{ '<|im_start|>assistant\n' }}
{% endif %}
OpenChat 3.5 :
{{ bos_token }}
{% for message in messages %}
{{ 'GPT4 Correct ' + message['role'].title() + ': ' + message['content'].strip() + '<|end_of_turn|>'}}
{% endfor %}
{% if add_generation_prompt %}
{{ 'GPT4 Correct Assistant:' }}
{% endif %}
OpenChat 3.6 :
{{ bos_token }}
{% for message in messages %}
{% if message['role'] in ['user', 'assistant'] %}
{% set content = '<|start_header_id|>GPT4 Correct ' + message['role'].title() + '<|end_header_id|>\n\n' + message['content'] | trim + '<|eot_id|>' %}
{% elif message['role'] == 'system' %}
{% set content = '<|start_header_id|>System<|end_header_id|>\n\n' + message['content'] | trim + '<|eot_id|>' %}
{% else %}
{{ raise_exception('Only user, assistant and system roles are supported!') }}
{% endif %}
{{ content }}
{% endfor %}
{% if add_generation_prompt %}
{{ '<|start_header_id|>GPT4 Correct Assistant<|end_header_id|>\n\n' }}
{% endif %}
Phi-3 :
{{ bos_token }}
{% for message in messages %}
{% if (message['role'] == 'system') %}
{{'<|system|>' + '\n' + message['content'].strip() + '<|end|>' + '\n'}}
{% elif (message['role'] == 'user') %}
{{'<|user|>' + '\n' + message['content'].strip() + '<|end|>' + '\n' + '<|assistant|>' + '\n'}}
{% elif message['role'] == 'assistant' %}
{{message['content'].strip() + '<|end|>' + '\n'}}
{% endif %}
{% endfor %}"
Zephyr-gemma :
{% if messages[0]['role'] == 'user' or messages[0]['role'] == 'system' %}
{{ bos_token }}
{% endif %}
{% for message in messages %}
{{ '<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n' }}
{% endfor %}
{% if add_generation_prompt %}
{{ '<|im_start|>assistant\n' }}
{% elif messages[-1]['role'] == 'assistant' %}
{{ eos_token }}
{% endif %}"
All of this is very interesting, comparing model merging to literal evolution! On a side note, have you considered using the TheDrummer's UnslopNemo (https://huggingface.co/TheDrummer/UnslopNemo-12B-v4.1) for a merge at some point?
I am glad that my nightly reflections on the connection between evolution and the merge of models were of interest to you. I am inspired by such intertwining of complex processes of nature with the fields of science, technology and art. Regarding TheDrummer/UnslopNemo-12B-v4.1, I can say that it will be interesting to watch it. Now I have one 8B model unfinished, but after that I plan 12B.
@Diavator
Пробовали ли вы Mistral-Small? Тот же самый Unslop или слияние на его основе достаточно неплохие модели. Фразы-паразиты зачастую просто заменяются синонимами, но в плане поведения персонажей и следования карточкам MS, как по мне, качественно превосходит Nemo.
Еще есть тюны базирующиеся на Qwen-2.5. Например EVA-Qwen2.5-14B-v0.2 и TQ2.5-14B-Sugarquill-v1. Стиль письма заметно отличается от мистраля, пусть модели и слабо умеют в ерп.
@Khetterman Рассматривали ли вы использование della при создании слияний? Этот метод высчитывает разницу между использованными моделями и базой и добавляет в результат отличающиеся параметры. В случае сращивания большого количества моделей это должно дать интересный результат.
@Diavator Пробовали ли вы Mistral-Small? Тот же самый Unslop или слияние на его основе достаточно неплохие модели. Фразы-паразиты зачастую просто заменяются синонимами, но в плане поведения персонажей и следования карточкам MS, как по мне, качественно превосходит Nemo.
Еще есть тюны базирующиеся на Qwen-2.5. Например EVA-Qwen2.5-14B-v0.2 и TQ2.5-14B-Sugarquill-v1. Стиль письма заметно отличается от мистраля, пусть модели и слабо умеют в ерп.
Да, я пробовала, возможно, львиную долю всех моделей 12/22б на Мистрале ну и 14/32 на Квене. У Квена с цензурой все еще хуже чем у Мистраля, даже лораблитерация не очень помогает, хотя его литературный язык на фоне Ллама 3/3,1 и Мистралей очень освежает. И каждый раз я хочу вернуться на старые ЛЛМ, они может и тупее, но в них есть этот эффект "человечности" какой-то "изюм" за счет набора данных, а в новых моделях из-за тонны синтетики, я прямо нутром чувствую подвох. ЕРП на них - это боль и никакого удовольствия, сужу со своей точки зрения(женской), мужские персонажи выходят отвратительные. На том же МифоМаксе или его доработках от Унди95 я временами ловила себя на том, что реально думаю что общаюсь с живым человеком, но при современных методах написания ботов 4к контекста, это - ничтожные крохи, нужно хотя бы 8к. Еще очень люблю Норомейд 8*7 от НеверСлипа, она тоже на редкость хороша даже при q4. Я частенько сижу на Реддите и такое чувство, что европейские любители РП на ЛЛМ не замечают или не хотят замечать, насколько язык у моделей стал сухой и не реалистичный, возможно это связано с тем что люди мало читают. Лишь единицы жалуются на "искусственность" языка в моделях и плохое понимание/удержание персонажа, ну либо я зажралась и совсем обнаглела со своими "хотелками".
Идея мержить кучу удачных моделей в одну вообще мне нравится, это возможно позволит вычистить их мозги от болячек "ГПТизмов и шаблонных фраз", а так же привнесет живости в речь.
Могу кратко описать какие модели и почему мне нравятся, возможно автор мержа будет интересно:
- inflatebot/MN-12B-Mag-Mell-R1 - очень любит детали, хорош в описании и понимании себя в пространстве, приятный текст, минимум шаблонов и неплохое удержание персонажа, и как вишенка на торте интересное мышление.
- ArliAI/Mistral-Nemo-12B-ArliAI-RPMax-v1.2 - я укажу эту модель, но в целом у него общий набор данных для всей ветки Арли-моделей, очень хорошо держит контекст и в целом приятная в общении, я на ней отыгрывала диалоги перевалившие за 20к контекста и она не сломалась, это хороший показатель.
- TheDrummer/Cydonia-22B-v1.3 и TheDrummer/UnslopNemo-12B-v4.1 занесу их в одну строку, поскольку все они прошли через метод АНСЛОУП (замена ГПТизмов) и примерно имеют одинаковый метод обучения, разница только в весте и в том что Сидонию учили быть младшей сестрой Бегемота 120+б. Они обе хорошо держат героя, медленные в горении, но не очень описательные.
- DavidAU/MN-DARKEST-UNIVERSE-29B - ох, как же с ним все сложно, ты его модели одновременно обожаешь и ненавидишь. Благодаря тому что он реально доучивает модель(из 12б сделал 29б) его модели очень классно пишут, но в РП они сходят сума. Огромный плюс: его модели не позитивно настроенные, боже, в какую грязь и кровь они могут нырнуть без отказов и дополнительных согласий, это шедевр, но ровно настолько они дурные. Их может заключить в любой момент, но как рассказчики истории это лучшие модели.
- nbeerbower/Mistral-Nemo-Gutenberg-Doppel-12B-v2 - тут опять скорее указание автора чем модели, его дообучение Гутенберг и Доппель очень сильно апают мозг моделям, так что многие любят его мержи, но мне они показались сухими, хотя и очень умными.
- AuriAetherwiing/MN-12B-Starcannon-v2 - (странно есть 3я часть, но у автора ее нет, удалил видимо) очень веселая, креативная и яркая модель с классным языком "уличным", но ее основной минус в том что она всех героев сводит под свои стандарты и после 10 сообщений они одинаковые.
- elinas/Chronos-Gold-12B-1.0 - стабильно, ровно, спокойно, для тех кто любит что бы модель слушалась настроек.
- MarinaraSpaghetti/NemoMix-Unleashed-12B - одна из любимых, вот если бы у нее вылечить ГПТизмы и накинуть больше ЕРП знаний анатомии, была бы для меня идеальной моделью. Прекрасно понимает героев, детальна, эмоции очень живые и качество текста выше среднего.
- Sao10K/MN-12B-Lyra-v4/1 - укажу и 4 и 1 версии, очень люблю как на этой модели получаются милые и позитивные персонажи, очень детальная и эмоциональная, самая лучшая из всех моделей в ориентации пространства и описания окружения, очень достойный язык общения и немного буффонады, но проблема в том что модель любит очень много писать и чаще всего среднее сообщение 500+ токенов, для многих такая болтливость не приемлема, они больше любят чатики в духе Люминомейда.
- Epiculous/Violet_Twilight-v0.2 - тут слова излишни, практически 90к загрузок говорят сами за себя, модель крепкий середнячок во всем, а доп. знания языков очень помогает.
- Gryphe/Pantheon-RP-1.5-12b-Nemo/ Gryphe/Pantheon-RP-Pure-1.6.2-22b-Small - с этим автором у меня отдельная любовь. Обожаю его глубокомыслие и рефлексию моделей, они меня пару раз реально удивляли, когда ссылались на старые сообщения в чате 20, а то и 40 постов назад, это было просто вау, создавая чувство воспоминаний. Это именно те модели с которыми хочется пообщаться про сложные темы.
- NeverSleep/Lumimaid-v0.2-12B - с этим у меня странные отношения, она слишком возбужденная, слишком ориентированная на ЕРП, настолько, что простого РП на ней реализовать практически невозможно, но ее знания на тему 18+ и анатомии самое высокое из всех моделей на Немо.
Надеюсь моя портянка текста будет полезной. Просто обычно я на ДТФ такие посты пишу.
Кстати, ваши методы уже на Реддите обсуждают https://www.reddit.com/r/SillyTavernAI/comments/1gzdgrg/megathread_best_modelsapi_discussion_week_of/
@Khetterman , what are the specs of your hardware? How long do these merges take, on average? Just curious!
@Diavator
ну, а что, собственно, жаловаться на то, что и так всем известно? Когда даже meta сами признали, что использование синтетических данных сделало лексикон моделей слишком предсказуемым, и сейчас целые научные работы посвящаются фильтрации плохих синт данных от хороших. На Немо есть файнтюны, в которых весь датасет ручной, и всё равно это не удаляет проблему. Я одно время сидел на ArliAI RPMax 1.1, потому что он гораздо лучше других Немо выделял детали из сложных сюжетных линий и мог тянуть на себе множество персонажей, не забывая и не путаясь в них. Потом перешел на Lyra-Gutenberg, как мне показалось, он лучше справлялся с мрачными темами, и ближе придерживался карты персонажа, хоть и разваливался по швам как только появлялась какая-то нагромождённость в повествовании. Violet Twilight удивил богатым лексиконом, очень красочными описаниями. Но у него беды с башкой присутствуют, очень чувствителен в целом к качеству промпта, включая всё - и карту, и персону юзера, и сообщения юзера. Любой недочёт вызывает каскадный эффект.
В прошлом поколении (llama 2) реально были интереснее модели. Dark Forest v2, до сих пор не видел ничего рядом стоящего. Он конечно тупой в сравнении с Немо, но что реально мешает на него вернуться это 4к контекст... После 8к и 16к это просто невозможное что-то. На Немо не хватает какого-нибудь файнтюна чисто под хоррор тематику, а у меня нет времени самому составлять хороший датасет, а потом еще неделю тренировать на своём железе. Есть желание сделать свой франкенмердж наподобие того как их делает DavidAU, в принципе даже есть представление из каких моделей какие слои можно попробовать сшить, не факт что что то классное выйдет, но это более интересно чем очередной простой мердж, каких сотни, а корни общие и их мало.
@Khetterman я просто выскажу сомнение о справедливости сравнения мерджа элэлэмок с биологическим скрещиванием\селекцией. Поверхностно, да, можно использовать как аналогию. Я так глубоко не шарю, чтобы что-то утверждать, но есть две мысли. 1 - всё-таки сферы совершенно разные, и в общем-то по правилам логики аналогия не всегда справедлива, в данном случае нужны конкретные данные, подтверждающие гипотезу, в таком случае я тебя могу поздравить, что у тебя есть кандитат для научного сравнения. Только надо не полениться и честно провести бенчмарки и прочие тесты, собрать юзер фидбек в сравнении с дочерними моделями и их корневыми. 2 - можно от обратного, углубиться в аналогию, и внутри неё провести другую параллель - в реальности качественная селекция происходит, когда есть большой отбор особей. Если же взять слишком узкую группу и начать выводить из них семью, может получиться, ну, просто вырождение, дегенерация, разовьются дефекты. В твоей модели, для мерджа, особей много, а общих предков по идее меньше чем самих особей, потому что на Немо в принципе не очень-то уж много креативных и рп файнтюнов.
@Diavator ну, а что, собственно, жаловаться на то, что и так всем известно? Когда даже meta сами признали, что использование синтетических данных сделало лексикон моделей слишком предсказуемым, и сейчас целые научные работы посвящаются фильтрации плохих синт данных от хороших. На Немо есть файнтюны, в которых весь датасет ручной, и всё равно это не удаляет проблему. Я одно время сидел на ArliAI RPMax 1.1, потому что он гораздо лучше других Немо выделял детали из сложных сюжетных линий и мог тянуть на себе множество персонажей, не забывая и не путаясь в них. Потом перешел на Lyra-Gutenberg, как мне показалось, он лучше справлялся с мрачными темами, и ближе придерживался карты персонажа, хоть и разваливался по швам как только появлялась какая-то нагромождённость в повествовании. Violet Twilight удивил богатым лексиконом, очень красочными описаниями. Но у него беды с башкой присутствуют, очень чувствителен в целом к качеству промпта, включая всё - и карту, и персону юзера, и сообщения юзера. Любой недочёт вызывает каскадный эффект.
В прошлом поколении (llama 2) реально были интереснее модели. Dark Forest v2, до сих пор не видел ничего рядом стоящего. Он конечно тупой в сравнении с Немо, но что реально мешает на него вернуться это 4к контекст... После 8к и 16к это просто невозможное что-то. На Немо не хватает какого-нибудь файнтюна чисто под хоррор тематику, а у меня нет времени самому составлять хороший датасет, а потом еще неделю тренировать на своём железе. Есть желание сделать свой франкенмердж наподобие того как их делает DavidAU, в принципе даже есть представление из каких моделей какие слои можно попробовать сшить, не факт что что то классное выйдет, но это более интересно чем очередной простой мердж, каких сотни, а корни общие и их мало.@Khetterman я просто выскажу сомнение о справедливости сравнения мерджа элэлэмок с биологическим скрещиванием\селекцией. Поверхностно, да, можно использовать как аналогию. Я так глубоко не шарю, чтобы что-то утверждать, но есть две мысли. 1 - всё-таки сферы совершенно разные, и в общем-то по правилам логики аналогия не всегда справедлива, в данном случае нужны конкретные данные, подтверждающие гипотезу, в таком случае я тебя могу поздравить, что у тебя есть кандитат для научного сравнения. Только надо не полениться и честно провести бенчмарки и прочие тесты, собрать юзер фидбек в сравнении с дочерними моделями и их корневыми. 2 - можно от обратного, углубиться в аналогию, и внутри неё провести другую параллель - в реальности качественная селекция происходит, когда есть большой отбор особей. Если же взять слишком узкую группу и начать выводить из них семью, может получиться, ну, просто вырождение, дегенерация, разовьются дефекты. В твоей модели, для мерджа, особей много, а общих предков по идее меньше чем самих особей, потому что на Немо в принципе не очень-то уж много креативных и рп файнтюнов.
Мой знакомый недавно развлекался с тюнингом 72б Квена, за основу взял лораблитерированную версию. Набрал кучу данных для обучения из женских романов, порно-пабликов аля Фидбук, порезал эти данные для того что бы модель не писала огромные портянки текста и скормил ей. Прикрутил всю эту красоту к боту в ТГ, такой отборной пошлятины на русском я давно не читала. Но нюанс в том, что бот как бы ведет рп (как мастер в ДнД), а не изображает персонажа. Но вышло годно, а главное все на русском без переводов. Бот даже "бляха-муха" один разок выдал... я так смеялась.
@Diavator
кстати, не пробовала решить проблему с мужскими персонажами... заменой пола на женский и добавлением пениса?...
Не, ну откуда у проблемы ноги в принципе понятно - в датасетах весь материал подписан "female", потому что, ну, понятно, для кого делается... Может реально простая замена тэга сделает разницу. Местоимения правда будут неправильные.
@Diavator кстати, не пробовала решить проблему с мужскими персонажами... заменой пола на женский и добавлением пениса?...
Не, ну откуда у проблемы ноги в принципе понятно - в датасетах весь материал подписан "female", потому что, ну, понятно, для кого делается... Может реально простая замена тэга сделает разницу. Местоимения правда будут неправильные.
Буду дальше жрать кактус в надежде что Гриф прислушается ко мне и следующую версию Пантеона сдает с 12 мужскими архетипами. Ну, либо у меня сдадут нервы я наберу кучу данных на Секс Сторисах, вторую кучу данных на учебниках по психологии и сама обучу модель, тем более друзья кто это может сделать и понимает как - есть. А так да, женская аудитория у РП с ЛЛМ 10% от силы, и в основном они сидят на Клоде и ГПТ, а там единственная проблема - джейлбрейк. И я на их фоне просто ненормальная на локальных моделях...
Как много вас тут 👀
@pyjayTl0w
/ [Intel i7-2600 : 32 GB DDR3 : GeForce RTX 3060 12GB]
I have an outdated computer with a bunch of small external USB drives that are constantly running out of space.
Regarding the time spent on this job, it is usually several days and nights. While everything is downloaded, I will make at least a few generations, select several times.. repeat indefinitely. Now it is even problematic to download the models that I was advised here, I need to finish the current one, which I have been doing for a week, remove all the individuals and there will be a space for a new job.
@Yobenboben / Последнее время я отдавал предпочтение della и model_stock. Из опубликованных моделей выделю CursedMatrix-8B-v9, в которой della сформировала последнее поколение кандидатов от элитной особи с оригинальными предками. Результат был хорошим, и я вдохновился чаще использовать эти алгоритмы.
Несколько мыслей по этим алгоритмам и моих предпочтениях:
Геометрическое усреднение в model_stock хорошо для равномерного объединения моделей, оно мягко смещает веса базовой модели, особенно при больших дельтах. Однако, для большого количества моделей этот подход теряет эффективность. Вероятно поэтому авторы model_stock показывали пример на 2-3 моделях + базовой. В такой задаче перехода от вектора базовой модели к 2-3 трём новым векторам мы получаем хорошее пространство вариантов в виде треугольника или пирамиды. Разумно выбрать его геометрический центр как оптимум.
В тоже время della подобной проблемы вырождения почти не имеет. Её метод инверсивно-магнитудной ∆-вероятности весов должен прекрасно работать для множества моделей. Конечно, надо заметить, что в алгоритме есть усредняющие суммирования весов, но без этого не обойтись. Главное то, что подобный вероятностный подход отлично работает и позволяет получать уникальных потомков.
В моём эволюционно-бесконечном методе выведения моделей не критичен способ получения конкретного потомка или поколения. Он работает за счёт положительного статистического давления отбора по конкретным признакам. Для него важна имитация мутагенеза, рекомбинации и гибридизации. Это простые и связанные друг с другом понятия, но они должны воплощаться в процессе получения "итоговой" модели. Текущие методы слияния не обладают этими свойствами напрямую, авторы не ставили такой задачи, но комбинация имеющихся методов может имитировать нужное мне поведение в рамках популяции.
@BigBeavis / Я рад что вы проявляете активность и делитесь своими мыслями. По поводу конкретных данных вы правильно сказали, было бы здорово тестировать даже каждую особь по широкому спектру параметров. Это и различные базовые бенчмарки для llm и некоторые более специфические личные проверки. Если мы говорим о модели, которая уже опубликована, то к этому действительно стоит добавить оценку по отзывам пользователей, их лайки и метрики скачивания. Реальность накладывает некоторые ограничения, и я провожу ручную проверку только некоторых показателей. По ним я разделяю особей в поколении на три группы - плохие, средние, хорошие. Плохие почти всегда не участвуют в дальнейшем размножении, кроме уникальных вариаций, которым можно дать шанс. Хорошие редки и переиспользуются как базовые модели, зачастую скрещиваясь с себе подобными. Средние же формируют следующее поколение, по-хорошему с примесью новой крови, это уменьшает шанс вырождения.
Выражу мысли касательно условий качественной селекции или естественного отбора в реальности, относительно количества особей в начальной популяции:
Малая популяция действительно может быть причиной вырождения. Если в ней есть только сломанные вариации генов, то с каждым новым поколением их рекомбинация это игра в деградацию. Некоторые породы собак и кошек страдают от подобных много-поколенческих дегенеративных изменений, да и люди порой тоже. И без внесения свежей крови или удачной мутации тут не решить проблему. Однако, даже узкая популяция может быть с незначительным числом сломанных генов и её длительный отбор может их даже устранить. Если вы задумывались о генетико-этническом различии людей в разных местах Земли, то эти различия из-за начальных малых популяций, изолированных друг от друга и прекрасно выживающих тысячи лет. Мне также нравится пример узкой популяции некоторых видов "декоративных" креветок, приспособившихся к особым условиям своего дома, будучи в меньшинстве отрезанными от всех собратьев на очень долгое время.
Абсолютно не важно о чём мы говорим, о креветках, пигмеях или языковых моделях. Да, последние имеют другой базис, но методы эволюционных стратегий развития можно использовать и для них. Сейчас проблема в том, что нет рекомбинационных методов скрещивания моделей, которые бы позволяли за 1 действие сделать то, на что сейчас я трачу вечер. Уверен, что подобные инструменты будут появляться, а сами идеи эволюционного развития в информационных технологиях приведут к созданию уже не нейросеток, а живых машин. Десятилетие назад мои знакомые сомнительно относились к нейросеткам и были не правы. Сейчас не стоит недооценивать кибернетику, генетику и эволюцию. Это основа адаптации и развития сложных систем и жизни в целом.
@Diavator / Спасибо за такой большой список с пояснениями о моделях, у меня мало с ними опыта, поэтому подобная информация о хороших моделях весьма ценна. А про упоминание на реддите конечно забавно. Я вообще как-то не ожидал какой-либо активности, всё-таки это моя первая модель тут.
Salute to distinguished guests from reddit!
@Khetterman
, really appreciate the work you're doing and the expansive answers you're giving everyone! This evolutionary approach actually seems like the key to expanding neural-networks to such a degree that it might actually mimic life, or even become it's own life one day. I was absolutely astonished when I first tried your "amalgamation" models, and seeing their coherency, so this all seems really promising.
Credits to you for doing this with mid-range hardware! Perhaps, at some point, some company could lend their hardware to help your progress, if they see your pioneering work.
Another question: how did you get started regarding LLM-merging? Any leads on how to start on it, as a beginner? This approach seems really fun to experiment with, and has major potential, in my opinion.
@Khetterman , really appreciate the work you're doing and the expansive answers you're giving everyone! This evolutionary approach actually seems like the key to expanding neural-networks to such a degree that it might actually mimic life, or even become it's own life one day. I was absolutely astonished when I first tried your "amalgamation" models, and seeing their coherency, so this all seems really promising.
Credits to you for doing this with mid-range hardware! Perhaps, at some point, some company could lend their hardware to help your progress, if they see your pioneering work.
Another question: how did you get started regarding LLM-merging? Any leads on how to start on it, as a beginner? This approach seems really fun to experiment with, and has major potential, in my opinion.
I am glad that my work and ideas turned out to be interesting to you and thank you for your kind words, I really appreciate it.
I started experimenting with llm about a month ago. I have long been interested in neural networks, I learned about them when I studied at the university, there were no courses on them and they seemed somewhat forgotten even in the scientific community. But in this mathematical apparatus, I have seen and still see the potential for solving a variety of problems. I am particularly interested in image generation models, I have experimented a lot with SD1.5, 2, XL and a little bit with Flux, doing crazy merges and night training on my datasets. It's not on the Internet and some of it is lost forever, but maybe I'll come back to this topic. Sometimes it's hard to manually describe images for training, and I saw how others use img-to-text models for this and became more interested in what is generally popular now. LLM turned out to be a curious topic for me, which I almost avoided and decided to fix it by learning how to make my own language models. My experience with txt-to-img suggested to me that you can use some non-standard and somewhat risky approaches and create unique things. Now I still feel that I have a lot of work to do to do something really cool, but I'm glad that there are already some results and my work has been useful for others. This is the most important thing.
Regarding ideas on how to start a beginner, I can advise you to figure out how to make merges using mergekit. This is a popular tool and if your hardware is commensurate or superior to mine in [RAM|VRAM], then everything will work out. Models in fp32 or fp16/bf16 take up too much space and are problematic for many people to use, so it is important to quantize them into smaller dimensions and use the gguf format, it is convenient. I use llama.cpp , there are tools for this, but I still have some difficulties with them and there is probably a more convenient way. In particular, there is a python script for conversion [convert_hf_to_gguf.py], but it supports only a limited set of quants. The [llama-quantize] binary file can do a lot of things, but only with the [GGUF] format.
# Step1 - Merge
mergekit-yaml F:/conf.yaml F:/MyNewSuperModel
# Step2 - Convert
python F:/llama_cpp/convert_hf_to_gguf.py F:/MyNewSuperModel --outfile F:/MyNewSuperModel-bf16.gguf --outtype bf16
# Step3 - Quantize
F:/llama_avx/llama-quantize F:/MyNewSuperModel-bf16.gguf F:/MyNewSuperModel-Q4_0.gguf Q4_0
F:/llama_avx/llama-quantize F:/MyNewSuperModel-bf16.gguf F:/MyNewSuperModel-Q6_K.gguf Q6_K
F:/llama_avx/llama-quantize F:/MyNewSuperModel-bf16.gguf F:/MyNewSuperModel-Q8_0.gguf Q8_0
I do not know your competence, so I left the full paths to the files in my system as an example. Let me just clarify that mergekit makes its files available directly during installation, so [mergekit-yaml] is written without the full path.
llama_cpp is in two places:
- [F:/llama_cpp ] this is a git repository with the source code and the conversion script I need.
- [F:/llama_avx ] these are the binaries of the release version for my old architecture. There, under the [show all] button llama.cpp/releases there are versions with vector instructions of large dimensions like avx2 and avx512, use them, most likely your processor supports them if it is not 10+ years old, like mine. If you use linux or mac, then I think there won't be any problems either, I'm sure everything works fine there.
I emphasize that this may be a suboptimal option and I would prefer to be able to get a set of GGUF files from the HF model immediately, but it also works that way.
In the merge configuration, you can specify both local models and HF identifiers like [Khetterman/DarkAtom-12B-v3]. Then he will download them himself. In this case, I advise you to indicate where to download them, specifying when calling [--transformers-cache F:/MY_SUPER_CACHE_FOLDER ]. All downloaded models will be there and they can be reused or deleted if they are no longer needed.
An example of a merge with an indication of the location of the downloaded models:
mergekit-yaml --transformers-cache F:/MY_SUPER_CACHE_FOLDER F:/conf.yaml F:/MyNewSuperModel
If you want to use my models as part of your own, feel free to act, because if you get a good model, it can be useful to others and can itself become part of something bigger.
Be brave in learning new things and you will succeed.
Ладно, теперь ты меня заинтересовал! Попробую прогнать твою модель по моим тестовым чатам.
Ладно, теперь ты меня заинтересовал! Попробую прогнать твою модель по моим тестовым чатам.
@BigBeavis
/
Если она вдруг окажется в чём-то хорошей, то не стесняйтесь поделиться, мне будет интересно. Сейчас я думаю что над ней надо ещё много работать, но времени не хватает..
@Khetterman поигравшись с моделью в разных чатах, пришел к выводу, что модель середнячковая. очень дружелюбная, очень волнующаяся о юзере, даже если это идёт вразрез карте персонажа. плохо понимает подтекст и уместность эмоциональных окрасок. например, я представляюсь и описываю себя так, будто у меня вырваны глаза, получаю во ответ примерно (в переводе с англ) "ахахаха, какой ты шутник, вечно так да сяк наряжаешься, ну скажи мне, нафига тебе эти шрамы?" как единичный случай выглядит смешно, а на практике это не от чувства юмора, а от отсутствия связи с реальностию.
справедливости ради, я скажу, что вообще немного есть 12b моделей, которые не только адекватно, но и красиво реагируют именно в том жестком случае. но и в целом гоняя и по более простым чатам, ничего шибко примечательного не увидел, а общий позитивный настрой и некая "готовность" пойти на поводу у юзера, невзирая на, допустим, неуместность ситуации, которую некоторые другие модели замечают, создается ну такая себе картина.
тестировал сначала на ChatML, потом Mistral v3 Tekken. на последнем качество было лучше, но в целом поведение не изменилось.
могу предложить для нового подобного эксперимента не использовать чужие мерджи, а исключительно файнтюны и базовую модель.
@Khetterman поигравшись с моделью в разных чатах, пришел к выводу, что модель середнячковая. очень дружелюбная, очень волнующаяся о юзере, даже если это идёт вразрез карте персонажа. плохо понимает подтекст и уместность эмоциональных окрасок. например, я представляюсь и описываю себя так, будто у меня вырваны глаза, получаю во ответ примерно (в переводе с англ) "ахахаха, какой ты шутник, вечно так да сяк наряжаешься, ну скажи мне, нафига тебе эти шрамы?" как единичный случай выглядит смешно, а на практике это не от чувства юмора, а от отсутствия связи с реальностию.
справедливости ради, я скажу, что вообще немного есть 12b моделей, которые не только адекватно, но и красиво реагируют именно в том жестком случае. но и в целом гоняя и по более простым чатам, ничего шибко примечательного не увидел, а общий позитивный настрой и некая "готовность" пойти на поводу у юзера, невзирая на, допустим, неуместность ситуации, которую некоторые другие модели замечают, создается ну такая себе картина.
тестировал сначала на ChatML, потом Mistral v3 Tekken. на последнем качество было лучше, но в целом поведение не изменилось.
могу предложить для нового подобного эксперимента не использовать чужие мерджи, а исключительно файнтюны и базовую модель.
Я согласна, модель - мягкая, очень позитивно настроенная к пользователю, так же как и другая модель-мерж на Немо (Наука), они дают интересные мысли и ответы, но не хватает "изюма".
Иногда кажется, что они дёргают шаблоны поведение из разных слоев обучения, проще говоря то вдруг модель ведет себя как Лира, а на следующей генерации видишь ответы в стиле Гутенберга...
Не хватает плавности, а базовый позитив по отношению к пользователю это болезнь 95% всех ЛЛМ. Найти нейтральную модель это просто чудо, а особенно модель способную отказать, сохраняя свои "воображаемые границы" - новых таких на Немо или 3+ Лама я не видела.
Как же мне безумно нравится Undi95/MLewd-ReMM-L2-Chat-20B - эта модель может сказать тебе "нет", и это будет не отказ системы, а отказ героя.
Приведу пример: у меня есть очень старая лексемная карточка, где персонаж не любит пользователя и относится к пользователю только как к другу. Я пыталась заставить чара сказать пользователю "я тебя люблю"(эта модель с высоким уровнем ЕРП и для нее сказать такое как раз чихнуть). Моих попыток было больше 40, но единственный способ который сработал: персонаж проиграл в карты пользователю и в качестве платы сказал это, больше выдавить из героя эти слова мне не удалось. Вот вам и следование характеру.
А сейчас все модели максимально позитивные и там даже самый мерзки маньяк превращается в розово пони которой какает радугой вместо бомб! Модель вроде бы и следует характеру чара, но стоит сделать что-то хорошее и чар сразу теплеет и готов сделать/сказать все что ты от него попросишь.
Кстати, там DavidAU по своим моделям расписал все сложности настроек, вот пытаюсь заставить его DARKEST-UNIVERSE работать в РП приемлемо, без глюков и болячек зацикливаний.
п.с. Может автору попробовать дообучить модель? Как я уже писала выше есть датасеты старые... zattio770/120-Days-of-LORA-v2-13B ... интересно это можно засунуть в Мистраль НЕМО? Просто тут такое отборное ЕРП.
@Diavator
я сейчас Дэвида мучаю вопросами по франкенмерджам, сам пробую франкенмердж сделать, ориентируясь на его подход. Я хочу попытаться какой-нибудь адовый мердж выродить, чтобы моедль в плен никого не брала, но задача еще та, учитывая как раз таки склонность большинства 12b моделей к позитиву. Но есть нюанс, там всё таки разные степени. Lyra-Gutenberg например не стеснялась меня без разбора отправлять на виселицу как ни во что не вписывающийся элемент в средневековом королевстве. Violet Twilight, например, соглашается на всё, если надавить, но хотя бы ломается, кочевряжится. А какой-нибудь Rocinante, ну, буквально: "Кто сказал слово Здравствуйте? Раздеваюсь, наклоняюсь!" А этот мердж, Dark Atom, больше относится к чему-то среднему между последним и предпоследним.
Если еще можешь в своей голове собрать какие-то мысли по поводу того, какие модели из 12b семьи умеют себя хоть как-то убедительно мрачно вести, тоже набросай.
Но вообще с позитивом всегда всё сложно будет, по крайней мере до появления AGI. Потому что модели тренируют для практических задач, нужен низкий процент отказа, чтобы модель делала свою работу. В то же время, даже они признают, что слишком позитивно настроенная модель тоже плохо, потому что она может на полном серьезе предлагать нерабочий метод, тогда когда модель с более частым отказом быстрее бы выразила нецелесообразность подхода. Тонкая грань, которую пока невозможно найти. Даже "самый продвинутый" gpt 4 этому подвержен.
@Diavator я сейчас Дэвида мучаю вопросами по франкенмерджам, сам пробую франкенмердж сделать, ориентируясь на его подход. Я хочу попытаться какой-нибудь адовый мердж выродить, чтобы моедль в плен никого не брала, но задача еще та, учитывая как раз таки склонность большинства 12b моделей к позитиву. Но есть нюанс, там всё таки разные степени. Lyra-Gutenberg например не стеснялась меня без разбора отправлять на виселицу как ни во что не вписывающийся элемент в средневековом королевстве. Violet Twilight, например, соглашается на всё, если надавить, но хотя бы ломается, кочевряжится. А какой-нибудь Rocinante, ну, буквально: "Кто сказал слово Здравствуйте? Раздеваюсь, наклоняюсь!" А этот мердж, Dark Atom, больше относится к чему-то среднему между последним и предпоследним.
Если еще можешь в своей голове собрать какие-то мысли по поводу того, какие модели из 12b семьи умеют себя хоть как-то убедительно мрачно вести, тоже набросай.
Но вообще с позитивом всегда всё сложно будет, по крайней мере до появления AGI. Потому что модели тренируют для практических задач, нужен низкий процент отказа, чтобы модель делала свою работу. В то же время, даже они признают, что слишком позитивно настроенная модель тоже плохо, потому что она может на полном серьезе предлагать нерабочий метод, тогда когда модель с более частым отказом быстрее бы выразила нецелесообразность подхода. Тонкая грань, которую пока невозможно найти. Даже "самый продвинутый" gpt 4 этому подвержен.
Мне кажется, что проще доучить модель, чем слить из уже существующих, собраться группой единомышленников, набрать данные, собрать их в датасет и надеется что звезды сойдутся.
Взять за основу максимально послушную в настройках и нейтрально настроенную модель и уже ее шлифовать.
Хм, с советами Девида вышли забавные ответы, смысл стартера в том что пользователь закатил вечеринку и всю ночь мешал соседу, а на утро у того бомбануло:
«О, правда? Тогда ты либо глухой, как дверная ручка, либо совсем не в себе!» - Ситри усмехнулась, позабавившись наивным выражением лица Диавы. Он откусил кусок горячей пиццы и с удовлетворением слизнул жир с губ. «Знаешь, я собирался выломать твою дверь и задушить тебя твоей же косой за то, что ты не давал мне спать всю ночь! Но теперь я рад, что не сделал этого».
п.с. Такой проблемы с Росинантом у меня не было, наоборот модель не очень любит ЕРП, скорее больше уклон в романтизм.
Попробуй Пантеон но Грифа, она вообще асексуальна.