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
: عدد الخبراء لكل رمز خاص بوزارة التربية والتعليم.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
ببناء طبقة توجيه أعلى LoRAs، مما يؤدي إلى مزيج من المحولات .
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 المتقنين | قم ببناء مزيج من الخبراء المتكيفين. مستوحاة من xlora | خليط من LoRAs | الخلد | فاتجوز | مويلورا |
معانقة الوجه مدونة | تعمق في تفاصيل البحث وراء طرق الدمج في مكتبة Mergoo |
الخبراء القائمون على LLaMa3 | قم ببناء خبراء LLM الخاصين بك على طراز MoE من خلال دمج خبراء المجال المعتمدين على LLaMa3 |
الخبراء القائمون على Phi3 | قم بإنشاء بنية LLM على طراز MoE من خلال دمج النماذج الدقيقة المستندة إلى Phi3 |
باعتبارنا مكتبة مفتوحة المصدر في مجال سريع التطور، فإننا نرحب بالمساهمات، سواء كانت تقديم ميزات جديدة، أو تعزيز البنية التحتية، أو تحسين الوثائق.
هنا خريطة طريق mergoo
:
لا تتردد في اقتراح ميزات جديدة و/أو المساهمة في خريطة طريق mergoo
!
نحن نحب أن نتلقى تعليقاتك هنا، يرجى الانضمام إلى مجتمع Leeroo:
هل لديك سؤال غير مدرج هنا؟ افتح مشكلة GitHub أو أرسل لنا بريدًا إلكترونيًا!