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. 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 dataset

Initialisering 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.

Kilder

1