Low-Rank Adaptation (LoRA) — 低ランク適応

From Systems analysis wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) は、パラメータ効率の良いファインチューニング(PEFT)手法であり、最小限の計算コストで大規模言語モデル (LLM) を新しいタスクに適応させることができます。この技術は、2021年にエドワード・フー(Edward Hu)とその同僚による論文で初めて発表されました[1]

LLaMAやGPTなどの大規模モデルの完全なファインチューニング(full fine-tuning)には膨大なリソースが必要であり、そのため、ほとんどの研究者や開発者にとってはアクセスが困難です。LoRAはこの問題を解決し、モデルのパラメータのごく一部のみをファインチューニングすることで、完全なファインチューニングに匹敵する高い品質とパフォーマンスを維持します[2]

動作原理

LoRAの基本的な考え方は、事前学習済みモデルの元の重みを変更せず、それに小さな「補正」行列を追加することです。巨大な重み行列 `W` を直接学習する代わりに、LoRAはその変化を2つの小さな低ランク行列の積として表現します。

形式的には、層の元の重み行列 `W_0` のサイズが `d × k` である場合、その更新は `ΔW = BA` として表されます。ここで、`B` は `d × r` 次元の行列、`A` は `r × k` 次元の行列です。ランク `r` はハイパーパラメータであり、`d` や `k` に比べて大幅に小さくなります(`r << d, k`)。ファインチューニングの過程では、元の重み `W_0` は凍結され、行列 `A` と `B` のみが学習されます。最終的な重み行列は `W = W_0 + BA` として計算されます。

これにより、学習対象のパラメータ数を数千倍に削減できます。例えば、GPT-3(1750億パラメータ)のファインチューニングにおいて、LoRAは学習対象のパラメータ数を1万分の1に削減し、必要なGPUメモリを3分の1に減らします[1]

主な利点

  • リソースの節約: 学習対象のパラメータ数が劇的に(90%以上)削減されるため、ビデオメモリ(VRAM)の消費量が大幅に減り、学習プロセスが高速化されます。
  • 推論時の遅延なし: 学習後、行列 `B` と `A` は、`W = W_0 + BA` を計算することで、元の重み行列 `W_0` に「マージ」できます。これにより、モデル使用時に追加の計算や遅延が発生しません[1]
  • モジュール性と迅速なタスク切り替え: 学習済みのLoRAアダプタは、数メガバイト程度の小さなファイルです。これにより、異なるタスク用のアダプタを多数保存し、ベースモデルを変更することなく迅速に切り替えることが可能です[3]

制限と派生技術

LoRAは非常に効率的ですが、その低ランク性という性質は、大量の新しい情報を記憶する必要があるタスクにとっては制約となる可能性があります。この問題やその他の課題に対処するため、さまざまな派生技術が提案されています。

QLoRA - 量子化低ランク適応

QLoRA (Quantized Low-Rank Adaptation) は、2023年に提案された最も人気のある派生技術の一つです。この手法は、LoRAとベースモデルの4ビット量子化を組み合わせたものです[4]。これにより、メモリ要件がさらに削減され、数十億パラメータを持つモデル(例:65Bモデル)を単一のコンシューマ向けGPUでファインチューニングすることが可能になります。QLoRAを基に作成されたモデルの一つにGuanacoがあり、これはChatGPTに匹敵する結果を示しました。

その他の派生技術

  • MoRA (High-Rank Updating): ランクの制約によりLoRAが十分な性能を発揮しないタスクのために提案されました。MoRAは、パラメータ効率を維持しつつ、高ランクの重み更新を可能にする手法を用いています[5]

実装と応用

LoRA技術は、その効率性と統合の容易さから広く普及しました。その普及において中心的な役割を果たしたのは、Hugging Face社が提供するPEFT (Parameter-Efficient Fine-Tuning) ライブラリです。PEFTは、LoRAやその他のPEFT手法をTransformersエコシステムのモデルに適用するための統一されたインターフェースを提供します[6]

LoRAは、主に以下の目的で活発に利用されています:

  • チャットボットや対話システムの適応(例:LLaMA、Mistralのファインチューニング)。
  • 特定分野におけるテキスト分類および生成モデルの構築。
  • 特定のスタイルやデータ形式に合わせたモデルのパーソナライズ。

外部リンク

参考文献

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

注釈

  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]