LoRA: Low-Rank Adaptation of Large Language Models ==> 読後メモ
論文
目的
いかに、少ないメモリー量・計算量で、LLMを各問題に特化させるか?
先行研究(LLMを各問題に特化させる方法)
- Fine-Tunning (FT):全てのパラメータを問題に合わせて微調整。
- Parameter-Effecient Fine Tunning (PEFT):
- Adapter:問題に特化したレイヤーを追加。共通の事前学習部分は固定。問題特化したレイヤーのパラメータのみ、新たに学習。
- 直列的に処理を追加。Inference時の処理スピードが落ちる点がデメリット。
- Prefix-tunning:問題に特化した入力ベクトルを用意。パラメータの一部のみ再学習。
- Adapter:問題に特化したレイヤーを追加。共通の事前学習部分は固定。問題特化したレイヤーのパラメータのみ、新たに学習。
提案手法
- 新たなPEFTの一種として、LoRAを提案。
- Hidden Layerのパラメータに対し、それより少ない数のパラメータを定義。
- そのパラメータのみ学習。
- 元のHidden layerの出力(固定)+追加パラメータで学習したHidden layerの出力を、更新後のHidden layerの出力とする。
結果
- GPT2・GPT3で、モデルを評価。
- Full Fine-tunningと遜色ない性能。
- 学習に必要なパラメータを大幅に削減。
実装
- HaggingFaceが公開しているライブラリPEFTを通して利用可能。
役立つ資料
- こちらの資料が、LLMのFine-tuning方法の整理として、とてもわかりやすい(論文読み途中に、参考にさせていただきました)。