QLoRA-finteknik

QLoRA-finteknik er en metode til effektiv finjustering af store sprogmodeller ved hjælp af kvantiseret LoRA, der reducerer hukommelsesforbruget markant.

Kort fortalt

En teknik, der kombinerer kvantisering og LoRA for at finjustere store sprogmodeller med lav hukommelsesbelastning, så det kan køre på en enkelt GPU.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En finjusteringsteknik, der anvender 4-bit kvantisering af modelvægtene sammen med LoRA-adaptere for at opnå hukommelseseffektiv træning af store sprogmodeller.

    • Ved at anvende QLoRA-finteknik kunne forskerne finjustere LLaMA-65B på en enkelt NVIDIA A100 GPU.QLoRA: Efficient Finetuning of Quantized Language Models (2023)
    • QLoRA-finteknikken reducerer hukommelsesforbruget med en faktor 4 sammenlignet med standard LoRA.Hugging Face Blog, 2023

Hvornår bruges det

Bruges typisk til at finjustere modeller med op til 65 milliarder parametre på en enkelt GPU, fx i forskning eller tilpasning af LLM'er til specifikke domæner. Metoden er særligt nyttig, når der er begrænsede hardware-ressourcer.

Kodeeksempel

from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch

quant_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_use_double_quant=True
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-2-7b-hf",
    quantization_config=quant_config,
    device_map='auto'
)

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=8,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05
)

model = get_peft_model(model, lora_config)

Eksempel på opsætning af QLoRA med Hugging Face Transformers og PEFT. Modellen indlæses med 4-bit kvantisering, og LoRA-adaptere tilføjes til de valgte moduler.

Oprindelse

Akronymet QLoRA står for 'Quantized Low-Rank Adaptation', en videreudvikling af LoRA (Low-Rank Adaptation) hvor modelvægtene også kvantiseres.

Afledte ord

3

Kilder

1