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

Afledte ord

4

Kilder

1