コンテキスト内学習

自然言語処理において、コンテキスト内学習（コンテキストないがくしゅう、）、少数ショット学習（）、または少数ショットプロンプト（）は、モデルがタスクを試みる前に例を処理できるようにするプロンプト技術である。この手法はGPT-3の登場にともない一般に普及し、大規模言語モデルの創発的な特性であると考えられている。
少数ショットプロンプトは、通常「ショット」と呼ばれる（問題、解決）ペアの "n" 個の例を含む。このようなプロンプトの全体的な使い方は「"n"-ショットプロンプト（n-shot prompting）」と呼ばれる。たとえば、次はレビューの感情分類のためのワンショットプロンプトである。2つ目のプロンプトに呼応してモデルが「ポジティブ」と出力すれば、正しくタスクが解決されたことになる。
ゼロショットプロンプト（）いう用語は、例を示さないことを意味するのによく使われる。質問応答タスクのゼロショットプロンプトの例として「種の起源を書いたのは誰ですか？」などがある。
コンテキスト内学習はもともと、事前訓練された言語モデルをタスク固有のデータセットでファインチューニングする代替手段として提案された。ファインチューニングに対するコンテキスト内学習の主な利点は、必要なタスク固有のデータ量の削減と、大規模だが狭いファインチューニング用データセットから過度に狭い分布を学習することによる過剰適合を起こす可能性の低減である。大規模言語モデルにおける少数ショットの性能は、自然言語（NLP）タスクで競争力のある結果を達成することが示されており、ときには先行する最先端のファインチューニング手法を上回ることさえある。このようなNLPタスクの例としては、翻訳、質問応答、、マス埋めパズル、文中の新語検出などがある。このような少数ショットプロンプトを作成し、最適化することは、プロンプト・エンジニアリングで活発に研究されている分野の一つである。
少数ショットプロンプトは、ファインチューニングされたモデルと競合することが示されているが、固有の欠点もある。たとえば、ショットの並び順によって、最先端モデルと当て推量の性能に差が生じることが示されている。あるモデルで特定の順序でうまくゆく一連の少数ショットの例が、別のモデルではまったく働かないことがある。
コンテキスト内学習の一般的な例として思考連鎖型プロンプトがある。ここでは、モデルが質問に答えようとする前に、推論の連鎖を作り出すことをモデルに教えるために一連の少数ショットの例を与えるものである。この手法は、論理的思考や推論を必要とするタスクにおいて、モデルの性能を向上させることが示されている。