LoRA-vægte

forkortelse for Low-Rank Adaptation-vægte

LoRA-vægte er en lille mængde trænlige, lavrangsmatricer, der lægges til de frosne basisvægte i en stor sprogmodel for at opnå effektiv fintuning.

Kort fortalt

I stedet for at opdatere alle en models vægte under fintuning, lærer LoRA-vægte kun nogle få ekstra vægte, hvilket sparer tid og hukommelse.

Kategori
teknik
Niveau
øvet
Udtale
/ˈloːʁɑ ˈvɛɡdə/

Betydninger

1
  1. 1

    De lavrangstræningsmatricer (A og B), der lægges til en models eksisterende lineære lag for at tilpasse modellen til en ny opgave uden at ændre på de originale vægte.

    • Under LoRA-fintuning opdateres kun LoRA-vægtene, mens de oprindelige vægte forbliver frosne. — Eget eksempel
    • LoRA-vægtene kan flettes med basisvægtene efter træning for at eliminere inferensoverhead. — Eget eksempel

Hvornår bruges det

LoRA-vægte bruges især ved fintuning af store sprogmodeller (LLM'er) og diffusionsmodeller. Man anvender dem ved at indsætte lavrangsdekomponerede matricer i modelens lineære lag og kun træne disse under fintuning, mens de oprindelige vægte forbliver frosset.

Formel

For et lineært lag med vægte W ∈ ℝ^{d×k} repræsenteres opdateringen ΔW = BA, hvor B ∈ ℝ^{d×r}, A ∈ ℝ^{r×k}, og lille r (typisk 1-64) er rangen. De resulterende LoRA-vægte er B og A.

Kodeeksempel

import torch
import torch.nn as nn

class LoRALayer(nn.Module):
    def __init__(self, in_features, out_features, rank=4):
        super().__init__()
        self.A = nn.Parameter(torch.randn(in_features, rank) * 0.02)
        self.B = nn.Parameter(torch.zeros(rank, out_features))

    def forward(self, x):
        return x @ (self.A @ self.B)

En simpel PyTorch-implementering af et LoRA-lag, der repræsenterer de trænlige lavrangsmatricer A og B. Under træning opdateres A og B, mens det oprindelige lineære lags vægte forbliver frosne.

Oprindelse

LoRA er et akronym for Low-Rank Adaptation, introduceret af Hu et al. i 2021. Vægte henviser til de trænlige parametre i modellen.

Afledte ord

2
LoRA-fintuningLoRA-adapter

Kilder

2

Se også

  • LoRA
  • adapter
  • fintuning(mangler)
  • parameter-efficient-fintuning(mangler)