xTuring
menyediakan penyesuaian LLM sumber terbuka yang cepat, efisien, dan sederhana, seperti Mistral, LLaMA, GPT-J, dan banyak lagi. Dengan menyediakan antarmuka yang mudah digunakan untuk menyempurnakan LLM ke data dan aplikasi Anda sendiri, xTuring mempermudah pembuatan, modifikasi, dan kontrol LLM. Seluruh proses dapat dilakukan di dalam komputer Anda atau di cloud pribadi Anda, memastikan privasi dan keamanan data.
Dengan xTuring
Anda bisa,
pip install xturing
from xturing . datasets import InstructionDataset
from xturing . models import BaseModel
# Load the dataset
instruction_dataset = InstructionDataset ( "./examples/models/llama/alpaca_data" )
# Initialize the model
model = BaseModel . create ( "llama_lora" )
# Finetune the model
model . finetune ( dataset = instruction_dataset )
# Perform inference
output = model . generate ( texts = [ "Why LLM models are becoming so important?" ])
print ( "Generated output by the model: {}" . format ( output ))
Anda dapat menemukan folder data di sini.
Kami sangat gembira mengumumkan peningkatan terbaru pada perpustakaan xTuring
kami:
LLaMA 2
- Anda dapat menggunakan dan menyempurnakan model LLaMA 2
dalam berbagai konfigurasi: siap pakai , siap pakai dengan presisi INT8 , penyempurnaan LoRA , penyempurnaan LoRA dengan presisi INT8 , dan penyempurnaan LoRA penyetelan dengan presisi INT4 menggunakan pembungkus GenericModel
dan/atau Anda dapat menggunakan kelas Llama2
dari xturing.models
untuk menguji dan menyempurnakan model. from xturing . models import Llama2
model = Llama2 ()
## or
from xturing . models import BaseModel
model = BaseModel . create ( 'llama2' )
Evaluation
- Sekarang Anda dapat mengevaluasi Causal Language Model
apa pun pada kumpulan data apa pun. Metrik yang saat ini didukung adalah perplexity
. # Make the necessary imports
from xturing . datasets import InstructionDataset
from xturing . models import BaseModel
# Load the desired dataset
dataset = InstructionDataset ( '../llama/alpaca_data' )
# Load the desired model
model = BaseModel . create ( 'gpt2' )
# Run the Evaluation of the model on the dataset
result = model . evaluate ( dataset )
# Print the result
print ( f"Perplexity of the evalution: { result } " )
INT4
Precision - Anda sekarang dapat menggunakan dan menyempurnakan LLM apa pun dengan INT4 Precision
menggunakan GenericLoraKbitModel
. # Make the necessary imports
from xturing . datasets import InstructionDataset
from xturing . models import GenericLoraKbitModel
# Load the desired dataset
dataset = InstructionDataset ( '../llama/alpaca_data' )
# Load the desired model for INT4 bit fine-tuning
model = GenericLoraKbitModel ( 'tiiuae/falcon-7b' )
# Run the fine-tuning
model . finetune ( dataset )
# Make the necessary imports
from xturing . models import BaseModel
# Initializes the model: quantize the model with weight-only algorithms
# and replace the linear with Itrex's qbits_linear kernel
model = BaseModel . create ( "llama2_int8" )
# Once the model has been quantized, do inferences directly
output = model . generate ( texts = [ "Why LLM models are becoming so important?" ])
print ( output )
# Make the necessary imports
from xturing . datasets import InstructionDataset
from xturing . models import GenericLoraKbitModel
# Load the desired dataset
dataset = InstructionDataset ( '../llama/alpaca_data' )
# Load the desired model for INT4 bit fine-tuning
model = GenericLoraKbitModel ( 'tiiuae/falcon-7b' )
# Generate outputs on desired prompts
outputs = model . generate ( dataset = dataset , batch_size = 10 )
Eksplorasi contoh kerja Llama LoRA INT4 direkomendasikan untuk memahami penerapannya.
Untuk wawasan yang lebih luas, pertimbangkan untuk memeriksa contoh kerja GenericModel yang tersedia di repositori.
$ xturing chat -m " <path-to-model-folder> "
from xturing . datasets import InstructionDataset
from xturing . models import BaseModel
from xturing . ui import Playground
dataset = InstructionDataset ( "./alpaca_data" )
model = BaseModel . create ( "<model_name>" )
model . finetune ( dataset = dataset )
model . save ( "llama_lora_finetuned" )
Playground (). launch () ## launches localhost UI
Berikut ini perbandingan performa berbagai teknik fine-tuning pada model LLaMA 7B. Kami menggunakan kumpulan data Alpaca untuk menyempurnakannya. Kumpulan data berisi 52 ribu instruksi.
Perangkat keras:
GPU 4xA100 40 GB, RAM CPU 335 GB
Parameter penyempurnaan:
{
'maximum sequence length' : 512 ,
'batch size' : 1 ,
}
LLaMA-7B | DeepSpeed + Pembongkaran CPU | LoRA + Kecepatan Dalam | LoRA + DeepSpeed + Pembongkaran CPU |
---|---|---|---|
GPU | 33,5 GB | 23,7 GB | 21,9 GB |
CPU | 190 GB | 10,2 GB | 14,9 GB |
Waktu/zaman | 21 jam | 20 menit | 20 menit |
Berkontribusi pada hal ini dengan mengirimkan hasil kinerja Anda pada GPU lain dengan menimbulkan masalah pada spesifikasi perangkat keras, konsumsi memori, dan waktu per epoch Anda.
Kami telah menyempurnakan beberapa model yang dapat Anda gunakan sebagai basis atau mulai dimainkan. Inilah cara Anda memuatnya:
from xturing . models import BaseModel
model = BaseModel . load ( "x/distilgpt2_lora_finetuned_alpaca" )
model | kumpulan data | Jalur |
---|---|---|
DistilGPT-2 LoRA | alpaka | x/distilgpt2_lora_finetuned_alpaca |
LLaMA LoRA | alpaka | x/llama_lora_finetuned_alpaca |
Di bawah ini adalah daftar semua model yang didukung melalui kelas BaseModel
xTuring
dan kunci terkait untuk memuatnya.
Model | Kunci |
---|---|
Bunga | bunga |
otak besar | otak besar |
DistilGPT-2 | distilgpt2 |
Elang-7B | elang |
galaksi | galaksi |
GPT-J | gptj |
GPT-2 | gpt2 |
LlaMA | lama |
LlaMA2 | llama2 |
MEMILIH-1.3B | memilih |
Yang disebutkan di atas adalah varian dasar LLM. Di bawah ini adalah template untuk mendapatkan versi LoRA
, INT8
, INT8 + LoRA
dan INT4 + LoRA
.
Versi | Templat |
---|---|
LoRA | <model_key>_lora |
INT8 | <model_key>_int8 |
INT8 + LoRA | <model_key>_lora_int8 |
** Untuk memuat versi INT4+LoRA
model apa pun, Anda perlu menggunakan kelas GenericLoraKbitModel
dari xturing.models
. Di bawah ini adalah cara menggunakannya:
model = GenericLoraKbitModel ( '<model_path>' )
model_path
dapat diganti dengan direktori lokal Anda atau model perpustakaan HuggingFace apa pun seperti facebook/opt-1.3b
.
LLaMA
, GPT-J
, GPT-2
, OPT
, Cerebras-GPT
, Galactica
dan Bloom
Generic model
Falcon-7B
Jika Anda mempunyai pertanyaan, Anda dapat membuat masalah pada repositori ini.
Anda juga dapat bergabung dengan server Discord kami dan memulai diskusi di saluran #xturing
.
Proyek ini dilisensikan di bawah Lisensi Apache 2.0 - lihat file LISENSI untuk detailnya.
Sebagai proyek sumber terbuka di bidang yang berkembang pesat, kami menyambut segala jenis kontribusi, termasuk fitur baru dan dokumentasi yang lebih baik. Silakan baca panduan berkontribusi kami untuk mempelajari bagaimana Anda dapat terlibat.