【ChatGPTを活用しよう】プロンプトエンジニア入門講座
レッスン内容

効果的なプロンプト設計のポイント

この項目でできるようになること

  • AIが理解しやすい明確で具体的なプロンプトを作成できるようになる
  • 文脈や制約条件を適切に設定し、AIからの出力を制御できるようになる
  • Few-shot LearningやChain of Thoughtを活用し、AIの回答精度を向上させることができる
  • プロンプトを繰り返し改善し、より効果的なプロンプトを作成できるようになる

効果的なプロンプト設計のポイント

プロンプトは、AIと対話するための重要な手段ですが、その設計によってAIの出力は大きく変わります。ここでは、効果的なプロンプト設計のポイントについて解説し、実践的な演習を通してスキルを向上させましょう。

1. 明確性

AIは人間のように曖昧な表現を理解することができません。そのため、プロンプトは可能な限り明確かつ具体的に記述する必要があります。

比較例

悪い例:「日本の貿易について教えてください。」

  • 「貿易」という言葉は範囲が広すぎるため、AIが何を回答すれば良いか迷ってしまう可能性があります

良い例:「日本の主要な輸出相手国を、[製造、食品、その他]3つの産業分野別に5つ教えてください。」

知りたい情報の範囲を具体的にすることでAIが回答を生成しやすくなります

実践

以下のプロンプトの明確性を向上し、明確な回答を生成してください。

「日本の歴史について教えてください」

解答例

「日本の江戸時代の主要なできごとについてポイントを5つ教えてください」

「江戸時代の主要なできごとの中から、政治や経済に関するものを5つ挙げ、それぞれ50字以内で簡潔に説明してください」

解答の自己評価チェックリスト

1.目的が明確か: プロンプトを読むだけで、AIが「何を答えるべきか」を迷わない構造になっているか。

2.回答範囲が適切か: プロンプトの要求が広すぎたり狭すぎたりしないか。

3.余計な曖昧さがないか: 曖昧な言葉や多義的な表現が含まれていないか。

2. 具体性

AIに求める出力内容を具体的に指定することで、より精度の高い回答を得ることができます。

比較例

悪い例:「東京スカイツリーについて教えてください。」

  • どのような情報が欲しいのかが明確でないため、AIは網羅的な情報を返す可能性があります。

良い例:「東京スカイツリーの高さ、建設年、展望台の営業時間について教えてください。」

実践

以下のプロンプトの具体性を向上し、明確な回答を生成してください

「東京タワーについて教えてください」

解答例

「東京タワーの建設目的、建設当時の社会的評価について教えてください」

「東京タワーの建設目的と、建設当時の一般市民やメディアからの評価を、それぞれ3つの具体例と共に教えてください」

解答の自己評価チェックリスト

1.目的が明確か: 具体的な回答を得るための情報が含まれているか: プロンプトでAIに求める具体的な要素が明記されているか。

2.余計な幅を持たせていないか: 回答内容が「網羅的」になりすぎないよう、必要な情報を限定しているか。

3.形式が明確か: 回答の形式(例: 箇条書き、短文、詳細説明など)が指定されているか。

3. 役割を与える

AIにタスクの背景情報や関連情報を提供することで、より適切な回答を得ることができます。

比較例

悪い例:「環境問題について説明してください。」

  • どのような立場でどのような相手を対象とした説明かを指定しないと、想定した難易度の回答が得られない場合があります。

良い例:「あなたは小学校5年生の先生です。子供たちに環境問題について説明してください。」

「あなたは中学校の教師です。中学2年生の生徒が、高校受験の仕組みを正確に理解し、今学期に集中すべき学習計画を立てられるよう、300字以内で説明してください」

実践

以下のプロンプトに役割を提供し、明確な回答を生成してください

「受験制度について説明してください」

解答例

「あなたは中学校の教師です。中学2年の生徒達に高校受験の制度と現在取るべき対策について説明してください」

解答の自己評価チェックリスト

1.役割が具体的で適切か: AIが取るべき視点や役割が具体的に記載されているか。

2.役割に応じた回答が期待できる内容か: 指定された役割が、回答の内容に影響を与えるかを確認。

3.対象読者の明確化ができているか: AIの説明が誰に向けてのものか明確であるか。

4. 制約条件

出力形式、長さ、スタイルなどを指定することで、AIの出力内容を制御することができます。

比較例

悪い例:「地球温暖化について説明してください。」

  • 出力形式や長さが指定されていないため、AIは長文の文章を生成する可能性があります。

良い例:「地球温暖化の原因と対策について、箇条書きにして300字以内で説明してください。」

実践

以下のプロンプトに制約条件を提供し、明確な回答を生成してください

「未成年者のSNS使用の問題点と対策について説明してください」

解答例

例1:「未成年者のSNS使用の問題点と対策について、主要な問題点5つを問題提起と回答の形式にしてそれぞれ300文字以内で解説してください」

例2:

「未成年者のSNS使用の問題点5つを、以下のフォーマットで説明してください:

  1. 問題点(例:情報漏洩の危険性)
  2. 問題の背景(例:個人情報をSNS上に公開してしまう)
  3. 対策(例:SNS使用前にプライバシー設定を確認する)
    各項目を100文字以内で説明してください」

解答の自己評価チェックリスト

1.制約条件が具体的か: 出力形式(例: 箇条書き、文章形式、文字数制限)が指定されているか。

2.条件が過剰でないか: 制約条件が厳しすぎてAIの回答が不自然になることを避けているか。

3.条件が解答をコントロールできているか: 条件を指定したことで、回答が適切に絞り込まれているか。

5. 反復と修正

一度のプロンプトで完璧な出力を得られるとは限りません。AIの出力結果を評価し、プロンプトを修正することを繰り返すことで、徐々に精度を高めることができます。

比較例

最初のプロンプト:「環境問題について説明してください。」

  • AIの出力結果:「環境問題とは、人間活動によって引き起こされる自然環境への悪影響のことです。…(以下、長文の説明)」

修正後のプロンプト:「環境問題の種類と、それぞれの原因、影響、対策について、箇条書きにして500字以内で説明してください。」

実践

以下のプロンプトを入力し、回答に対して追加と修正を行ってください

「日本社会の高齢化問題について説明してください」

解答例

例1:「現在までに行われている対策と問題点を挙げ、改善すべきポイントについても提案してください」

例2:「高齢化問題の背景と現在の対策を簡潔に説明し、そのうえで、どのように新しい政策を立案すべきか、具体的な提案を3つ挙げてください」

解答の自己評価チェックリスト

1.修正前後のプロンプトに違いがあるか: 初回のプロンプトに比べ、修正後のプロンプトが改善されているか。

2.改善点が具体的であるか: 受講者が修正内容について具体的に言及しているか(例: 曖昧な部分を明確化した、情報の範囲を絞った)。

3.最終プロンプトが適切か: 修正を加えた結果、プロンプトが明確かつ具体的になっているか。

6. 出力例を提示

AIに少数の事例を提示することで、AIの学習を助け、出力の精度を高める手法です。Few-shot プロンプティングとも呼ばれています。

実践例

「以下の要領で金太郎の物語を要約してください。

 [文章A]ももたろう

 [要約A] 桃から生まれた桃太郎が、犬、猿、雉と共に鬼ヶ島の鬼を退治し、村に平和を取り戻す話です。

 [文章B]浦島太郎

 [要約B]浦島太郎が助けた亀に連れられて竜宮城へ行き、楽しい時を過ごした後、帰ってみると何百年も経っていたという話です。」

実践

以下のプロンプトに出力例の提示を加えて修正してください

「シンデレラの主人公を紹介してください」

解答例

例1:

「以下の要領でグリム童話のシンデレラの主人公を紹介してください

 [物語A]グリム童話の白雪姫。王妃や魔法の鏡、7人の小人が登場する

 [紹介A]白雪姫の主人公は、悪い継母から逃れ、七人の小人たちと暮らしながら真実の愛を見つける美しい王女です。

[物語B]メーテルリンクの青い鳥。幸せの青い鳥や妖精をめぐる物語

[紹介B]青い鳥の主人公は、幸せを求めて冒険に出る幼い兄妹のチルチルとミチルです。」

例2:さらに例示を加えてフォーマットを指定

「以下のフォーマットで、グリム童話のシンデレラの主人公を紹介してください:

主人公の背景(例:母親を亡くし、継母にいじめられる)

物語の核心(例:魔法の助けを借り、王子との舞踏会に参加)

特徴や魅力(例:逆境にも負けない心の強さ)」

解答の自己評価チェックリスト

1.出力例が適切か: 提示した例が、プロンプトの改善に役立つ具体的なヒントを提供しているか。

2.例が回答の期待を明確にしているか: 提示された出力例が「どう答えるべきか」を具体的に示しているか。

3.例とプロンプトの整合性があるか: 出力例がプロンプトの要求と一致しているか。

7. 段階的な出力

AIに段階的な思考を促すことで、複雑な問題に対する回答精度を向上させる手法です。CoT(Chain of Thought prompting)プロンプティングとも呼ばれています。

実践例

「この数学の問題を解いてください。

[問題]以下の二次方程式の解xを求めよ

x2+3x−5=0

思考過程:まず、二次方程式の解の公式を参照します

次に、問題から公式のa,b,cにあたる係数を探します

最後に、公式に係数を代入して答えを求めます。」

解答例

問題に対して、解答だけでなく問題を解く過程についても指示を参考にしている様子がわかります。

解答の自己評価チェックリスト

1.思考過程が明確か: プロンプトがAIに対して段階的な思考を促す内容になっているか。

2.段階が適切か: AIの思考を促す段階が論理的で、かつ過不足がないか。

3.最終的な解答が得られるか: 指示通りにAIが正確な解答を導けるか。

7Rプロンプトフレームワークの基本構造

7Rプロンプトフレームワークは、プロンプトを設計するための7つの要素から成り立っています。この7つの要素に一つずつ、AIに対して明確で具体的な指示を伝えることでプロンプトを作成することができます。

7つの要素の概要

  1. Request(依頼)
    AIに実行してほしいタスクや作業の指示を明確に伝えます。
  2. Role(役割)
    AIに特定の立場やキャラクターを設定し、その視点で回答させます。
  3. Regulation(形式)
    出力の形式や長さ、使用する言語など、回答の制約条件を指定します。
  4. Rule(ルール)
    AIが守るべきルールや禁止事項、特定の表現の使用・不使用を設定します。
  5. Review & Refine(評価・改善)
    AIの出力を評価し、必要に応じて改善点やフィードバックを提供します。
  6. Reference(参照知識・例)
    AIが参考にすべき情報や具体例を提供し、出力の精度を高めます。
  7. Run Scenario(実行シナリオ)
    実際のシナリオや状況を想定し、それに基づいてプロンプトを作成します。

具体例:新しいチョコレート菓子のキャッチコピーを作成する場合

それでは、上記の7つの要素を用いて、マーケティング担当者が新商品のチョコレート菓子のキャッチコピーをAIに作成してもらうシナリオでプロンプトを作成してみましょう。

ステップ1:Request(依頼)

依頼内容を明確に伝えます。

  • :「新しいチョコレート菓子のキャッチコピーを作成してください。」

ステップ2:Role(役割)

AIに特定の役割を与えます。

  • :「あなたは有名なお菓子メーカーのコピーライターです。」

ステップ3:Regulation(形式)

出力の形式や条件を指定します。

    • 形式:15文字以内の日本語
    • 数量:キャッチコピーを3つ提案
    • 必須要素:『濃厚な味わい』と『新食感』を表現に含める
    • 表現:親しみやすい言葉を使用し、専門用語は避ける

ステップ4:Rule(ルール)

AIが守るべきルールや制約を設定します。

    • 他社の商品名や商標は使用しないでください。
    • 誇大表現や虚偽の内容は避けてください。

ステップ5:Review & Refine(評価・改善)

出力結果の評価や改善点を求めます。

  • :「各キャッチコピーの狙いやコンセプトを一文で説明してください。」

ステップ6:Reference(参照知識・例)

参考にすべき情報や具体例を提供します。

    • 参考例:過去の人気キャッチコピーとして『やめられない、とまらない。』(かっぱえびせん)や『お口の恋人』(ロッテ)があります。
    • 特徴:濃厚な味わいとサクサクした新食感
    • ターゲット:子供から大人まで幅広い年齢層
    • 発売予定:来月
    • コンセプト:家族や友人と一緒に楽しめるお菓子

ステップ7:Run Scenario(実行シナリオ)

実際のシナリオを想定し、それに基づいてプロンプトを作成します

    • 1.キャッチコピー名を作成する
    • 2.キャッチコピーの解説をする

これらの7つの要素を適切に組み合わせることで、AIに対して明確な指示を与え、求める出力を得ることができます。ただし、最初から7R全てを使いこなすのは難しいかもしれません。まずは「依頼・役割・形式」の3つを意識するところから始め、徐々に他の要素を加えていくことが推奨されています。

実践例

「あなたはプロスポーツ選手に関する情報をまとめるスポーツライターです。以下の情報を元に、読者の検索意図とニーズに応えられるような記事を作成してください。

読者が「大谷翔平選手の活躍について詳しく知りたい」と思って検索した場合に、この記事が表示されることを想定する。

形式

  • 文字数:1500字程度
  • 形式:箇条書きと段落を組み合わせた読みやすい形式
  • 表現:客観的な事実と主観的な分析をバランスよく含める

ルール

  • 事実に基づいた正確な情報を記載する
  • 選手や関係者への敬意を払い、中傷や誹謗中傷は避ける
  • 著作権法に配慮し、引用は適切に行う

評価・改善

  • 記事の構成は適切か?
  • 情報は網羅的で、読者の疑問に答えられているか?
  • 文章は読みやすく、分かりやすいか?

参照知識・例

  • 参考資料:
    • 大谷翔平選手の最新成績データ
    • 過去のインタビュー記事
    • 専門家の意見
  • 類似記事の例:
    • [大谷翔平、二刀流で歴史的快挙!シーズンMVP獲得の可能性は?]
    • [メジャーリーグを席巻する大谷翔平、その魅力と今後の展望]

入力データ

  • 大谷翔平選手:2023年シーズン、投手として15勝、防御率2.34、打者として34本塁打、打率.304を記録。
  • MVP投票:アメリカンリーグMVPの最有力候補の一人。
  • 専門家の意見:大谷選手の二刀流は、野球の歴史においても類を見ない偉業である。」

回答例

7Rプロンプトを指定したことにより、役割や形式を意識した回答が生成されていることがわかります。この様にプロンプトの設計次第で解答の精度を大きく向上させることができます。

まとめ

効果的なプロンプト設計は、AIとのコミュニケーションを円滑にし、AIの能力を最大限に引き出すために不可欠です。明確性、具体性、役割、制約条件、反復と修正といった基本的なポイントを押さえ、出力例の提示などの応用的な手法を活用することで、より質の高いプロンプトを作成し、AIからより良いアウトプットを引き出すことができるようになるでしょう。

7Rプロンプトフレームワークは、プロンプト設計の全体的なプロセスを構造化し、各要素を考慮しながらプロンプトを作成するのに役立ちます。これらの要素を意識することで、より効果的なプロンプトを作成し、AIとの対話をスムーズに進めることができるでしょう。