QLoRA: fine-tuning dużego modelu w 4 bitach
Dostroić model 65B na jednej karcie 48 GB, z jakością pełnego 16-bitowego treningu? QLoRA mrozi wagi w 4 bitach i trenuje same adaptery. Rozkładamy na części, jak to w ogóle ma prawo działać.
Dostroić model 65B na jednej karcie 48 GB, z jakością pełnego 16-bitowego treningu? QLoRA mrozi wagi w 4 bitach i trenuje same adaptery. Rozkładamy na części, jak to w ogóle ma prawo działać.
Miliardy wag modelu ściśnięte do trzech wartości: minus jeden, zero, plus jeden. Bez mnożeń, prawie bez pamięci — i, od pewnego rozmiaru, prawie bez straty jakości. Rozbieramy pracę, która ogłosiła erę 1-bitowych LLM-ów.
Wrzucasz jedną flagę, -fa, i model nagle mieści dłuższy kontekst na tej samej karcie. Za tym skrótem stoi praca, która nie przybliża uwagi ani jej nie tnie — tylko przestawia kolejność liczenia tak, żeby wielka macierz N×N nigdy nie musiała wylądować w wolnej pamięci.
Mixtral 8x7B na token rusza tylko ~13 z 47 miliardów wag, ale do pamięci musisz wcisnąć wszystkie. Rozbieramy, czemu MoE oszczędza obliczenia, a nie ani grama VRAM-u.
Transformer płaci za każdy token kwadratem, a jego KV-cache puchnie z długością rozmowy jak balon. Mamba mówi: da się liniowo i przy stałym stanie. Rozkładamy na części, co potrafią selektywne modele przestrzeni stanów.
Model uczony na 4 tysiącach tokenów nagle ogarnia 128 tysięcy. Nie magia, nie retrening od zera — tylko sprytne przekręcenie zegara pozycji w RoPE i kilkaset kroków douczenia.
GPTQ liczy odwrotność Hessianu i po kolei koryguje błąd warstwa po warstwie. AWQ patrzy na aktywacje i skaluje kanały wag. Rozkładamy obie szkoły na części i mówimy, po co komu która.