Re Reference AI

技術

Few-shotとは

少数事例学習 / Few-shot Learning

プロンプト内にタスクの入力・出力例をいくつか示すことで、追加学習なしにLLMへ望む出力形式を伝える手法

プロンプトエンジニアリング入力設計

ひとことで言うと

質問の中にお手本となる例をいくつか示すことで、AIに望む答え方を伝える方法。

概要

Few-shot(少数事例学習)とは、LLMに与えるプロンプトの中に、タスクの入力と望ましい出力の組を数個(通常2〜数十個程度)例として含めることで、モデルの重みを更新することなくタスクの形式やパターンを伝える手法。 1つも例を示さない指示のみのZero-shotに対し、Few-shotは具体例を示すことで出力フォーマットや期待する粒度をモデルへ明示できる点が異なる。 分類タスクの入出力例を示す、期待するJSON構造のサンプルを示す、といった用途で広く使われる。

背景

LLMに新しいタスクをファインチューニング(追加学習)なしで実行させたい場面で、指示文だけでは出力の形式や粒度が意図通りにならないことがあった。 Few-shotは、プロンプト内へ具体的な入出力例を示すことで、モデルが学習済みの知識から該当パターンを推論時に呼び出せるよう使われる。

歴史

2020年: BrownらがGPT-3の論文「Language Models are Few-Shot Learners」において、大規模言語モデルファインチューニングなしにプロンプト内の少数の例から新しいタスクを実行できることを示し、Few-shotという呼称が広く定着した。

利点

  • モデルの重みを更新するファインチューニングと異なり、プロンプトを書き換えるだけですぐに試せる
  • 出力の形式や粒度を具体例で示せるため、指示文だけでは伝わりにくいニュアンスを伝えやすい

欠点

  • 例を含めるためプロンプトが長くなり、入力トークン数の増加によるコスト・レイテンシの増加を招く
  • 示す例の選び方や順序によって出力は偏ることがあり、例の質が結果を左右する

比較

  • Chain-of-ThoughtFew-shotが入出力例を示すのに対し、Chain-of-ThoughtのFew-shot版は例の中に推論過程も含めて示す点が異なる
  • ファインチューニングFew-shotがプロンプト内の例のみで挙動を調整するのに対し、ファインチューニングはモデルの重み自体を追加学習で更新する
  • プロンプトエンジニアリングFew-shotは、プロンプトエンジニアリングにおける代表的な手法の1つ

関連用語

プロンプトエンジニアリングChain-of-ThoughtファインチューニングコンテキストウィンドウZero-shotSelf-ConsistencyIn-Context Learning

参考文献

関連Zenn記事