ChatGPT入門:プロンプトエンジニアリングの基本

こんにちは、中小企業診断士の笹間崇久です。

あらゆる質問に答え、幅広い話題について対話を行うAI、それが「ChatGPT」です。

AIの時代が到来し、それが私たちの生活の多くの面を変えています。
その一部として、人工知能を使って自然な人間の言葉を理解し、応答を生成する技術が急速に発展しています。その中でも最先端のものがOpenAIのGPT-4に基づくAI、ChatGPTです。
今回は、このChatGPTの使い方について詳しくご紹介します。

このブログでは、ChatGPTの使い方をOpenAIが提供している「Prompt Engineering Guide」を元にに解説します。

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

ChatGPTは、機械学習モデルを用いて自然言語を処理し、人間が質問やコメントを投げかけるとそれに対して賢明な回答を生成します。膨大な量のテキストデータから学習し、質問応答、文章作成、情報検索、翻訳など、多岐に渡るタスクをこなすことができます。

プロンプトエンジニアリングは、問題解決や改善を目的として、ChatGPTに対して適切な指示や命令をするアプローチのことをいいます。

Prompt Engineering Guide」には以下の記述があります。

Prompt engineering is a relatively new discipline for developing and optimizing prompts to efficiently use language models (LMs) for a wide variety of applications and research topics. Prompt engineering skills help to better understand the capabilities and limitations of large language models (LLMs).
参照:https://www.promptingguide.ai/

プロンプトエンジニアリングは、言語モデル(LMs)を効率的に使用するためのプロンプトを開発および最適化する比較的新しい学問分野です。プロンプトエンジニアリングのスキルを身につけることで、大規模言語モデル(LLMs)の能力と限界をより理解することができます。
参照:https://www.promptingguide.ai/

つまりは、このスキルを習得することで、大規模言語モデルであるChatGPTの機能を使いこなすことが可能となるということです。

2.基本的な使い方

では、ChatGPTの具体的な使い方を見ていきましょう。

最初に、OpenAIのウェブサイトにアクセスしてChatGPTにログインします。次に、テキストボックスに自分の質問や要求を入力します。たとえば、あるトピックについての情報を調査したい場合、またはあるテーマに基づく文章を作成したい場合、それを具体的にリクエストします。ChatGPTは、あなたの入力に基づいて応答を生成します。

まずは、ChatGPT-4に以下のようなシンプルなプロンプトを実行してみます。

すると以下のような出力が返ってきます。

これは、「空は」ときうフレーズが不完全ということを認識して、プロンプトの内容の修正を促しています。つまりは、プロンプトの内容によって、出力結果として、ChatGPTが実行するタスクがかけ離れる可能性がるため、文脈や指示を提供するよう求められています。

次に同じ「空は」というプロンプトに「以下の続きとなる文章を完成させてください。」と追記し、指示してみます。

すると以下のような出力が返ってきます。

いかがでしょうか。指示を出す側の意図が「文章を完成する」ということであると、ChatGPTに伝わったため、結果ははるかによくなりました。

このように、プロンプトを設計するアプローチのことをプロンプトエンジニアリングといいます。

因みに、同じプロンプトをChatGPT-3.5に入力してみると以下のような出力結果が得られます。

文章力という意味で大きく違いがあることがわかります。

このように、ChatGPT-4は、理解力と生成力が飛躍的に向上しており、対話や、複雑な問題解決にも優れ、結果の精度が改善されています。

3.プロンプトの4つの要素

精密で効果的な人工知能(AI)との対話を形成するためには、プロンプトエンジニアリングが必要であることが理解できたと思います。

ここでは、その効果を発揮するために、プロンプト内に含める4つの要素について説明します。

Prompt Engineering Guide」には以下の記述があります。

Instruction - a specific task or instruction you want the model to perform
Context - external information or additional context that can steer the model to better responses
Input Data - the input or question that we are interested to find a response for
Output Indicator - the type or format of the output.
参照:https://www.promptingguide.ai/introduction/elements

これを日本語翻訳すると以下のようになります。

  1. 命令: ユーザーがAIから具体的に何を求めているのかを明確にし、AIの行動をガイドします。
  2. 文脈: 対話の流れをAIに理解させ、それに基づいた適切な応答を促します。これにより、AIは過去の入力と応答から学習し、それらを考慮して次の応答を生成します。
  3. 入力データ: ユーザーからの直接的な情報を提供し、それがAIの応答を直接的に触発します。これは、ユーザーの最新のニーズや質問をAIに伝えるための主要な手段です。
  4. 出力指示子: AIの出力の形式や内容を制御し、それがユーザーの要求に適合するようにします。これは、AIがより具体的、または特定の形式で応答するための要素です。

それぞれの要素について説明していきます。

命令

命令はChatGPTのモデルに実行してほしい特定のタスクや命令のことを指します。

例えば以下のようなものがあります。

命令

書いて/分類して/翻訳して/並び替えて/説明して/アドバイスして/推測して/コーディングして

必須ではないですが、「###指示###」のように、命令であることを明示し、文脈と区切るために最初に置くことが推奨されています。

文脈

文脈は、ChatGPTのモデルに与える外部情報や追加情報のことであり、これらを与えることにより、よい応答に導くことができます。

例えば以下のようなものがあります。

文脈

・会話の語尾には「~ね」「~なのね」が多い
・私は優秀な経営コンサルタントです。

このように、プロンプトに指示に付随して、追加的に与える前提条件や、文脈に対する予備知識などを与える要素です。

入力データ

入力データは、ChatGPTに応答させたい入力や質問のことで、今回の応答で回答させる本題のことを言います。

例えば、「花粉症について医学的な観点から教えてください」というプロンプトの場合、「花粉症」が本題に当たります。

出力指示子

出力指示子は、ChatGPTの応答内容について、出力のタイプや形式の指定のことを言います。

例えば以下のようなものがあります。

出力指示子

テーブル形式/コマンド形式/文字数指示/関西弁

プログラム作成を指示した場合などに、そのプログラムをコピー可能な形式で出力させることも「出力指示子」の指定にあたります。

4.Zero-shotプロンプティング

Zero-shotプロンプティングは、AIが新しいタスクを処理する能力の一つで、事前にそのタスクについての訓練情報(Few-shotプロンプティング)を与えなくても、AIが何か特定の質問に答えるため、過去のAIが学習した知識から、その質問に対して適切な回答を生成します。

AIが自身の学習経験を利用して、新しい問題に対処していくということです。

例やデモンストレーションがなくても、直接応答を求めることができます。

以下にZero-shotプロンプティングの例を示します。

以下のようにすでに学習している知識から文章を作らせることもZero-shotプロンプティングになります。

5.Few-shotプロンプティング

Few-shotプロンプティングとは、AIが新しいタスクを学ぶ際に、数例の問題とその答えを元にそのタスクを理解し、それに基づいて新しい問題に答える能力を指します。

例えば、AIに3つのフランス語から英語への翻訳例を示し、その後に新しいフランス語のフレーズを提示します。AIはその3つの例から翻訳の仕方を"学び"、新しいフレーズを英語に翻訳します。

これはAIが自身の学習経験を元に新しい知識を導き出し、その新しい問題を解く方法です。

以下にFew-shotプロンプティングの例を示します。

5.まとめ

今回は、プロンプトエンジニアリングの基本を説明しました。

ChatGPTのプロンプトを理解すれば、その利用方法は無限の可能性を秘めています。これらを有効に活用できるようになれば、ChatGPTをアシスタントとして働かせ、あなたの質問に答えたり、情報を調査したり、あなたのアイデアを文書にまとめさせることができます。

企業にとっても、ChatGPTはカスタマーサービスを自動化したり、社内の情報を整理したり、さまざまなビジネスタスクを助ける強力なツールとなり得ます。

このAIの力を最大限に引き出すため、試行錯誤しながら、プロンプトエンジニアリングの技術を学んでいきましょう。