LoRA vs QLoRA: którą metodę fine-tuningu wybrać?

Tłumaczenie automatyczne

Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.

LoRA trenuje małe macierze adapterów, pozostawiając wstępnie wytrenowane wagi zamrożone. QLoRA stosuje to podejście do modelu bazowego zapisanego z precyzją 4-bitową. Zacznij od LoRA, jeśli model bazowy mieści się w pamięci z zapasem; rozważ QLoRA, jeśli jego zamrożone wagi zajmują zbyt dużo pamięci treningowej.

Obie metody nadal potrzebują pamięci na aktywacje, gradienty adapterów i stan optymalizatora. Większe partie danych i dłuższe sekwencje zwiększają zużycie pamięci przez aktywacje i bufory tymczasowe. Przy stałej konfiguracji adapterów rozmiary gradientów i stanu optymalizatora zależą od trenowalnych parametrów.

Różnica dotyczy wag bazowych

LoRA przedstawia aktualizację wag za pomocą dwóch małych macierzy zamiast trenować całą macierz wag. Jeśli pierwotna waga ma wymiary d × k, adapter o rzędzie r trenuje macierze r × k i d × r. Rząd określa rozmiar adaptera; nie jest uniwersalną miarą trudności zadania.

WybórZamrożona bazaTrenowalna częśćGłówny kompromis
LoRAZwykle BF16 lub FP16Adaptery o niskim rzędzieWiększy przydział pamięci na wagi bazowe
QLoRAWagi skwantyzowane do 4 bitówAdaptery o niskim rzędzie, z obliczeniami o wyższej precyzjiMniej pamięci na wagi bazowe, kosztem dekwantyzacji

Oryginalna publikacja o LoRA opisuje zamrożone wagi i trenowalne aktualizacje o niskim rzędzie. Po treningu adapter można scalić ze zgodnymi wagami bazowymi, co eliminuje osobną operację adaptera podczas inferencji. Wdrożenie po kwantyzacji i scalanie wymagają obsługi w wybranych narzędziach.

Publikacja o QLoRA wykorzystała NF4, 4-bitową reprezentację przeznaczoną dla wag o rozkładzie normalnym, a także podwójną kwantyzację i optymalizatory stronicowane. W testowanej konfiguracji przeprowadzono fine-tuning modelu o 65B parametrów na jednej karcie GPU z 48 GB pamięci. Ten wynik nie gwarantuje, że inny model, inna długość sekwencji lub konfiguracja treningu zmieści się w pamięci tak samo.

Porównaj kontrolowany przebieg treningu

Zachowaj ten sam bazowy checkpoint, przykłady, moduły docelowe adapterów, rząd, długość sekwencji i zbiór ewaluacyjny. Zapisz szczytowe zużycie pamięci, czas treningu i jakość wykonywania zadania na odłożonych przykładach. Jeśli QLoRA oszczędza pamięć, ale spowalnia trening, oceń, czy użycie mniejszej liczby GPUs rekompensuje ten czas.

Przetestuj też rzeczywisty artefakt inferencyjny. Jakość adaptera zmierzona przy użyciu narzędzi treningowych może się zmienić po scaleniu lub dalszej kwantyzacji.

Sekcja o LoRA i QLoRA w przewodniku po inżynierii LLM wyjaśnia aktualizację parametrów i jej konsekwencje sprzętowe.