GPT-NeoとHugging Face Accelerated Inference APIを使用したFew-Shot Learning

Hugging Faceは、GPT-Neoと🤗 Accelerated Inference APIを使用してFew-Shot Learningをどのように実装できるかを詳しく説明しており、開発者が最小限のラベル付きデータでNLPタスクを実行できるようにしています。このアプローチは、推論時にいくつかの例を提供することでモデルの予測をガイドし、大規模なデータセットの要件という障壁を克服します。

NLPにおけるFew-Shot Learningの理解

Few-Shot Learningは、大規模なラベル付きデータセットを必要とする標準的なファインチューニングを使用するのではなく、機械学習モデルに非常に少量のトレーニングデータ(通常は推論時に数個の例)を提供する手法です。自然言語処理(NLP)において、大規模言語モデル(LLM)は、膨大なテキストデータセットでの事前学習を活用して、幅広いタスクを暗黙的に学習し、最小限のガイダンスで未知のタスクに汎化できるようにします。

Few-Shot NLPプロンプトは、主に3つのコンポーネントで構成されています:

  • Task Description: 目標の簡潔な指示(例:「English to Frenchに翻訳」)。
  • Examples: 期待される出力を示す少数のデモンストレーション(例:「sea otter => loutre de mer」)。
  • Prompt: モデルが完成させるための新しい例の開始部分(例:「cheese => 」)。

研究によれば、Few-Shot promptingの能力は、一般的にモデルのパラメータ数が増えるにつれて向上します。

GPT-Neo: オープンソースの代替案

GPT-Neoは、EleutherAIによって開発されたTransformerベースの言語モデルファミリーであり、GPT-3のオープンライセンス版に相当するように設計されています。これらのモデルは、大規模で詳細に文書化されたテキストコーパスであるPile datasetで学習されています。この学習により、GPT-NeoはPile datasetの分布に一致するテキストに対して最も効果的に機能することが期待されます。

🤗 Accelerated Inference APIを介したデプロイメント

🤗 Accelerated Inference APIは、Hugging Face Model Hubの10,000以上の公開モデル、およびプライベートモデル上で推論を実行できるホスト型サービスです。このAPIはCPUとGPUの両方で加速を提供し、標準的なTransformersのデプロイメントと比較して最大100倍の高速化を実現します。

GPT-Neo(特に2.7Bパラメータ版)をアプリケーションに統合するには、開発者は推論エンドポイントへの単純なPOSTリクエストを使用して、生成を制御するための特定のパラメータを使用できます:

  • max_new_tokens: 生成されるトークンの数を制限します。
  • temperature: 出力のランダム性を制御します。値が低いほど決定論的なテキストになり、値が高いほどランダム性が増します。
  • end_sequence: 望ましい回答を超えてモデルがテキストを生成するのを防ぐために使用される停止シーケンス(例:「###」)。

実践的な実装の洞察

GPT-Neo (2.7B) はGPT-3 (175B) よりも約60倍小さいため、Zero-Shot問題に対してはそれほど効果的に汎化しません。高品質な結果を得るためには、GPT-Neoは通常、プロンプトに3-4個の例を提供する必要があります。十分な例が提供されると、モデルはタスクをより良く理解し、制御されたテキスト生成のために end_sequence を遵守します。

責任ある使用とバイアスの軽減

Few-Shot Learningは、事前学習中に獲得された関連付けに非常に敏感であり、それが自動化された差別につながる可能性があります。例えば、感情分析のプロンプトは、学習データに含まれる固有のバイアスにより、「I'm a disabled happy person」というフレーズを「Negative」と誤って分類してしまう可能性があります。

危害のリスクを最小限にするために、Hugging Faceは以下のベストプラクティスを推奨しています:

  • Transparency: ユーザーに対して、体験のどの部分がML出力によって駆動されているかを通知します。
  • User Control: オプトアウト機能を提供し、ユーザーがフィードバックを提供したり、モデルの決定をオーバーライドしたりできるメカニズムを提供します。
  • Monitoring: モデルの失敗を、特に不当に影響を受ける可能性のあるグループに対して積極的に追跡します。
  • Human-in-the-loop: 人間の監視なしにユーザーに関する自動的な決定を下すためにモデルを使用することを避けます。これは、自動化された決定に対して説明を必要とするGDPRのような規制に準理しています。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch