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