LoRA
forkortelse for Low-Rank Adaptation
LoRA (Low-Rank Adaptation) er en teknik til parameter-effektiv finjustering, hvor der tilføjes trænelige lavrankede matricer til de eksisterende vægte i en fortrænet model.
Kort fortalt
LoRA er en metode til at finjustere store sprogmodeller ved kun at træne et lille antal ekstra parametre, hvilket gør processen hurtigere og mindre hukommelseskrævende.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈloʊ ɑr eɪ/
Betydninger
1- 1
En parameter-effektiv finjusteringsteknik, der repræsenterer vægtændringer som produktet af to lavrankede matricer, hvilket reducerer antallet af trænelige parametre markant.
- Ved at anvende LoRA kunne vi finjustere GPT-3 med kun 0,01% af de oprindelige parametre. — Hu et al., 2021
- LoRA-adaptere kan nemt byttes ud eller kombineres, hvilket gør dem ideelle til multitask-læring.
Hvornår bruges det
LoRA anvendes typisk til at tilpasse store sprogmodeller til specifikke opgaver uden at skulle træne alle modellens parametre. Det er særligt nyttigt, når man har begrænsede beregningsressourcer eller ønsker at udskifte adaptere hurtigt. LoRA-adaptere kan kombineres og byttes uden at ændre den originale model.
Formel
For et lag med vægte W ∈ ℝ^{d×k} og input x, er LoRA's forreste passage: h = Wx + BAx, hvor B ∈ ℝ^{d×r}, A ∈ ℝ^{r×k}, og r ≪ min(d,k). Under træning fryses W, og kun A og B opdateres.Kodeeksempel
from transformers import AutoModelForCausalLM, TrainingArguments, Trainer
from peft import LoraConfig, get_peft_model
model = AutoModelForCausalLM.from_pretrained('gpt2')
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)
model.print_trainable_parameters()
# Output: trainable params: 1,572,864 || all params: 125,004,032 || trainable%: 1.26%Eksempel på anvendelse af LoRA på en GPT-2 model ved hjælp af PEFT-biblioteket. Konfigurationen specificerer lavrankede opdateringer til query- og value-projektioner.
Oprindelse
Termen LoRA er et akronym for Low-Rank Adaptation og blev introduceret af Hu et al. i 2021 i artiklen 'LoRA: Low-Rank Adaptation of Large Language Models'.