Few-shot learning(少数ショット学習)とは、ラベル付きのごく少数の例(極端な場合は1例のみのone-shot、ゼロ例で推論するzero-shotも含まれる)を提示されただけで、新しいタスクやクラスに汎化することをモデルに期待する機械学習のパラダイムです。大量のラベル付きデータを必要とする従来の教師あり学習とは対照的で、この手法は大規模言語モデル(LLM)の登場により広く注目されるようになり、入力プロンプト内に直接記載された指示や例をモデルが解釈して活用できるようになりました。
Few-shot learningの仕組み
近年のFew-shot learningシステムの多くは、すでに massive datasets から幅広い知識を吸収した事前学習済み大規模モデルを出発点とします。新しいタスクを実行するために、In-context learning(文脈内学習)と呼ばれる手法で、入力内に少数のデモンストレーションを与えます。例えば、顧客のフィードバックを「肯定的」「否定的」「中立」の3クラスに分類するようモデルに教える場合、開発者はプロンプト内にラベル付きサンプルを3件含めることができます:「素晴らしいサービスでした!」→ 肯定的、「対応が遅い。」→ 否定的、「まあまあでした。」→ 中立。モデルは重みを一切更新することなく、提示されたパターンを新しいラベルなし入力にも適用します。
プロンプティング以外にも、事前学習済みモデルを小さなラベル付きデータセットでファインチューニングする方法や、新しいタスクを迅速に学習するように明示的に訓練するメタラーニング手法によっても、Few-shot learningは実現できます。いずれの場合でも目的は共通しており、少数の例だけで新しい振る舞いを指定できるよう、事前知識を活用することにあります。
なぜ重要なのか
Few-shot learningは、AIを specialized なタスクに適応させるために必要なコストと時間を劇的に削減します。医療診断、法務レビュー、希少な言語の翻訳など、ラベル付きデータが乏しく、高価で、かつ機微な分野では、何千もの例を集めることは現実的でないことが少なくありません。Few-shot手法は、少数の注意深く選定された例からでも実用的なアプリケーションを構築することを可能にします。また、大規模なアノテーションプロジェクトを待つことなく、プロンプトやファインチューニングのプロトタイピングと改良を迅速に行えるため、イテレーションの高速化にもつながります。
主要な種類
- One-shot learning(ワンショット学習): クラスごとに1例だけを与えて学習させる手法。
- Few-shot learning(k-shot): クラスごとに少数(典型的には2〜10例)を与えて学習させる手法。
- Zero-shot learning(ゼロショット学習): 例を一切用いず、指示や説明だけからタスクを実行する手法。
- プロンプトベースのFew-shot learning: GPT-3やその後のモデルで広く普及したように、入力を含むプロンプト内に直接例を示す手法。
- メタラーニング: 多くの関連タスクを横断して明示的に学習し、最小限のデータで新しいタスクに適応できるようにする手法。MAMLやプロ토タイプネットワークなどの手法がこのファミリーに含まれます。
Few-shot learningは現代のfoundation modelsを特徴づける中核的能力のひとつであり、プロンプトエンジニアリング、検索拡張生成(RAG)、LoRAなどの軽量ファインチューニングといったテクニックの中核を担っています。ベースモデルが進化を続けるにつれて、信頼性の高いタスク性能を達成するために必要な例数は減少傾向にあり、専門的なデータラベリング体制を持たないチームでもAIのカスタマイズが容易になりつつあります。