Modele i platformy AI
LoRa, QLoRA i QA-LoRA: Wydajna adaptacja w dużych modelach językowych za pomocą niskiej rangi macierzy
Duże modele językowe (LLM) wytworzyły unikalną niszę, oferując niezrównane możliwości w rozumieniu i generowaniu ludzkiego języka. Potęga LLM można odnieść do ich ogromnego rozmiaru, często mającego miliardy parametrów. Podczas gdy ten ogromny rozmiar napędza ich wydajność, jednocześnie rodzi wyzwania, szczególnie podczas adaptacji modelu do określonych zadań lub domen. Konwencjonalne ścieżki zarządzania LLM, takie jak dostrajanie wszystkich parametrów, przedstawiają duże obciążenie obliczeniowe i finansowe, stanowiąc znaczną barierę dla ich powszechnego stosowania w aplikacjach świata rzeczywistego.
W poprzednim artykule zagłębiliśmy się w dostrajanie dużych modeli językowych (LLM), aby dostosować je do konkretnych wymagań. Eksplorowaliśmy różne metody dostrajania, takie jak dostrajanie oparte na instrukcjach, dostrajanie pojedynczego zadania i wydajne dostrajanie parametrów (PEFT), każde z nich ma swój unikalny podejście do optymalizacji LLM dla różnych zadań. Centralnym punktem dyskusji była architektura transformatora, podstawa LLM, oraz wyzwania stawiane przez wymagania obliczeniowe i pamięciowe podczas dostrajania ogromnej liczby parametrów.
Powyższy obraz reprezentuje skalę różnych dużych modeli językowych, uporządkowanych według liczby parametrów. Należy zauważyć: PaLM, BLOOM itd.
W tym roku nastąpiły postępy, które doprowadziły do jeszcze większych modeli. Niemniej jednak, dostrajanie tak ogromnych, otwartoźródłowych modeli na standardowych systemach jest niewykonalne bez specjalnych technik optymalizacji.
Wkraczamy w niską adaptację (LoRA), wprowadzoną przez firmę Microsoft (MSFT ) w tym artykule, mającym na celu złagodzenie tych wyzwań i uczynienie LLM bardziej dostępnymi i adaptowalnymi.
Ewolucja strategii dostrajania LLM
Oglądając się na podróż dostrajania LLM, można zidentyfikować kilka strategii zastosowanych przez praktyków na przestrzeni lat. Początkowo, uwaga skupiła się na dostrajaniu wstępnie wytrenowanych modeli, strategii, która obejmuje kompleksową zmianę parametrów modelu, aby dopasować je do konkretnego zadania. Niemniej 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 popularność, było dostrajanie podzbioru, bardziej ograniczona wersja poprzedniej. Tutaj tylko podzbiór parametrów modelu jest dostrajany, zmniejszając obciążenie obliczeniowe do pewnego stopnia. Pomimo swoich zalet, dostrajanie podzbioru nadal nie było w stanie nadążyć za tempem wzrostu rozmiaru LLM.
Wprowadzenie do LoRA
Ranga macierzy daje nam wgląd w wymiary utworzone przez jej kolumny, określone przez liczbę unikalnych wierszy lub kolumn.
- Macierz pełnej rangi: jej ranga odpowiada mniejszej liczbie pomiędzy wierszami a kolumnami.
- Macierz niskiej rangi: o randze znacznie mniejszej niż zarówno liczba wierszy, jak i kolumn, przechwytuje mniej cech.
Teraz, duże modele posiadają szerokie zrozumienie swojej dziedziny, jak język w modelach językowych. Ale dostrajanie ich do konkretnych zadań często wymaga tylko podkreślenia niewielkiej części tych zrozumień. To tutaj LoRA błyszczy. Sugereuje, że macierz przedstawiająca te dostosowania wag może być macierzą niskiej rangi, przechwytując mniej cech.
LoRA inteligentnie ogranicza rangę tej macierzy aktualizacji, dzieląc ją na dwie mniejsze macierze niskiej rangi. Zatem zamiast zmieniania całej macierzy wag, zmienia się tylko część jej, czyniąc zadanie dostrajania bardziej wydajnym.
Stosowanie LoRA do transformatorów
LoRA pomaga zminimalizować obciążenie treningowe w sieciach neuronowych, koncentrując się na określonych macierzach wag. W architekturze transformatora pewne macierze wag są związane z mechanizmem uwagi, a mianowicie Wq, Wk, Wv i Wo, oraz dwie więcej w module wielowarstwowego perceptronu (MLP).
Matematyczne wyjaśnienie LoRA
Rozłóżmy matematykę za LoRA:
- Wstępna macierz wag :
- Zaczyna się od wstępnej macierzy wag o wymiarach . Oznacza to, że macierz ma wierszy i kolumn.
- Niskiej rangi dekompozycja:
- Zamiast bezpośrednio aktualizować całą macierz , co może być obliczeniowo kosztowne, metoda proponuje podejście niskiej rangi dekompozycji.
- Aktualizacja do może być reprezentowana jako iloczyn dwóch macierzy: i .
- ma wymiary
- ma wymiary
- Kluczowy punkt tutaj jest taki, że ranga jest znacznie mniejsza niż zarówno i , co pozwala na bardziej obliczeniowo wydajną reprezentację.
- Trening:
- Podczas procesu treningu pozostaje niezmieniona. Jest to określane jako “zamrożenie” wag.
- Z drugiej strony, i są parametrami uczonymi. Oznacza to, że podczas treningu, dostosowywane są macierze i w celu poprawy wydajności modelu.
- Mnożenie i dodawanie:
- Obydwie i aktualizacja (która jest iloczynem i ) są mnożone przez ten sam wejście (oznaczone jako ).
- Wyniki tych mnożeń są następnie dodawane.
- Proces ten jest podsumowany w równaniu: Tutaj, reprezentuje ostateczny wynik po zastosowaniu aktualizacji do wejścia .
W skrócie, ta metoda pozwala na bardziej wydajny sposób aktualizacji dużej macierzy wag, reprezentując aktualizacje za pomocą niskiej rangi dekompozycji, co może być korzystne pod względem wydajności obliczeniowej i zużycia pamięci.
Inicjowanie i skalowanie:
Podczas treningu modeli, sposób inicjowania parametrów może znacząco wpłynąć na wydajność i skuteczność procesu uczenia. W kontekście naszej aktualizacji macierzy wag za pomocą i :
- Inicjowanie macierzy i :
- Macierz : Macierz ta jest inicjowana losowymi wartościami Gaussa, znanymi również jako rozkład normalny. Powodem użycia inicjowania Gaussa jest złamanie symetrii: różne neurony w tej samej warstwie będą uczyły się różnych cech, gdy mają różne wagi początkowe.
- Macierz : Macierz ta jest inicjowana zerami. Robiąc to, aktualizacja zaczyna się od zera na początku treningu. Zapewnia to, że nie ma nagłych zmian w zachowaniu modelu na początku, pozwalając modelowi stopniowo dostosowywać się, gdy uczy się odpowiednich wartości podczas treningu.
- Skalowanie wyjścia z :
- Po obliczeniu aktualizacji , jej wyjście jest skalowane przez czynnik gdzie jest stałą. Przez skalowanie, kontroluje się wielkość aktualizacji.
- Skalowanie jest szczególnie istotne, gdy ranga ulega zmianie. Na przykład, jeśli zdecydujesz się zwiększyć rangę w celu uzyskania większej dokładności (kosztem obliczeń), skalowanie zapewnia, że nie musisz dostosowywać wielu innych hiperparametrów w tym procesie. Zapewnia to pewien poziom stabilności modelu.
Praktyczny wpływ LoRA
LoRA wykazała swój potencjał w dostrajaniu LLM do konkretnych stylów artystycznych w sposób wydajny przez społeczność AI. Było to szczególnie widoczne w adaptacji modelu do naśladowania stylu artystycznego Greg Rutkowski.
Podkreślono to w artykule z GPT-3 175B jako przykład. Posiadanie indywidualnych instancji dostrajanych modeli z 175B parametrów każdy jest dość kosztowne. Ale z LoRA, liczba parametrów uczonych maleje o 10 000 razy, a zużycie pamięci GPU jest zmniejszone do jednej trzeciej.
Metodologia LoRA nie tylko stanowi znaczący krok w kierunku uczynienia LLM bardziej dostępnymi, ale także podkreśla potencjał zwiększenia różnicy pomiędzy postępami teoretycznymi a aplikacjami praktycznymi w dziedzinie AI. Poprzez złagodzenie barier obliczeniowych i ułatwienie procesu adaptacji modelu, LoRA jest gotowa odegrać kluczową rolę w szerszym stosowaniu i wdrożeniu LLM w scenariuszach świata rzeczywistego.
QLoRA (kwantyzowana)
Podczas gdy LoRA jest przełomem w redukowaniu potrzeb pamięciowych, nadal wymaga potężnego GPU do załadowania modelu do treningu. Tutaj QLoRA, czyli Kwantyzowana LoRA, wkracza, łącząc LoRA z kwantyzacją w celu uzyskania bardziej inteligentnego podejścia.
Zwykle parametry wag są przechowywane w formacie 32-bitowym (FP32), co oznacza, że każdy element macierzy zajmuje 32 bity miejsca. Wyobraź sobie, gdybyśmy mogli zmieścić tę samą informację w zaledwie 8 lub nawet 4 bitach. To jest podstawowa idea QLoRA. Kwantyzacja odnosi się do procesu mapowania ciągłych, nieskończonych wartości na mniejszy zestaw dyskretnych, skończonych wartości. W kontekście LLM, odnosi się to do procesu konwersji wag modelu z wyższych typów danych na niższe.
Oto prostsze wyjaśnienie QLoRA:
- Początkowa kwantyzacja: Najpierw duży model językowy (LLM) jest kwantyzowany do 4 bitów, znacznie redukując ślad pamięciowy.
- Trening LoRA: Następnie przeprowadza się trening LoRA, ale w standardowej precyzji 32-bitowej (FP32).
Teraz możesz się zastanawiać, dlaczego wracać do 32 bitów na trening po zmniejszeniu do 4 bitów? Cóż, aby skutecznie trenować adaptery LoRA w FP32, wagi modelu również muszą wrócić do FP32. Ten przejście tam i z powrotem odbywa się w inteligentny, stopniowy sposób, aby uniknąć przeciążenia pamięci GPU.
LoRA znajduje swoje praktyczne zastosowanie w bibliotece Hugging Face Parameter Efficient Fine-Tuning (PEFT), upraszczając jej wykorzystanie. Dla tych, którzy chcą używać QLoRA, jest dostępna poprzez połączenie bibliotek bitsandbytes i PEFT. Dodatkowo, biblioteka HuggingFace Transformer Reinforcement Learning (TRL) ułatwia dostrajanie nadzorowane z zintegrowanym wsparciem dla LoRA. Wszystkie te trzy biblioteki dostarczają niezbędne narzędzie do dostrajania wybranego wstępnie wytrenowanego modelu, umożliwiając generowanie przekonywujących i spójnych opisów produktów przy określonych instrukcjach atrybutów.
Podsumowanie
W tym artykule dotknęliśmy wyzwań stawianych przez ich ogromny rozmiar parametrów. Zagłębiliśmy się w tradycyjne praktyki dostrajania i związanych z nimi obciążeń obliczeniowych i finansowych. Istotą LoRA jest jej zdolność do modyfikowania wstępnie wytrenowanych modeli bez konieczności całkowitego ponownego treningu, zmniejszając liczbowo parametry uczące się i czyniąc proces adaptacji bardziej opłacalnym.
Także krótko omówiliśmy Kwantyzowaną LoRA (QLoRA), która łączy LoRA z kwantyzacją, zmniejszając ślad pamięciowy modelu, jednocześnie zachowując niezbędną precyzję do treningu. Z tymi zaawansowanymi technikami, praktycy są teraz wyposażeni w potężne biblioteki, ułatwiające łatwiejsze przyjęcie i wdrożenie LLM w szerokim spektrum scenariuszy świata rzeczywistego.
Te strategie są opracowane, aby balansować pomiędzy czynieniem LLM dostosowanymi do konkretnych zadań a zapewnieniem, że procesy dostrajania i wdrożenia nie są nadmiernie wymagające pod względem obliczeń i zasobów pamięciowych.




















