AI DOG

【コピペで使える】これだけ見ればOK!プロンプトの書き方完全攻略ガイド【2024年5月最新版】

最終更新日:2024.05.26

SU

公認会計士 / AI dog CTO

suuu

【コピペで使える】これだけ見ればOK!プロンプトの書き方完全攻略ガイド【2024年5月最新版】

プロンプトをマスターして、ChatGPTを思いのままに操ろう!

こんにちは。AI活用コンサルティング会社「AI dog」の佐藤です。

近年、ChatGPTをはじめとした生成AIが一般にも広く使われるようになり、ビジネスの現場でもAIを活用する機運が高まっています。しかし、いざAIを使ってみると「うまく動いてくれない」「思ったような結果が出ない」といった声をよく耳にします。

実はAIを適切に動かすためには、AIに対する命令文、つまり「プロンプト」の設計が非常に重要なのです。プロンプト次第でAIの出力は大きく変わります。裏を返せば、プロンプトの設計を工夫することで、AIを自在に操ることができるのです。

本記事では、ChatGPTに限らず汎用的に使えるプロンプトの設計・記述方法について、網羅的に解説します。プロンプトについての知識は、まさに生成AIを使いこなすための必須スキルと言えるでしょう。

ぜひ記事を読み進めて、プロンプトの設計スキルを身につけ、AIを思いのままに操れるようになってください!質問やコンサルティングのご相談も大歓迎です。

お問い合わせはこちら
お問い合わせはこちら

プロンプトの基本的な書き方

プロンプトの書き方にはいくつかの基本パターンがあります。それぞれ特徴が異なるので、状況に応じて使い分けましょう。

ゼロショットプロンプト

ゼロショットプロンプトとは、モデルに例を示すことなく、いきなり命令を与えるプロンプトの方法です。

例えば感情分析をする場合、次のような形式になります。

次の文章のセンチメント(感情)を、ポジティブ、ネガティブ、ニュートラルの3つから分類してください。

文章:今日は最高に楽しい1日だった!

センチメント:

このように、やりたいタスクを直接指示するのがゼロショットプロンプトです。比較的シンプルなタスクであれば、これだけでも十分な精度が出せます。

ゼロショットプロンプトのメリットは、書くのが簡単というところでしょう。プロンプトエンジニアリングに不慣れな方でも、すぐに使い始められます。

【ここに画像を挿入】

フューショットプロンプト

フューショットプロンプトでは、命令とともに少数の具体例を示します。例えば先程の感情分析の場合、次のようになります。

次の文章のセンチメント(感情)を、ポジティブ、ネガティブ、ニュートラルの3つから分類してください。

文章1:祝日は嬉しいけど、あっという間に終わってしまう。
センチメント1:ニュートラル

文章2:絶望的だ。どうしようもない。 
センチメント2:ネガティブ

文章3:今日のディナーは最高に美味しかった! 
センチメント3:ポジティブ

文章4:今日は最高に楽しい1日だった!
センチメント4:

このように具体例を示すことで、モデルにタスクをより明確に伝えることができます。少し複雑なタスクの場合、ゼロショットよりもフューショットの方がうまくいくことが多いです。

【ここに画像を挿入】

チェーンオブソートプロンプト

チェーンオブソートプロンプトは、複雑な推論タスクで威力を発揮します。問題を解くまでの思考手順を段階的にプロンプトに書くことで、モデルに論理的な思考を促すことができるのです。

例えば次のような算数の文章題をモデルに解かせたいとします。

次の問題を読んで答えてください。

太郎君は本を9冊持っています。花子さんは太郎君の2倍の冊数の本を持っています。2人が持っている本の冊数を合わせると何冊になるでしょうか?

問題を解く手順:
1. 太郎君が持っている本の冊数を確認する
2. 花子さんが持っている本の冊数を計算する
3. 2人が持っている本の冊数を合計する

答え:

モデルは次のように答えます。

プロンプトで思考の道筋を示すことで、モデルに沿って論理的に考えを進めさせることができました。チェーンオブソートプロンプトは、計算問題や論理パズルなどに有効です。

以上、3つの代表的なプロンプトを紹介しました。続いては、プロンプトを作成する際の注意点をお伝えします。

プロンプトを書くためのコツ

具体的に指示を出す

プロンプトは具体的であればあるほど良いです。抽象的な表現は避け、できるだけ詳細に記述しましょう。モデルにやってほしいことを明確に伝えられるかがポイントです。

悪い例:

契約書を作成して。

良い例:

次の情報を盛り込んだ、webデザインの業務委託契約書を作成してください。
- 委託者:株式会社A
- 受託者:株式会社B
- 委託内容:株式会社Aのコーポレートサイトのデザインおよびコーディング
- 納期:2023年9月30日
- 報酬:50万円(税込)
- 成果物の著作権:株式会社Aに帰属
- 機密保持:受託者は委託者の機密情報を第三者に開示してはならない 

やってはいけないことを示すのではなく、やるべきことを示す

プロンプトでは「〜するな」というネガティブな指示よりも、「〜しろ」とポジティブに指示した方が良い結果が得られます。

悪い例:

要約を書く際の禁止事項:
- 個人的な意見を挟まない
- 原文にない情報を付け加えない
- 冗長な表現を使わない

良い例:

要約を書く際の心がけ:
- 客観的な視点を保つ
- 原文の情報のみを使う
- 簡潔明瞭な表現を心がける

プロンプトに明確なフォーマットを指定する

モデルの出力形式を細かく指定することで、欲しい形式で答えを得られる可能性が上がります。

悪い例:

レシピを教えて。

良い例:

次の形式で、オムライスのレシピを教えてください。

[材料]
- 材料1 
- 材料2

...

[作り方]
1. 手順1 
2. 手順2

...

[ワンポイントアドバイス]
- アドバイス1
- アドバイス2

マークダウン記法などを用いて、明確なフォーマットを指定するのがコツです。

プロンプトの配列や順序にも気をつける

フューショットプロンプトを用いる際は、例示の配列や順序にも注意が必要です。モデルはこれに引っ張られることがあります。

悪い例(肯定例と否定例が偏っている):

次のレビューを、⭐️または⭐️⭐️⭐️⭐️⭐️の5段階で評価してください。

レビュー1:すごくおいしかった!リピート決定。 
評価1:⭐️⭐️⭐️⭐️⭐️

レビュー2:二度と食べたくない。もう来ない。
評価2:⭐️

レビュー3:美味しくはないけど、また来るかも。
評価3:

良い例(肯定例と否定例のバランスが取れている):

次のレビューを、⭐️または⭐️⭐️⭐️⭐️⭐️の5段階で評価してください。

レビュー1:すごくおいしかった!リピート決定。
評価1:⭐️⭐️⭐️⭐️⭐️

レビュー2:美味しくはないけど、また来るかも。 
評価2:⭐️⭐️⭐️

レビュー3:二度と食べたくない。もう来ない。
評価3:⭐️

レビュー4:そこそこ美味しかった。
評価4:

ラベルの偏りを避け、ランダムに配置するのがポイントですね。

以上、プロンプトを書く際のコツをまとめました。これらを意識するだけで、プロンプトの精度は格段に上がるはずです。

【ここに画像を挿入】

【保存版】ジャンル別 ChatGPTプロンプト集

ここからは、ChatGPTで使えるプロンプトの具体例を、タスクのジャンルごとにご紹介します。ぜひ参考にしてみてください。

文章要約

次の文章を、3文以内に要約してください。

私が子供の頃、祖父は毎年夏になると山奥にある別荘に連れて行ってくれました。別荘は古くて小さな木造の平屋でしたが、目の前を流れる清流の音を聞きながら縁側で涼をとるのが何よりも心地よかったのを覚えています。祖父はいつも縁側に座って悠然と煙草をふかしながら、流れる川を眺めていました。少し離れたところで私は虫取りに夢中になったり、川で泳いだりして遊んでいました。夕暮れ時になると祖父は大きな声で私を呼び、夕食の支度を手伝わせました。料理と言っても、その日に釣ってきた魚を焼くだけのシンプルなものでしたが、山の幸を食べながら祖父の古い話を聞くのが楽しみでした。今思えば質素な夏休みでしたが、私にとってかけがえのない思い出となっています。
筆者は子供の頃、毎年夏に祖父と一緒に山奥の別荘で過ごしていた。古くて質素な別荘だったが、自然に囲まれてのんびりと過ごす時間が心地よく、祖父との何気ない日常が楽しかった。その経験は筆者にとってかけがえのない大切な思い出となっている。

情報抽出

次の文章から、人名、所属団体、場所を抽出してください。

鈴木一郎氏(ABC株式会社社長)は、今年の夏季休暇を利用して、妻の花子さんと共にハワイ旅行に出かける予定だという
。旅行の目的地は、オアフ島のホノルル。鈴木氏はゴルフ、花子さんはサーフィンを楽しむ予定とのことだ。
抽出結果:

人名:
- 鈴木一郎
- 花子

所属団体:
- ABC株式会社

場所:
- ハワイ
- オアフ島
- ホノルル

質問応答

次の文章に基づいて、質問に答えてください。

大雨による河川の氾濫で、A市では約1,000世帯、B町では約500世帯が床上浸水の被害を受けた。A市では断水も発生し、最大で約12,000世帯が断水した。B町でも一部地域で断水が発生したものの、最大でも約300世帯にとどまった。

Q1:A市とB町を合わせると、床上浸水の被害を受けた世帯数はどれくらいですか?

A1:

Q2:断水の影響を最も大きく受けたのはA市とB町のどちらですか?  

A2:
A1:A市とB町を合わせると、床上浸水の被害を受けた世帯数は約1,500世帯です。A市で約1,000世帯、B町で約500世帯が被害を受けたため、その合計は1,500世帯となります。

A2:断水の影響を最も大きく受けたのはA市です。A市では最大で約12,000世帯が断水したのに対し、B町の断水は最大でも約300世帯にとどまりました。よって、断水の規模から見てA市の方が大きな影響を受けたと言えます。

テキスト分類

次の文章をポジティブ、ネガティブ、ニュートラルに分類してください。

文章1:新作映画を見てきたけど、期待していたほどではなかった。
ラベル1:

文章2:久しぶりに会った友人とゆっくり話ができて、とてもリフレッシュできた。
ラベル2:

文章3:今日は特に何もなかった1日だった。
ラベル3:
文章1:新作映画を見てきたけど、期待していたほどではなかった。
ラベル1:ネガティブ

文章2:久しぶりに会った友人とゆっくり話ができて、とてもリフレッシュできた。
ラベル2:ポジティブ

文章3:今日は特に何もなかった1日だった。
ラベル3:ニュートラル

会話

あなたは優秀なカスタマーサポート担当者です。丁寧でフレンドリーな口調で、お客様の質問に答えてください。

お客様:こんにちは。先日注文した商品についての質問があるのですが。 

あなた:
お客様:こんにちは。先日注文した商品についての質問があるのですが。

あなた:はい、こんにちは。ご注文の商品についてのご質問、承ります。どのようなことでお困りでしょうか? ご注文番号やお客様のお名前も合わせて教えていただけますと、スムーズにお答えできるかと思います。私にできる限りのことをして、問題解決のお手伝いをさせていただきます。どうぞよろしくお願いいたします。

コード生成

LLaMAモデルのためのプロンプトの例を3つPythonで書いてください。ただし、プロンプトテンプレートに埋め込むパラメータ部分は{param}のようにしておくこと。
# プロンプト1:文章要約タスク 

prompt1 = (

    "次の文章を、{max_length}文以内に要約してください:\n\n"

    "{text}\n\n"

    "要約:"

)

# プロンプト2:感情分析タスク

prompt2 = (

    "次の文章のセンチメントを、{labels}の中から選んでください。\n\n"

    "{text}\n\n"

    "センチメント:"

)

# プロンプト3:テキスト生成タスク

prompt3 = (

    "{text}\n\n"

    "上記の文章を、{writing_style}の文体で、{max_length}文字以内で続けてください。\n\n"

    "続き:"

)

論理的思考

下記の文章に論理的誤りがあれば指摘し、正しい理由を説明してください。

健康のためには適度な運動が必要だ。しかし、忙しくて運動する時間がない人が多い。だから現代人は健康ではない。
この文章には論理的な誤りがあります。

「忙しくて運動する時間がない人が多い」ことから、直接「現代人は健康ではない」と結論づけるのは飛躍があります。運動不足は健康に悪影響を及ぼす可能性が高いですが、それが即座に健康でないことを意味するわけではありません。 

現代人の健康状態を判断するには、運動以外の要因も考慮する必要があります。例えば食生活、睡眠、ストレス管理なども健康に大きく関わります。また個人差もあるでしょう。

したがって、「運動する時間がない人が多い」という前提だけから「現代人は健康ではない」と結論付けるのは早計だと言えます。健康について論じるためには、もっと多角的なデータと慎重な議論が求められます。

プロンプトのサンプルは以上です。プロンプトのテクニックを使いこなせば、ChatGPTのパフォーマンスはグンと向上します。

ChatGPTのプロンプトQ&A

最後に、ChatGPTのプロンプトに関してよくある質問をQ&A形式でお答えします。

Q. プロンプトを工夫すれば、ChatGPTは何でもできるようになる?

A. プロンプトの工夫である程度タスクのパフォーマンスは向上しますが、ChatGPTにはまだ多くの限界があります。

例えば、最新の出来事について聞いても2021年9月までの知識しかないので答えられませんし、画像生成や音声認識などもできません。

プロンプトを駆使して最大限活用しつつ、得意不得意をよく理解した上で使うことが大切だと思います。

Q. プロンプトはどのくらいの長さがベスト?

A. プロンプトは基本的に「短すぎず、長すぎない」のがベストです。

短かすぎると指示が不明確になりますし、長すぎるとかえって焦点がぼやけてしまうので、タスクに必要十分な情報を含むのが理想です。

目安としては50〜200単語程度でしょうか。ただし絶対的なルールではないので、ケースバイケースで最適な長さを模索してみてください。

Q. 英語のプロンプトと日本語のプロンプトはどちらが良い?

A. 英語のプロンプトの方が若干パフォーマンスが高いことが知られています。

これは、ChatGPTの学習データに英語テキストが多く含まれているためだと考えられます。

ただし、日本語のプロンプトでも十分実用的ですし、日本人ユーザーには日本語の方が親和性が高いはずです。

英語に慣れている人は英語、そうでない人は日本語のプロンプトを使うのが賢明だと思います。

以上、ChatGPTのプロンプトに関する基礎知識をお届けしました。

ChatGPTのプロンプトを極めて、AI活用の最先端を行く

ChatGPTに代表される生成AIは、私たちの生活や仕事に大きな変革をもたらしつつあります。

ビジネスの現場では、AIを活用して業務を効率化したり、新しい価値を生み出したりする動きが加速しています。

しかしAIを単に使うだけでは、他社と同じことしかできません。他社に差をつけるには、prompt engineeringを含むAI活用のスキルが不可欠なのです。

弊社AI dogでは、ChatGPTなどの生成AIを活用して、御社の課題解決や事業成長に貢献するコンサルティングサービスを提供しています。

  • 具体的には下記のようなサービスを行っております。
  • 御社の業務フローに適したプロンプト設計
  • プロンプトを活用したアプリケーション開発
  • 生成AIを活用した新規事業立ち上げ支援
  • 御社開発メンバーへのプロンプト設計指導

多数のAI開発の実績を元に、御社のAI活用を全面的に支援いたします。

ご興味をお持ちの方は、ぜひ一度お問い合わせください。貴社の更なる発展に向けて、全力を尽くす所存です。

▼お問い合わせフォームはこちら

お問い合わせはこちら
お問い合わせはこちら

それでは、プロンプト活用を通じて、ともにAIの可能性を切り拓いていきましょう!

AIの導入について相談する

記事を読んで、AIの導入について相談したいと感じた場合は、お気軽にお問い合わせください。

お問い合わせページへ移動する