mergoo
— это библиотека для легкого объединения нескольких экспертов LLM и эффективного обучения объединенных LLM. С mergoo
вы можете эффективно интегрировать знания различных экспертов LLM общего или предметного профиля.
Если вам понравился проект, подумайте о том, чтобы оставить ️
Установить по пипу:
pip install mergoo
Установите последнюю нестабильную версию на Github:
pip install git+https://github.com/Leeroo-AI/mergoo
Установите его из исходников:
git clone https://github.com/Leeroo-AI/mergoo
cd mergoo
pip install -e .
Укажите конфиг для слияния:
model_type
: тип базовой модели. выбор: mistral
, llama
или bert
.num_experts_per_token
: количество экспертов для каждого токена MoE.experts
: конфигурация для объединения экспертов. включает в себя expert_name
и Обнимающее лицо? model_id
.router_layers
: слои, выбранные для применения смеси экспертов. Это пример конфигурации при объединении полностью настроенных экспертов LLM.
config = {
"model_type" : "mistral" ,
"num_experts_per_tok" : 2 ,
"experts" : [
{ "expert_name" : "base_expert" , "model_id" : "mistralai/Mistral-7B-v0.1" },
{ "expert_name" : "expert_1" , "model_id" : "meta-math/MetaMath-Mistral-7B" },
{ "expert_name" : "expert_2" , "model_id" : "ajibawa-2023/Code-Mistral-7B" }
],
"router_layers" : [ "gate_proj" , "up_proj" , "down_proj" ]
}
В приведенном выше примере мы объединили экспертов, основанных на математике и программировании. Пожалуйста, обратитесь к этому блокноту для получения более подробной информации!
Это пример конфигурации при объединении экспертов LLM, настроенных LoRA . mergoo
создает слой маршрутизации поверх LoRA, в результате чего получается смесь адаптеров .
config = {
"model_type" : "mistral" ,
"num_experts_per_tok" : 2 ,
"base_model" : "mistralai/Mistral-7B-v0.1" ,
"experts" : [
{ "expert_name" : "adapter_1" , "model_id" : "predibase/customer_support" },
{ "expert_name" : "adapter_2" , "model_id" : "predibase/customer_support_accounts" },
{ "expert_name" : "adapter_3" , "model_id" : "predibase/customer_support_orders" },
{ "expert_name" : "adapter_4" , "model_id" : "predibase/customer_support_payments" }
],
}
expert_name
начинается с adapter
вместо expert
. Пожалуйста, обратитесь к этому блокноту для получения более подробной информации!
После настройки конфигурации mergoo
создает объединенный LLM как:
import torch
from mergoo . compose_experts import ComposeExperts
# create checkpoint
model_id = "data/mistral_lora_moe"
expertmerger = ComposeExperts ( config , torch_dtype = torch . float16 )
expertmerger . compose ()
expertmerger . save_checkpoint ( model_id )
Теперь вы можете легко тренировать объединенный LLM с помощью Hugging Face Trainer:
from transformers import Trainer
from mergoo . models . modeling_mistral import MistralForCausalLM
model = MistralForCausalLM . from_pretrained ( "data/mistral_lora_moe" )
# NOTE: 'gate' / router layers are untrained hence weight loading warning would appeare for them
trainer = Trainer ( ... )
trainer . train ()
После прочтения руководства по быстрому запуску вы можете изучить приведенные ниже руководства, чтобы глубже ознакомиться с mergoo
.
Блокнот | Подробности |
---|---|
МО с полностью отлаженными экспертами LLM | Создайте единую модель смеси экспертов с полностью настроенными экспертами. Вдохновлено исследованием BTX (Meta AI). |
МЧС с экспертами, доработанными LoRA | Эксперт по созданию смеси адаптеров. Вдохновлено хлорой | Смесь LoRA | МОЛ | ФАТГУСЬ | МОЭЛОРА |
Блог «Обнимающее лицо» | Глубокое погружение в детали исследования методов слияния библиотеки Mergoo. |
Эксперты на основе LLaMa3 | Создайте своих собственных экспертов LLM в стиле MoE, интегрировав экспертов в предметной области на основе LLaMa3. |
Эксперты на базе Phi3 | Создайте архитектуру LLM в стиле MoE путем объединения точно настроенных моделей на основе Phi3. |
Как библиотека с открытым исходным кодом в быстро развивающейся области, мы приветствуем вклад, будь то введение новых функций, улучшение инфраструктуры или улучшение документации.
Вот дорожная карта mergoo
:
Не стесняйтесь предлагать новые функции и/или вносить свой вклад в дорожную карту mergoo
!
Нам очень приятно получать ваши отзывы, присоединяйтесь к сообществу Leeroo:
У вас есть вопрос, которого нет в списке? Откройте выпуск GitHub или отправьте нам электронное письмо!