🔖

小さい計算コストでスマートにLLMをチューニング!-Hugging Face PEFT入門(前編)

2024/04/19に公開

はじめに

株式会社Elithで先月よりインターンとして働き始めた森川です。今回は、大規模言語モデル(以下、LMM)の研修中に興味を持ったパラメータ効率の良いFine Tuning手法(Parameter-Efficient Fine Tuning、 PEFT)について、サーベイを行いました。本記事では、Hugging Faceで実装されている主なPEFTを紹介し、最後に今後の展望について述べます。本記事で使用する図は、参考文献から引用されています。

Fine Tuningの必要性と問題点

Fine Tuningは各下流タスクに合わせて大規模な事前学習済みモデルの重みを微調整することです。LLMのパラメータをタスクごとに一から訓練することは計算資源や計算時間の観点で現実的ではないため、モデルの作成の際には、事前に汎用的なタスクに使用できるように学習された大規模言語モデルを使用することが一般的です。

しかし、LLMのパラメータ数が数十億に達する現在、事前学習済みモデルの全パラメータを微調整すること(以下、Full FT)はますます困難になっています。このFull FTは、訓練時に必要な計算リソースの量と、パラメータを保存するために必要なデータ容量の両方を著しく増加させます。

しかし、ファインチューニングは各々の状況に応じて個別に行うため、少ない計算リソースとメモリのサイズで行うことが望ましい状況にあります。

PEFT(Parameter-Efficient Fine Tuning)

PEFTは、前述の問題を解決するため、事前学習済みモデルのパラメータ数に比べ少数のパラメータの学習により、下流タスクに対してFull FTと同程度にモデルの性能改善を目指す手法です。PEFTは、多くの場合、事前学習済みモデルの重みを凍結して、事前学習済みモデルに追加した少数のパラメータを学習することにより行われます。例えば、LoRAでは、Full FTで訓練が必要なパラメータの数の10000分の1の数のパラメータの学習により、Full FTと同等の性能改善を達成したと報告されています。

Adapter型

Hugging Faceでは、大きく分けて2種類の型のPEFTが実装されています。

1つ目の型は、Adapter型と呼ばれる型です。Adapter型では、事前学習済みモデルの重みを凍結して新たに導入したパラメータのみを学習させることで、個別のタスクに対する精度の向上を目的としています。

LoRA(LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS)

LoRAは、重みの増分行列を低ランク行列で近似して低ランク行列のみを学習させることで、少ないパラメータ数の学習でFull FTと同等の性能改善を目指す手法です。LoRAは他手法と比べて効率が良いため、LLMにとどまらずdiffusion modelにおいても使用されます。

具体的な手法の流れは以下の通りです。事前学習済みのモデルの重みの行列をW、ファインチューニング後の重みの行列をW'としたとき、重みの増分\Delta W = W' - Wを考えることができます。このとき、重みをファインチューニングすることと重みの増分\Delta Wをチューニングすることは同義であると考えられます。そのため、LoRAでは学習中にWを凍結して学習せず、重みの増分\Delta Wのみを学習しています。さらに、LoRAでは、低ランク行列ABを用いて\Delta WBAと定義することで、パラメータ数を大幅に削減しています。

LoRA_system

LoRAの利点は、4つあります。

1つ目は、訓練が必要なパラメータ数を大幅に削減できる点です。LoRAでは、Full FTで訓練が必要なパラメータの数の10000分の1の数のパラメータでFull FTと同等の性能改善を達成しました。

2つ目は、事前学習済みモデルと同等の計算コストで推論できるという点です。W\Delta Wはマージできるため、元のモデルと同じ計算コストで推論を行うことができます。

3つめは、各下流タスクに対して、それぞれ少ないデータ容量で対応できるという点です。事前学習済みのモデルの重みはLoRAによる学習中には凍結します。そのため、各下流タスクに対して、対応する低ランク行列の重みの情報だけで対応できます。

4つ目は、Full FTよりも少ない訓練パラメータ数であるにも関わらずFull FTと同等の性能改善を図ることができる点です。下の図のように、LoRAを用いてファインチューニングしたモデルの精度は、Full FTを行ったモデルと同等の精度を達成しています。

LoRA_Result

LoRAの問題点として、モデルが特定のパターンを学習する必要があるタスクに対して、その他のFine Tuning手法より精度が劣る場合があることが挙げられます。LoRAは、数学やポーカーのようなルールに基づいた思考を必要とするタスクに対するFine Tuningを苦手とする傾向にあります。

LoRAの派生手法として、LoHA、LoKr、AdaLoRAなどがHugging Faceで実装されています。LoHA、LoKr、AdaLoRAはいずれも重みの増分行列\Delta Wの近似方法を工夫しています。LoHA、LoKrは、主にdiffusion modelに使用されています。AdaLoRAは、事前学習済みモデルの重みの増分行列のパラメータ圧縮の度合いを示すランクrを適応的に変化させることでモジュールごとの重要度を考慮したLoRAとなっています。

LoRA_Plus

LoRAのメモリ効率を高めるため、QLoRAがHugging Faceで実装されています。QLoRAには、以下のような特徴があります。

  • モデルの重みを4bitに量子化することができる量子化のためのデータ型NF4を使用している。
  • モデルの重みを量子化した際の定数をさらに量子化している。(Double Quantization, DQ)
  • GPUのメモリ不足を防ぐために、最適化の計算において直近での必要性が低い計算途中の値をCPU RAMに退避し、GPUのメモリを常時確保する最適化器(paged optimizer)を使用している。

QLoRA_System

その他のAdapter型の手法

LoRA以外のAdapter型の手法として、Orthogonal Finetuning(OFT)やLlama-AdapterがHugging Faceで実装されています。

Orthogonal Finetuning(OFT)は、事前学習済みモデルの画像生成タスクに対する能力を保持したまま、新しいタスクにファインチューニングする手法です。事前学習モデルの重みの行列に直行行列 Rをアダプターとして乗算し、学習時にはこのRのみを学習します。Rとして直行行列を使用することで、ノード間のコサイン類似度を維持したまま学習することができます。これにより、元のモデルの概念の情報を保持したまま学習することができます。

Llama-Adapterは、Transformer機構の上位層のattention機構内で文脈情報と一緒にタスク固有の情報を埋め込むためのattention機構をアダプターとして追加する手法です。学習時には、アダプターとして追加したattention機構内のパラメータとそのattention機構に入力するためのプロンプト(Adaption Prompt)を学習します。LLaMA-Adapterは、70億のパラメータを持つLLaMAに120万のパラメータのファインチューニングを行うことで、LLamaに対してFull FTを行ったAlpacaと同等の性能を達成しています。

まとめ

PEFTに関する調査の前編として、今回はAdapter型について調査を行いました。後編では、Soft Prompt型を中心に調査を行う予定です。

最後に宣伝となりますが、株式会社 Elith は最先端のAI技術をビジネスに実装し、価値を生み出すテックカンパニーです。
最近ではLLMの活用に関して様々な取り組みをしており、多数のイベントにも登壇しています。
少しでも興味がある方は、X(旧Twitter)経由やElithのWebページ経由で、是非気軽にお話を聞きにきてください。

参考文献

全体

https://zenn.dev/timoneko/articles/bb108fa971e6ae

https://www.brainpad.co.jp/doors/contents/01_tech_2023-05-22-153000/

https://huggingface.co/docs/peft/conceptual_guides/adapter

https://note.com/kojiro_iizuka/n/nfc69f3fd5f32

LoRA

https://arxiv.org/pdf/2106.09685.pdf

https://zenn.dev/schwalbe10/articles/low-rank-adaptation

https://qiita.com/mshinoda88/items/fc562ec6a84f45e89e70

QLoRA

http://arxiv.org/pdf/2305.14314.pdf

https://blueqat.com/yuichiro_minato2/bb25fbe5-6c8e-4a81-854f-e46e6d7b34e3

https://reinforz.co.jp/bizmedia/13018/

Orthogonal Finetuning(OFT)

https://arxiv.org/pdf/2306.07280.pdf

LLaMA-Adapter

https://arxiv.org/pdf/2303.16199.pdf

株式会社Elith

Discussion