QLoRA-finjustering
QLoRA-finjustering er en metode til at finjustere store sprogmodeller ved at kombinere kvantisering (4-bit) med lav-rank adaptation (LoRA) for at reducere hukommelsesforbrug og beregningsomkostninger.
Kort fortalt
Kort fortalt: en teknik, der gør det muligt at finjustere store sprogmodeller på en enkelt GPU med begrænset hukommelse ved at kvantisere vægtene og kun opdatere små, ekstra matricer.
- Kategori
- træning
- Niveau
- øvet
Betydninger
1- 1
En hukommelseseffektiv finjusteringsteknik, der anvender 4-bit kvantisering af modelvægte og LoRA-adaptere for at opdatere modellen med et minimalt antal trænbare parametre.
- Vi anvendte QLoRA-finjustering til at tilpasse Llama 2 til juridisk tekstforståelse med kun 24 GB VRAM. — Forskningsartikel, 2023
- QLoRA-finjustering muliggør effektiv domænetilpasning af store sprogmodeller uden at gå på kompromis med ydeevnen. — Hugging Face blog, 2023
Hvornår bruges det
QLoRA-finjustering bruges typisk når man vil tilpasse en stor sprogmodel (f.eks. LLaMA, Mistral) til en specifik opgave eller domæne, men har begrænset GPU-hukommelse. Det er særligt nyttigt til forskning og mindre organisationer, der ikke har adgang til store klynger. Metoden er implementeret i biblioteker som Hugging Face PEFT.
Kodeeksempel
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import get_peft_model, LoraConfig, TaskType
bnb_config = BitsAndBytesConfig(load_in_4bit=True)
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", quantization_config=bnb_config)
lora_config = LoraConfig(task_type=TaskType.CAUSAL_LM, r=8, lora_alpha=32, target_modules=["q_proj", "v_proj"])
model = get_peft_model(model, lora_config)
model.train()Eksempel på QLoRA-finjustering af LLaMA-2-7B med 4-bit kvantisering og LoRA-adaptere ved hjælp af Hugging Face transformers og PEFT.
Oprindelse
QLoRA er et akronym for Quantized Low-Rank Adaptation, introduceret af Tim Dettmers og kolleger i 2023. 'Finjustering' er den danske oversættelse af 'fine-tuning'.