LoRA-adapter

forkortelse for Low-Rank Adaptation

En LoRA-adapter er en metode til parameter-effektiv finjustering af store sprogmodeller, hvor en lille mængde trænbare parametre tilføjes i form af lav-rangs matricer, mens de oprindelige vægte fryses.

Kort fortalt

En LoRA-adapter er en smart måde at finjustere store sprogmodeller på uden at ændre alle vægtene – man tilføjer kun nogle få små, trænbare matricer.

Kategori
træning
Niveau
øvet

Betydninger

1
  1. 1

    En teknik til finjustering af neurale netværk, hvor man tilføjer lav-rangs dekomponerede matricer til de originale vægte, så kun disse trænes, hvilket reducerer antallet af trænbare parametre drastisk.

    • Vi brugte en LoRA-adapter til at finjustere Llama 2-modellen på vores eget domænespecifikke datasæt.fiktivt eksempel
    • LoRA-adapteren kan gemmes separat og kombineres med basisvægtene under inferens.fiktivt eksempel

Hvornår bruges det

LoRA-adaptere bruges typisk i forbindelse med store sprogmodeller, når man ønsker at tilpasse modellen til en specifik opgave ud at træne hele modellen forfra. Det er særligt populært i open-source miljøet med værktøjer som Hugging Face PEFT. Adapteren kan gemmes som en lille checkpoint-fil, der let kan distribueres og indlæses.

Formel

ΔW = AB, hvor A ∈ ℝ^(d×r) og B ∈ ℝ^(r×k) med r ≪ min(d,k)

Kodeeksempel

from peft import LoraConfig, get_peft_model

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

model = get_peft_model(base_model, lora_config)
model.train()

Eksempel på opsætning af en LoRA-adapter med Hugging Face PEFT-biblioteket. 'r' angiver rangen af adapteren.

Oprindelse

Navnet kommer af Low-Rank Adaptation, da metoden begrænser opdateringen af vægte til at have lav rang.

Afledte ord

1

Kilder

1