プレフィックス チューニング: 生成のための継続的なプロンプトの最適化
序文
LLM パラメータ有効性学習のトロイカの 1 つ (他の 2 つは LoRA とアダプタ)、プロンプトに触発された ACL 2021 のプレフィックスチューニングは、非常に少ないパラメータを必要とする新しい微調整パラダイムを提案しています。完全な微調整のパフォーマンスは、記事は理解しやすいですが、その背後にある原理はさらに研究する価値があります~
論文: https://arxiv.org/pdf/2101.00190.pdf
コード: https://github.com/XiangLi1999/PrefixTuning
概要
完全な微調整にはすべてのパラメータを保存する必要がありますが、この論文では、言語モデルのパラメータを固定し、プレフィックスと呼ばれる一連の連続タスク固有のベクトルを最適化できるプレフィックス チューニングを提案します。実験部分では、GPT-2 が微調整され、同等のパフォーマンスを得るためにパラメーターの 0.1% のみが変更されます。これは、リソースが少ないシナリオでは完全な微調整よりも優れています。
1. はじめに
完全な微調整にはコストがかかります。たとえば、GPT-2 には 7 億 7400 万個のパラメータがあり、GPT-3 には 175B 個のパラメータがあります。
自然な解決策は、ほとんどのパラメータをフリーズし、少数のパラメータのみを調整する軽量微調整です。たとえば、アダプター チューニングでは、タスク固有のレイヤーをモデル レイヤーの中央に挿入し、パラメーターの 2 ~ 4% を追加するだけで、同等のパフォーマンスが得られます。
GPT-3 などの大規模な言語モデルの場合、パラメーターを変更せずにコンテキスト学習を使用できますが、入力の長さによって制限されるため、小規模なトレーニング セットにのみ適しています。
上図の下部に示すように、プレフィックス チューニングでは、一連の連続したタスク固有のベクトルが入力に追加されます。これらのプレフィックス ベクトルは実際のエンティティ トークンにマッピングできず、「仮想トークン」として理解できます。微調整プロセスでは、追加されたプレフィックス ベクトルのみが更新されるため、オーバーヘッドが削減されます。
完全な微調整とは異なり、プレフィックス調整はモジュール式であり、LLM がマルチタスクをサポートできるように、上流のプレフィックスをトレーニングすることで未変更のモデルをガイドできます。さらに、このアーキテクチャは、複数のユーザー/タスクのリクエストを 1 つのバッチでサポートできます。
実験部分では、プレフィックス調整は完全な微調整とほぼ同じ効果を達成しており、リソースが少ないシナリオでは完全な微調整よりも優れています。
2. 関連作品
2.1 自然言語生成の微調整
微調整は、自然言語生成の分野でモデルをトレーニングするための一般的なパラダイムとなっています。
2.2 軽量化の微調整
軽量微調整メソッドの中心となるアイデアは、ほとんどのパラメーターをフリーズし、少数のパラメーターのみをトレーニングして、可能な限り元の効果を実現することです。方法には、タスク固有のパラメータ マスクを調査すること、アダプタなどのパラメータをトレーニングできるモジュールを挿入することが含まれますが、私たちの方法では、この方法と比較してさらにパラメータを 30 分の 1 に削減します。
2.3 プロンプトの表示
一般的なプロンプトは、プロンプトを手動で設計してモデル生成を調整することです。ただし、この記事のプロンプトは連続したプレフィックスであり、より表現力があり、タスク固有のプレフィックスを最適化できます。
2.4 制御可能な発電
制御可能な生成は、事前トレーニングされた言語モデルが文レベルの属性と一致するようにガイドすることを目的としています。制御プロセスはトレーニング時またはデコード時に実行できますが、生成されたコンテンツに対してきめ細かい制御を実装する直接的な方法はありません。表からテキストへの変換、要約タスクなど。
2.5 P* チューニング
すべての P チューニングは、連続的なプレフィックスまたはプロンプトを最適化するという考えに基づいています。ソフト キューの調整は、個別のキューに最適化された以前の作業よりも優れたパフォーマンスを発揮します。プロンプトチューニングの取り組みにより、モデルのサイズが大きくなるにつれて、完全な微調整と P* チューニングの間のパフォーマンスの差がなくなることがわかりました。
3. 問題提起
上図の右側のテキスト要約タスクなど、入力がテキストで出力が一連のトークンであるテキスト生成のシナリオを考えてみましょう。
3.1 自己回帰LM
自己回帰モデルは上の図の上部に示されています、z = [ x ; y ] z=[x;y]z=[ x ;y ]は入力と出力の連結の結果、タイム ステップiiiの活性化ベクトルはhi ∈ R d h_i \in \mathbb{R}^dh私は∈Rd,其中 h i = [ h i ( 1 ) ; . . . ; h i ( n ) ] h_i = [h_i^{(1)};...;h_i^{(n)}] h私は=[ h私( 1 );... ;h私( n )]は、現在のタイム ステップにおけるすべてのアクティベーション レイヤーの連結結果です。こんにちは、こんにちはh私はは次のように計算されます:
hi = LM ϕ ( zi , h < i ) h_i=\mathrm{LM}_{\phi}(z_i,h_{<i})h私は=LMϕ( z私は、h<私)
こんにちは、h_ih私はの最後の層は、次のトークンの分布に使用されますp ϕ ( zi + 1 ∣ h ≤ i ) = Softmax ( W ϕ hi ( n ) ) p_{\phi}(z_{i+1}|h_{\ le i } )=\mathrm{softmax}(W_{\phi}h_i^{(n)})pϕ( z私+ 1∣ h≤私)=ソフトマックス( Wϕh私( n ))。
3.2 エンコーダ/デコーダのアーキテクチャ
また、上図の下段に示すように、入力をエンコーダで符号化し、出力を自己回帰デコーダで予測するBARTなどのエンコーダ・デコーダアーキテクチャモデルも利用できます。
3.3 微調整
境界値を与えます:
max ϕ log p ϕ ( y ∣ x ) = max ϕ ∑ i ∈ Y idx log p ϕ ( zi ∣ h < i ) \max _{\phi} \log p_{\ 。 phi}(y\mid x)=\max _{\phi}\sum_{i \in Y_{\mathrm{idx}}} \log p_{\phi}\left(z_{i}\mid h_{<私}\右)ϕマックスログ_pϕ( y∣× )=ϕマックスi ∈ Yイデックス∑ログ_pϕ( z私は∣h<私)
4. プレフィックスチューニング
4.1 直感
コンテキストはモデルをガイドして目的のコンテンツを生成できますが、離散自然言語は計算的に困難です。したがって、制限された離散プロンプトよりも表現力の高い連続単語埋め込みを最適化することを検討できます。さらに、プレフィックス調整はネットワークのより深い表現を直接変更できるため、ネットワークの深さにわたる長い計算パスを回避できます。 (それぞれのレイヤーが両方あるため)。
4.2 方法
自己回帰モデルの場合、z = [ PREFIX ; x ; y ] z=[\rm{PREFIX};x;y] を調整します。z=[プレフィックス;× ;y ]、エンコーダ/デコーダ アーキテクチャの場合、z = [ PREFIX ; x ; PREFIX ' ; y ] z=[\rm{PREFIX};x;\rm{PREFIX}';y] に調整されます。z=[プレフィックス;× ;プレフィックス' ;上の図に示すように、 y ] 。P idx \rm{P_{idx}}Pイデックスプレフィックス接頭辞の添字を表します。この時点ではhi h_ih私は計算例:
hi = { P θ [ i , : ] 、 i ∈ P idx LM ϕ ( zi , h < i ) 、そうでない場合 h_{i}=\left\{\begin{array}{ll} P_{ \theta}[i,:], & \text { if } i \in \mathrm{P}_{\mathrm{idx}} \\ \mathrm{LM}_{\phi}\left(z_{i} , h_{<i}\right), & \text { それ以外の場合は } \end{array}\right。h私は={
P私[私、: ] 、LMϕ( z私は、h<私)、 もし 私が∈Pイデックスそれ以外の場合
微調整する場合、プレフィックス パラメーターのみがグラデーションで更新されます。
4.3 P θ P_{\theta}のパラメータ化P私
P θ P_{\theta}を直接更新P私最適化が不安定になり、パフォーマンスが低下します。したがって、大規模なプレフィックス ニューラル ネットワークMLP θ \rm MLP_{\theta}を通じてML P私より小さい行列P θ ' P_{\theta}' は次のように構成されます。P私「グラフの場合P θ [ i , : ] = MLP θ ( P θ ' [ i , : ] ) P_{\theta}[i,:]=\mathrm{MLP}_{\theta}(P_{ \theta }'[i,:])P私[私、:】=MLP私( P私「[私、:])。このようにして、訓練可能なパラメータはP θ ' P_{\theta}'P私「和MLP θ \mathrm{MLP}_{\theta}MLP私。トレーニング後、プレフィックス パラメータP θ P_{\theta}のみが保存されますP私。
5. 実験のセットアップ
5.1 データセットとメトリクス
以下の表に示すように、著者は 3 つのデータセットで表からテキストへのタスクを評価し、XSUM データセットで要約タスクを評価しました。
5.2 方法
表からテキストへの生成タスクについて、著者は完全微調整、FT-top2、およびアダプター調整の 3 つの方法を比較しました。さらに、各データセットの SOTA メソッドも比較されます。
5.3 アーキテクチャとハイパーパラメータ
表からテキストへの生成タスクでは、作成者はGPT − 2 MEDIUM \mathrm{GPT-2_{MEDIUM}}を使用します。GPT−2ミディアム和GPT − 2 LARGE \mathrm{GPT-2_{LARGE}}GPT−2大モデル、テキスト要約タスクの場合は、BARTLARGE \mathrm{BART_{LARGE}}を使用しますバート_大モデル。
ハイパーパラメータの設定については付録を参照してください。トレーニングでは、時間や空間の効率に関係なく、プレフィックス チューニングの方がわずかに優れています。
6. 主な結果
6.1 表からテキストへの生成
実験によると、タスク固有のパラメーターの 0.1% を更新するだけで、他の軽量ベースラインを上回り、完全な微調整に匹敵するパフォーマンスを達成できることがわかりました。
トレーニング可能なパラメータが 0.1% に調整されると、プレフィックス調整が ADAPTER よりも大幅に優れていることがわかります。さらに、DART で良好なパフォーマンスが得られることは、プレフィックス調整がさまざまなドメインの多数のリレーショナル テーブルに一般化できることを示しています。
一般に、プレフィックス チューニングは自己回帰モデルに適用され、効率的で時間の節約になります。また、モデルの規模が誇張されてもパフォーマンスは向上する可能性があり、より大きなモデルに拡張できる可能性があることを示しています。
6.2 要約
要約タスクの結果が上の表に示されています。プレフィックス調整と完全な微調整の間にはまだギャップがあり、テキスト生成タスクの結果とは異なります。理由はいくつかあります:
- XSUM データセットは、3 つの表からテキストへのデータセットよりも 3 倍大きくなります。
- 入力記事は表からテキストへの入力より 17 倍長くなります。
- 要約タスクは、重要な内容をテキストから選択する必要があるため、より複雑になります。
6.3 ローデータ設定
低リソースのシーン設定をより体系的に調査するために、作成者はデータ セットをサブサンプリングして、サイズ 50、100、200、および 500 のデータを取得しました。データの各セットは 5 つの異なるデータ セットをサンプリングしました。
上の図の右側では、リソースが少ないシナリオでのプレフィックス調整のパフォーマンスが完全な微調整のパフォーマンスよりも優れていることがわかりますが、データ セットが増加するにつれてその差は減少します。
6.4 外挿
ここでは、汎化パフォーマンス、つまり目に見えないトピックについて実行する能力について検討します。作成者は、一部のカテゴリがテスト中にのみ表示されるように、データ セットを再分割しました。表からテキストへのデータ セットは WebNLG を分割し、サマリー タスクはデータ セットをニュースからスポーツ (ニュースに関するトレーニング、スポーツに関するテスト) とニュース内のデータ (一部の分野に関するトレーニング、他の分野に関するテスト) に分割します。 。
結果は表 6.1 中段の U 部分と上の表に示されており、完全な微調整よりもプレフィックス チューニングのパフォーマンスが優れています。
7. 本質的評価
7.1 プレフィックスの長さ
プレフィックスが長いほどトレーニング可能なパラメーターが増加していることを示し、それに応じてパフォーマンスが向上します。
異なるタスクには異なるプレフィックス長のしきい値があり、しきい値を超えると過剰適合が容易になります。
7.2 フル vs 埋め込みのみ
上の表によると、微調整埋め込みだけでは表現力が十分ではありませんが、離散ヒント最適化よりは優れていることがわかります。モデルの表現能力には、離散ヒント < 埋め込みのみ < プレフィックス調整のルールがあります。
ここでの完全とは、モデルの各レイヤーの前に接頭辞を追加することを意味しますが、埋め込み専用は埋め込みを入力する前に接頭辞を追加するだけであり、表現力が十分ではありません。
7.3 プレフィックスチューニングとインフィックスチューニング
さらに、著者らは、シーケンス内のトレーニング可能なパラメーターの位置の影響を調査しています。上表の下段は Infix の結果ですが、prefix-tuning より若干性能が劣りますが、これは前者が y にのみ影響を与えるのに対し、後者は x と y に影響を与えることが考えられます。
7.4 初期化
ランダムな初期化は、低リソースのシナリオでは結果に大きな影響を及ぼし、パフォーマンスが低く、分散が大きくなります。実際の初期化 (特にタスク関連) を使用すると、生成速度を向上させることができます。完全なトレーニング シナリオでは、初期化は効果がありません。
7.5 データ効率
さらに、著者は、異なるデータ サイズでのプレフィックス チューニングとフル ファイン チューニングの比較も行いました。
データの 20% を超える場合、プレフィックス チューニングは完全な微調整よりも優れています。データ スケールの 10% の場合、ランダムな初期化を伴うプレフィックス チューニングは完全な微調整と同様であるため、パフォーマンスを向上するには初期化スキルが必要です。
8. ディスカッション
パーソナライゼーション
多数のタスクが独立したトレーニングを必要とし、ユーザーのプライバシーの問題に直面している場合は、モジュール式アプローチであるプレフィックス チューニングを使用して、ユーザー プレフィックスを追加または削除することでユーザーを柔軟に追加および削除できます。
ユーザー間のバッチ処理
同じパーソナライゼーション設定の下で、プレフィックス チューニングによりユーザー リクエストのバッチ処理、つまりユーザー入力の前にパーソナライズされたプレフィックスを追加できるようになり、効率が向上します。
プレフィックスチューニングの誘導バイアス
LMパラメータを保持することは、目に見えない領域に一般化するのに役立ちますが、それをさらに改善する方法が問題です。プレフィックス調整とアダプターはどちらも LM の整合性を維持し、Transformer のアクティベーション層に影響を与えます。しかし、前者は同等のパフォーマンスを維持するために必要なパラメータが少なく、プレフィックス調整により事前学習された LM が可能な限りそのままに保たれると著者らは主張しています。
概要を読む
LLM パラメータの有効性に関する古典的な記事として、プレフィックス チューニングには明確なアイデア、シンプルな方法、そして驚くべき結果が記載されています。著者は、プロンプトのアイデアを利用し、モデルの各レイヤーの前にトレーニング可能なプレフィックス パラメーターを追加し、トレーニング中に他のパラメーターをフリーズします。各レイヤーにプレフィックスを追加するこの方法は、次のシーケンスの各レイヤーとまったく同じです。命令の微調整はレイヤーごとに行われるため、効果は顕著です。実験部分では、2 つのシナリオのタスクが最初に完全な微調整とアダプターと比較され、次にプレフィックスの位置、プレフィックスの長さ、低リソース シーンの設定が比較されます。 2 つの NLP タスクと 4 つのデータセットについてのみ実験を行っているため、より多くのタスクについて比較できれば、より説得力が高まるでしょう。さらに、作成者は、プレフィックスを追加することでトークン シーケンスの長さがさらに圧縮されるという制限を無視しています。最後に、もう 1 つの個人的な考えですが、プレフィックスの調整プロセスを視覚化し、プレフィックスがどのように変化するか、微調整プロセスに実際にどれだけのパラメーターが関与しているかを観察できれば、最適な長さの範囲を知ることができます。はい、もちろんこれもタスクに関連しています。