QLoRA-fintuning
forkortelse for Quantized Low-Rank Adaptation fine-tuning
Effektiv fintuningsmetode der kombinerer 4-bit kvantisering med LoRA for at reducere hukommelsesforbruget ved fintuning af store sprogmodeller.
Kort fortalt
En teknik til at justere store sprogmodeller med minimal hukommelsesbelastning ved at komprimere modellen til 4-bit og kun træne små adaptere.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Fintuningsmetode for store sprogmodeller, der anvender 4-bit NormalFloat (NF4) kvantisering af modelvægtene og Low-Rank Adaptation (LoRA) for at opnå en markant reduktion af hukommelsesforbruget uden væsentligt tab af kvalitet. Modellen gemmes i 4-bit og kun LoRA-adapterne trænes i fuld præcision.
- Vi anvendte QLoRA-fintuning på LLaMA-2 7B på en RTX 3090 for at opnå høj klassifikationsnøjagtighed med minimal hukommelse. — forskningsartikel, 2023
Hvornår bruges det
Bruges når man har begrænset GPU-hukommelse og vil finjustere en stor sprogmodel som LLaMA eller Mistral til en specifik opgave, fx chat eller klassifikation. QLoRA-fintuning gør det muligt at køre på en enkelt GPU med 24 GB hukommelse.
Kodeeksempel
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-chat-hf", quantization_config=bnb_config, device_map="auto")
lora_config = LoraConfig(r=8, lora_alpha=32, target_modules=["q_proj","v_proj"], lora_dropout=0.1)
model = get_peft_model(model, lora_config)
# Now train with your datasetInitialisering af QLoRA-fintuning med 4-bit kvantisering og LoRA-konfiguration.
Oprindelse
Fra engelsk 'Quantized Low-Rank Adaptation' (kvantiseret lavrangsadapter). Introduceret af Dettmers et al. i 2023.