HOME/ AINOW編集部 /これがChatGPTのプロンプトを完璧にする秘訣?
2023.04.20

これがChatGPTのプロンプトを完璧にする秘訣?

最終更新日:

ドイツ在住のデータサイエンティストであるJan Marcel Kezmann氏(同氏LinkedInページも参照)がMediumに公開した記事『これがChatGPTのプロンプトを完璧にする秘訣?』では、ChatGPTと対話する際に記述するプロンプトエンジニアリングをうまく機能させるノウハウがまとめられています。
ChatGPTとの対話で使うプロンプトエンジニアリングに関して、Kezmann氏はそのノウハウを以下のような5項目にまとめています。

ChatGPT向けプロンプトエンジニアリングを作成する際の秘訣5項目
  • 目的の定義:情報が欲しい、おすすめを教えてほしい、などのプロンプトの目的を明確に記述する。
  • コンテキストの提供:「車内空間が広いSUVでおすすめのものを教えて」のように詳細な回答を得るために背景情報等をプロンプトに含める
  • 具体化:「いい映画を教えて」のような一般的な質問は避けて、「過去5年間のラブコメ映画からおすすめを教えて」のように具体的に質問する。
  • 口語の使用:格式ばった文体より話し言葉に近いそれのほうが、ChatGPTは内容をより理解する。
  • 構成の工夫:データ形式や制限事項などの指示子を使って指定すると、より望ましい回答が得られる。

最近では日本でもプロンプトエンジニアリングを作成するノウハウの整備が進み、Prompt Engineering Guideが日本語に翻訳されたりしています。プロンプトエンジニアリングは、対話型AIの普及に伴って社会人の必須教養になるかも知れません。

なお、以下の記事本文はJan Marcel Kezmann氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。また、翻訳記事の内容は同氏の見解であり、特定の国や地域ならびに組織や団体を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
以下の翻訳記事を作成するにあたっては、日本語の文章として読み易くするために、意訳やコンテクストを明確にするための補足を行っています。

画像出典:Jan Marcel Kezmann(本記事原著者)が作成

ChatGPTを使ったプロンプトエンジニアリングのショートガイド

ChatGPTのような言語モデルを次のプロジェクトで使いたい場合、効果的なプロンプトの作り方を知っておく必要がある。

プロンプトの設計が良ければ、言語モデルから欲しい情報や結果を獲得できるが、逆に設計が悪いと、混乱や誤解を招く可能性がある。

このブログでは、ChatGPTで効果的なプロンプトを設計するためのノウハウを紹介する。

プロンプトの目的を理解することから、コンテキストの追加、トーンの検討まで、言語モデルとのやり取りを最大限に活用するために必要な知識をすべて解説する。

では、さっそく始めよう!

・・・

プロンプトの目的を理解する

プロンプトの構成を始める前に、何を実現したいかを明確にする必要がある。

情報を探しているのか、仕事を終わらせたいのか、あるいは単純に指導を受けたいのかなど、思い浮かべている目的を明確にすることで効果的かつ効率的なプロンプトを構築できる。

プロンプトの目的を決めるために、以下の質問を自問してみよう。

  • どのような情報を得たいのか。
  • どのようなタスクをこなしたいのか。
  • 自分が求めているのは、どのようなアドバイスや推奨なのだろうか。

何を実現したいのかを明確に理解すれば、プロンプトの設計に取り掛かれる。

また(プロンプトを設計する)プロセスを通じて目的を意識することで、プロンプトの焦点が合って成功するものとなる。

それゆえ、時間をかけて目標を考えてから、次のステップである「コンテキストの提供」に進もう。

・・・

コンテキストの提供

質問の目的を知ることに加えて、ChatGPTのためにコンテキストを提供することが重要だ。

コンテキストの提供は、言語モデルがユーザの要求を解釈して、正しく応答するために必要な情報を提供することを意味する。

以下のような情報を入れることで、コンテキストを提供できる。

  • 質問したトピックに関する背景情報
  • 関連する詳細や具体的な内容
  • さらなる質問や説明

例えば、ChatGPTに特定の車種について質問する場合、以下のようなコンテキストを提供できるだろう。

「燃費が良く、車内が広いコンパクトSUVを探しています」

このコンテキストは、ChatGPTがあなたの求めているものを理解し、正確な回答をするために必要なデータを提供するのに役立つ。

以上のようにコンテキストを提供すると、言語モデルは、あなたの条件を満たすコンパクトSUVのリストを燃費や車内空間に関する情報とともに回答するかも知れない。

プロンプトを設計する時は、あなたがChatGPTに何を求めているのかを理解できるように十分なコンテキストを含めるようにしよう。より多くの情報を提供すればするほど、言語モデルの応答はより正確で役立つものになる。

・・・

プロンプトを具体的にする

ChatGPTの効果を最大限に発揮させるためには、命令をできるだけ明確にしよう。つまり、正確で簡潔な言葉を使い、あいまいな表現を避けるのだ。

例えば、以下のような一般的な質問は良くない。

「いい映画を教えてくれませんか。」

代わりに以下のように具体的な質問をすると良いだろう。

「過去5年間のラブコメ映画からおすすめを教えてください。」

このように的確な質問をすることで、ChatGPTはあなたが求めているものを簡単に理解できるようになり、正確に返答できるようになる。以下のことを覚えておこう。

プロンプトを具体化するには、まずその目的を理解する必要がある。

また、プロンプトをより正確にする方法として、何を求めているのかを詳細に記載することもある。例えば、以下のような事例だ。

「高タンパクで調理が簡単なビーガン料理のレシピを教えてください」

こうした詳細を入力することで、ChatGPTはあなたの要求を理解し、特定のニーズをターゲットにして回答できる。

もちろん、私が例に挙げたものよりもさらに(詳細を)明示するのは自由だが、詳細にすればするほど、返答が制約される可能性があることに留意しよう。

そんなわけでプロンプトを作成する際には、できるだけ具体的な内容にするように心がけよう。

・・・

自然言語の使用

ChatGPTを使用する主な利点の1つは、このAIが自然言語を理解し応答するように訓練されていることにある。つまり、人間と同じように、自然でわかりやすい会話でこのAIに質問や要望を伝えられるのだ。

例えば、以下のように格式ばって質問しなくてもよい

「”banter(※訳註1) “という言葉の定義は何でしょうか」

(※訳註1)「banter」とは、(気の利いた)冗談、ひやかし、からかいを意味する英単語。

代わりにより会話に近い以下のようなアプローチを試してみよう。

「やあ、”banter”って言葉の意味知ってるかい」

ChatGPTは日常会話で鍛えられた可能性が高いので、あまり堅苦しくするよりも、以上のように砕けた文章の方がいいかも知れない。

また、ChatGPTとやり取りする際には、適切な文法とスペルを使用することが有益である。これにより、言語モデルがあなたの要求を正確に理解し、適切に応答できるようになる。

・・・

完璧なプロンプトを構成する

これまでにプロンプトについての考え方や準備の仕方、使用する言葉についての考察を述べてきた。

ところでChatGPTのプロンプトを設計するうえで最も重要なことの1つは、プロンプトが適切に構成されているのを確認することである。適切に設計されたプロンプトは、ChatGPTがあなたの要求を理解し、正確で適切な応答を提供するのに役立つ。

プロンプトを構成する場合、考慮すべきいくつかの要素がある(※原註1)

  1. コンテキストを設定する:質問、説明、背景シナリオを提供することから、プロンプトを開始すること。
  2. 主な指示:ChatGPTが行うべきタスクを明確かつ正確に定義すること。
  3. データ入力:提案された質問に対する回答として期待しているデータを入力する。回答できるデータ形式としてはExcelファイルの表、コードスニペット、またはE-Mailがある。

・・・

書式と制限事項:

上記に説明した要素を満たせば、十分に適切な回答を得られる。しかし、以下のようにさらなる詳細を提供することで、より良い出力が得られることも少なくない。

  1. 書式設定:データ入力に加えて、記事、コードブロック、リスト、特定のファイル形式、またはその他のスタイルで出力を提供するようにモデルに指示する。
  2. 指示子:対象者、時間枠、トーン、タスクの範囲などを定義する(※訳註2)。
  3. 制約事項:その他の不要な項目や動作はここに設定する。

以上の設計を支援する内容があれば、完璧な入力を妨げるものは何もない。

(※訳註2)この記事を執筆するにあたり、著者のKezmann氏は参考資料に挙げているMedium記事『ChatGPTプロンプトエンジニアリングのための汎用フレームワーク』を参考にしている。同記事では、以上の指示子に関する一覧表が事例とともに掲載されている。その表が以下。

ChatGPT向けの指示子一覧表

指示子名

説明

具体例

フォーマット指示子 出力形式を指定するために使用。指示子「コードブロックを使用する」を使用すると、簡単にコピー&ペーストで出力できるため便利な場合が多い。 「HTMLを使う」
「リストを作る」
「コードブロックを使う」
「表で提供する」
オーディエンス指示子 生成されたテキストが想定する読者が誰であるかをモデルに伝える。 「本文は14歳向け」
時間的指示子 モデルがテキストを生成する際に考慮すべき時間情報を指定。 「2021年8月時点における」
範囲指示子 モデルが実行することになっているタスクの範囲を指定。 「今後の性能の予測も含めて”」
「メインパートは彼のワイマール時代であるべき」
制限事項 モデルがテキストを生成する際に考慮すべき制約や制限を指定。 「20文字以内で」
「センシティブな内容は除外」
「ゲーテのワイマール時代は無視」

・・・

最後の注釈

ChatGPTのような言語モデルで理想的なプロンプトを作成するには、プロンプトの目的、提供するコンテキスト、使用する言語の特定など、いくつかの重要な特性を慎重に検討する必要がある。

また、プロンプトエンジニアリングは言語モデルとのやり取りを成功させるための重要な役割を担う。というのも、これは言語モデルがやり取りの目的、データソース、ターゲットオーディエンスを特定するのに役立つからである。

今回紹介したいくつかのガイドラインに従うことで、プロンプトが明確で簡潔、かつ効果的に望んでいる結果を達成できるようになる。

さて、このブログ記事を楽しんで頂けたでしょうか。もしそうなら、以下に拍手やコメントを残していただけると、とてもうれしいです(※訳註3)。

(※訳註3)この記事の原文記事が掲載されているMediumには、SNSによくある「いいね」の代わりに「拍手」ボタンがある。拍手ボタンは50回まで押下できる。

すべての記事にアクセスできるMedium memberのプレミアム会員になろうとお考えの方は、以下のリンクからご参加ください。

LinkedInで私と連絡を取る。

GitHubにある私の他の作品や 、Mediumにある他の記事も見てみてください。

参考資料:
(※原註1)Thorbjoern Heise, ‘A Generic Framework for ChatGPT Prompt Engineering‘, 2023, Medium.com

・・・

生成系AIで公開されている記事をフォローすれば、クリエイティブAI分野の最新ニュースやアップデートをお届けします。


原文
『Is This The Secret To The Perfect ChatGPT Prompt?』

著者
Jan Marcel Kezmann

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA

あなたにおすすめの記事

生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

特許技術×AIでFAQを次のステージへ|Helpfeel

GPUの革新からAI時代の主役へ|NVIDIA