見出し画像

ChatGPTプロンプトテクニック一覧

ChatGPTがリリースされて一年と少し経過しました。リリース当初、その圧倒的な性能の高さと汎用性で世界中に一気に広まり、わずか2か月で1億ユーザーを突破しました。最近もDALL-E3やGPTsなど様々な機能が継続的に追加されていますが、ユーザー数で見ると一定のラインが見えてきています。2023年の4月と5月に月間18億アクセスに到達した後、8月には14億まで減少しています(INSIDE)。その後持ち直し、11月は17億で世界第19位のウェブサイトとなっています。今後も、おおよそ月間15~20億を目安にゆるやかな増加を続けていくものと予想されます。ちなみに、Netflixが14億で世界24位、日本勢だとYahoo Japanが19億で17位となっています(SimilarWeb)。なお、本データはウェブブラウザ経由でのアクセス数のみで、スマートフォンアプリについては計測されていないことにご留意ください。

Liquid Studio

このようにリリース後わずか1年で月間アクセス数が世界トップ20に入る巨大サービスに成長したChatGPTですが、その要因は性能の高さと汎用性に加え「圧倒的な使いやすさ」にも大きく起因しています。専門的知識やプログラミング能力がなくても、自然言語でなんとなく指示(=プロンプト)を出すと意図をくみ取ってくれる。このシンプルさが、世界的なヒットにつながった大きな要因でしょう。

プロンプトは、ChatGPTを含む対話型AIと人間の接点となるインターフェースです。プロンプトをうまく書けるかどうかで、AIをどれくらいうまく使いこなせるかが決まってきます。しかし、難しい点は「どんな要求にもうまく機能する"万能"プロンプトは存在しない」ということです。その都度、AIを使用する目的に合わせてプロンプトを作成し改善を続ける必要があります。ここは「プロンプトエンジニアリング」という職種が存在するほど奥が深い領域で、習熟するには時間をかけて実験を重ねないといけません。しかし、AIインフルエンサーやOpenAI、Google、学術機関などが研究し有効性が実証されているプロンプトテクニックも一定存在します。これに沿えば簡単に有効なプロンプトを作れるわけではありませんが、近道のヒントにはなることも確かです。

本記事では、OpenAIが出している公式の解説をベースに、Xやnoteで収集したすぐに使えるプロンプトを加えたテクニック一覧を「基礎編」と「応用編」に分けてご紹介します。


基礎編

Pierre Châtel-Innocenti

詳細や文脈を含めた、できるだけ明確なプロンプトを書く

最も基本的なポイントですが、プロンプトには背景や文脈も含めできるだけ具体的かつ詳細な情報を記載しましょう。
ここから先は、「所与の記事からタイトルのドラフトを生成する」タスクを想定してプロンプトを作っていきます。

【悪い例】
以下の記事のタイトルを作成してください
<ここに記事本文を記載>

悪い例

【良い例】
以下の記事から、ウェブメディアに掲載するタイトルを作成してください。タイトルは読者の注意をひくために最も重要なので、簡潔にわかりやすく、かつ魅力的な言葉使いをしてください。また、数字を入れてください。
<ここに記事本文を記載>

良い例

(出典:OpenAI Prompt Engineering

役割を明示する

ChatGPTにどのような役割で振舞って欲しいかを記載します。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
以下の記事から、ウェブメディアに掲載するタイトルを作成してください。タイトルは読者の注意をひくために最も重要なので、簡潔にわかりやすく、かつ魅力的な言葉使いをしてください。また、数字を入れてください。
<ここに記事本文を記載>

Liquid Studio

(出典:OpenAI Prompt Engineering

#や"""を使い、入力文や制約条件など本文以外の情報を明確に分ける

プロンプトを詳細に書けば書くほど、文章量が長くなります。その際、最終的に行って欲しい作業と、作業実施時に留意してほしい点(制約条件)や入力情報を明確に区別・構造化することで、指示内容をより明確にすることができます。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。以下の#[記事]から、#[制約条件]に従いウェブメディアに掲載するタイトルを作成してください。

#[制約条件]
タイトルは読者の注意をひくために最も重要であることを前提に、
・簡潔にわかりやすくする
・魅力的な言葉使いにする
・数字を入れる

#[記事]
<ここに記事本文を記載>

Liquid Studio

(出典:深津式プロンプト・システム

例を示す

作業指示を与える際、作業内容の例示を複数併記することで、指示をより具体的に示すことができます。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
以下の#[記事]から、#[制約条件]に従いウェブメディアに掲載するタイトルを作成してください。その際、#[例]を参考にしてください。

#[制約条件]
タイトルは読者の注意をひくために最も重要であることを前提に、
・簡潔にわかりやすくする
・魅力的な言葉使いにする
・数字を入れる

#[例]
・東芝、混乱続き上場廃止へ 74年の歴史に幕
・顧客情報流出は928万件 NTT西系、顧客は69団体
・24年度予算案、110兆円超 予備費削減で12年ぶり減


#[記事]
<ここに記事本文を記載>

Liquid Studio

(出典:OpenAI Prompt Engineering

回答生成に使用する情報を限定する

ChatGPTで頻繁に問題になるのが、それらしい誤情報を生成するハルシネーションです。これを防ぐために、回答は入力文からのみ生成し余計な情報を勝手に追加しないよう明示する手段が有効です。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
以下の#[記事]から、#[制約条件]に従いウェブメディアに掲載するタイトルを作成してください。その際、#[例]を参考にしてください。ただし、#[記事]の中に答えが見つからない場合は、"答えが見つかりませんでした "と書いてください。

#[制約条件]
タイトルは読者の注意をひくために最も重要であることを前提に、
・簡潔にわかりやすくする
・魅力的な言葉使いにする
・数字を入れる

#[例]
・東芝、混乱続き上場廃止へ 74年の歴史に幕
・顧客情報流出は928万件 NTT西系、顧客は69団体
・24年度予算案、110兆円超 予備費削減で12年ぶり減

#[記事]
<ここに記事本文を記載>

Liquid Studio

(出典:OpenAI Prompt Engineering

英語で考えて日本語で出力する

GPTの学習データは多くが英語であるため、英語で思考した方が精度が高い回答が生成されます。出力だけ日本語に翻訳することで、英語による出力精度を保つことができます。ただし、このテクニックの有効性はChatGPTへ指示する作業内容に大きく依存します。試してみて、生成された回答に大きな違いが出ない場合は削除しましょう。
ここから先は、「英語記事を要約して日本語記事にする」タスクを想定してプロンプトを作っていきます。
下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
海外で公開された以下の#[英語記事]を、日本人にもわかりやすく要約してください。その際、英語で考えて日本で出力してください。

#[英語記事]
<ここに記事本文を記載>

Liquid Studio

(出典:X)

「ステップバイステップで」作業させる

これはGPT-3の時代から広く知られているテクニックで、回答文の書き出しに「ステップ・バイ・ステップで考えましょう」と記載すると回答精度が飛躍的にアップします。AI研究で有名な松尾研究室所属で、東京大学大学院特任研究員の小島武氏が2022年5月に論文で発表した日本発祥のアイデアです。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
海外で公開された以下の#[英語記事]を、日本人にもわかりやすく要約し#[要約文]に出力してください。その際、英語で考えて日本で出力してください。

#[英語記事]
<ここに記事本文を記載>

#[要約文]
ステップバイステップで考えましょう。
<生成結果をここに出力>

Liquid Studio

(出典:日本経済新聞社

引用箇所を明示させる

AIはハルシネーションを起こすリスクがあるため、人間による内容確認が必須です。特に要約など比較的長い出力を行う場合は確認自体の工数が増えてしまいますが、その負担を軽減するテクニックが「引用箇所の明示」です。要約結果に対し、入力文のどこから引用したのかを明示させることで効率的に確認を行うことができます。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
海外で公開された以下の#[英語記事]を、日本人にもわかりやすく要約し#[要約文]に出力してください。その際、英語で考えて日本で出力してください。また、記事本文から要約に使用した文章をハイライトしてください。

#[英語記事]
<ここに記事本文を記載>

#[要約文]
ステップバイステップで考えましょう。
<生成結果をここに出力>

Liquid Studio

(出典:OpenAI Prompt Engineering

ステップを踏ませる

タスクが複雑になると、一文で指示を理解させるのが難しくなります。作業ステップを構造的に明示することで、AIにどのような作業をしてほしいのかより明確に指示することができます。下例の太字箇所をご覧ください。

あなたは優秀な新聞記者です。
海外で公開された以下の#[英語記事]を、#[作業ステップ]に従って#[最終記事]に出力してください。その際、英語で考えて日本で出力してください。また、記事本文から要約に使用した文章をハイライトしてください。

#[作業ステップ]
1. 日本人にもわかりやすいよう、日本語に要約する
2. 要約文から、記事タイトルを生成する
3. 記事タイトルに要約文を組み合わせ記事を完成させる


#[英語記事]
<ここに記事本文を記載>

#[最終記事]
ステップバイステップで考えましょう。
<生成結果をここに出力>

Liquid Studio

(出典:OpenAI Prompt Engineering

「ライバルが書いた」と設定する

ChatGPTは基本的にユーザーに忖度するため、批判的意見をもらうために使用する際は精度が落ちることがあります。そういう時は、入力文を「ライバルが書いた」ものと設定すると、指摘の精度があがることがあります。ここでは、「書いた記事の編集校正を行う」タスクを想定してプロンプトを作成します。下例の太字箇所をご覧ください。

あなたは優秀なデスクです。
ライバルの新聞記者が書いた記事のドラフトを批判的にチェックし、不十分な表現や文法、誤字脱字などをリストアップしてください

Liquid Studio

(出典:X

応用編

Federica Giusti

ChatGPTを使いこなす上で、まずは基礎編で解説したテクニックを使いこなすことが重要です。その上で、慣れてきた方は応用編の技術も取り入れることで、より精度の高く出力できるようになります。

追加質問して長い入力文を処理する

基礎編では、所与の記事に対して「タイトル生成」「要約した日本語記事生成」などのタスクを想定しプロンプトを作成しました。記事が短い場合は問題ありませんが、文字量が増えてくるとタイトルや要約の精度が落ちてくることがあります。これは、ChatGPTは一回のチャットで追える会話の長さが決まっているからです。
その際に使えるテクニックの一つが「追加質問」です。長い文章を要約させる場合、ChatGPTの出力後に追加質問として「見落としがないか確認し、あれば追記してください」とお願いすることで、ChatGPTが追えていない箇所も追加要約させることができます。下例の太字箇所をご覧ください。

【ユーザーによる最初の入力文】
あなたは優秀な新聞記者です。
以下の#[長文記事]を、わかりやすく要約してください。その際、細かい内容や具体的な例は省き、重要なポイントだけ抽出してください。

#[長文記事]
<ここに記事本文を入力>

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

【ChatGPTの出力】
<ChatGPTが要約文を出力するが、重要なポイントが欠けている>

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

【ユーザーによる追加質問】
関連するポイントは他にありませんか?見落としがないか注意してください。細かい内容や具体的な例は要約に含めないでください。

Liquid Studio

(出典:OpenAI Prompt Engineering

架空パラメーターを設定する

パラメーターとは、ChatGPTの出力文章のトークン数や自由度を調整する変数のことです。例えば、「temperature」というパラメーターは0~1の数値で指定することができ、数値が高いほど自由度が大きい文章を生成します。パラメーターはAPI経由でGPTを使用する場合のみ指定することができます(詳細はこちらの記事をご覧ください)。
ChatGPTで明示的にパラメーターを指定することはできませんが、ユーザーが自身で定義する「架空パラメーター」を設定することで、文章全体のスタイルをある程度制御することができます。
ここからは、「大人向けの新聞記事を子供向けにリライトする」ケースを考えてみます。架空パラメーター「kids(0~1)」を設定し、1に近づくほど子供向けの文章を出力するようChatGPTに指定します。これによって、kidsの値を調整するだけで文章全体のテイストをコントロールすることができます。

kidsは、文章の読者年齢を表すパラメーターで、表現の簡単さや漢字の数、文字量を表しています。デフォルトは0.5で、0から1の間の数値を取り、値が大きくなるほど幼児向けの文章になります。

あなたは優秀な新聞記者です。以下の#[記事]を、子供向けにリライトしてください。その際、kidsは0.8としてください。

#[記事]
<ここに記事本文を挿入>

Liquid Studio

(出典:note

メタ認知プロンプティング

メタ認知プロンプティングは、AIに自分の出力を自己評価、反省させる(=メタ認知)ことでより深い理解を促進する枠組みです。
AIに以下5つの思考ステップを踏ませることで、出力の精度が上がります。

  1. 理解の確認: 与えられたタスクに関する意味や理解は何か?

  2. 予備的判断: タスクに対する初期回答は何で、それはどのような情報や知識に基づいているか?

  3. 批判的評価: 初期回答は正確だと思うか?他の視点や情報を考慮すると、この考えを再評価する必要があるか?

  4. 最終的な判断と正当化: 批判的評価を経て、最終的な考えは何か? それに至った理由や根拠は何か?

  5. 自信の評価: •最終的な考えにどれくらい自信を持っているか? その自信の根拠は何か?

Metacognitive Prompting Improves Understanding in Large Language Models

kidsは、文章の読者年齢を表すパラメーターで、表現の簡単さや漢字の数、文字量を表しています。デフォルトは0.5で、0から1の間の数値を取り、値が大きくなるほど幼児向けの文章になります。

あなたは優秀な新聞記者です。
以下の#[記事]を、#[思考プロセス]に従って子供向けにリライトしてください。その際、kidsは0.8としてください。

#[思考プロセス]
1. 指示の内容と意味を理解する 

2. その理解に基づき、kids=0.8で記事を子供向けにリライトする。
3. 生成文が十分にkids=0.8程度でリライトされているか確認する

4. 3の検討に基づき、再度出力文のスタイルを調整する
5. 最終的なリライト文を自己評価を100点満点で述べ、改善余地を示す


#[記事]
<ここに記事本文を挿入>

Liquid Studio

(出典:Metacognitive Prompting Improves Understanding in Large Language Models

その他お役立ち情報

出力文字数の指定

見出し生成など、ChatGPTが出力する文字数をコントロールしたいケースは多く存在すると思います。しかし、現状ChatGPTでは正確に文字数を制御することができず、おおよその数を指定できる程度にとどまっています。代替方法として、出力済みの文章に対して追加質問で「さらに短くする」「さらに長くする」と指定して再生成する方法も存在します。

(出典:OpenAI Prompt Engineering

エラーの原因を振り返らせる

メタ認知プロンプティングと似た考え方ですが、ChatGPT自身に間違えを反省させ改善ポイントを示してもらうというテクニックもあります。これによって、プロンプトを修正する際の指針が得られると共に、ChatGPTが理解しやすい言葉を知ることもできます。

(出典:note

Liquid Studioについて

Liquid Studioは、メディアエンタメ業界に特化した併走型コンサルティングスタジオです。生成AIなどの先端テクノロジーに強みを持ち、ビジネスと技術の両面からハンズオンでご支援致します。これまで、大手新聞社やデジタルニュースメディア、エンタメ系スタートアップ、雑誌社など多数の企業様に対し、社内セミナーや技術導入、戦略提案、オペレーション構築など多角的な支援を提供してきました。
HP: https://www.liquidstudio.biz/

この記事が気に入ったらサポートをしてみませんか?