AI Prompt Engineering · レッスン

ゼロショットとフューショットプロンプティング

例を示さずに回答を引き出すゼロショットと、少数の具体例を示すフューショットの方法を学びます。

レッスン 2/311 ステップ

「ゼロショットとフューショットプロンプティング」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全3レッスンが含まれています。

ゼロショットとFew-shotの概要

ゼロショットプロンプティングとFew-shotプロンプティングのレッスンへようこそ!これらは、大規模言語モデル(LLM)にタスクを実行させるための基本的なテクニックです。

これらを理解すると、AIからより良く、より正確な出力を得られるようになります。

ゼロショットを理解する

ゼロショットプロンプティングとは、実行方法の例を一つも示さずに、LLMにタスクを与えることです。

  • LLMが事前学習で得た知識だけを頼りにします。
  • プロンプトには、指示と入力データだけを含めます。
  • LLMが訓練中に学習している可能性が高い、単純で一般的なタスクに効果的です。

実践:ゼロショットで分類する

これはゼロショットの例です。過去の感情分類の例を一つも示さずに、テキストの感情を分類するようLLMに依頼しています。

この例を実行してみてください。

def call_llm_api(prompt):
    # In a real scenario, this would call an LLM API.
    # For this example, we simulate a response.
    if "sentiment" in prompt.lower():
        return "Sentiment: Positive"
    return "LLM Response: Could not process."

# Our zero-shot prompt
zero_shot_prompt = "Classify the sentiment of 'The movie was fantastic!'"

print(f"Prompt: {zero_shot_prompt}")
print(f"LLM Output: {call_llm_api(zero_shot_prompt)}")

ゼロショット:情報を抽出する

ゼロショットプロンプティングは、テキストから特定の情報を抽出する場合にも優れています。

LLMに探してほしい情報を伝えるだけで、一般的な知識を使って情報を見つけてくれます。

def call_llm_api(prompt):
    if "name and age" in prompt.lower():
        return "Name: Alice, Age: 30"
    return "LLM Response: Information not found."

# Another zero-shot prompt example
zero_shot_prompt = "Extract the name and age from 'My name is Alice and I am 30 years old.'"

print(f"Prompt: {zero_shot_prompt}")
print(f"LLM Output: {call_llm_api(zero_shot_prompt)}")

ゼロショットの限界

ゼロショットプロンプティングは強力ですが、限界もあります。

  • 曖昧さ:解釈の余地があるタスクでは、結果に一貫性がなくなることがあります。
  • 新規性:タスクや概念が非常に新しいもの、または専門性の高いものの場合、例がないとLLMは苦戦することがあります。
  • 複雑さ:複数のステップによる推論や非常に細かく指定されたフォーマットでは、指示だけでは不十分なことがあります。

Few-shotプロンプティングを導入する

Few-shotプロンプティングは、プロンプトにいくつかの入力と出力の例を直接含めることで、ゼロショットの限界を補います。

  • これらの例によって、求めるタスク、スタイル、フォーマットをLLMに示します。
  • 新しい問題を解いてもらう前に、生徒へ解答済みの問題をいくつか見せるようなものです。
  • このテクニックにより、複雑なタスクや曖昧なタスクでの性能が大幅に向上します。

実践:Few-shotで書き換える

ここでは、文を能動態に言い換える方法の例を示します。これにより、LLMは求めている具体的な変換を理解しやすくなります。

例によってタスクがどのように明確になるかを確認してください。

def call_llm_api(prompt):
    if "active voice" in prompt.lower() and "ball was thrown" in prompt.lower():
        return "Output: The boy threw the ball."
    return "LLM Response: Could not rephrase."

# Our few-shot prompt with one example
few_shot_prompt = """Rephrase into active voice:
Input: The mouse was chased by the cat.
Output: The cat chased the mouse.

Rephrase into active voice:
Input: The ball was thrown by the boy."""

print(f"Prompt: {few_shot_prompt}")
print(f"LLM Output: {call_llm_api(few_shot_prompt)}")

Few-shot:コード生成

Few-shotプロンプティングは、コードの生成や特定の出力フォーマットへの準拠に非常に役立ちます。

求めるコードの例(関数シグネチャと本体など)を示すことで、LLMはその構造をより正確に再現できます。

def call_llm_api(prompt):
    if "function to add" in prompt.lower():
        return "def add(a, b):\n    return a + b"
    return "LLM Response: Code not generated."

# Few-shot prompt for code generation
few_shot_prompt = """Generate a Python function:
Example 1:
Input: Function to multiply two numbers.
Output:
def multiply(a, b):
    return a * b

Example 2:
Input: Function to add two numbers."""

print(f"Prompt: {few_shot_prompt}")
print(f"LLM Output:\n{call_llm_api(few_shot_prompt)}")

適切な手法を選ぶ

ゼロショットとFew-shotは、どのように使い分ければよいでしょうか。

  • ゼロショット:LLMの一般的な知識で十分に対応できる、単純でよく理解されたタスクに最適です。簡潔で、トークンの使用量も抑えられます。
  • Few-shot:特定のフォーマットやスタイルが必要な、複雑でニュアンスのあるタスク、カスタムタスクに最適です。重要な指針を与えて正確性を高められますが、より多くのトークンを使用します。

ゼロショット/Few-shotチェック

具体的な例を必要としない、単純で明確に定義されたタスクには、一般的にどのプロンプティングテクニックが適していますか。

振り返り:プロンプトの力

2つの基本的なプロンプティングテクニックについて学びました。

  • ゼロショットプロンプティングは、指示だけを使い、LLMの幅広い知識を活用して単純なタスクを実行します。
  • Few-shotプロンプティングは、プロンプトに例を加え、より複雑でニュアンスのある出力やカスタム出力に重要な指針を与えます。

これらを使いこなすことで、LLMとより効果的にやり取りし、望む結果を得られるようになります。

無料で開始

AI チューターと学ぶ AI Prompt Engineering — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
53
レッスン
199

よくある質問

「ゼロショットとフューショットプロンプティング」レッスンは無料ですか?

はい。「ゼロショットとフューショットプロンプティング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全3レッスンが含まれています。

「ゼロショットとフューショットプロンプティング」で何を学びますか?

例を示さずに回答を引き出すゼロショットと、少数の具体例を示すフューショットの方法を学びます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Prompt Engineeringを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「ゼロショットとフューショットプロンプティング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Prompt Engineeringレッスンでコードを書いて実行できますか?

はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. LLMの能力を理解する
  2. ゼロショットとフューショットプロンプティング
  3. ロールプレイとペルソナプロンプト
← AI Prompt Engineeringに戻る