Umělá inteligence

LoRa, QLoRA a QA-LoRA: Efektivní adaptabilita velkých jazykových modelů pomocí nízkorozměrové matice

mm
LoRA : Low-Rank Adaptation of Large Language Models

Velké jazykové modely (LLM) si vytvořily jedinečné místo, nabízející nevídané schopnosti v porozumění a generování lidského textu. Síla LLM lze vysledovat zpět k jejich enormní velikosti, často s miliardami parametrů. Zatímco tato obrovská velikost pohání jejich výkon, zároveň vytváří výzvy, zejména při přizpůsobení modelu pro konkrétní úkoly nebo domény. Konvenční cesty pro řízení LLM, jako je jemné ladění všech parametrů, představují vysoké výpočetní a finanční náklady, a tím vytvářejí významnou bariéru pro jejich široké přijetí v reálných aplikacích.

V předchozím článku jsme se zabývali jemným laděním velkých jazykových modelů (LLM) pro přizpůsobení specifickým požadavkům. Prozkoumali jsme různé metody jemného ladění, jako je ladění založené na instrukcích, jednoúčelové ladění a efektivní ladění parametrů (PEFT), každá se svou jedinečnou strategií pro optimalizaci LLM pro rozdílné úkoly. Centrálním tématem diskuze byla architektura transformátoru, základem LLM, a výzvy, které představuje výpočetní a paměťová náročnost při zpracování obrovského množství parametrů během jemného ladění.

Parametry v LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

Obrázek výše znázorňuje rozsah různých velkých jazykových modelů, seřazených podle počtu parametrů. Pozoruhodné jsou PaLM, BLOOM atd.

V tomto roce došlo k pokrokům, které vedly k vývoji ještě větších modelů. Nicméně, ladění takových obřích, open-source modelů na standardních systémech je nemožné bez specializovaných optimalizačních technik.

Vstoupila nízkorozměrová adaptace (LoRA), která byla představena společností Microsoft v tomto článku, s cílem zmírnit tyto výzvy a učinit LLM více přístupnými a přizpůsobitelnými.

Jádrem LoRA je její přístup k přizpůsobení modelu bez nutnosti re-trénovat celý model. Na rozdíl od tradičního jemného ladění, kde se mění každý parametr, LoRA采用 inteligentnější cestu. Zamrzne předtrénované váhy modelu a zavádí trénovatelné matice nízké rozměru do každé vrstvy architektury transformátoru. Tento přístup dramaticky snižuje počet trénovatelných parametrů, zajišťuje efektivnější proces přizpůsobení.

Evolve LLM ladění strategie

Ohlédnutím se za cestou LLM ladění, lze identifikovat několik strategií, které byly použity praktiky v průběhu let. Zpočátku se zaměřilo na jemné ladění předtrénovaných modelů, strategie, která zahrnuje komplexní změnu modelových parametrů pro konkrétní úkol. Nicméně, jak modely rostly ve velikosti a složitosti, tak i výpočetní nároky tohoto přístupu.

Další strategií, která získala popularitu, bylo podmnožinové jemné ladění, více omezující verze svého předchůdce. Zde se pouze podmnožina modelových parametrů jemně ladí, snižuje se tak výpočetní zátěž do jisté míry. Navzdory svým výhodám, podmnožinové jemné ladění stále nebylo schopno držet krok s tempem růstu velikosti LLM.

Jak praktici zkoumali efektivnější cesty, plné jemné ladění se objevilo jako důkladný, ale odměňující přístup.

Úvod do LoRA

Rozměr matice nám poskytuje vhled do dimenzí vytvořených jejími sloupci, určený počtem jedinečných řádků nebo sloupců.

  • Plnorozměrová matice: Její rozměr odpovídá menšímu počtu mezi řádky a sloupci.
  • Nízkorozměrová matice: S rozměrem znatelně menším než obě její řádky a sloupce, zachycuje méně funkcí.

Velké modely chápou široké pochopení své domény, jako je jazyk v jazykových modelech. Ale jemné ladění pro konkrétní úkoly často vyžaduje pouze zvýraznění malé části tohoto pochopení. Zde LoRA vyniká. Navrhuje, že matice zobrazující tyto váhové úpravy může být nízkorozměrová, a tak zachycuje méně funkcí.

LoRA inteligentně omezuje rozměr této aktualizační matice rozdělením na dvě menší matice nízkého rozměru. Takže místo změny celé váhové matice se mění pouze část z ní, což činí proces jemného ladění efektivnějším.

Použití LoRA u transformátorů

LoRA pomáhá minimalizovat trénovací zátěž v neuronových sítích, zaměřujíc se na konkrétní váhové matice. V architektuře transformátoru jsou některé váhové matice spojeny se samo-pozorností, jmenovitě Wq, Wk, Wv a Wo, kromě dvou dalších v modulu Multi-Layer Perceptron (MLP).

Architektura transformátorů

Architektura transformátorů

 

Hlavy pozornosti transformátoru

Hlavy pozornosti transformátoru

Matematické vysvětlení LoRA

Rozložme matematiku za LoRA:

  1. Předtrénovaná váhová matice :
    • Začíná s předtrénovanou váhovou maticí rozměrů . To znamená, že matice má řádků a sloupců.
  2. Nízkorozměrová dekompozice:
    • Místo přímé úpravy celé matice , která může být výpočetně nákladná, metoda navrhuje nízkorozměrovou dekompoziční přístup.
    • Aktualizace k může být reprezentována jako produkt dvou matic: a .
      • má rozměry
      • má rozměry
    • Klíčovým bodem je, že rozměr je mnohem menší než obě a , což umožňuje výpočetně efektivnější reprezentaci.
  3. Trénování:
    • Během trénovacího procesu zůstává nezměněna. To se nazývá “zamrznutí” vah.
    • Naproti tomu a jsou trénovatelné parametry. To znamená, že během trénování se provádějí úpravy matic a pro zlepšení modelové výkonnosti.
  4. Násobení a přidání:
    • Oba a aktualizace (která je produktem a ) jsou násobeny stejným vstupem (označeným jako ).
    • Výstupy těchto násobení jsou poté přidány dohromady.
    • Tento proces je shrnut v rovnici: Zde reprezentuje konečný výstup po aplikaci aktualizací na vstup .

Stručně řečeno, tato metoda umožňuje efektivnější způsob aktualizace velké váhové matice reprezentací aktualizací pomocí nízkorozměrové dekompozice, což může být prospěšné z hlediska výpočetní efektivnosti a paměťového využití.

LoRA

LoRA

Inicializace a škálování:

Při trénování modelů může způsob inicializace parametrů výrazně ovlivnit efektivitu a účinnost učícího procesu. V kontextu naší aktualizace váhové matice pomocí a :

  1. Inicializace matic a :
    • Matice : Tato matice je inicializována náhodnými gaussovskými hodnotami, také známými jako normální distribuce. Důvodem použití gaussovské inicializace je prolomení symetrie: různé neurony ve stejné vrstvě se naučí různé funkce, když mají různé počáteční váhy.
    • Matice : Tato matice je inicializována nulami. Tímto způsobem aktualizace začíná jako nula na začátku trénování. To zajišťuje, že není žádný náhlý změna v chování modelu na začátku, což umožňuje modelu postupně se přizpůsobit, jak se učí vhodné hodnoty během trénování.
  2. Škálování výstupu z :
    • Po výpočtu aktualizace , její výstup je škálován faktorem kde je konstanta. Škálováním se řídí velikost aktualizací.
    • Škálování je zvláště důležité, když se mění rozměr . Například, pokud se rozhodnete zvýšit rozměr pro vyšší přesnost (za cenu výpočtu), škálování zajišťuje, že nemusíte měnit mnoho dalších hyperparametrů v procesu. To poskytuje jistou stabilitu modelu.

Praktický dopad LoRA

LoRA prokázala svůj potenciál pro přizpůsobení LLM specifickým uměleckým stylům efektivně komunitou AI. To bylo zřetelně demonstrováno v adaptaci modelu pro napodobení uměleckého stylu Grega Rutkowského.

Jako zdůrazněno v článku s GPT-3 175B jako příkladem. Mít jednotlivé instance jemně laděných modelů s 175B parametry každý je poměrně nákladné. Ale s LoRA, trénovatelné parametry klesají o 10 000krát a využití paměti GPU je sníženo na třetinu.

Dopad LoRA na jemné ladění GPT-3

Dopad LoRA na jemné ladění GPT-3

Metodologie LoRA nejen představuje významný krok směrem k tomu, aby LLM byly více přístupné, ale také zdůrazňuje potenciál mostu mezi teoretickými pokroky a praktickými aplikacemi v oblasti AI. Snížení výpočetních překážek a usnadnění procesu modelové adaptace LoRA je připravena hrát zásadní roli v širším přijetí a nasazení LLM v reálných scénářích.

QLoRA (Kvantizovaná)

Zatímco LoRA je revoluční v redukci potřebného úložiště, stále vyžaduje robustní GPU pro načtení modelu pro trénování. Zde vstupuje QLoRA, nebo kvantizovaná LoRA, která kombinuje LoRA s kvantizací pro inteligentnější přístup.

Kvantizace

Kvantizace

Obvykle jsou váhové parametry uloženy ve formátu 32-bit (FP32), což znamená, že každý prvek v matici zabírá 32 bitů prostoru. Představte si, že bychom mohli stlačit stejné informace do pouhých 8 nebo dokonce 4 bitů. To je základní myšlenka za QLoRA. Kvantizace odkazuje na proces mapování spojitých nekonečných hodnot na menší sadu diskrétních konečných hodnot. V kontextu LLM se jedná o proces převodu vah modelu z vyšších přesností datových typů na nižší přesnosti.

Kvantizace v LLM

Kvantizace v LLM

Zde je jednodušší rozbor QLoRA:

  1. Počáteční kvantizace: Nejprve je velký jazykový model (LLM) kvantizován na 4 bity, což výrazně snižuje paměťový otisk.
  2. Trénování LoRA: Poté se provede trénování LoRA, ale ve standardní přesnosti 32-bit (FP32).

Teď se můžete divit, proč se vrátit zpět k 32 bitům pro trénování po zmenšení na 4 bity? No, aby se efektivní trénování LoRA adaptérů v FP32 provedlo, váhové parametry modelu musí také revertovat zpět na FP32. Tento přechod tam a zpět se provádí inteligentním, krok za krokem způsobem, aby se nevyčerpala paměť GPU.

LoRA nachází praktické uplatnění v knihovně Hugging Face Parameter Efficient Fine-Tuning (PEFT), zjednodušujícím její použití. Pro ty, kteří chtějí použít QLoRA, je dostupná prostřednictvím kombinace knihoven bitsandbytes a PEFT. Kromě toho knihovna HuggingFace Transformer Reinforcement Learning (TRL) usnadňuje dohledované jemné ladění s integrovanou podporou LoRA. Společně tyto tři knihovny poskytují základní nástroj pro jemné ladění vybraného předtrénovaného modelu, umožňující generovat přesvědčivé a koherentní produktové popisy při zadání specifických atributových instrukcí.

Po jemném ladění z QLoRA je nutné váhové parametry vrátit zpět do formátu s vysokou přesností, což může vést ke ztrátě přesnosti a chybí optimalizace pro urychlení procesu.

Navržené řešení spočívá ve skupinování váhové matice do menších segmentů a aplikaci kvantizace a nízkorozměrové adaptace na každý segment individuálně. Nová metoda, nazvaná QA-LoRA, se snaží spojit výhody kvantizace a nízkorozměrové adaptace, zatímco zachovává proces efektivním a model účinným pro požadované úkoly.

Závěr

V tomto článku jsme se dotkli výzev, které představuje enormní velikost parametrů. Prozkoumali jsme tradiční postupy jemného ladění a jejich spojené výpočetní a finanční nároky. Jádrem LoRA je její schopnost modifikovat předtrénované modely bez nutnosti je kompletně re-trénovat, snižuje tak počet trénovatelných parametrů a činí proces adaptace nákladově efektivnějším.

Dále jsme se krátce dotkli Kvantizované LoRA (QLoRA), která kombinuje LoRA s kvantizací, snižuje tak paměťový otisk modelu, zatímco zachovává základní přesnost pro trénování. Díky těmto pokročilým technikám jsou praktici nyní vybaveni robustními knihovnami, usnadňujícími širší přijetí a nasazení LLM v širokém spektru reálných scénářů.

Matrix

Matrix

Tyto strategie jsou navrženy tak, aby vyvažovaly mezi tím, aby LLM byly přizpůsobitelné pro specifické úkoly, a zajišťovaly, že procesy jemného ladění a nasazení nejsou příliš náročné z hlediska výpočtu a úložných zdrojů.

Já pět let se ponořím do fascinujícího světa strojového učení a hlubokého učení. Mé vášně a odborné znalosti mě vedly k tomu, abych se podílel na více než 50 různých projektech softwarového inženýrství, se zvláštním zaměřením na AI/ML. Mé pokračující zvědavosti mě také přivedly k přirozenému jazykovému zpracování, oblasti, kterou jsem ochoten prozkoumat dále.