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