LoRAはfull-finetuningより顕著に性能が劣る

paper: LoRA learns less and forgets less (Sep 2024)
LoRA(Low-Rank Adaptation)は元々「下流タスクのFTには低rankの摂動で十分」という仮定に基づいて提案されたが、この根拠となるタスクは現在のLLMからすると簡単すぎるため、より難しいタスクでも成り立つかは未検証だった。
数学とコーディングの実用的なタスク(GSM8k, HumanEval)で再検証したところ、一般的な設定のRoLA(r=16-64)はfull-finetuningと比較して顕著に低い性能を示した。
特に、訓練データの数とstep数が増えるほど性能の違いは顕著で、データ数が少ないInstruction Tuningのケース(75M~100M tokens)ではrank(r)を増やすとfull-finetuningと同程度の性能となったが、データ数が多い継続事前学習のケース(15B~20B tokens)では次元をr=256まで増やしてもギャップは埋まらなかった。
Ablationで継続事前学習のfull-finetuningの摂動行列の階数(rank)を推定したところ、現在主流の設定(r=16-64)の10-100倍は必要なことが分かった。この事実はLoRAとfull-finetuningの性能差が摂動行列のrankに起因する(一般的なRoLAの設定では摂動行列のrankが低すぎる)ことを示している。
Tips
- RoLAはdropoutなどの正則化手法と比べると顕著に汎化性能が高い
- RoLAはfull-finetuningと比べてパラメータの変化に敏感(lrなどRoLA以外のパラメータを含む)→パラメータ探索が必須
- αはLoRAの重みの初期化時のノイズの大きさに関係するパラメータで、RoLAの論文ではHu initializationに則り、α/rを定数に固定するアプローチが提案されている。経験的にはα/r=2が良いとされているがこの論文でもその設定が良いことがわかった

Tips
- α/rを固定する代わりに、αを固定してlearning rateを調整する方法でも良いのでは?と思うかもしれないが、learning rateを大きくしすぎると学習が不安定になる。先行研究に則りα/rを固定にするのがbestなことを再確認した

参考: LoRAの論文におけるr, αの定義

Article: Fine-Tuning LLMs: LoRA or Full-Parameter? An in-depth Analysis with Llama 2, Sep 2023
Anyscaleが行った実験ではGSM8KでLoRA(r=8)がfull finetuningに比べて劣ることが報告されている。
LoRAのメリット
- memory-boundedな環境で特に有効で、メモリ消費を半分に、スループットを30%増加させたと報告。
LoRAのデメリット
- GSM8Kなど論理的推論が必要なタスクではfull-finetuningより劣る。
Tips
- LoRAは同じベースモデルから複数の摂動を同時に学習する場合のメリットを指摘している。

LoRAの元となった下流タスクに対する摂動のrankに関する研究では、パラメータ数の大きいモデルほど摂動のrankが小さい傾向にある、という結果だった。これはモデルサイズを増やすとLoRAとfull-FTの差が縮まるという実験結果と整合している。
paper: Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning