Sztuczna inteligencja
LoRa, QLoRA i QA-LoRA: Efektywna adaptowalność w dużych modelach językowych dzięki niskorządowej faktoryzacji macierzy

Duże modele językowe (LLM) wyznaczyły sobie unikalną niszę, oferując niezrównane możliwości w rozumieniu i generowaniu tekstu podobnego do ludzkiego. Moc LLM można przypisać ich ogromnemu rozmiarowi, często liczącemu miliardy parametrów. Choć ta ogromna skala napędza ich wydajność, jednocześnie rodzi wyzwania, szczególnie w kontekście adaptacji modelu do konkretnych zadań lub domen. Konwencjonalne ścieżki zarządzania LLM, takie jak strojenie wszystkich parametrów, pociągają za sobą duże koszty obliczeniowe i finansowe, stanowiąc znaczącą barierę dla ich powszechnego wdrożenia w rzeczywistych zastosowaniach. W poprzednim artykule zagłębiliśmy się w strojenie dużych modeli językowych (LLM), aby dostosować je do specyficznych wymagań. Zbadaliśmy różne metodologie strojenia, takie jak strojenie oparte na instrukcjach, strojenie jednostkowe oraz efektywne strojenie parametrów (PEFT), z których każda ma unikalne podejście do optymalizacji LLM dla różnych zadań. Centralnym punktem dyskusji była architektura transformerów, będąca kręgosłupem LLM, oraz wyzwania związane z wymaganiami obliczeniowymi i pamięciowymi przy obsłudze ogromnej liczby parametrów podczas strojenia.
Powyższy obraz przedstawia skalę różnych dużych modeli językowych, uporządkowanych według liczby ich parametrów. Warto zauważyć: PaLM, BLOOM, itp. Od tego roku nastąpiły postępy prowadzące do powstania jeszcze większych modeli. Jednak strojenie tak gigantycznych, otwartych modeli na standardowych systemach jest niewykonalne bez specjalistycznych technik optymalizacji. W tym momencie pojawia się Low-Rank Adaptation (LoRA), wprowadzone przez Microsoft w tym artykule, mające na celu złagodzenie tych wyzwań i uczynienie LLM bardziej dostępnymi i adaptowalnymi. Sedno LoRA tkwi w jego podejściu do adaptacji modelu bez zagłębiania się w zawiłości ponownego trenowania całego modelu. W przeciwieństwie do tradycyjnego strojenia, gdzie każdy parametr podlega zmianie, LoRA obiera mądrzejszą drogę. Zamraża wstępnie wytrenowane wagi modelu i wprowadza trenowalne macierze dekompozycji rangi do każdej warstwy architektury Transformer. To podejście drastycznie redukuje liczbę trenowalnych parametrów, zapewniając bardziej efektywny proces adaptacji.
Ewolucja strategii strojenia LLM
Patrząc wstecz na podróż związaną ze strojeniem LLM, można zidentyfikować kilka strategii stosowanych przez praktyków na przestrzeni lat. Początkowo światło reflektorów skupiało się na strojeniu wstępnie wytrenowanych modeli, strategii polegającej na kompleksowej zmianie parametrów modelu, aby dostosować go do konkretnego zadania. Jednak wraz ze wzrostem rozmiaru i złożoności modeli rosły również wymagania obliczeniowe tego podejścia. Następną strategią, która zyskała na popularności, było strojenie podzbioru, bardziej ograniczona wersja swojego poprzednika. Tutaj strojony jest tylko podzbiór parametrów modelu, co w pewnym stopniu zmniejsza obciążenie obliczeniowe. Mimo swoich zalet, strojenie podzbioru nadal nie było w stanie nadążyć za tempem wzrostu rozmiaru LLM. Gdy praktycy zaczęli badać bardziej efektywne ścieżki, pojawiło się pełne strojenie jako rygorystyczne, ale satysfakcjonujące podejście.
Wprowadzenie do LoRA
Rząd macierzy daje nam wgląd w wymiary tworzone przez jej kolumny, jest określany przez liczbę unikalnych wierszy lub kolumn, jakie posiada.
- Macierz Pełnego Rzędu: Jej rząd odpowiada mniejszej liczbie spośród jej wierszy lub kolumn.
- Macierz Niskiego Rzędu: Z rzędem znacznie mniejszym niż liczba jej wierszy i kolumn, przechwytuje mniej cech.
Duże modele uchwytują szerokie zrozumienie swojej domeny, jak język w modelach językowych. Jednak strojenie ich do konkretnych zadań często wymaga jedynie podkreślenia małej części tego zrozumienia. Tutaj LoRA błyszczy. Sugeruje, że macierz przedstawiająca te korekty wag może być macierzą niskiego rzędu, przechwytującą mniej cech. LoRA sprytnie ogranicza rząd tej macierzy aktualizacji, dzieląc ją na dwie mniejsze macierze rangi. Zamiast zmieniać całą macierz wag, zmienia tylko jej część, czyniąc zadanie strojenia bardziej efektywnym.
Zastosowanie LoRA w Transformerach
LoRA pomaga minimalizować obciążenie treningowe w sieciach neuronowych, skupiając się na konkretnych macierzach wag. W architekturze Transformer pewne macierze wag są powiązane z mechanizmem samouwagi, a mianowicie Wq, Wk, Wv i Wo, oprócz dwóch kolejnych w module wielowarstwowej sieci perceptronowej (MLP).
Wyjaśnienie matematyczne stojące za LoRA
Przeanalizujmy matematykę stojącą za LoRA:
- Wstępnie wytrenowana macierz wag W0:
- Zaczyna się od wstępnie wytrenowanej macierzy wag W0 o wymiarach d×k. Oznacza to, że macierz ma d wierszy i k kolumn.
- Dekompozycja niskiego rzędu:
- Zamiast bezpośrednio aktualizować całą macierz W0, co może być kosztowne obliczeniowo, metoda proponuje podejście dekompozycji niskiego rzędu.
- Aktualizacja ΔW do W0 może być reprezentowana jako iloczyn dwóch macierzy: B i A.
- B ma wymiary d×r
- A ma wymiary r×k
- Kluczowym punktem jest to, że rząd r jest znacznie mniejszy niż zarówno d, jak i k, co pozwala na bardziej wydajną obliczeniowo reprezentację.
- Trening:
- Podczas procesu treningowego W0 pozostaje niezmieniona. Określa się to jako “zamrożenie” wag.
- Z drugiej strony, <span class="k













