Robocikowo>ROBOCIKOWO
Trening

PEFT / LoRA

2021AktywnyOpublikowano: 20 marca 2026Aktualizacja: 20 marca 2026Opublikowany
PEFT / LoRA to rodzina technik efektywnego dostrajania modeli AI, która pozwala adaptować duże modele przez trenowanie niewielkiej liczby dodatkowych parametrów zamiast pełnego fine-tuningu.
Kluczowa innowacja
Zamrożenie oryginalnych wag modelu i dodanie pary małych macierzy o niskiej randze (A i B) jako trenowalnych aktualizacji wag, co redukuje liczbę parametrów trenowalnych o rzędy wielkości bez dodawania kosztu obliczeniowego podczas inferencji.
Kategoria
Trening
Poziom abstrakcji
Pattern
Poziom operacji
Po-treningTrening
Zastosowania
Dostrajanie dużych modeli językowych do zadań domenowychInstrukcyjne fine-tuning modeli open-weightDostosowywanie modeli multimodalnych i vision-languageEfektywne dostrajanie modeli dyfuzyjnych i generatywnychBudowanie wielu lekkich wariantów jednego modelu bazowegoEksperymenty badawcze na ograniczonym sprzęcieWdrażanie adapterów dla różnych klientów, języków lub specjalizacji

Jak działa

W podejściu PEFT bazowy model pozostaje w dużej mierze zamrożony, a trening obejmuje jedynie niewielki zestaw dodatkowych parametrów, zwykle w formie adapterów. W przypadku LoRA aktualizacja dużej macierzy wag jest aproksymowana przez iloczyn dwóch mniejszych macierzy niskiego rzędu, dodawanych do wybranych warstw modelu, najczęściej warstw attention lub projekcji liniowych. Dzięki temu liczba trenowanych parametrów dramatycznie spada. Po treningu adapter może być przechowywany oddzielnie od modelu bazowego i ładowany tylko wtedy, gdy jest potrzebny, co upraszcza deployment, współdzielenie i eksperymentowanie z wieloma wariantami dostrojenia.

Rozwiązany problem

PEFT / LoRA rozwiązuje problem wysokiego kosztu pełnego fine-tuningu dużych modeli. Tradycyjne dostrajanie wszystkich parametrów wymaga dużej ilości pamięci GPU, czasu treningu oraz miejsca do przechowywania wielu wariantów modelu. Dodatkowo wdrażanie osobnych, w pełni przetrenowanych kopii dużego modelu dla różnych zadań jest kosztowne operacyjnie. Techniki PEFT ograniczają ten koszt, umożliwiając trenowanie jedynie niewielkiej liczby dodatkowych parametrów, które można łatwo zapisywać, wymieniać i ponownie wykorzystywać.

Kluczowe mechanizmy

Zamrożenie większości parametrów modelu bazowego
Trenowanie niewielkiej liczby dodatkowych parametrów
Wykorzystanie adapterów zamiast pełnego fine-tuningu
LoRA: dekompozycja aktualizacji wag do dwóch macierzy niskiego rzędu
Znaczne obniżenie zużycia pamięci GPU podczas treningu
Oddzielne zapisywanie i ładowanie lekkich adapterów
Łatwe współdzielenie wielu wariantów dostrojenia jednego modelu bazowego

Mocne strony i ograniczenia

Mocne strony
Znacznie obniża koszt pamięci i treningu względem pełnego fine-tuningu
Pozwala trenować duże modele na tańszym lub słabszym sprzęcie
Ułatwia przechowywanie i dystrybucję lekkich adapterów
Może osiągać jakość porównywalną do pełnego fine-tuningu
Przyspiesza eksperymentowanie i iteracje nad adaptacją modeli
Dobrze integruje się z ekosystemem Hugging Face
Umożliwia współdzielenie jednego modelu bazowego przez wiele adapterów
Ograniczenia
Nie zawsze dorównuje pełnemu fine-tuningowi w każdym zadaniu i każdej architekturze
Skuteczność zależy od wyboru warstw, rangi i hiperparametrów adaptera
Może być mniej elastyczne w zadaniach wymagających głębokiej zmiany reprezentacji modelu
Złożone stacki adapterów mogą komplikować zarządzanie wariantami
Wydajność i jakość zależą od implementacji oraz integracji z frameworkiem
PEFT to szeroka rodzina metod, więc pojęcie bywa używane nieprecyzyjnie

Komponenty

Macierz A (projekcja w dół)Projekcja wejścia do przestrzeni o niskiej randze; pierwsza z dwóch czynnych macierzy dekompozycji.

Macierz A ∈ ℝ^(r×k) mapuje wejście z wymiaru k do przestrzeni o niskiej randze r. Inicjalizowana losowo (Kaiming uniform lub Gaussian). Jest trenowalna.

Macierz B (projekcja w górę)Projekcja powrotna z przestrzeni niskiej rangi do wymiaru wyjściowego; zerowa inicjalizacja gwarantuje stabilny start treningu.

Macierz B ∈ ℝ^(d×r) mapuje reprezentację z przestrzeni o niskiej randze r z powrotem do oryginalnego wymiaru wyjściowego d. Inicjalizowana zerami, co gwarantuje identyczną wartość wyjściową modelu na początku treningu. Jest trenowalna.

Zamrożone wagi bazowe (W₀)Przechowywanie wiedzy wstępnie wytrenowanego modelu; punkt wyjścia dla adaptacji.

Oryginalna macierz wag wstępnie wytrenowanego modelu o wymiarach d×k. Podczas treningu LoRA parametry W₀ są zamrożone (requires_grad=False) i nie są aktualizowane przez optymalizator. Po treningu: W = W₀ + (α/r)·BA.

Czynnik skalowania α/rKontrola siły adaptacji i stabilizacja dynamiki treningu.

Hiperparametr skalujący wkład aktualizacji ΔW = (α/r)·BA do wyjścia warstwy. α (lora_alpha) jest skalowalnym hiperparametrem dobieranym podczas treningu; r (rank) determinuje wymiar przestrzeni adaptacji. Podział α/r sprawia, że optymalny learning rate jest w przybliżeniu niezależny od rangi.

rsLoRA (rank-stabilized scaling)Stosuje α/√r zamiast α/r, co poprawia stabilność treningu przy wyższych rangach.

Oficjalna

Implementacja

Pułapki implementacyjne
Zbyt niska ranga – niewystarczająca zdolność ekspresyjna adapteraWysoka

Zbyt niski rank (r=1–4) dla złożonego zadania uniemożliwia adapterowi naukę wymaganych transformacji. Model uczy się jedynie stylu/formatu, nie treści. Objawia się jako wysokie straty treningowe i słabe wyniki na zadaniu docelowym.

Rozwiązanie:Zaczynać od r=8–16 i zwiększać stopniowo. Monitorować validation loss. Dla złożonych zadań wielodomenowych rozważyć r=64 lub AdaLoRA.
Inicjalizacja B macierzy jako niezerowa na starcieWysoka

Jeśli macierz B nie jest zainicjalizowana zerami, model na starcie treningu nie jest identyczny z modelem bazowym, co zaburza stabilność i utrudnia konwergencję. Zgodnie z paperem B musi być zainicjalizowane zerami.

Rozwiązanie:Używać standardowej implementacji (HF PEFT lub microsoft/LoRA) gwarantującej zerową inicjalizację B. Przy ręcznej implementacji: B = torch.zeros(d, r).
Nieprawidłowe scalenie wag (weight merging) przed inferencjąŚrednia

Pominięcie operacji W = W₀ + (α/r)·BA przed wdrożeniem skutkuje dodatkowym kosztem obliczeniowym dwóch przebiegów (przez W₀ i przez BA) zamiast jednego, co zwiększa latencję. Ręczne scalenie bez czynnika skalowania (α/r) prowadzi do błędnych wyników.

Rozwiązanie:Stosować metodę merge_and_unload() z PEFT lub ręcznie: model.weight.data += lora_B @ lora_A * (alpha / r). Weryfikować wyniki na zbiorze testowym po scaleniu.
Stosowanie tego samego learning rate co przy pełnym fine-tuninguŚrednia

LoRA adaptery wymagają wyższego learning rate niż pełny fine-tuning (typowo 10–100× wyższy), ponieważ trenuje się znacznie mniej parametrów. Użycie zbyt niskiego LR prowadzi do wolnej konwergencji lub braku adaptacji.

Rozwiązanie:Używać LR rzędu 1e-4 do 3e-4 (vs typowe 1e-5 do 5e-5 dla pełnego FT). Stosować cosine LR schedule z warmupem.
Pominięcie czynnika skalowania α/r w implementacjiWysoka

Jeśli czynnik (α/r) nie jest poprawnie zastosowany w forward passie (h = W₀x + (α/r)·BAx), wyniki adaptacji są nieskalowane, co prowadzi do nieprzewidywalnego zachowania modelu, szczególnie przy zmianie r bez dostosowania α.

Rozwiązanie:Stosować sprawdzone implementacje. Przy ręcznej implementacji weryfikować: output = x @ W0.T + (alpha / r) * (x @ A.T) @ B.T.

Ewolucja

Oryginalny paper · 2022 · ICLR 2022 (International Conference on Learning Representations) · Edward J. Hu
LoRA: Low-Rank Adaptation of Large Language Models
Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
2021
Publikacja preprinta LoRA na arXiv (czerwiec 2021)
Punkt przełomowy

Hu et al. opublikowali arXiv:2106.09685. Metoda zamraża wagi bazowe i dodaje pary macierzy niskiej rangi A i B do wybranych warstw Transformera. Zredukowano parametry trenowalnych 10 000× przy równorzędnej jakości z pełnym fine-tuningiem GPT-3 175B.

2022
Akceptacja w ICLR 2022 i implementacja microsoft/LoRA
Punkt przełomowy

Papier przyjęty na ICLR 2022. Microsoft opublikował oficjalną implementację referencyjną (github.com/microsoft/LoRA). Społeczność Stable Diffusion adoptuje LoRA do fine-tuningu modeli dyfuzji.

2023
Hugging Face PEFT (luty 2023) i QLoRA (maj 2023)
Punkt przełomowy

Hugging Face zintegrowało LoRA w bibliotece PEFT (github.com/huggingface/peft), czyniąc je dostępnym dla milionów deweloperów. Dettmers et al. opublikowali QLoRA (arXiv:2305.14314) umożliwiając fine-tuning modeli 65B na pojedynczym GPU 48 GB przez połączenie kwantyzacji 4-bit z adapterami LoRA.

2023
AdaLoRA (ICLR 2023) – adaptacyjna alokacja rangi

Zhang et al. opublikowali AdaLoRA dynamicznie przydzielającą rank między warstwami na podstawie ważności singular values. Stanowiło to pierwsze systematyczne podejście do optymalizacji budżetu parametrów LoRA.

2024
DoRA (ICML 2024) i rsLoRA – dalsze warianty LoRA

Liu et al. opublikowali DoRA (arXiv:2402.09353) rozkładając wagi na komponenty kierunkowe i skalarne, stosując LoRA tylko do kierunku. Kalajdzievski zaproponował rsLoRA (rank-stabilized LoRA) ze skalowaniem α/√r dla stabilniejszego treningu przy wyższych rangach.

Hiperparametry (konfigurowalne osie)

Ranga adaptera (rank)Krytyczna

Wymiar przestrzeni adaptacji niskiej rangi. Bezpośrednio kontroluje liczbę parametrów trenowalnych (r·(d+k) na warstwę) i zdolność ekspresyjną adaptera. Wyższy r → więcej parametrów, większa zdolność uczenia złożonych transformacji.

1–4Bardzo niska zdolność; przydatna do dostosowania stylu i formatu wyjścia.
8–16Ogólne przeznaczenie; dobry punkt startowy wg autorów paperu (r=8 jako baseline).
32–64Złożone zadania wymagające większych zmian zachowania modelu.
128–256Rzadko konieczne; ryzyko overfittingu przy małych zbiorach danych.
Współczynnik skalowania αWysoka

Czynnik skalujący w formule (α/r)·BA. Kontroluje efektywną siłę adaptacji. Powszechna heurystyka: alpha = r lub alpha = 2r. Może być zmniejszony po treningu bez konieczności ponownego uczenia.

8Gdy r=8; stosunek alpha/r = 1.
16Gdy r=8; stosunek alpha/r = 2 (wzmocnienie adaptacji).
32Popularna wartość domyślna w wielu implementacjach.
Docelowe moduły / warstwyWysoka

Które macierze wagowe modelu są adaptowane przez LoRA. W oryginalnym paperze: Wq i Wv w self-attention. W praktyce: często wszystkie liniowe warstwy (Wq, Wk, Wv, Wo, MLP) dla maksymalnej wydajności.

q_proj, v_projMinimalny zestaw zgodny z paperem Hu et al. 2021.
q_proj, k_proj, v_proj, o_projCały blok self-attention.
all-linearWszystkie warstwy liniowe; stosowane w QLoRA dla najwyższej jakości.
Dropout adapteraNiska

Współczynnik dropout stosowany do wyjść adaptera LoRA podczas treningu, jako regularyzacja. Często ustawiony na 0 lub niskie wartości (0.05–0.1).

0Bez dropout; domyślne ustawienie w wielu implementacjach.
0.05Lekka regularyzacja.
0.1Silniejsza regularyzacja przy dużym ryzyku overfittingu.

Złożoność obliczeniowa

Charakterystyki obliczeniowe
Znacznie mniejsza liczba trenowanych parametrów niż w pełnym fine-tuningu
Niższe zużycie pamięci GPU i mniejsze koszty przechowywania
Wyższa przepustowość treningu w wielu scenariuszach
Niski narzut pamięciowy dla adapterów względem modelu bazowego
Możliwość uruchamiania adaptacji na sprzęcie konsumenckim lub low-cost GPU

Złożoność przestrzenna: O(r·(d + k)). PEFT / LoRA zmniejsza koszt obliczeniowy dostrajania przez trenowanie tylko niewielkiej części parametrów. LoRA według oryginalnej pracy może redukować liczbę trenowanych parametrów o rzędy wielkości i obniżać wymagania pamięciowe względem pełnego fine-tuningu, zachowując konkurencyjną jakość.

Uwagi do benchmarku

PEFT / LoRA nie jest benchmarkiem, lecz rodziną technik treningowych. Jego ocena opiera się zwykle na porównaniu z pełnym fine-tuningiem pod kątem jakości końcowej, liczby trenowanych parametrów, zużycia pamięci, szybkości treningu oraz łatwości wdrażania adapterów.

Paradygmat wykonania

Tryb główny
dense

LoRA jest dense: zarówno oryginalna ścieżka W₀x, jak i ścieżka adaptacji (α/r)·BAx są obliczane dla każdego wejścia. Brak warunkowej aktywacji lub rzadkości. Podczas inferencji (po scaleniu wag) overhead jest zerowy.

Wzorzec aktywacji
all_paths_active

Równoległość

Poziom równoległości
fully_parallel

Obliczenia BA są w pełni zrównoleglone w ramach warstwy i między warstwami, analogicznie do standardowego mnożenia macierzy w Transformerze. Brak sekwencyjnych zależności między adapterami LoRA w różnych warstwach.

Zakres
traininginferenceacross_layersacross_devices

Wymagania sprzętowe

Podstawowe

LoRA operuje na mnożeniu macierzy (BA) i addycji do wyjść warstw liniowych — operacje w pełni akcelerowane przez Tensor Cores GPU (NVIDIA A100, H100, RTX 3090+). Redukcja parametrów trenowalnych przekłada się na ~3× mniejsze zużycie pamięci GPU dla stanów optymalizatora.

Dobry fit

TPU v4/v5 efektywnie obsługują operacje GEMM użyte w LoRA. Biblioteka Flax/JAX umożliwia implementację LoRA na TPU. Stosowany przez Google przy fine-tuningu modeli Gemini i PaLM z PEFT.