mergoo
adalah perpustakaan untuk menggabungkan beberapa pakar LLM dengan mudah, dan melatih LLM yang digabungkan secara efisien. Dengan mergoo
, Anda dapat secara efisien mengintegrasikan pengetahuan berbagai pakar LLM generik atau berbasis domain.
Jika Anda menyukai proyek ini, pertimbangkan untuk meninggalkan ️
Instal dengan pip:
pip install mergoo
Instal versi tidak stabil terbaru di Github:
pip install git+https://github.com/Leeroo-AI/mergoo
Instal dari sumbernya:
git clone https://github.com/Leeroo-AI/mergoo
cd mergoo
pip install -e .
Tentukan konfigurasi untuk penggabungan:
model_type
: tipe model dasar. pilihan: mistral
, llama
, atau bert
.num_experts_per_token
: Jumlah ahli untuk setiap token MoE.experts
: konfigurasi untuk digabungkan oleh para ahli. termasuk expert_name
dan Hugging Face? model_id
.router_layers
: lapisan yang dipilih untuk menerapkan Mixture-of-Experts. Ini adalah contoh konfigurasi saat menggabungkan pakar LLM yang telah disesuaikan sepenuhnya .
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" ]
}
Untuk contoh di atas, kami menggabungkan pakar matematika dan kode berbasis mistral. Silakan merujuk ke buku catatan ini untuk rincian lebih lanjut!
Ini adalah contoh konfigurasi saat menggabungkan pakar LLM LoRA yang telah disesuaikan. mergoo
membangun lapisan perutean di atas LoRA, menghasilkan campuran adaptor .
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
dimulai dengan adapter
bukan expert
. Silakan merujuk ke buku catatan ini untuk rincian lebih lanjut!
Setelah pengaturan konfigurasi, mergoo
membuat LLM gabungan sebagai:
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 )
Sekarang, Anda dapat dengan mudah melatih LLM yang digabungkan dengan 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 ()
Setelah menyelesaikan panduan Memulai Cepat, Anda dapat menjelajahi tutorial di bawah ini untuk lebih mengenal mergoo
.
Buku catatan | Detail |
---|---|
KLH dengan para ahli LLM yang sepenuhnya terlatih | Bangun model Campuran Pakar yang terpadu dengan para ahli yang sepenuhnya ahli. Terinspirasi oleh Penelitian BTX (Meta AI). |
KLH dengan para ahli LoRA yang telah disesuaikan | Membangun Campuran ahli Adaptes. Terinspirasi oleh xlora | Campuran LoRA | Tahi Lalat | PHATGOOSE | MoELoRA |
Blog Memeluk Wajah | Pelajari lebih dalam detail penelitian di balik metode penggabungan perpustakaan mergoo |
Pakar berbasis LLaMa3 | Bangun pakar LLM bergaya MoE Anda sendiri dengan mengintegrasikan pakar domain berbasis LLaMa3 |
Pakar berbasis Phi3 | Buat arsitektur LLM bergaya MoE dengan menggabungkan model yang disempurnakan berbasis Phi3 |
Sebagai perpustakaan sumber terbuka dalam domain yang berkembang pesat, kami menyambut baik kontribusi, baik itu memperkenalkan fitur baru, menyempurnakan infrastruktur, atau menyempurnakan dokumentasi.
Berikut peta jalan mergoo
:
Jangan ragu untuk menyarankan fitur baru dan/atau berkontribusi pada peta jalan mergoo
!
Kami senang menerima tanggapan Anda, silakan bergabung dengan komunitas Leeroo:
Ada pertanyaan yang tidak tercantum di sini? Buka Masalah GitHub atau kirimkan email kepada kami!