この記事は、原著者の許可を得てBaihai IDPによって翻訳されました。翻訳の転載をご希望の場合は、お問い合わせください。 オリジナルリンク: 著者 |セバスティアン・ラシュカ博士 編纂者:岳陽 01プロンプトチューニングプロンプトチューニングとは、入力プロンプトを変更することでモデルのパフォーマンスを向上させる手法です。例えば、英語の文章をドイツ語に翻訳したい場合、下の画像に示すように、モデルに複数の異なる方法で質問をすることができます。 これは、より良い出力を得るためにさまざまな入力プロンプトを試す、ハードプロンプトのチューニングの例です。 この場合、分割できない個別の入力トークンを直接変更するため、ハード プロンプト チューニングメソッドが使用されます。
ハードプロンプトチューニングとは対照的に、ソフトプロンプトチューニング(Lester et al., 2021[1])は、入力トークンの埋め込みを、バックプロパゲーションによって最適化できるトレーニング可能なテンソルに接続し、ターゲットタスクでのモデルのパフォーマンスを向上させます。 擬似コードは次のとおりです。 ソフトプロンプトの概念を示す擬似コード 離散テキスト プロンプトとは異なり、ソフト プロンプトはバックプロパゲーションを通じて取得されるため、ラベル付けされたデータセットからの損失フィードバックに基づいて調整できます。 フルファインチューニングと比較すると、ソフトプロンプトチューニングはパラメータ効率が高くなりますが、下の図に示すように、ソフトプロンプトチューニングを使用したモデルのパフォーマンスはわずかに劣る可能性があります。 この図はソフトプロンプトを提案した論文から引用したものです。 一方、モデルパラメータが 11B の場合、上図に示すように、ソフトプロンプトチューニングによって完全な微調整のパフォーマンスレベルを達成できます (LLaMA モデルの最小パラメータサイズは 7B、最大パラメータサイズは 65B であることに注意してください)。 ストレージ効率 大規模なモデルを特定のタスクに適用し、事前学習済みモデルを微調整する必要がある場合、通常はタスクごとにモデル全体のコピーを保存する必要があります。しかし、プロンプトチューニングでは、タスクごとにタスク固有の小さなソフトプロンプトを保存するだけで済みます。例えば、T5「XXL」モデルの場合、微調整されたモデルのコピーごとに110億個のパラメータが必要です。一方、プロンプト長を5トークン、埋め込みサイズを4096次元と仮定すると、プロンプトチューニングではタスクごとに20,480個のパラメータしか必要ありません。これは、パラメータ数を5桁以上削減することに相当します。 02プロンプトチューニングからプレフィックスチューニングへ現在、プレフィックスチューニングと呼ばれる、独自に開発された特別なプロンプトチューニング手法が存在します(Li & Liang 2021[2])。この手法の考え方は、ソフトプロンプトチューニングのように入力埋め込みを追加するのではなく、各Transformerブロックに学習可能なテンソルを追加するというものです。同時に、ソフトプロンプト埋め込みは、全結合層(2層と非線形活性化関数を持つ小型の多層パーセプトロン)を介して取得されます。
以下の図は、通常の Transformer ブロックとプレフィックスで変更された Transformer ブロックの違いを示しています。 プレフィックスチューニングの図 上の図における「全結合層」とは、小さな多層パーセプトロン(2つの全結合層と非線形活性化関数から構成される)を指している点にご注意ください。これらの全結合層は、ソフトプロンプトをTransformerブロックの入力と同じ次元の特徴空間に埋め込み、2つの層を接続する際の互換性を確保します。 Python 疑似コードを使用すると、通常の Transformer ブロックとプレフィックスで変更された Transformer ブロックの違いを示すことができます。 プレフィックスチューニングの擬似コード図 プレフィックスチューニングを提案した論文によると、この手法は、わずか0.1%のパラメータを学習させるだけで、全層をファインチューニングした場合と同等のモデル性能を達成しています(この実験はGPT-2モデルに基づいています)。さらに、ほとんどの場合、プレフィックスチューニングは全層をファインチューニングした場合よりも優れた性能を発揮します。これは、プレフィックスチューニングではパラメータ数が少なくなるため、小規模な対象データセットにおける過学習を軽減できるためと考えられます。 LiとLiangが発表したプレフィックスチューニングに関する論文の注釈付き図 最後に、推論中のソフトプロンプトの使用について明確にするために、以下の点にご留意ください。ソフトプロンプトを学習した後、特定のタスクに合わせてモデルを微調整する際には、ソフトプロンプトをプレフィックスとして付与する必要があります。これにより、モデルはそのタスクに対する応答をカスタマイズできます。さらに、複数のソフトプロンプトをそれぞれ異なるタスクに対応させ、推論中に適切なプレフィックスを付与することで、特定のタスクを最適に処理することができます。 03プレフィックスとプロンプトの調整パフォーマンスの観点から、ソフトプロンプトチューニングとプレフィックスチューニングのどちらが優れているのでしょうか?残念ながら、ソフトプロンプトチューニングとプレフィックスチューニングはそれぞれ独立して開発され、同時にリリースされているため、現時点では直接的なパフォーマンス比較は行われていません。また、それぞれの論文にも直接比較を示す記述がないため、この2つの手法を比較することはできません。さらに、パラメータ効率の高い大規模言語モデル(LLM)に関する最近の文献をレビューしたところ、両方の手法を取り入れたベンチマークは見つかりませんでした。 プレフィックスチューニングは、入力シーケンスにタスク固有のプレフィックスを挿入することでモデルのより多くのレイヤーを変更するため、より多くのパラメータの微調整が必要になります。一方、ソフトプロンプトチューニングは入力プロンプト埋め込みの微調整のみを行うため、パラメータの更新回数が少なくなります。そのため、ソフトプロンプトチューニングはプレフィックスチューニングよりもパラメータ効率が高くなる可能性がありますが、対象タスクの範囲が広くなるという制約もあります。 パフォーマンスの観点から見ると、プレフィックスチューニングの方がパフォーマンスが向上すると期待するのは妥当です。プレフィックスチューニングでは、より多くのモデルパラメータを調整して、より幅広い新しいタスクに適応できるためです。しかし、これは計算リソースの消費量の増加と過学習のリスクの増加を招く可能性があります。一方、ソフトプロンプトチューニングは計算効率が高い可能性がありますが、パラメータ数が限られているため、モデルのパフォーマンスが制限される可能性があります。 04要約この記事では、ソフトプロンプトチューニングとプレフィックスチューニングという2つの軽量なファインチューニング手法を紹介します。完全なファインチューニングと比較して、これらの2つの手法では調整するパラメータの数が少なくて済みます。 開発者にとっては、プレフィックス チューニングで必要な内部トランスフォーマー ブロックを変更するのではなく、入力埋め込みを変更するだけで済むため、ソフト プロンプト チューニングの方が魅力的です。 これらの手法を使用して大規模なモデルを微調整する前に、アダプタ、LLaMA アダプタ(通常のアダプタに関連していますが異なるもの)、低ランク適応(LoRA)など、他のより興味深いパラメータ効率の高い微調整手法に注目することをお勧めします。これらの手法はより多くのオプションを提供し、特定のニーズに合わせてより適切に調整できます。 終わり https://www.zhihu.com/people/lu-yi-lei-59 |