QLoRA-adapter
En QLoRA-adapter er en lavrangs-adapter, der trænes med kvantisering af basis-modellens vægte for at reducere hukommelsesforbruget under finjustering.
Kort fortalt
En QLoRA-adapter er en lille, trænbar komponent, der sættes på en stor sprogmodel, så den kan finjusteres på almindelig hardware ved at bruge færre tal til at repræsentere modellens vægte.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En adapter opnået via QLoRA-teknikken, der muliggør effektiv finjustering af kvantiserede sprogmodeller ved hjælp af lavrangsmatricer.
- Vi finjusterede Llama 2 70B på en enkelt RTX 4090 ved hjælp af en QLoRA-adapter. — forskningsartikel, 2023
- QLoRA-adapteren reducerer hukommelsesbehovet markant uden at gå på kompromis med modellens ydeevne.
Hvornår bruges det
QLoRA-adaptere bruges typisk til finjustering af store sprogmodeller (LLM'er) på én enkelt GPU, hvor hukommelsen er begrænset. De kombinerer LoRA's parameter-effektive træning med 4-bit kvantisering af basis-modellen. Adapterens vægte gemmes separat og kan indlæses i den kvantiserede model til inferens.
Kodeeksempel
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
quant_config = BitsAndBytesConfig(load_in_4bit=True)
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", quantization_config=quant_config, device_map="auto")
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)
# adapter weights are saved in model.peft_configEksempel på indlæsning af en kvantiseret model og tilføjelse af en LoRA-adapter, der kan trænes med QLoRA.
Oprindelse
QLoRA er en forkortelse for 'Quantized Low-Rank Adaptation', introduceret af Tim Dettmers et al. i 2023. 'Adapter' refererer til de ekstra trænbare lag, der tilføjes til den frosne basis-model.