Low-Rank Adaptation (LoRA) (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — je metoda parametricky efektivního doladění (PEFT), která umožňuje přizpůsobit velké jazykové modely (LLM) novým úlohám s minimálními výpočetními náklady. Technologie byla poprvé představena v práci Edwarda Hua (Edward Hu) a jeho kolegů v roce 2021[1].

Plné doladění (full fine-tuning) velkých modelů, jako jsou LLaMA nebo GPT, vyžaduje obrovské zdroje, což jej činí nedostupným pro většinu výzkumníků a vývojářů. LoRA tento problém řeší tím, že umožňuje doladit pouze malou část parametrů modelu, přičemž zachovává vysokou kvalitu a výkonnost srovnatelnou s plným doladěním[2].

Princip fungování

Základní myšlenka LoRA spočívá v tom, že se nemění původní váhy předtrénovaného modelu, ale přidává se k nim malá „korekční" matice. Namísto přímého trénování obrovské matice vah `W` představuje LoRA její změnu jako součin dvou malých matic nízkého hodnosti.

Formálně, pokud má původní matice vah vrstvy `W_0` rozměr `d × k`, její aktualizace se vyjadřuje jako `ΔW = BA`, kde `B` je matice rozměru `d × r` a `A` je matice rozměru `r × k`. Hodnost `r` je hyperparametr a je výrazně menší (`r << d, k`). Během doladění jsou původní váhy `W_0` zmrazeny a trénovány jsou pouze matice `A` a `B`. Výsledná matice vah se vypočítá jako `W = W_0 + BA`.

To umožňuje snížit počet trénovatelných parametrů tisícinásobně. Například při doladění GPT-3 (175 miliard parametrů) snižuje LoRA počet trénovatelných parametrů 10 000krát a snižuje požadavky na paměť GPU třikrát[1].

Klíčové výhody

  • Úspora zdrojů: Výrazně se snižuje počet trénovatelných parametrů (o 90 % i více), což znatelně snižuje spotřebu video paměti (VRAM) a urychluje proces trénování.
  • Žádná latence při inference: Po trénování lze matice `B` a `A` „sloučit" s hlavní maticí `W_0` výpočtem `W = W_0 + BA`. Při používání modelu tak nevznikají žádné dodatečné výpočty ani zpoždění[1].
  • Modularita a rychlé přepínání úloh: Natrénované LoRA adaptéry jsou malé soubory (několik megabajtů). To umožňuje snadno uchovávat desítky adaptérů pro různé úlohy a rychle mezi nimi přepínat, aniž by se měnil základní model[3].

Omezení a modifikace

Ačkoli je LoRA velmi efektivní, její nízkohodnostní povaha může být omezením pro úlohy vyžadující zapamatování velkého množství nových informací. K řešení tohoto a dalších problémů byly navrženy různé modifikace.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) — jedna z nejpopulárnějších modifikací, navržená v roce 2023. Kombinuje LoRA s 4-bitovou kvantizací základního modelu[4]. To umožňuje ještě více snížit požadavky na paměť a zpřístupňuje doladění modelů s desítkami miliard parametrů (například 65B modelů) na jediném spotřebitelském GPU. Na základě QLoRA byl vytvořen mimo jiné model Guanaco, který dosáhl výsledků srovnatelných s ChatGPT.

Ostatní modifikace

  • MoRA (High-Rank Updating): Navržena pro úlohy, kde LoRA vykazuje nedostatečný výkon kvůli omezení hodnosti. MoRA využívá metody umožňující aktualizaci vah s vysokou hodností při zachování parametrické efektivity[5].

Implementace a využití

Technologie LoRA se rozšířila díky své efektivitě a snadné integraci. Klíčovou roli v její popularizaci sehrála knihovna PEFT (Parameter-Efficient Fine-Tuning) od společnosti Hugging Face. PEFT poskytuje jednotné rozhraní pro aplikaci LoRA a dalších metod PEFT na modely z ekosystému Transformers[6].

LoRA se aktivně využívá pro:

  • Adaptaci chatbotů a dialogových systémů (například doladění LLaMA, Mistral).
  • Vytváření modelů pro klasifikaci a generování textu v úzce specializovaných oblastech.
  • Personalizaci modelů na konkrétní styl nebo formát dat.

Odkazy

  • Oficiální dokumentace knihovny PEFT od Hugging Face

Literatura

  • 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.

Poznámky

  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]