Low-Rank Adaptation (LoRA) (HU)

From Systems analysis wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — egy paraméter-hatékony finomhangolási (PEFT) módszer, amely lehetővé teszi a nagy nyelvi modellek (LLM) új feladatokhoz való adaptálását minimális számítási költséggel. A technológiát először Edward Hu és munkatársai mutatták be 2021-ben[1].

A nagy modellek – mint a LLaMA vagy a GPT – teljes finomhangolása (full fine-tuning) hatalmas erőforrásokat igényel, ami a legtöbb kutató és fejlesztő számára elérhetetlenné teszi. A LoRA ezt a problémát úgy oldja meg, hogy a modell paramétereinek csupán kis hányadát hangolja, miközben megőrzi a teljes finomhangolással összehasonlítható magas minőséget és teljesítményt[2].

Működési elv

A LoRA alapgondolata az, hogy az előre betanított modell eredeti súlyait nem módosítja, hanem egy kis „korrekciós" mátrixot ad hozzájuk. Ahelyett, hogy közvetlenül a hatalmas `W` súlymátrixot tanítaná, a LoRA annak változását két kis, alacsony rangú mátrix szorzataként fejezi ki.

Formálisan: ha az adott réteg eredeti súlymátrixa `W_0` mérete `d × k`, akkor a frissítése `ΔW = BA` alakban fejezhető ki, ahol `B` egy `d × r` méretű mátrix, `A` pedig egy `r × k` méretű mátrix. Az `r` rang egy hiperparaméter, amelynek értéke lényegesen kisebb (`r << d, k`). A finomhangolás során az eredeti `W_0` súlyok befagyasztásra kerülnek, és csak az `A` és `B` mátrixok kerülnek betanításra. A végső súlymátrix kiszámítása: `W = W_0 + BA`.

Ez lehetővé teszi a betanítandó paraméterek számának több ezres csökkentését. Például a GPT-3 (175 milliárd paraméter) finomhangolásakor a LoRA 10 000-szeresére csökkenti a betanítandó paraméterek számát, és háromszoros mértékben mérsékli a GPU-memóriaigényt[1].

Főbb előnyök

  • Erőforrás-megtakarítás: A betanítandó paraméterek száma drasztikusan csökken (akár 90%-kal vagy még inkább), ami jelentősen mérsékli a videómemória (VRAM) fogyasztását és felgyorsítja a tanítási folyamatot.
  • Nincs késleltetés a következtetés (inference) során: A betanítás után a `B` és `A` mátrixok „beolvaszthatók" az alap `W_0` mátrixba a `W = W_0 + BA` kiszámításával. Így a modell használata során semmilyen többletszámítás vagy késleltetés nem lép fel[1].
  • Modularitás és gyors feladatváltás: A betanított LoRA-adapterek kis méretű fájlokat alkotnak (néhány megabájt). Ez lehetővé teszi, hogy különböző feladatokhoz tucatnyi adaptert tároljunk, és gyorsan váltsunk köztük anélkül, hogy az alap modellt módosítani kellene[3].

Korlátok és módosítások

Bár a LoRA rendkívül hatékony, alacsony rangú jellege korlátot jelenthet az olyan feladatoknál, amelyek nagy mennyiségű új információ megjegyzését igénylik. E és más problémák megoldására különféle módosításokat javasoltak.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) — az egyik legnépszerűbb módosítás, amelyet 2023-ban javasoltak. A LoRA-t kombinálja az alap modell 4 bites kvantálásával[4]. Ez lehetővé teszi a memóriaigény további csökkentését, és elérhetővé teszi a több tízmilliárd paraméteres modellek (például 65B-s modellek) finomhangolását egyetlen fogyasztói GPU-n. A QLoRA alapján készült többek között a Guanaco modell, amely a ChatGPT-vel összehasonlítható eredményeket ért el.

Egyéb módosítások

  • MoRA (High-Rank Updating): Olyan feladatokhoz javasolták, ahol a LoRA a rangkorlátozás miatt nem nyújt elegendő teljesítményt. A MoRA olyan módszereket alkalmaz, amelyek lehetővé teszik a súlyok magas rangú frissítését, miközben megőrzik a paraméter-hatékonyságot[5].

Implementáció és alkalmazás

A LoRA technológia hatékonysága és egyszerű integrálhatósága miatt széles körben elterjedt. Népszerűsítésében kulcsszerepet játszott a Hugging Face cég PEFT (Parameter-Efficient Fine-Tuning) könyvtára. A PEFT egységes felületet biztosít a LoRA és más PEFT-módszerek alkalmazásához a Transformers ökoszisztéma modelljeihez[6].

A LoRA-t aktívan használják:

  • Chatbotok és párbeszédes rendszerek adaptálásához (például LLaMA, Mistral finomhangolása).
  • Szűk szakterületek szövegklasszifikációs és szöveggenerálási modelljének létrehozásához.
  • Modellek személyre szabásához adott stílushoz vagy adatformátumhoz.

Hivatkozások

  • A Hugging Face PEFT könyvtárának hivatalos dokumentációja

Irodalom

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

Megjegyzések

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]