- API ドキュメント
- CLI
- 連携ガイド
- ブログ
- 機械が単語を理解する方法:NLPに埋め込むためのガイド
- トランスフォーマーによるプロンプトベースの学習
- 効率的な変圧器II:知識蒸留と微調整
- 効率的な変圧器I:注意メカニズム
- 階層的な教師なしインテントモデリング:トレーニングデータなしで価値を得る
- Communications Mining による注釈バイアスの修正
- アクティブ ラーニング: より優れた ML モデルを短時間で実現
- それはすべて数字にあります-メトリックを使用してモデルのパフォーマンスを評価します
- モデルの検証が重要な理由
- 会話型データ インテリジェンスのための Communications Mining と Google AutoML の比較
トランスフォーマーによるプロンプトベースの学習
Communications Mining の機械学習モデルは Transformer と呼ばれるアーキテクチャを使用しており、ここ数年、一般的な自然言語処理 (NLP) タスクの大部分で最先端の成果を上げています。 頼りになるアプローチは、事前にトレーニングされたTransformer言語モデルを採用し、関心のあるタスクで微調整することでした。
最近では、人気が高まっている有望な方法のグループである「プロンプト」を検討しています。 これには、事前トレーニング済みの言語モデルが解釈して完了するために、自然言語でタスクを直接指定することが含まれます。
プロンプトベースのメソッドには大きな潜在的な利点があるため、それらを使用する必要がありますか? この投稿では、次のことを行います。
- 従来の微調整とプロンプトの違いを説明します。
- いくつかの一般的なプロンプトベースの方法がどのように機能するかの詳細を説明します。
- プロンプトベースの方法の長所と短所について話し合い、それらを使用するかどうかに関する推奨事項を提供します。
過去数年間で、NLPの分野は、 word2vec や GloVe などの事前トレーニング済みの静的単語埋め込みの使用から、 BERT や GPT-3などの大規模なTransformerベースの言語モデルの使用に移行しました。
これらの言語モデルは、テキストのシーケンスの意味的意味をエンコードできるようにすることを目的として、注釈なしのデータを使用して最初に事前トレーニングされます(例: 文章/文書)。 事前トレーニングの目標は、一般的に下流のタスクに役立つ表現を学習することです。
事前トレーニングが完了すると、言語モデルは通常、ダウンストリームタスク用に微調整されます(つまり、事前トレーニングされたパラメーターはさらにトレーニングされます)。 インテント認識、センチメント分類、名前付き一般フィールド認識など 微調整プロセスには注釈付きのトレーニング データが必要であり、モデルはタスクごとに個別に微調整されます。
事前トレーニング
トランスフォーマーは、最初にテキストのシーケンス内の各単語を「埋め込み」と呼ばれる数値のベクトルとしてエンコードすることによって機能します。 次に、埋め込みレイヤーの後に一連のアテンション レイヤーが続き、モデルのシーケンスの内部表現を構築するために使用されます。 最後に予測層があり、その目的関数は使用される事前トレーニングの種類によって異なります。
変圧器は、教師なしの方法で事前にトレーニングされています。 この手順は、ほとんどの場合、次の 2 種類のトレーニングのいずれかを使用して行われます。
- マスクされた言語モデリング (図 1 に例を示します)
- ランダムに選択された一部の単語がシーケンスから削除され、不足している単語を予測するようにモデルがトレーニングされます。
- 次の単語予測 (図 2 に例を示します)
- モデルは、シーケンス内の各単語を、それより前の単語を条件として予測する必要があります。
微調整
モデルの事前トレーニングが完了すると、下流の教師ありタスク (例: 意図認識)。 これには通常、シーケンスの最終ステップ(または表現の平均)で表現を取得し、それを小さなフィードフォワードネットワークに通して予測を行うことが含まれます(例については図3を参照)。 ほとんどの場合、事前トレーニング済みの言語モデルとフィードフォワード モデルの両方のパラメーターは、微調整プロセス中に更新されます。
ダウンストリームタスクを実行するための事前トレーニング済みの言語モデルがあるとします。 言語モデルの表現をタスクを解決するための別のモデルへの入力として使用する代わりに(前述のように)、自然言語に「プロンプト」を与えて空白を埋めたり、シーケンスを完了させたりすることで、自然言語をモデル化する機能を直接使用できます(例を図4に示します)。
プロンプトで例を提供して、タスクの完了方法をモデルに示すこともできます (例については、図 5 を参照してください)。 これは K ショット学習として知られており、 K は提供された例の数を指します。 これは、図4がゼロショット学習の例であることを意味します。
プロンプトを使用する場合でも、モデルを微調整できますが(上記と同じ方法で)、以下に示すように、これは必要ありません。
このセクションの残りの部分では、いくつかの一般的なプロンプトベースの方法を確認します。より包括的なカバレッジについては、この 調査ペーパー を参照してください。
GPT-3
GPT-3 は、大規模な Transformer ベースの言語モデルであり、 Common Crawl データセットのフィルター処理されたバージョンで次の単語予測目標を使用してトレーニングされます。 GPT-3は、非常に高品質のテキストシーケンスを生成することで有名であるだけでなく、微調整なしで、ゼロショット、ワンショット、および少ショット(10K100)設定で監視タスクを実行するためにも使用されます。 著者らは、さまざまなサイズのモデルをトレーニングし、最大のモデルは1,750億個のパラメーターを持っています。
全体として、GPT-3はゼロショットとワンショットの設定で強力な結果を達成します。 数ショットの設定では、大規模な注釈付きデータセットで微調整されている場合でも、最先端のモデルよりもパフォーマンスが向上する場合があります。 ほとんどのタスクでは、GPT-3のパフォーマンスは、モデルのサイズとプロンプトに表示される例の数の両方で向上します。
ただし、特定のタスク、特にテキストの複数のシーケンスの比較を伴うタスクにも苦労します。 これらが含まれます:
- 自然言語推論
- モデルには2つの文が与えられ、2番目の文が最初の文に対して中立であるか、矛盾するか、中立であるかを判断する必要があります。
- 読解
- モデルには段落が与えられ、それに関する質問に答える必要があります。
著者らは、これはGPT-3が次の単語予測のために、すなわち(双方向ではなく)左から右への方法で訓練されているためであると仮定している。
パターン活用トレーニング
特定のタスクに対して、 パターン活用トレーニング (PET) は、マスクされた言語モデリング目標で事前にトレーニングされた言語モデルに供給される、それぞれが正確に 1 つのマスク トークンを持つ一連のプロンプトを定義します。 PETプロセスは次のように機能します。
- プロンプトごとに個別の言語モデルを微調整し、タスクのモデルのアンサンブルを作成します。
- この微調整されたモデルのアンサンブルを使用して、 知識蒸留と同様の方法で、注釈のないデータポイントのセットの「ソフト」ラベルを生成します。
- これらのソフトラベルを使用して、上記の微調整セクションで定義された方法で最終的な言語モデルを微調整します(つまり、 プロンプトを使用しない)。
PETは 複数のマスクトークンで動作するように拡張されており、上記の手順2と3がスキップされている場合でもうまく機能します(つまり、手順1の微調整されたモデルのアンサンブルが最終モデルとして直接使用されます)。 著者らは、 ALBERT を基本マスク言語モデルとして使用し、32ショット設定でPETを評価します。 SuperGLUEベンチマークのほとんどのタスクで、GPT-3を上回りながら、パラメーターの数は0.1%しかありません。
迅速なチューニング
これまで見てきた方法とは異なり、 プロンプトチューニング はモデルに供給されるプロンプトを手動で設計しません。 代わりに、埋め込みレイヤーでシーケンスに直接付加される追加の学習可能な埋め込みを使用します。 事実上、これにより、自然言語でプロンプトを記述するステップがスキップされ、代わりにモデルが埋め込みレイヤーで直接最適なプロンプトを学習できるようになります。
プロンプト チューニングのアプローチ (図 6 参照) は、事前トレーニング済みの T5 言語モデルに基づいています。 これは、翻訳を実行するように設計された元のトランスフォーマーに似ています。 T5モデルには2つのコンポーネントがあります。
- エンコーダーは、自己注意メカニズムを使用して入力シーケンスをベクトル表現にマップし、学習可能なプロンプト埋め込みが最初のレイヤーに挿入されます。
- デコーダーは、再びアテンション メカニズムを使用して、エンコーダー表現に基づいて例を分類するテキストを生成します。
モデルはタスクごとに完全な注釈付きデータセットで微調整されますが、プロンプト埋め込みのみが更新されます(パラメーターの大部分を含むモデルの残りの部分は、事前トレーニング後にフリーズされます)。 プロンプトチューニングは、数ショットのGPT-3を大幅に上回り、最大のプロンプトチューニングモデルはフル微調整のパフォーマンスに匹敵します。
実用的な観点から見ると、プロンプトベースのメソッドの最大の利点は、通常、非常に少量の注釈付きデータでうまく機能することです。 たとえば、GPT-3を使用すると、注釈付きの例を1つだけで特定のタスクで最先端のパフォーマンスを実現できます。 GPT-3のサイズのモデルを多くの設定で実行することは実用的ではないかもしれませんが、PET法を使用すると、はるかに小さいモデルで数ショットの設定でGPT-3を上回っています。
モデリングの観点からは、プロンプトを使用することは、従来の微調整と比較して、ダウンストリームタスクに事前トレーニング済みの言語モデルを活用するためのより自然な方法であると主張することができます。 これは、プロンプトを使用する場合、言語モデルを使用してタスクを解決するテキストを生成するためです。これは、事前トレーニング手順で実行するようにトレーニングされたものでもあります。 対照的に、従来の微調整(図3)は、事前学習手順とはまったく異なる目的関数を持つ別のモデルを使用するため、下流のタスクに言語モデルを使用するための直感的ではない方法と見なすことができます。
プロンプトベースの学習のデメリット
プロンプトベースのメソッドは、注釈付きの例がほとんどないタスクでうまく実行できるという点で多くの可能性を示していますが、いくつかの欠点もあります。 第一に、言語モデルは 「幻覚」を起こしやすい、つまり、無意味、偏見、または不快なテキストを生成する可能性があります。 これにより、このようなモデルを実際の設定で使用できなくなる可能性があります。 言語モデルによって生成されるテキストを 制約 することは可能ですが、タスクによっては、パフォーマンスを維持しながら適切な制限のセットを常に指定できるとは限りません。
これらのメソッドの多くに関するもう1つの欠点は、プロンプト自体が手動で設計されていることです。 これはパフォーマンスの点で最適ではない可能性が高いだけでなく、最適なプロンプト自体を選択するには、注釈付きの検証データが必要です。 PET はプロンプトのアンサンブルを使用してこの問題を回避しますが、プロンプトごとに個別の言語モデルを微調整する必要があります。 「ソフト」プロンプトメソッド(プロンプトチューニングなど)は、手動で設計されたプロンプトを必要としませんが、代わりにより大きなトレーニングデータセットを必要とします。
上記の GPT-3 や最近の PaLM モデルなどのメソッドでは、注釈付きの例を自然言語プロンプトの一部として挿入し、言語モデル自体を微調整しません。 これは、数ショットの学習設定では非常にうまく機能しますが、注釈付きの例のセットが多数ある場合は、最適ではない可能性があります。 これは、最大シーケンス長に達する前にプロンプトに挿入できる例の数が少ないためです。これにより、モデルは少数のショットの学習のみを実行するように制限されます。
この投稿では、事前トレーニング済みの言語モデルが解釈して完了するために、自然言語でタスクを直接指定することを含む、プロンプトベースのメソッドについて説明しました。
プロンプトは、注釈付きのトレーニング例がほとんどなく、強力なパフォーマンスを達成する上で多くの可能性を示しています。 ただし、これらの手法は、多くの場合、手作業で設計されたプロンプトに依存しており、幻覚を起こしやすいため、実際の設定で使用するのは安全ではありません。 したがって、これらの方法は有望であるように見えますが、それらを実用的に使用するために行われるべき研究はまだたくさんあります。
Communications Miningでは、迅速な方法を安全に使用できるようにし、正確な精度の見積もりを提供し、構造化された実用的なデータを生成するための研究を積極的に行っています。 この研究の結果は近日公開予定です。
Communications Mining を会社で試してみたい場合は、 試用版 に登録するか 、デモをご覧ください。