大規模言語モデルの効率的なパラメータ微調整 - BitFit/Prefix/Prompt 微調整シリーズ

大規模言語モデルの効率的なパラメータ微調整 - BitFit/Prefix/Prompt 微調整シリーズ

2018年にGoogleはBERTをリリースしました。リリース後すぐに11のNLPタスクで最先端(Sota)の結果を破り、NLP分野における新たなマイルストーンとなりました。BERTの構造は下図の通りです。左側がBERTモデルの事前トレーニングプロセス、右側が特定のタスクに対する微調整プロセスです。このうち、微調整段階は、テキスト分類、品詞タグ付け、質問応答システムなど、後続のいくつかの下流タスクに使用するときに微調整するためのものです。BERT は、構造を調整することなく、さまざまなタスクで微調整できます。 「事前学習済み言語モデル + 下流タスクの微調整」のタスク設計により、強力なモデル効果をもたらします。それ以来、「事前トレーニング済み言語モデル + 下流タスクの微調整」が NLP 分野の主流のトレーニングパラダイムになりました。

BERT構造図、左側は事前トレーニングプロセス、右側は特定のタスクの微調整プロセスです

しかし、GPT3 に代表される大規模言語モデル (LLM) のパラメータスケールはますます大きくなり、消費者向けハードウェアで完全な微調整を実行することは不可能になっています。次の表は、A100 GPU (80G ビデオ メモリ) および 64GB を超える CPU メモリを搭載したハードウェアでの完全なモデルの微調整と効率的なパラメータの微調整の CPU/GPU メモリ消費量を示しています。

完全なパラメータ微調整と効率的なパラメータ微調整によるビデオメモリ使用量の比較

さらに、モデル全体を微調整すると、多様性が失われ、壊滅的な忘却の問題も発生します。そのため、モデルを効率的に微調整する方法が業界の研究の焦点となり、効率的なパラメータ微調整技術の急速な開発のための研究空間も提供されます。

効率的なパラメータ微調整とは、少数または追加のモデルパラメータを微調整し、事前トレーニング済みモデル(LLM)パラメータの大部分を固定することで、コンピューティングとストレージのコストを大幅に削減することを指します。同時に、完全なパラメータ微調整に匹敵するパフォーマンスも実現できます。効率的なパラメータ微調整方法は、場合によっては完全な微調整よりも優れたパフォーマンスを発揮し、ドメイン外のシナリオにもより適切に一般化できます。

効率的な微調整手法は、下の図に示すように、追加パラメータの追加 (A)、更新するパラメータの一部の選択 (S)、再パラメータ化の導入 (R) の 3 つのカテゴリに大まかに分けられます。 追加パラメータを追加する方法には、アダプタのような方法とソフトプロンプトの 2 つの主なカテゴリがあります。

一般的なパラメータ効率の良い微調整技術には、BitFit、プレフィックスチューニング、プロンプトチューニング、P-チューニング、アダプタチューニング、LoRA などがあります。次の章では、いくつかの主流のパラメータ効率の良い微調整方法について説明します。

一般的なパラメータの効率的な微調整技術と方法

BitFit/Prefix/Prompt 微調整シリーズ

ビットフィット

各タスクのフルセットを微調整するのは非常に効率的ですが、事前トレーニング タスクごとに固有の大きなモデルも生成されるため、微調整プロセス中に何が変更されたかを判断することが難しくなり、特にタスクの数が増えると、展開と保守が難しくなります。

理想的には、次の条件を満たす効率的な微調整方法が必要です。

上記の質問は、微調整プロセスが新しい機能の学習を導き、事前トレーニング済みの LM で学習された機能を公開できる範囲によって異なります。ただし、これまでの効率的な微調整方法である Adapter-Tuning と Diff-Pruning でも、上記の要件を部分的に満たすことができます。より小さなパラメータを持つスパースな微調整方法である BitFit は、上記のすべての要件を満たすことができます。

BitFit は、トレーニング中にバイアス パラメータまたはバイアス パラメータの一部のみを更新するスパースな微調整方法です。 Transformer モデルの場合、ほとんどのトランスフォーマー エンコーダー パラメーターは固定され、特定のタスクのバイアス パラメーターと分類レイヤー パラメーターのみが更新されます。関係するバイアス パラメータは、アテンション モジュールでのクエリ、キー、値の計算と複数のアテンション結果のマージに関連するバイアス、MLP レイヤーのバイアス、Layernormalization レイヤーのバイアス パラメータ、および事前トレーニング済みモデルのバイアス パラメータです (下図を参照)。

写真

PLM モジュールは、アテンションや FFN などの特定の PLM サブレイヤーを表します。図のオレンジ色のブロックはトレーニング可能なプロンプト ベクトルを表し、青色のブロックは固定された事前トレーニング済みモデル パラメータを表します。

Bert-Base/Bert-Large モデルでは、バイアス パラメーターはすべてのモデル パラメーターの 0.08% ~ 0.09% しか占めません。しかし、GLUE データセットに基づく Bert-Large モデルに対する BitFit、Adapter、および Diff-Pruning の効果を比較すると、パラメータ数が Adapter および Diff-Pruning の数よりはるかに少ない場合、BitFit は Adapter および Diff-Pruning と同等の効果があり、一部のタスクでは Adapter および Diff-Pruning よりもわずかに優れていることがわかりました。

実験結果では、完全なパラメータの微調整と比較して、BitFit の微調整では、ごく少数のパラメータのみを更新することで、複数のデータセットで良好な結果が得られることも示されています。完全なパラメータの微調整ほど優れているわけではありませんが、すべてのモデル パラメータを固定する Frozen メソッドをはるかに上回っています。同時に、BitFit トレーニングの前後のパラメータを比較すると、多くのバイアス パラメータ (キーの計算に関係するバイアス パラメータなど) はあまり変化していないことがわかります。クエリを計算し、特徴次元をNから4Nに拡大するFFN層(中間層)のバイアスパラメータの変化が最も顕著であることがわかります。この2種類のバイアスパラメータを更新するだけで、良好な結果が得られます。逆に、いずれか1つを固定すると、モデル効果が大幅に低下します。

プレフィックスチューニング

プレフィックス チューニング以前の作業は、主に個別のテンプレートを手動で設計するか、個別のテンプレートを自動的に検索することに重点が置かれていました。手動で設計されたテンプレートの場合、テンプレートの変更はモデルの最終的なパフォーマンスに特に影響します。単語の追加、単語の削除、または位置の変更は、比較的大きな変更を引き起こします。自動検索テンプレートのコストも比較的高く、同時に、以前の個別トークン検索の結果が最適ではない可能性があります。さらに、従来の微調整パラダイムでは、事前トレーニング済みのモデルを使用してさまざまな下流タスクを微調整し、微調整されたモデルの重みのコピーをタスクごとに保存する必要があります。一方で、モデル全体の微調整には長い時間がかかり、他方では大量のストレージスペースも消費します。上記の 2 つの点に基づいて、プレフィックス チューニングは固定の事前トレーニング済み LM を提案し、 LM にトレーニング可能なタスク固有のプレフィックスを追加します。これにより、異なるタスクに異なるプレフィックスを保存でき、微調整コストも小さくなります。同時に、このプレフィックスは実際には連続的に微分可能な仮想トークン (ソフト プロンプト/連続プロンプト) であり、個別のトークンよりも最適化され、結果も優れています。

では、プレフィックスとはどういう意味でしょうか?プレフィックスの役割は、モデルが x に関連する情報を抽出し、より適切に y を生成するようにガイドすることです。たとえば、要約タスクを実行したい場合、微調整後、プレフィックスは現在のタスクが「要約」タスクであることを理解し、モデルが x から重要な情報を抽出するようにガイドします。感情分類タスクを実行したい場合、プレフィックスはモデルが x 内の感情に関連する意味情報を抽出するようにガイドします。この説明はあまり厳密ではないかもしれませんが、プレフィックスの役割を大まかに理解することができます。

プレフィックスチューニングとは、トークンを入力する前にタスク関連の仮想トークンをプレフィックスとして構築し、トレーニング中にプレフィックス部分のパラメータのみを更新し、PLM 内の他のパラメータは固定することです。異なるモデル構造には異なるプレフィックスを構築する必要があります。

  • 自己回帰アーキテクチャモデルの場合:文の先頭にプレフィックスを追加して、z = [PREFIX; x; y] を取得します。適切なコンテキストは、LM を修正しながら次のコンテキストの生成をガイドできます (例:GPT3 のコンテキスト学習)。
  • エンコーダー/デコーダー アーキテクチャ モデルの場合: エンコーダーとデコーダーの両方がプレフィックスを追加するため、z = [PREFIX; x; PREFIX0; y] になります。エンコーダーは入力部分のエンコードをガイドするプレフィックスを追加し、デコーダーは後続のトークンの生成をガイドするプレフィックスを追加します。

写真

上部の微調整により、すべての Transformer パラメータ (赤いボックス) が更新され、各タスクのモデルの完全なコピーを保存する必要があります。下部のプレフィックス チューニングでは、Transformer パラメータが固定され、プレフィックス (赤いボックス) のみが最適化されます。

この方法は、実際には Prompt の構築と似ていますが、Prompt は人工的に構築された「明示的な」プロンプトであり、そのパラメータは更新できないのに対し、Prefixは学習可能な「暗黙的な」プロンプトである点が異なります。同時に、Prefix パラメータの直接更新によるトレーニングの不安定性とパフォーマンスの低下を防ぐために、Prefix レイヤーの前に MLP 構造が追加され、トレーニングが完了した後は Prefix パラメータのみが保持されます。また、アブレーション実験により、埋め込み層の表現力を調整するだけでは不十分で、パフォーマンスが大幅に低下することが確認されたため、各層にプロンプ​​トパラメータが追加され、大きな変更点となっています。

プレフィックス チューニングは便利に思えますが、次の 2 つの重大な欠点もあります。

迅速なチューニング

大規模モデルの全面的な微調整では、各タスクごとにモデルをトレーニングするため、オーバーヘッドと展開コストが高くなります。同時に、離散プロンプト方式(手動で設計されたプロンプトをモデルに追加する)は比較的コストがかかり、効果もあまり良くありません。プロンプトチューニングは、プロンプトを手動で設計するのではなく、バックプロパゲーションを通じてパラメータを更新することでプロンプトを学習します。同時に、モデルの元の重みを固定し、プロンプトパラメータのみをトレーニングします。トレーニング後、同じモデルをマルチタスク推論に使用できます。

写真

モデルをチューニングするには、各タスクの事前トレーニング済みモデル全体のタスク固有のコピーを作成する必要があります。下流のタスクと推論は、別々のバッチで実行する必要があります。プロンプト チューニングでは、各タスクごとに小さなタスク固有のプロンプトを保存するだけで、元の事前トレーニング済みモデルを使用して混合タスク推論が可能になります。

プロンプトチューニングは、プレフィックスチューニングの簡易版と見ることができます。タスクごとに独自のプロンプトを定義し、それを入力としてデータに連結しますが、入力層にプロンプ​​トトークンを追加するだけで、調整のために MLP を追加して難しいトレーニングの問題を解決する必要はありません。

実験を通じて、事前トレーニング済みモデルパラメータの数が増えるにつれて、プロンプトチューニング法が完全なパラメータ微調整の結果に近づくことがわかりました。同時に、プロンプトチューニングでは、同じタスクに対して異なるプロンプトをバッチでトレーニングする(つまり、同じ質問を複数の異なる方法で尋ねる)プロンプトアンサンブルも提案しました。これは、異なるモデルをトレーニングすることと同等であり、モデル統合よりもはるかに安価です。さらに、「プロンプト チューニング」の論文では、プロンプト トークンの初期化方法と長さがモデルのパフォーマンスに与える影響についても説明しています。アブレーション実験の結果は、ランダム初期化およびサンプル語彙を使用した初期化と比較して、クラス ラベル初期化を使用してモデルを初期化する場合、プロンプト チューニングの方が優れた結果が得られることを示しています。ただし、モデルパラメータのスケールが大きくなるにつれて、このギャップは最終的に解消されます。プロンプト トークンの長さが 20 前後のときでも、パフォーマンスはすでに良好です (20 を超えると、プロンプト トークンの長さを増やしても、モデルのパフォーマンスは大幅に向上しません)。同様に、モデル パラメータのスケールが大きくなるにつれて、このギャップも減少します (つまり、非常に大規模なモデルの場合、プロンプト トークンの長さが非常に短くても、パフォーマンスに大きな影響はありません)。

<<:  データ拡張のための 10 個の Python ライブラリ

>>:  インダストリー4.0におけるインテリジェントロボットの影響

ブログ    
ブログ    

推薦する

物理学界に嵐を巻き起こした室温超伝導の論文は、8人の共著者によって報告された後、ネイチャー誌によって撤回された。第一著者は調査中である。

多くの紆余曲折を経て、室温超伝導に関する熱狂は2023年末にようやく終焉を迎えた。 11月7日、ネイ...

コビオニクス、針を使わずにワクチンを投与する新しいロボットを開発

BGR によれば、注射針に対する恐怖は人口の少なくとも 10% を悩ませており、あらゆる種類のワクチ...

...

海雲傑迅は人工知能教育分野で総合的なサービスを提供するAI Goを立ち上げようとしている

[51CTO.com オリジナル記事] 今、業界で人気のテクノロジーは何ですか?それは間違いなく人工...

...

...

...

TensorFlow レビュー: 最高のディープラーニング ライブラリ、そして今も進化中

[51CTO.com クイック翻訳] バージョン r1.5 のリリースにより、Google のオープ...

...

AIは物理的なセキュリティ運用に高度な分析を活用しています

人工知能が徐々に物理セキュリティの分野に参入するにつれて、より高度なアクセス制御ソリューションが登場...

Baidu の計算生物学研究が Nature のサブジャーナルに掲載されました!スタンフォード大学やMITを上回る成果、製薬分野に進出

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

複合 AI: エンタープライズ AI の成功の鍵

最近、Dynatrace は、AI への投資が増加し続けるにつれて、「複合 AI」が企業による AI...