LoRA(Low-Rank Adaptation)は、自然言語処理(NLP)やコンピュータ・ビジョン(CV)などで使用されるような、事前に訓練された大規模な機械学習(ML)モデルを、モデル全体を再トレーニングすることなく、特定のタスクやデータセットに適応させるために使用される効率的な手法である。大規模なモデルの微調整に伴う計算コストとメモリ要件を大幅に削減し、高度なAIをより身近なものにする。LoRAは、PEFT(Parameter-Efficient Fine-Tuning)手法の傘下にある。
LoRAの仕組み
従来のファインチューニングでは、新しいデータを使って、事前に訓練されたモデルのすべてのパラメータ(またはモデルの重み)を更新する。何十億ものパラメータを持つモデルの場合、このプロセスにはかなりの計算リソースが必要となります。 GPUメモリと時間を必要とする。LoRAは、モデルを適応させるために必要な変更は、低次元空間に存在することが多いという原則に基づいて動作します。
LoRAは、元の重みをすべて変更する代わりに、それらを凍結し、より小さく訓練可能な「低ランク」行列を、モデルアーキテクチャの特定の層(多くの場合、Transformerブロック内)に注入する。微調整プロセスでは、これらの新しく追加された行列(アダプター)のみが更新される。これにより、多くの場合、完全なファインチューニングに匹敵する性能を達成しながらも、学習可能なパラメーターの数を大幅に削減することができます。オリジナルのLoRA研究論文に、この手法の技術的な詳細が記載されている。
関連性とメリット
LoRAの第一の利点はその効率性である:
- 計算コストの削減:トレーニングに必要なGPU メモリと時間は、完全なファインチューニングに比べて大幅に削減されます。
- 小さなストレージフットプリント:タスクごとに微調整された完全なモデルを保存する代わりに、小さなLoRAアダプターの重みだけを保存すればよい。これは、複数のカスタムモデルを管理する場合に非常に有益です。
- タスク切り替えの高速化:対応するLoRAアダプターのウェイトを入れ替えるだけで、ベースモデルを異なるタスクに素早く適応させることができます。
- アクセシビリティ:コンシューマーグレードのハードウェアや、エッジコンピューティングデバイスのようなリソースに制約のある環境でも、大規模なモデルの微調整が可能。
- 同等のパフォーマンス:モデルを完全に微調整することで得られる精度に近いレベルを達成することが多い。
LoRAの応用
LoRAの効率性は、さまざまな領域で価値を発揮する:
- 大規模言語モデル(LLM)のカスタマイズ: GPT-4のような基本的なLLMやオープンソースの代替LLMを、特定のスタイルでテキストを生成したり、ドメインに特化したチャットボットを作成したり、ニッチな質問応答データセットのパフォーマンスを向上させるなどの特殊なタスクに適応させる。例えば、企業はLoRAを使用して、業界特有の専門用語を理解し、ベースとなるLLM全体を再トレーニングすることなく、より適切な応答を提供するために、一般的な顧客サービスのチャットボットを微調整することができます。Hugging FacePEFTライブラリは、LoRAや他の同様のテクニックを実装するためのツールを提供しています。
- ビジョンモデルの適応:以下のような大規模なコンピュータビジョンモデルを効率的に微調整します。 Ultralytics YOLOモデルを含む大規模なコンピュータビジョンモデルを、特定の物体検出や 画像セグメンテーションタスク用に効率的に微調整します。例えば、COCOのような広範なデータセットで事前に訓練されたモデルを、製造品質管理プロセスにおける固有の欠陥を正確に検出するために適応させたり、カメラトラップ画像を使用した野生動物保護活動における特定の動物種を識別したりします。
- パーソナライズドAI:最小限のオーバーヘッドで、モデルを個人の嗜好やデータに適応させることにより、パーソナライズされたユーザー体験を生み出す。
- 医療画像解析医療スキャンに基づく特殊な診断タスクのためにモデルを微調整し、特定の画像モダリティや患者集団に適応させる。Ultralytics HUBのようなプラットフォームは、様々な展開シナリオにLoRAのような技術を用いて適応させたモデルの管理を支援します。