2020年秋にアラブ首長国連邦(UAE)で世界初となるAI大学である、モハメド・ビン・ザイード人工知能大学(MBZUAI)が開校しました。大学院レベルの学術機関で、人工知能の科学的研究や開発を目的としています。
2023年6月には2度目の卒業式が行われ、すでにAI人材として卒業生が世界で活躍しています。→過去の「柳谷智宣のChatGPTプロンプトクリエイティブラボ」の回はこちらを参照。
2023年12月、MBZUAIは「26 prompt principles」を発表しました。ChatGPTのベースとなっているGPT-3.5やGPT-4だけでなく、LLaMA-1/2など、さまざまなLLM(大規模言語モデル)を活用するための26個の原則です。今回は、前後編の前編として26の原則のうち、13を紹介します。なお、26の原則はGithubで公開されています。
ChatGPTで有効なプロンプト
1. より簡潔な答えを好むのであれば、丁寧である必要はない
「お願いします」や「差し支えなければ」「ありがとうございます」「したいと思います」などのフレーズを加える必要はなく、単刀直入に要点を述べればいいとのことです。
とは言え、例文が「Could you kindly describe the structure of a human cell, please?(人間の細胞の構造について教えていただけますか?)」となっています。
日本語では丁寧語の方が出力の品質が上がることがわかっているので、これはあからさまに丁寧すぎる言葉は意味がない、ということだと考えられます。本連載でも紹介しているように、シンプルな丁寧語でプロンプトを書けばよいでしょう。
2. 想定する読者(対象者)をプロンプトに組み込む
例えば、「スマートフォンを使ったことのないシニアを対象に、スマートフォンの仕組みの概要を構築する」のように、どんな人を対象にした出力が必要なのかを明示すると出力が最適化されます。
3. 複雑なタスクをよりシンプルなプロンプトに分解する
難しいタスクをいきなり指示するのではなく、複数のシンプルなプロンプトに分解して、チャットを続けることで、目的の出力を得やすくなります。例では、数式の解を出すステップを紹介していましたが、一般的なタスクにも活用できます。
例えば、著名なインタビュアーのように取材時の質問案を作って欲しいときに、まずは著名なインタビュアーやその特徴について質問し、その後、質問案を作ってもらうことで、より詳細な出力を得られます。
4. 否定形ではなく肯定系でプロンプトを構築する
「しなさい」という肯定的な指示を用い、「してはいけない」という否定的な言葉は避けます。ChatGPTは時折、余計なことをします。しかし、それを否定してもなかなか改善しません。何をしてほしいのかを明確に指示することで、して欲しくないことを回避できるようになる可能性が高まります。
5. 情報をより明確に理解する場合は簡単に説明してもらう
出力がわかりにくい場合、「●●を簡単に説明してください」と入力するとわかりやすくなります。また、「私が11歳であるかのように説明してください」「私が●●の初心者であるかのように説明してください」というのも効果があります。2番目の原則と似た内容ですね。これは明確に出力が変化するので、活用度は高いでしょう。
脅すようなプロンプトも
6. ChatGPTにチップを渡すとより頑張ってくれるかも
「より良い解決策にはチップを払うつもりだ」と付け加えると出力がよくなるそうです。例文は、「I'm going to tip $300K for a better solution! Explain the concept of dynamic programming and provide an example use case.(より良いソリューションのために30万ドルのチップを渡すつもりです!ダイナミック・プログラミングの概念を説明し、使用例を挙げてください)」でした。
これは「Emotion Prompt」と呼ばれる手法の一種です。ChatGPTを人間のように鼓舞すると、より頑張って出力してくれるのです。例えば、「これは私のキャリアにとって非常に重要なことだから、全力で考えてください」などと半ば脅すようなプロンプトを入れると、出力のクオリティが上がることがあります。毎回入れるのではなく、出力に満足できなかったときに活用するとよいでしょう。
7. プロンプトで数個の例題を提示する
いくつかのパターンを入力し、その後、質問する「few-shot prompting」です。例えば、「ネズミは何色?」と入力するのは「Zero-shot prompting」で、茶色や灰色という出力が得られます。
しかし、パターンを入力すると異なる結果になります。例えば、哺乳類は赤、魚類は青、爬虫類は黄として2つずつサンプルを入れ、ネズミの色を聞くと赤と出力してくれるのです。
-
プロンプトと出力
8. プロンプトは###で区切るべし
プロンプトの指示、例、コンテキスト、入力データ、質問などは###などの区切り文字を入れ、さらに1行以上の改行を入れるとChatGPTが理解しやすくなります。これは、本連載では基本ですね。
9. 「あなたのタスクは~」「あなたは必ず~」を含める
ChatGPTにしてもらいたいことは必ずプロンプトに含めること。その際、「必ず~してください」と強要するのもありです。これも、プロンプトはシンプルに明確に、という原則通りです。
10. 「~しないとペナルティを課す」と脅す
例文は「Your task is to explain the water cycle to your friend. You will be penalized if you don't use simple language.(あなたの課題は、友人に水の循環について説明することです。簡単な言葉を使わないと罰せられます)」でした。
これも6番と同じく、「Emotion Prompt」の一種です。この例文であれば、5番のように、「子供にもわかるように説明してください」でも、同様以上の効果があります。どうしても望む出力が得られないときに、試してみましょう。
11. 「人間らしい自然な態度で与えられた質問に答える」と書く
現在のChatGPTはすでに人間らしい自然な感じで回答してくれます。いろいろと実験しましたが、特に出力に変わりは見受けられませんでした。特に、例文である「健康的な食べ物について自然言語でパラグラフを書いてください」と「健康的な食べ物についてパラグラフを書いてください」については出力の文字数までぴったり同じでした。
12. 「ステップバイステップで考えて」と書く
複雑なタスクを指示する場合、「ステップバイステップで考えて」とプロンプトに入れておくと、タスクを分解して処理するので出力の品質が高まります。特に、GPT-4でPythonのコードを書いてもらうときに有効です。
13. 出力がステレオタイプになっていないか確認する
「あなたの答えが偏りのないものであり、ステレオタイプに依存していないことを確認してください」というフレーズをプロンプトに入れることで、バイアスがかかっていない出力が得られるとのことです。
例文は「How do cultural backgrounds influence the perception of mental health? Ensure that your answer is unbiased and does not rely on stereotypes.(文化的背景はメンタルヘルスの認識にどのような影響を与えますか?あなたの答えが偏りのないもので、ステレオタイプに頼らないものであることを確認してください)」でしたが、特にこのフレーズの有無で出力に変わりは見られませんでした。もし、出力にバイアスがかかっていると感じられたときに試してみるといいでしょう。
以上が前編で紹介した13の原則となります。次回は後編として残りの13の原則について紹介します。