モデルトレーニングにおける低ランク適応の評価
この記事では、LoRAとフルファインチューニングのパフォーマンスとメモリ使用量を比較しているよ。
― 1 分で読む
Low-Rank Adaptation、略してLoRAは、大きな言語モデル(LLM)を微調整するための方法で、メモリを節約しながら利用できるんだ。この方法では、モデル全体を変える代わりに、アダプタと呼ばれる少数の追加部分だけをトレーニングするんだ。これにより、プログラミングや数学などのさまざまなタスクで役立つんだけど、最近の研究では、LoRAはメモリを節約できる一方で、フル微調整よりもパフォーマンスが劣ることが多いってわかったんだ。
この記事では、LoRAがさまざまなタスクでフル微調整とどう違うのかを見ていくよ。さらに、LoRAがターゲットドメイン以外のタスクでどれだけパフォーマンスを維持できるかも探るつもり。
微調整におけるメモリ効率
大きなモデルを微調整するのは、コンピュータのメモリにかなり負担がかかるんだ。従来の方法はモデル全体を調整するから、すごくリソースを使うんだよ。一方で、LoRAは少数の調整に焦点を合わせているから、メモリの使用が軽いんだ。特定のコンポーネントだけを変更することで、フル微調整に比べて効率的にトレーニングできるのが特徴だね。
プログラミングと数学のパフォーマンス比較
LoRAがフル微調整に対してどれくらいパフォーマンスが違うかを調べるために、プログラミングと数学の2つの主要な分野でテストを行ったよ。テストには、指示微調整(IFT)と継続的事前トレーニング(CPT)の2種類のトレーニングデータを使った。IFTは多くの質問と回答のペアを使う一方で、CPTは大量の非構造化データに焦点を当てているんだ。
結果として、LoRAはしばしばフル微調整よりもパフォーマンスが劣ることがわかった。プログラミングタスクでは、そのパフォーマンスの差が目立ったけど、数学タスクではLoRAの結果はフル微調整に近かった。
正則化の役割
LoRAは、無関係なタスクでベースモデルのパフォーマンスを維持する能力があるって言われているんだ。これを正則化って呼ぶんだけど、モデルが新しいタスクに適応する前に学んだことを忘れないようにするのが重要なんだ。
私たちの研究では、LoRAが他の一般的な方法よりも強力な正則化を提供することがわかったよ。たとえば、過剰適合を抑制するために使われるウェイト減衰やドロップアウトのような技術よりもパフォーマンスが良いんだ。
学習と忘却の効果
モデルを微調整する際には、新しいタスクを学ぶことと以前の知識を保持することの間にトレードオフがあるんだ。このトレードオフを学習忘却のトレードオフって言うんだけど、私たちのテストでは、LoRAは新しいタスクでの学習が少ない一方で、以前のタスクについてはあまり忘れないことがわかった。
これから、LoRAは新しい情報を学ぶのには効果が薄いかもしれないけど、以前のトレーニングからの知識を保持するのが得意だってことがわかるね。
ハイパーパラメータへの感度
LoRAとフル微調整のパフォーマンスは、トレーニングプロセスを制御するための設定であるハイパーパラメータに大きく影響されるよ。LoRAの場合、学習率や微調整の対象となるモデルの部分に対して敏感であることがわかった。
私たちの研究では、これらのハイパーパラメータを慎重に選ぶことでLoRAの結果が良くなることが発見されたけど、それでもフル微調整には敵わなかった。
LoRAの実用的な使用に関する推奨
私たちの発見から、LoRAは主に指示微調整に使うべきだと推奨するよ。適切な学習率を選び、すべてのモジュールをターゲットにして、ランクを低く保つことが、パフォーマンスとメモリ使用の良いバランスを実現するために重要なんだ。最低でも4エポックのトレーニングをすれば、良い結果が得られることが多いよ。
結論
LoRAはメモリ効率が良く、忘却を防ぐから、大きなモデルのトレーニングにとって価値のあるツールなんだ、特にメモリが気になる時にはね。だけど、フル微調整は多くのタスク、特にプログラミングではLoRAよりも優れているんだ。トレードオフや効果、LoRAを使う際のベストプラクティスを理解することで、モデルのトレーニングに関する賢明な決断ができるんだ。モデルのサイズがますます大きくなるにつれて、これらの方法を理解することは研究者や開発者にとってますます重要になってくるよ。
タイトル: LoRA Learns Less and Forgets Less
概要: Low-Rank Adaptation (LoRA) is a widely-used parameter-efficient finetuning method for large language models. LoRA saves memory by training only low rank perturbations to selected weight matrices. In this work, we compare the performance of LoRA and full finetuning on two target domains, programming and mathematics. We consider both the instruction finetuning (approximately 100K prompt-response pairs) and continued pretraining (20B unstructured tokens) data regimes. Our results show that, in the standard low-rank settings, LoRA substantially underperforms full finetuning. Nevertheless, LoRA better maintains the base model's performance on tasks outside the target domain. We show that LoRA mitigates forgetting more than common regularization techniques such as weight decay and dropout; it also helps maintain more diverse generations. Finally, we show that full finetuning learns perturbations with a rank that is 10-100X greater than typical LoRA configurations, possibly explaining some of the reported gaps. We conclude by proposing best practices for finetuning with LoRA.
著者: Dan Biderman, Jacob Portes, Jose Javier Gonzalez Ortiz, Mansheej Paul, Philip Greengard, Connor Jennings, Daniel King, Sam Havens, Vitaliy Chiley, Jonathan Frankle, Cody Blakeney, John P. Cunningham
最終更新: 2024-09-20 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2405.09673
ソースPDF: https://arxiv.org/pdf/2405.09673
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://github.com/goodfeli/dlbook_notation
- https://ctan.org/pkg/pifont
- https://openreview.net/forum?id=XXXX
- https://huggingface.co/datasets/open-web-math/open-web-math
- https://huggingface.co/datasets/meta-math/MetaMathQA
- https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
- https://gitee.com/api/v5/orgs
- https://gitee.com/api/v5/repos
- https://math.stackexchange.com/questions/222974/probability-of-getting
- https://huggingface.co/datasets/winogrande