ChatGPTのプロンプトエンジニアリングとは｜7つのプロンプト例や記述のコツを紹介

こんにちは。スキルアップAI編集部です。近年注目されているChatGPT。2022年11月に公開されてから瞬く間に広がり、革新的なサービスとして世界中で話題を集めています。ChatGPTはコードを生成したり、ビジネスメールを考えたり、今後もさまざまな業界において活用が加速していくでしょう。

ChatGPTを使いこなす上でポイントとなるのが、**プロンプトエンジニアリング**です。この記事では、7つのプロンプト例や記述のコツを紹介していきます。ChatGPTを活用してより業務を効率化させたい方は、ぜひ参考にしてください。

またスキルアップAIでは、AIやデータ分析等に関する知識を無料で学べる[スキルアップAIキャンプ](https://www.skillupai.com/skillupai-camp/)を毎週開催しています。この記事で紹介するプロンプトエンジニアリングについてもテーマとして取り扱っています。ぜひ参加してみてください。

<目次>
1. プロンプトエンジニアリングとは
1. プロンプトエンジニアリングの目的・役割
1. プロンプトの主な構成要素
1. プロンプトを記述する際の5つのコツ
1. ChatGPTで使えるプロンプト例7つ
1. ChatGPTのプロンプトのテクニック・型
1. まとめ
1. スキルアップAIのChatGPT関連講座

## プロンプトエンジニアリングとは
プロンプトエンジニアリングとは、**プロンプトを創造的に定義・設計・改良するための技術**、ならびに**プロンプトを用いて生成モデルの潜在能力を引き出すための技術**です。

プロンプトとは、ユーザが生成モデルに与える命令です。通常はテキスト（自然言語）ですが、画像や音声などの場合もあります。

プロンプトエンジニアリングは、ChatGPTなどの生成AIが広まり注目されるようになりました。

 

## プロンプトエンジニアリングの目的・役割
プロンプトエンジニアリングの目的は、**生成モデルに自分が欲しいアウトプットを出力させること**です。プロンプトを工夫することによって、自分が望む結果を得る確率を高められます。また、AIも効率的に作業を行えるでしょう。

 

## プロンプトの主な構成要素
プロンプトの主な構成要素は、次の3つです。

1. **命令**：モデルに実行してほしい特定タスクに関する質問や指示
1. **コンテキスト**：モデルにより良い応答をさせるための外部情報や追加の文脈
1. **出力インジケータ**：出力の型や形式を示す

これら構成要素を含めると最適なプロンプトを作成でき、求めているアウトプットを得られやすくなります。それぞれの構成要素について説明していきます。

### 命令で直接応答を促すプロンプト
構成要素の中でも重要なのが、命令で直接応答を促すプロンプトです。**モデルに実行してほしい特定タスクに関する質問や指示を入力します。**

命令のプロンプト例は、下記の通りです。

![20230925_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/f79c2ecc-8b4a-bfc7-0bf7-d970b22f2325.png)

このように短いプロンプトでも、多くの情報を得られます。

### コンテキストから回答を導き出すプロンプト
具体的な指示をする場合は、コンテキストから回答を導き出すプロンプトも欠かせません。コンテキストとは、**モデルにより良い応答をさせるための外部情報や追加の文脈**です。

コンテキストに含めるべき要素は、以下の3つです。これらの内容をコンテキストに含めることで、求めている結果を得やすくなります。

1. 役割設定
1. 条件
1. 事前情報や知識

それぞれの具体例を紹介します。

### 役割設定
- あなたは、小学校の先生です。
- あなたは、DXコンサルタントです。

### 条件
- 300文字で書いてください。
- 小学6年生にもわかりやすい文章で書いてください。

### 事前情報や知識
- 〇〇は、□□です。
- 〇〇年は、□□で、△△がありました。

コンテキストから回答を導き出す具体例を最後に紹介します。コンテキスト（外部情報や追加の文脈、設定、条件など）を命令とあわせて入力することで、回答に必要な情報を補うことができます。

![20230925_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/c1cdd13f-dc31-c88d-dcd8-a5e488526528.png)


### 出力インジケータで回答形式を指定するプロンプト
場合によっては、出力インジケータで回答形式を指定するプロンプトも必要です。出力インジケーターは、出力の型や形式を指します。

出力インジケータの例は、以下の通りです。

![20230925_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/6ac858e8-5953-5a4f-5fc4-608551f76c78.png)
 

## プロンプトを記述する際の5つのコツ
プロンプトを記述する際のコツは、次の5つです。

1. シンプルなプロンプトから始める
1. 明確な表現で詳細に指示する
1. 細分化して伝える
1. 事例を交えて伝える
1. ChatGPTの利用条件を踏まえる

それぞれ具体的に紹介していきます。

### 1.シンプルなプロンプトから始める
まずは、シンプルなプロンプトから始めることを心がけましょう。プロンプトで最適な結果を得るためには、多くの実験を行う必要があります。つまり、反復的なプロセスが欠かせません。

そのため、**シンプルなプロセスから始め、より良い結果を求めて要素を追加していくのがおすすめ**です。また、プロンプトのバージョン管理も重要なため注意しましょう。

### 2.明確な表現で詳細に指示する
曖昧な表現は避け、できるだけ明確な表現で詳細に指示することも大切です。例えば、「短く説明してください」ではなく、「50文字以内で説明してください。」と具体的な数字を用いて指示しましょう。

また、「わかりやすく説明してください」ではなく、「小学生や初心者にも伝わるように説明してください」のように、わかりやすさについての程度を具体的に指示をするなどの工夫をすることで、より良い結果を得られます。

### 3.細分化して伝える
プロンプトを記述する際は、細分化して伝えることがコツです。例えば、以下のように指示しましょう。

![20230925_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/f501d39a-ea4a-7f6c-8845-47eb62aba7a8.png)

このような指示を出すことで、知りたい情報をピンポイントで得られます。

### 4.事例を交えて伝える
場合によっては、事例を交えて伝えることもポイントです。例えば、次の例文が挙げられます。

![20230925_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/4570a57c-06fb-91af-7cad-a439ff919e91.png)

このように事例を交えると、「ネガティブ」という正しい回答が返ってきます。

### 5.ChatGPTの利用条件を踏まえる
最後に、ChatGPTの利用条件を踏まえることも欠かせません。**プロンプトの長さには制限があり、余計なものを含めてしまうと、良い結果を得られない可能性があります**。プロンプトの長さが上限に収まるように記述することが大切です。

ChatGPTのAPIは文字単位ではなく、トークン単位で入力の数を計算します。ChatGPTのAPIの最大トークン数は4096トークンです。日本語は1文字1トークン、英語は1ワード1トークンとしてカウントされます。

日本語は、英語に比べてトークン計算の仕組み上、利用コストで不利です。OpenAIが提供する[トークナイザー](https://platform.openai.com/tokenizer)で実際のトークン数を計算できるため、必要に応じて利用しましょう。

 

## ChatGPTで使えるプロンプト例7つ
ここでは、ChatGPTで使えるプロンプト例を7つ紹介します。

### 1.テキスト要約
テキスト要約とは、ChatGPTの回答に対して要約を指示するというものです。具体例を紹介します。

![20230925_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/9dfabbfe-2a7f-ecac-7c36-cea3a695a4d4.png)
![20230925_07-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/8b8a2588-d572-0d6b-ffda-7ba405701d4f.png)

### 2.情報抽出
情報抽出の例は、下記の通りです。求めている回答に関する情報を入力し、情報を抽出させます。

![20230925_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/2d8e9748-1e19-ac5c-9a8d-da83011ef930.png)
出典：段落文「[ChatGPT: five priorities for research](https://www.nature.com/articles/d41586-023-00288-7)」

### 3.テキスト分類
ChatGPTは、例があればテキストの分類も可能です。具体例は以下の通りです。

![20230925_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/ea9a99d5-f154-1d91-c158-350e24789b2f.png)

### 4.質問応答
質問応答もChatGPTで使えるプロンプトです。具体例を紹介します。

![20230925_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/7eab2f98-62b3-75d9-3007-a7af17c0317e.png)

### 5.会話
以下は、「技術的で科学的」なトーンで会話するプロンプトの例です。このようにスムーズな会話ができます。

![20230925_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/38e54220-7a78-2d0b-4757-9cfbcf7d6254.png)

### 6.コード生成
ChatGPTはコード生成にも対応しています。以下は、ユーザーに名前を尋ねて、それに挨拶するPythonコード生成プロンプトの例です。コードの解説も出力されます。

![20230925_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/a6eac0d9-4272-b60b-2eb6-3493a44aa4b5.png)

### 7.計算
現代のLLM（大規模言語モデル）にとって、最も困難なタスクの一つが計算です。ここでは、単純な計算のプロンプト例を紹介します。

![20230925_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/0afad9e9-0093-5b7a-de82-8320883eb18d.png)

これらのプロンプト例について詳しく知りたい方は、[スキルアップAIキャンプ](https://www.skillupai.com/skillupai-camp/)への参加がおすすめです。スキルアップAIキャンプとは、スキルアップAIが毎週無料で実施しているオンライン勉強会です。

![20230925_13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/0bd4c09c-3c62-427c-f68d-ade6499d7453.jpeg)

プロンプトエンジニアリング以外にも、データ拡張や特徴量エンジニアリングなど、データ分析・AI開発の実務力アップにつながる幅広いテーマを用意しており、ご自身のお好きなテーマの回に参加できます。ぜひお気軽にご参加ください。

 

## ChatGPTのプロンプトのテクニック・型
最後に、ChatGPTのプロンプトのテクニック・型を紹介します。ここで紹介するテクニックは、質問によってはうまくいかない場合があったり、ChatGPTの進化によって不要なものもあったりします。あくまでもプロンプトを設計する際の参考として捉えてください。

### Zero-shot プロンプティング
Zero-shot プロンプティングとは、回答例を一切含めない方法です。前章で紹介した「LLMにおける代表的な用途別プロンプト例」で扱ったプロンプトの大半は、Zero-shot プロンプティングに含まれます。

![20230925_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/d14ef457-c926-0f61-b7fe-734906b24916.png)

### Few-shot プロンプティング
Few-shot プロンプティングとは、コンテキストに任意の回答例を含めるテクニックです。含める回答例が一つだけの場合、One-shotプロンプトと呼ばれることもあります。

シンプルなタスクではOne-shotプロンプトでも十分な結果を得られますが、複雑なタスクでは不十分になることがあります。そのような場合は、Few-shot プロンプティングを使用しましょう。

![20230925_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/e67fcf06-dfff-0bf2-dec7-6ba2032d361e.png)

### Chain-of-Thought（CoT）プロンプティング
Chain-of-Thought（CoT）プロンプティングとは、中間推理ステップを通して、複雑な議論を可能にするテクニックであり、Few-shotCoTプロンプティングと同義です。Zero-shot プロンプティングやFew-shot プロンプティングでは正しい回答が得られにくい場合に活用するのがおすすめです。

![20230925_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/263c3ff8-39a3-c51f-73fd-3a79d4669cff.png)

### Zero-shot CoT（Chain-of-Thought）プロンプティング
Zero-shotCoT プロンプティングとは、Zero-shotでCoTを行うテクニックです。例えば、プロンプトに「ステップバイステップで考えてみましょう。」と一文追加することで、正しい結果を得られる可能性が高まります。

![20230925_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/7aac652c-8748-e08c-da09-b0e545f0810e.png)
![20230925_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/d4900c94-9492-29b8-8fd2-b643d2b3e85f.png)


### 方向性刺激プロンプティング
方向性刺激プロンプティングとは、適切な方向性を持つように「刺激（ヒント）」を与えることで、目的に沿った推論結果を返すように言語モデルを誘導するテクニックです。

方向性刺激プロンプティングを記述した場合と記述していない場合の例文を紹介します。

＜方向性刺激プロンプティングを記述していない場合＞

![20230925_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/8590208a-0eae-e7d7-105b-a499450ac0a4.png)

＜方向性刺激プロンプティングを記述した場合＞

![20230925_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/98e87967-9429-14b3-fcf7-e5d9e550a7df.png)

このように方向性刺激プロンプティングを記述することで、キーワードを含む要約文が生成されます。

### 再帰的な修正プロンプティング
再帰的な修正プロンプティングとは、再帰的に修正させることで、求める結果の精度を向上させるテクニックです。自動的に推論結果の内容を改善するように言語モデルを誘導します。

![20230925_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/a852edda-a80c-4b6f-a632-2d96d54f2837.png)
![20230925_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/dd8296fe-b9cf-c372-ee42-25284154ff5e.png)
![20230925_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/76cb7f0b-6a54-5a9e-ad19-d66183d14b66.png)
![20230925_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/ae77a7d3-d508-6169-0179-88668179d69a.png)
![20230925_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/5f5f7f7d-49ff-3b09-32c4-9e55997398a0.png)


## まとめ
この記事では、ChatGPTのプロンプトエンジニアリングについて、プロンプトの主な構成要素やプロンプト例、具体的なテクニックについて紹介しました。

適切なプロンプトを作成することで、求めている答えを正確に導けます。ここで紹介しているプロンプト例やテクニックを参考にして、ChatGPTをうまく使いこなし、業務などに活用していきましょう。

スキルアップAIでは、AIやデータ分析等に関する知識を無料で学べる[スキルアップAIキャンプ](https://www.skillupai.com/skillupai-camp/)を毎週開催しています。この記事で紹介するプロンプトエンジニアリングについてもテーマとして取り扱っています。ぜひ参加してみてください。

 

## スキルアップAIのChatGPT関連講座
最後に、スキルアップAIのChatGPTに関連する講座を2つ紹介します。

### ビジネスパーソンのための対話型生成AI講座
「[ビジネスパーソンのための対話型生成AI講座](https://www.skillupai.com/text-generating-ai-for-business-person/)」は、ChatGPTを含めた対話型AIを利用するうえで必要となるプロンプトエンジニアリングの基礎知識を学びます。プロンプトエンジニアリングの要点を学べるカリキュラムで、対話型AI全般で使えるプロンプトの技術を学べるだけでなく、講座を通して業務に役立つプロンプトを書けるようになります。
すぐに試せる技術や背景知識を生かして、自身や自社の業務効率を大きく向上させましょう。

![20230925_26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/78d79adf-8505-2b76-628f-2aa2213bfde7.jpeg)


### 大規模言語モデル（LLM）利活用講座
「[大規模言語モデル（LLM）利活用講座](https://www.skillupai.com/use-llm/)」は、プロンプトエンジニアリングを体系的に学べるだけでなく、GPTをはじめとした大規模言語モデルの仕組みや使い方や、大規模言語モデルを組み込んだアプリの開発方法を学ぶことができます。
主にデータサイエンティストやAIエンジニアの方向けに、プロンプトエンジニアリングを行うときに押さえるべき知識やテクニックを実際の業務を想定したワークつきで学べるカリキュラムとなっております。

![20230925_27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/ea9496c4-5b26-1ef6-141d-0de6f3e986c3.jpeg)

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)