プロンプトエンジニアリング
リンク
- Prompt Engineering Guide
- Text generation and prompting - OpenAI API
- プロンプト設計戦略 | Gemini API | Google AI for Developers
- 2025年のプロンプトエンジニアリング | 不要論、無意味な手法、今も有効な手法など
- プロンプトエンジニアリング超入門 – プロンプトエンジニアリングは本当に死んだのか?
基本
- QA形式だとモデルの回答は安定しやすい
- ChatGPTなどでは、特にQA形式でなくても問題ない
Q: {ここに質問を書く}
A:
- QA形式で連想される答えを誘導する
- 以下のように質問に対する答えとして、A,Bを書いておくと、そこから連想されるCの答えを出してくれる
Q: {ここに質問を書く}
A: {質問の答えの1つとなることを書く}
B: {質問の答えの1つとなることを書く}
C:
- 指示と入力のフォーマットで指定する
- Markdown形式などで、指示や入力を記載すると、読み取りやすくなる
- ChatGPTなどは、区切り記号は何でも良いが、言語モデルによる
指示: {ここに指示}
入力: {ここに処理対象のテキスト}
出力:
### 指示
{ここに指示}
### 入力
{ここに処理対象のテキスト}
### 出力
- 出力フォーマット
-
出力として指定すれば、だいたいその通りにやってくれる
- ChatGPTなどにどんな形式で出力出来るかも聞ける
-
例
- 箇条書きやリスト形式
- 表形式
- CSV形式
- JSON形式
### 指示
{ここに指示}
### 入力
{ここに処理対象のテキスト}
### 出力
マークダウン形式で出力してください
コンポーネント(項目や要素)
- 指示、入力、出力、背景情報などのこと
-
例
-
指示や質問
- 指示
- 質問
- 目的
-
入出力の指示
- 入力
- 出力例
- 出力形式
- テンプレート
- 数値
-
条件や制約
- 制約
- 条件
- 前提
- 例外
-
ヒントや補足情報
- 背景情報
- 参考資料
- ヒント
- キーワード
-
手順やシナリオ
- シナリオ
- 手順
- テストケース
-
選択肢やオプション
- 選択肢
- オプション
- チェックリスト
-
指示や質問
テクニック
基本
- 批判的な視点でなどをいれると、そのとおりにやってくれる
-
例
- 数値やデータを強調して
- 批判的な視点で
- 箇条書きで
- 時系列に沿って
- 比較しながら
- 長所短所を個別に
- 数値化して
- 起承転結で
- ロールプレイング
Zero-shot/One-shot/Few-shotプロンプト
- 期待する動作になるように、出力のヒントなどをプロンプトで提示しておく
Zero-shot
- ヒントなし
- 例を一切与えずに、タスクだけを伝えて実行させる
次の文から日付をすべて抽出してください。
文章: イベントは2023年5月3日に開催され、予備日は2023年5月10日です。
答え:
コード生成例
Pythonで、1から100までの整数のうち、3の倍数のときは "Fizz"、5の倍数のときは
"Buzz"、両方の倍数のときは "FizzBuzz" と出力し、それ以外は数字を出力するコードを
書いてください。
One-shot
- ヒントが1つ
- 1つの例を示して、同様の形式で出力させる。
以下のように文章から日付を抽出してください。
例:
文章: 会議は2022年12月15日に行われました。
抽出された日付: 2022年12月15日
文章: イベントは2023年5月3日に開催され、予備日は2023年5月10日です。
抽出された日付:
コード生成例
以下のようにPythonコードを生成してください。
## 例:
### 要件
リストの中の数値をすべて2倍にして新しいリストを返す関数を作成してください。
### コード
def double_list(numbers):
return [n * 2 for n in numbers]
### 要件
1から100までの整数のうち、3の倍数のときは "Fizz"、5の倍数のときは "Buzz"、
両方の倍数のときは "FizzBuzz" と出力し、それ以外は数字を出力するコードを
作成してください。
### コード
Few-shot
- ヒントが複数
- 2〜数個の例を提示し、パターンを学習させて出力させる
以下のように文章から日付をすべて抽出してください。
文章: 会議は2022年12月15日に行われました。
抽出された日付: 2022年12月15日
文章: 次の打ち合わせは2024年1月5日か、1月12日になります。
抽出された日付: 2024年1月5日, 2024年1月12日
文章: イベントは2023年5月3日に開催され、予備日は2023年5月10日です。
抽出された日付:
コード生成例
以下のように、Pythonで要件に応じたコードを生成してください。
## 要件
リストから偶数のみを抽出する関数を作成してください。
## コード
def extract_even(numbers):
return [n for n in numbers if n % 2 == 0]
## 要件
文字列を受け取り、各単語の先頭を大文字にする関数を作成してください。
## コード
def capitalize_words(sentence):
return ' '.join(word.capitalize() for word in sentence.split())
## 要件
1から100までの整数のうち、3の倍数のときは "Fizz"、5の倍数のときは "Buzz"、
両方の倍数のときは "FizzBuzz" と出力し、それ以外は数字を出力するコードを
作成してください。
## コード
思考の連鎖 - Chain-of-Thought (CoT)
思考の木 - Tree-of-Thought (ToT)
## 指示
次の3人の専門家が協力して質問に答えます。
- フロントエンドエンジニア
- UX/UIデザイナー
- アーキテクト
## 手順
1. それぞれが自分の思考のプロセスを詳しく説明します
2. 他人の説明を理解し、間違いがあれば指摘します
3. 各専門家は、間違いを受け止めて、自分の思考を修正して発展させます
4. 3人の意見がまとまるまで、上記の手順を繰り返してください
## 質問
自己整合性 - Self-Consistency
MAGIシステム - MAGI-ToT
仮想スクリプトエンジン / PAL
モックプロンプト - Mock Prompt
パラメータ
temperature
-
概要
- 温度・気温を意味する英語だが、LLMだと多様性。・創造性・ランダム性などを指定する意味となる
- 単語に対する確率分布を調整している
-
値の意味
-
temperature = 0.0
- 決定的(deterministic)、最も確率の高い単語が常に選ばれる。
-
temperature = 0.7
- ほどよくランダム、自然で多様な出力になる。
-
temperature = 1.0〜2.0
- 非常にランダム。創造性が高まるが、文の意味が不安定になりやすい。
-
temperature = 0.0
-
ChatGPTにおける利用方法
-
設定自体はできないが、プロンプトで含めると変更してくれる
temperatureを0.0に設定してください。
temperatureを2.0に設定してください。
-
設定自体はできないが、プロンプトで含めると変更してくれる
top_p
-
概要
- 各サンプリングを指定する
-
各サンプリング選択肢を制御する
- 出力されるトークンの確率分布から、トークンを選択する再に累進確率の閾値を指定する
-
値の意味
-
top_p = 1.0
- 全ての候補から選択する
- ランダム度が高い
-
top_p = 0.75
- 上位の75%の確率に収まる候補から選択する
-
top_p = 0.1
- 上位10%の確率に収まる候補から選択する
- 非常に限定的。かなり保守的な出力になる
-
top_p = 1.0
作成日: 2025-06-20 20:03
更新日: 2025-07-08 22:10