【LLM論文を読む】DoRA:Weight-Decomposed Low-Rank Adaptation(重み分解LoRA)

  • ここ数日「Stable Knowledge Editing」を参考にしながら、LoRAファインチューンによるLLMへの知識の追加を試しています。
  • LoRAのハイパーパラメータ調整のコツを調べるなかで、「DoRA(重み分解LoRA)」という別のLoRA派生手法の存在を知りました。HuggingFaceのPEFTライブラリでも対応しているツールのようです。
  • DoRA論文は、2024年2月にNVIDIA香港科技大学の研究者によりarXivに投稿されています。

arxiv.org

概要

広く使われているパラメータ効率的ファインチューニング(PEFT)手法の中で、LoRA(低ランク適応)とその亜種は、追加の推論コストを回避できることから、かなりの人気を得ている。しかし、これらの手法と完全なファインチューニング(FT)との間には、まだしばしば精度のギャップが存在する。本研究では、まずFTとLoRAの本質的な違いを調べるために、新しい重み分解分析を導入する。得られた知見からFTの学習能力に似せることを目指し、重み分解低ランク適応(DoRA)を提案する。DoRAは、事前に学習された重みを大きさと方向の2つの成分に分解し、微調整を行うもので、特に方向の更新にLoRAを採用することで、学習可能なパラメータ数を効率的に最小化する。DoRAを採用することで、LoRAの学習能力と学習の安定性の両方を向上させると同時に、推論オーバーヘッドの追加を回避している。DoRAは、LLaMA、LLaVA、VL-BARTのファインチューニングにおいて、常識推論、視覚命令チューニング、画像/動画テキスト理解などの様々な下流タスクにおいて、一貫してLoRAを凌駕する。

簡単な説明

先述のPEFTのページでは、以下のようにDoRAを紹介しています。

重み分解LoRA (DoRA):

この手法では、重み行列の更新を「大きさ」と「方向」の2つに分解します。そのうえで、方向は通常のLoRAで処理され、大きさは別の学習可能なパラメータで処理されます。これにより、特に低いランク(r)においてLoRAの性能を改善できます。現在、DoRAは非量子化線形レイヤーのみサポートします。DoRAは純粋なLoRAより大きなオーバーヘッドがあるため、推論時には重みをマージしておくことを推奨します。

  • 重み行列を大きさと方向に分解したうえで、パラメータ数の多い「方向」にだけLoRAをかける方法のようです。
  • LoRAのランク(r)が小さく設定しても(学習パラメータ数を減らしても)高い学習精度が期待できるとされています。
  • ただ、現時点で量子化に未対応らしいので、単に学習効率を上げるだけならQLoRAの方が速そうです。実用的には学習精度の向上に注目です。

メモ

  • 一般的に「LoRAのFTに対する精度の低さは、学習可能なパラメータの数が少ないことに起因する(=LoRAでもパラメータ数を増やせばFTの精度に近似する)」とみなされているが、その点の具体的な検証は乏しい。
  • そこで本論文では、まずLoRAとFTの学習パターンの違いを調べるため、重み行列を大きさと方向の2つの別々の成分に分解して分析した。

  • 結果、上図のようにLoRAはすべての中間ステップで一貫した正の傾きを示し、変化の方向と大きさが比例した一方、FTでは緩やかな負の傾きを持った多様な学習パターンを示した。
  • この違いが、おそらくFTとLoRAの学習能力の差を反映する。LoRAは「大きさ」を大幅に変更しながら「方向」を僅かに変えるような微妙な調整は苦手である。
  • そこで本論文では、LoRAの学習パターンをよりFTに近づけ、LoRAよりも学習能力を向上させる変形LoRAとして「DoRA」を提案する。
  • 重み分解LoRA(DoRA)ではまず、事前に訓練された重みを大きさ成分と方向成分に分解し、その両方を微調整する。その際、方向成分はパラメータ数が大きいため、LoRAでさらに分解し、効率的な微調整を行う。
  • 重み分解によって単に学習が効率化されるだけでなく、方向更新を最適化するプロセスがより安定し、LoRAに比べFTに近い学習パターンを実現できる。
  • 以下は、Llama-7B/13Bを8種類の常識推論用のデータセットで学習し、それぞれ対応するベンチマークで評価したもの。LoRA/DoRAではr=32を用い、DoRA†は半分のr=16を使用。

  • 以下はMT-Bench(マルチターンの記述式ベンチマーク)による評価結果。Llama-1/2をAlpacaデータセットでLoRA/DoRAで学習させて評価。なお、VeRAは別のLoRA効率化手法で、DVoRAはVeRAとDoRAを組み合わせたもの。

  • 少ないデータセット数でもDoRAは他の手法に比べて高いスコアを示す。

  • なお、本論文ではマルチモーダルモデルの画像理解タスクにおけるDoRAの有効性についても検証している(割愛)。

雑感

  • ちょうど今DoRAによる学習を試していますが、やはり量子化が使えないと低ランク(とりあえず16で実施)でも学習が遅いので、個人用途では扱いにくい印象です。量子化実装に勝手に期待したいです。
  • ところで、付表にあったランク(r)ごとの学習後ベンチマークがちょっと気になりました。r=64でHellaSwagのスコアだけ大幅に低下しています。

  • 過学習でモデルが壊れてしまったのでしょうか?ほかのベンチマークではr=32と大差がありません。
  • 知識編集目的の場合、基本的にランクは大きいほうがいいとされていますが、性能低下にも気を配る必要はありそうです。