LoRA(Low-Rank Adaptation)は、低ランク行列をアーキテクチャに導入することで、大規模な機械学習モデルの微調整プロセスを最適化するために設計された手法である。この手法により、従来のファインチューニングに必要な計算量とストレージ容量が大幅に削減され、事前学習済みモデルを特定のタスクに適応させるための効率的でコスト効率の高い選択肢となる。
LoRAは、特定の層に低ランク行列を注入することで、事前に訓練されたモデルの重みを変更する。微調整の際にモデルの全パラメータを更新する代わりに、パラメータのごく一部、つまり低ランク行列内のパラメータのみを最適化する。このアプローチは、新しいタスクに適応させながら、元のモデル構造の大部分を保持する。事前に訓練された重みは凍結されたままであるため、元のモデルの知識を保持することができる。
LoRAは低ランクの更新に重点を置くことで、学習可能なパラメータの数を減らし、学習の高速化とメモリ使用量の低減を実現している。このため、大規模言語モデル(LLM)やその他の複雑なアーキテクチャをリソースに制約のある環境で展開する場合に特に有効です。
ファインチューニングのテクニックをより深く理解するために、PEFT(Parameter-Efficient Fine-Tuning:パラメータ効率的ファインチューニング)について調べることができる。
LoRAは、GPTやBERTのような大規模言語モデルをドメイン固有のアプリケーション用に微調整するために、NLPタスクで広く使用されている。例えば
言語モデリングと ファインチューニングがどのようにNLPの進歩に寄与しているか、詳しくご覧ください。
コンピュータビジョンでは、LoRAはVision Transformers (ViT)のような大きなモデルを画像分類、物体検出、セグメンテーションなどのタスクに適応させるために使用されてきた。例えば
オブジェクト検出と 画像セグメンテーションの詳細については、その影響を理解するために調べてください。
従来のファインチューニングでは、モデルの全パラメータを更新するため、計算コストがかかり、メモリ消費も大きくなる。対照的に、LoRAはパラメータの小さなサブセットを選択的に更新するため、より軽量でスケーラブルです。
LoRAが内部モデルの重みを変更するのに対し、プロンプトチューニングは入力プロンプトの最適化に重点を置く。プロンプトチューニングは通常テキスト生成に使用されるが、LoRAはより多様なタスクに対応できる。
Ultralytics は、LoRAの原理を適用できる機械学習やコンピュータ・ビジョンのタスクを幅広くサポートしている。ユーザーは、Ultralytics HUBのようなツールを活用して、カスタムモデルを効率的にトレーニングし、展開することができます。以下のような最先端のソリューションがあります。 Ultralytics YOLOLoRAにインスパイアされた技術をワークフローに統合することで、リアルタイムアプリケーションのモデル性能をさらに最適化することができます。
LoRAは、革新的な技術によって高度な機械学習がより利用しやすく効率的になり、業界全体でインパクトのあるソリューションが推進されることを例証している。