仕事のAI
スペシャルサイト

【超初心者向け】プロンプトエンジニアリングとは?ChatGPTのプロンプト例をご紹介

「プロンプトエンジニアリング」とは、AIモデルに対して適切な指示(プロンプト)を設計し、望ましい出力を得るための技術です。これにより、AIの性能を最大限に引き出し、意図した通りの回答や文章生成を実現することで、業務プロセスの改善やなどが可能となります。
この記事では、プロンプトエンジニアリングの概要からその役割、プロンプト設計のコツ、そして代表的な手法や具体的なプロンプト例までを詳しく解説します。

1.プロンプトエンジニアリングとは?

はじめに、プロンプトエンジニアリングの概要について解説します。

プロンプトとは?

プロンプトとは、AIモデルに対して特定のタスクや命令を与えるための入力データのことを指します。プロンプトは、AIモデルが正確かつ効率的に回答を生成するための指示や文脈を提供します。プロンプトの質がAIの出力結果に大きな影響を与えるため、プロンプトエンジニアリングが重要な役割を果たします。

プロンプトの要素

プロンプトは主に以下の要素で構成されています。

1.指示(Instruction)

指示とは、モデルが実行する特定のタスクや命令を示す部分です。例えば、「以下の文章を要約してください」や「このデータを分析してトレンドを見つけてください」といった具体的な指示が含まれます。指示が明確であるほど、AIモデルは期待される結果を出しやすくなります。

2.背景(Context)

背景とは、モデルの回答精度を高めるための追加情報や文脈を提供する部分です。背景情報が適切に提供されることで、モデルはより適切な応答を生成することができます。例えば、特定の業界や専門分野に関する知識が必要な場合、その分野に関連する基本情報を背景として提供します。

3.入力データ(Input Data)

入力データとは、モデルに応答を求めるための具体的なデータです。例えば、前述の支持で要約を依頼した対象の文章や分析対象のデータなどが挙げられます。入力データが明確であるほど、AIモデルは正確な応答を生成しやすくなります。

4.出力形式/出力指示子(Output Indicator)

出力形式/出力指示子とは、出力のタイプやフォーマットを示す部分です。例えば、「箇条書きで回答してください」や「グラフ形式で表示してください」といった具体的な出力形式の指示が含まれます。出力形式が明確であるほど、AIモデルは期待される形式で結果を提供しやすくなります。

プロンプトエンジニアリングとは?

プロンプトエンジニアリングは、AIの中でも特に自然言語処理を担うLM(言語モデル)を効率的に使用するために、言語モデルへの命令(プロンプト)を開発・最適化するプロセスです。この技術は、LM(言語モデル)やLLM(大規模言語モデル)といった自然言語処理AIに対して、効果的なプロンプト設計を行うことで、意図した通りの回答や文章生成を実現し、AIモデルが効率的かつ正確にタスクを実行するための鍵となります。

2.プロンプトエンジニアリングの役割

続いて、プロンプトエンジニアリングの役割について解説していきます。

AIが効率的に作業を行える

プロンプトエンジニアリングを適切に行うことで、AIモデルは効率的に作業を行うことができます。明確な指示と適切な背景情報が提供されることで、AIモデルは無駄な計算や処理を減らし、短時間で迷うことなくタスクを遂行することができ、作業のスピードと効率が向上します。

より精度が高い結果を出力できる

プロンプトエンジニアリングによって、AIモデルはより精度の高い結果を出力することができます。AIモデルは入力されたデータに基づいて学習し、出力を生成しますが、適切なプロンプトが設定されていない場合、誤った結果を出力する可能性があります。

適切なプロンプト設計によって、モデルは期待される応答を生成しやすくなり、結果として高精度なアウトプットが得られます。これにより、ビジネスや研究において信頼性の高い結果を得ることができます。
AI技術の導入を検討している企業は、プロンプトエンジニアリングの重要性を理解し、適切なプロンプトの設定を行うことで、業務の効率化や成果の向上を実現することができるでしょう。

3.プロンプト設計のコツ

続いて、代表的なプロンプトエンジニアリングの手法と具体的なプロンプト例を紹介します。

背景情報の提供

プロンプトエンジニアリングを成功させるためには、まず背景情報をしっかり提供することが重要です。AIは文脈に基づいて応答を生成するため、具体的な背景情報があるとより正確な回答が得られます。例えば、顧客サポートのシナリオを想定する場合、顧客の問題や過去のやり取りを含めることで、AIがより適切なサポートを提供できます。

オープンクエスチョン

オープンクエスチョンを使用することで、AIの応答が一層豊かになります。オープンクエスチョンは、単純な「はい」や「いいえ」で答えられない質問です。例えば、「この製品のどの機能が一番役立ちましたか?」といった質問は、ユーザーから詳細なフィードバックを引き出すのに役立ちます。これにより、AIが提供する情報の質が向上します。

適切な長さにする

プロンプトは適切な長さにすることも重要です。短すぎると文脈が不足し、長すぎるとAIが重要な情報を見逃す可能性があります。例えば、「新しいマーケティング戦略についての意見を教えてください」というプロンプトは、具体的でありながらも十分な情報を含んでいます。このバランスを保つことで、AIが効果的に応答を生成できます。

段階的に質問する

複雑な問題を解決するためには、段階的に質問する方法が有効です。まずは大まかな質問をしてから、次に詳細な質問を追加することで、AIが段階的に情報を収集し、より精度の高い応答を提供できます。例えば、「新製品の市場反応をどう評価しますか?」と尋ねた後に、「具体的にはどの要素が消費者に評価されていますか?」と続けることで、深い洞察を得ることができます。

4.プロンプトエンジニアリングの代表的な手法とプロンプト例

次に、主なChatGPTに代表されるAIのプロンプトの型と具体例をご紹介します。

Zero-shot Prompting

Zero-shot promptingは、事前に情報を与えずに応答を求める手法です。大量のデータで学習された言語モデルであれば、正しい回答が得られる可能性がありますが、回答精度が下がるリスクもあるため、比較的簡単なタスクで使用するのが良いでしょう。

(例)
[プロンプト]
Q: 世界で最も高い山は何ですか?
A:
[応答文]
A: エベレスト山です。

Few-shot prompting

Few-shot promptingは、例やデモンストレーションを提供し、文脈学習を通して質問や指示と回答のパターンを学習させる手法です。Zero-shotではカバーできないような複雑なタスクに有用です。

(例)
[プロンプト]
Q:スマホの利点を教えてください。
A:スマホの利点として、利便性や多機能性が挙げられます。
Q:リモートワークの利点を教えてください。
A:リモートワークの利点として、通勤時間の削減や柔軟な働き方が挙げられます。
Q: AI の利点を教えてください。
A:
[応答文]
AI の利点として、大量のデータを迅速に処理できることや、人間の手間を省くことできる点が挙げられます。

Chain-of-thought prompting

Chain-of-thought promptingは、AIが複雑な問題を解決する際に、その思考プロセスを詳細に説明するように促す手法です。これにより、AIがステップバイステップで論理的に問題を解決する過程を示すことができます。
論理的な思考能力が求められるタスクに有効です。

(例)
[プロンプト]
Q: 20 を 10 で割って 7 を足したら値は何になりますか?
A: 20 ÷ 10 = 2  2 + 7 = 9
Q: 15 を 5 で割って 9 を足したら値は何になりますか?
A: 15 ÷ 5 = 3  3 + 9 = 12
Q: 18 を 3 で割って 5 を足したら値は何になりますか?
A:
[応答文]
18 ÷ 3 = 6  6 + 5 = 11

Zero-shot Chain-of-Thought prompting

Zero-shot Chain-of-Thought promptingは、Chain-of-ThoughtをZero-shot Promptingで用いる手法です。「ステップに分けて考えてください」といった一文を付け足し、段階的に推論を進めるよう指示します。

(例)
[プロンプト]
Q: 18 を 3 で割って 5 を足したら値は何になりますか?ステップに分けて考えてください。
A:
[応答文]
まず、18 を 3 で割ることを考えます。18 ÷ 3 = 6。
次に、6 に 5 を足します。6 + 5 = 11。
したがって、答えは 11 です。

Self-Consistency

Self-Consistencyは、複雑な推論タスクを遂行するために、Few-shot promptingを組み合わせて多様な推論のプロセスを示し、その中から最も整合性の高い回答を選ぶ手法です。

(例)
[プロンプト]
Q:私が10歳の時、弟は私の半分の年齢でした。今、私は50歳です。私の弟は何歳ですか?
A:
[応答文]
あなたが10歳の時、弟はあなたの半分の年齢、つまり5歳でした。
今、あなたが50歳であるなら、弟はあなたの半分の年齢なので弟は25歳です。

計算の過程が与えられておらず、入力分では「弟は私の半分の年齢」という情報しか与えられていないため、誤った回答になっていると考えられます。
この問題を解決するために、複数の推論パスを追加します。

[プロンプト]
Q:トムは14個のリンゴを持っています。彼は友達にいくつかのリンゴをあげました。今、トムは9個のリンゴを持っています。トムは友達に何個のリンゴをあげましたか?
A:トムは最初に14個のリンゴを持っていました。今は9個しか持っていないので、友達にあげたリンゴの数は14 - 9 = 5個です。回答は5です。

Q:公園に8人の子供が遊んでいます。5人の子供が新たに公園に来ました。今、公園には何人の子供がいますか?
A:最初に8人の子供が公園にいました。5人の子供が新たに来たので、合計で8 + 5 = 13人の子供がいます。回答は13です。

Q:エミリーは45個のクッキーを焼きました。彼女の友達が来て、30個のクッキーを食べました。残りのクッキーはいくつですか?
A:エミリーは最初に45個のクッキーを持っていました。友達が30個食べたので、残りのクッキーは45 - 30 = 15個です。回答は15です。

Q:ジェイクは10本のペンを持っていました。彼は3本のペンを失くしました。その後、彼は5本のペンを新たに買いました。ジェイクは今、何本のペンを持っていますか?
A:ジェイクは最初に10本のペンを持っていました。3本失くしたので7本になり、その後5本買ったので、合計で7 + 5 = 12本のペンを持っています。回答は12です。

Q:サラは20ドル持っていて、1冊あたり4ドルのノートを3冊買いました。サラが残したお金はいくらですか?
A:サラは1冊あたり4ドルのノートを3冊買いました。彼女は4 * 3 = 12ドルを使いました。残したお金は20 - 12 = 8ドルです。回答は8です。

Q:私が10歳の時、弟は私の半分の年齢でした。今、私は50歳です。私の弟は何歳ですか?
A:
[応答文1]
あなたが10歳の時、弟はあなたの半分の年齢、つまり5歳でした。したがって、あなたと弟の年齢差は5歳です。今、あなたが50歳であるなら、弟は50歳 - 5歳 = 45歳です。
[応答文2]
私が10歳の時、私の弟は私の半分の年齢であったため、弟は5歳でした。今、私が50歳であるため、弟は50-5 = 45歳です。回答は45です。
[応答文3]
私が10歳のとき、私の弟は私の半分の年齢だったので、彼は5歳でした。今、私は50歳なので、彼は50/2=25歳です。答えは25です。

「45」という答えが2個で、「45」でない答えは1個、多数決的に最終回答が「45」になり、正しい回答が得られるようになります。

5.まとめ

本コラムでは、プロンプトエンジニアリングについて詳しく解説してきました。
プロンプトエンジニアリングは、AIの性能を最大限に引き出すために重要となり、適切なプロンプト設計により、AIはより精度の高いアウトプットを提供し、ビジネスの意思決定や業務効率の向上に貢献します。この記事で紹介したプロンプト設計のコツや代表的な手法を参考に、自社のAI活用を進めてみるのはいかがでしょうか。

また、自社でのAIの活用を検討されている場合は、「リコーのデジタルバディのラインナップ」をおすすめいたします。
社内のドキュメントを登録するだけで、自社独自の生成AI環境を構築することができるサービスとなっていますので、詳細については、ぜひソリューション資料をご覧ください。

デジタルバディのラインナップ資料DL

リコーのデジタルバディのラインナップ

関連コラム