HUOXIU

大規模アプリケーションモデル構築に必須の知識(2)軽量ファインチューニング

編集者注:大規模モデルを実際に導入する際には、リソースの制約に直面する可能性があります。軽量な大規模モデルの微調整技術は、大規模な事前学習済み言語モデルを特定のドメインやタスクに適応させ、モデルサイズと計算要件を削減し、パフォーマンスと効率を向上させることができます。

前回の記事では、大規模言語モデルの主要なファインチューニング手法の概要を紹介しました。この記事では、プロンプトチューニングとプレフィックスチューニングに焦点を当て、大規模モデル向けの軽量なファインチューニング手法を紹介します。

翻訳はこちらです。お楽しみください!

この記事は、原著者の許可を得てBaihai IDPによって翻訳されました。翻訳の転載をご希望の場合は、お問い合わせください。

オリジナルリンク:

著者 |セバスティアン・ラシュカ博士

編纂者:岳陽

01プロンプトチューニング

プロンプトチューニングとは、入力プロンプトを変更することでモデルのパフォーマンスを向上させる手法です。例えば、英語の文章をドイツ語に翻訳したい場合、下の画像に示すように、モデルに複数の異なる方法で質問をすることができます。

これは、より良い出力を得るためにさまざまな入力プロンプトを試す、ハードプロンプトのチューニングの例です。

この場合、分割できない個別の入力トークンを直接変更するため、ハード プロンプト チューニングメソッドが使用されます。

翻訳者注:自然言語処理の分野では、テキストは一般的に分割され、文を個別の単語や句読点に分解して入力トークンとして扱います。各トークンは個別の意味単位を表し、モデルはこれらのトークンを用いて意味理解を行い、応答を生成します。

たとえば、「He​​llo, nice to meet you!」という文は、次のような個別の入力トークンに分解できます。

[「あなた」、「こんにちは」、「、」、「とても」、「素敵」、「会えて」、「あなた」、「!」]

これらの離散トークンは、モデルの学習や対話応答の生成のための入力として使用できます。離散入力トークンを使用する場合は、モデルが処理して学習できるように、対応するベクトル表現(単語埋め込みなど)に変換する必要があることに注意してください。

ハードプロンプトチューニングとは対照的に、ソフトプロンプトチューニング(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