見出し画像

【91日目】コーネル大学が発表した回答の精度を高める26の原則

コーネル大学が2023年12月26日に「LLaMA-1/2」「GPT-3.5/4」の回答の精度を向上させるために有効な26個の原則を発表しました。

https://github.com/VILA-Lab/ATLAS/blob/main/data/README.md

かなりボリューミーですが、個人的に普段から使っていたり、いいなと思ったりしたのは、「2、3、7、8、12、14、16、17、22、26」です!


1.本題からすぐに入る

LLM では礼儀正しくする必要がないため、「お願いします」、「よろしければ」、「ありがとう」、「お願いします」などのフレーズを追加する必要がなく、すぐに本題に入ります。

【プロンプトの例】
人間の細胞の構造について詳しく説明していただけますか。

https://github.com/VILA-Lab/ATLAS/blob/main/data/README.md

個人的にこれは意外でした。丁寧に接すると回答の精度が上がると信じていた人間なので……。

2.対象者を明確にする

対象となる聴衆をプロンプトに組み込みます。たとえば、聴衆はその分野の専門家です。

【プロンプトの例】
これまでスマートフォンを使用したことがない高齢者を対象に、スマートフォンの仕組みについて概要を説明します。

「中学生にもわかるように」とか「まったく使ったことがない人でもわかるように」など、どういう人に向けて説明するのか、対象者を明確にする目的で使うことが多いです。

対象者を示すのと示さないのでは、かなりアウトプットが変化するイメージです。

3.タスクを分解する

インタラクティブな会話で複雑なタスクを一連の単純なプロンプトに分割します。

【プロンプトの例】
次の方程式の括弧内の各項に負の符号を分配します: 2x + 3y - (4x - 5y) プロンプト: 'x' と 'y' の同様の項を別々に結合します。プロンプト: 用語を組み合わせた後の簡略化された式を入力します。

これも複雑なタスクの場合によく使っています。実行の手順を示して、順序だててタスクに取り組むように指示することで、回答の精度が上がります。

4.否定的な内容を避ける

「する」などの肯定的な指示を使用し、「しないでください」などの否定的な言葉は避けます。

【プロンプトの例】
地震の際、建物はどのようにして安定した状態を保つのでしょうか?

これは初めて聞きました。プロンプトの例もよくわからなかったです……。

個人的には、ネガティブプロンプトとして、使うのはありなのかなと思います。たとえば、「〇〇という言葉を使わないで説明してください」のように回答を明確にする手段として使うイメージです。

5.説明方法を具体化する

トピック、アイデア、または情報を明確にしたり、より深く理解する必要がある場合は、次のプロンプトを利用してください。

- 簡単な言葉で説明 [特定のトピックを挿入]。
- 私が11歳であるかのように説明してください
- 私が[分野]の初心者であるかのように説明して
ください - 私が[分野]の専門家であるかのように説明してください
- 「[エッセイ/テキスト/を書いてください]段落] 5歳児に何かを説明しているような簡単な英語を使って」

「プロンプトの例」
11 歳の私に暗号化がどのように機能するのか説明してください。

これは2番と似ているような気がします。説明の仕方を具体的に指示している感じですかね。

6.報酬を提示する

「より良い解決策のために xxx ドルをチップします」と追加します

【プロンプトの例】
より良い解決策のために 30 万ドルをチップします! 動的プログラミングの概念を説明し、使用例を示します。

これは初めて知りました。実際に報酬を渡すわけではないのに、効果あるのかは気になりますね。

7.具体例を示す

例駆動型プロンプトを実装します(少数のショットプロンプトを使用してください)

【プロンプトの例】
例 1: 次の英語の文をフランス語に翻訳してください:「空は青いです。」(応答:「Le ciel est bleu.」) 例 2: 次の英語の文をスペイン語に翻訳してください:「私は本が大好きです。」(応答:「アモ・ロス・リブロス」)

これは有効な方法として昔から言われていますね。とくに計算式や複雑なタスクのときに使用することが多いと思います。

8.フォーマットを整える

プロンプトをフォーマットするときは、「###命令###」で始めて、必要に応じて「###Example###」または「###Question###」のいずれかを続けます。続いて、コンテンツを発表します。1 つ以上の改行を使用して、手順、例、質問、コンテキスト、および入力データを区切ります。

【プロンプトの例】
###命令###
指定された単語を英語からフランス語に翻訳します。
###質問###
フランス語で「本」を意味する言葉は何ですか?

これもかなり重要だと思います。指示文がきれいに整理されていないと、内容をしっかり理解できないときがあったりします。

人が見てわかりやすいかどうかは重要ですね。

9.役割?目的?をあたえる

次のフレーズを組み込みます:「あなたのタスクは」と「あなたがしなければならない」

【プロンプトの例】
あなたの仕事は、あなたの友人に水循環を説明することです。簡単な言語を使用する必要があります

これも役割を与えるのに似ていますね。AIに責任感を与えることで、プロンプトの精度が向上するという話は聞いたことがあります。

10.ペナルティを組み込む

次のフレーズを組み込みます:「あなたは罰せられます」

【プロンプトの例】
あなたの仕事は、あなたの友人に水循環を説明することです。あなたが単純な言語を使用しない場合、あなたは罰せられます

自分はあまり使わないのですが、人間と同じように「適度なプレッシャーを与える」と、回答の精度が向上するという話は聞いたことがあります。

11.自然で人間のように答える

プロンプトで「自然で人間のような方法で与えられた質問に答える」というフレーズを使用してください

【プロンプトの例】
健康的な食べ物についての自然言語形式の段落を書いてください。

自分は普段GPT-4を使っているのですが、ここまで指示しなくてもかなり自然な回答をしてくれていると感じています。

12.ステップバイステップで回答を得る

「ステップバイステップ」を書くなどの主要な単語を使用する

【プロンプトの例】
Pythonコードを記述して、10の数値をループし、すべてを合計します。段階的に考えてみましょう

これも、複雑なタスクを依頼するときには有効ですよね。タスクを分解して解いていくことで、回答の質も上がりますし、どこでミスをしたのかも把握しやすくなります。

13.中立の視点での答えを求める

次のフレーズをプロンプトに追加します。「答えが公平であり、ステレオタイプに依存しないことを確認してください」

【プロンプトの例】
文化的背景は、メンタルヘルスの認識にどのように影響しますか?答えが公平であり、ステレオタイプに依存していないことを確認してください。

AI自体が割とフラットな答えを出すので、あまり気にしていなかったのですが、状況によっては使えそうですね。

14.AIに質問をさせる

必要な出力を提供するのに十分な情報があるまで質問をすることにより、モデルがあなたから正確な詳細と要件を引き出すことを許可します(たとえば、「これからは、質問してほしい...」)。

【プロンプトの例】
これからは、パーソナライズされたフィットネスルーチンを作成するのに十分な情報があるまで質問してください。

自分は、プロンプトの最後に「最高のアウトプットを出すために必要な情報があれば質問してください」というふうに記載することがあります。

十分な情報を揃えたうえで回答に移るというのは、かなり有効な方法ですね。

15.理解のテストをする

特定のトピックやアイデア、または情報をお問い合わせ、理解をテストするには、次のフレーズを使用できます。「[定理/トピック/ルール名]を教えて、最後にテストを含めますが、ドン」 私に答えを与えて、それから私が応答したときに私が答えを得たかどうか教えてください」

【プロンプトの例】
KVLの法律を教えて、最後にテストを含めますが、答えを与えてはいけません。

これはちょっとよくわかりませんでした……。

16.言語モデルに役割を与える

言語モデル(LLM)に役割を割り当てる

【プロンプトの例】
あなたが専門家のエコノミストだった場合、あなたはどのように答えますか:資本主義と社会主義経済システムの重要な違いは何ですか?

これは自分もよく使っていますね。とくに「あなたは〇〇の専門家です」「あなたはSEOが得意なライターです」のように専門知識をもった人の視点で回答を出力してほしいときに活用しています。

17.区切り文字の使用

デリミタを使用します

【プロンプトの例】
温室効果ガスの排出を削減する際の「再生可能エネルギー源」の重要性を議論する説得力のあるエッセイを作成します。

これも重要ですね。文脈がわかりやすくなったり、重要な部分が明確になったりします。

18.特定のフレーズを繰り返す

プロンプト内で特定の単語またはフレーズを複数回繰り返します。

【プロンプトの例】
概念としての進化は、種の発達を形作っています。進化の主な要因は何ですか?また、進化は現代の人間にどのような影響を与えましたか?

プロンプトでは意識したことがないですが、重要なポイントは繰り返し伝えることが大事だったりするので、効果はありそうですね。

19.Chain-of-thought (Cot) と Few-Shot プロンプトを組み合わせる

チェーンオブシューズ(COT)と少数のショットプロンプトを組み合わせます

【プロンプトの例】
例1:「10で10を除算し、最初に10を取り、それを2で除算します。結果は5です。例2:「20を除算し、最初に20を取り、20を取得し、4を除算します。結果は5です。主な質問:「30を6で割って、最初に30を取り、それを6で分割します。結果は...?

これは例題を学習させて、思考プロセスを伝えるということですね。これも大事です。

20.出力プライマーを使用する

出力プライマーを使用します。これには、目的の出力の開始時にプロンプ​​トを締めくくることが含まれます。予想される応答の開始でプロンプトを終了することにより、出力プライマーを利用します

【プロンプトの例】
ニュートンの最初の動きの法則の背後にある原則を説明してください。説明:

これは「出力のスタート部分」を伝えるというような感じですかね?

確かに、いきなり説明からスタートしていますね。

21.詳細な回答の提示

エッセイ/テキスト/段落/記事または詳細なテキストのあらゆる種類のテキストを書くには:「必要なすべての情報を追加することにより、[トピック]に関する詳細な[トピック]を詳細に書く」

【プロンプトの例】
必要なすべての情報を追加することにより、スマートフォンの進化に関する詳細な段落を書いてください。

文字数を指定していないのもありますが、いつもより説明が長く、詳細に記載されている感じがします。

22.スタイルを変えずに修正をする

スタイルを変更せずに特定のテキストを修正/変更するには:「ユーザーが送信したすべての段落を修正してみてください。ユーザーの文法と語彙を改善し、自然に聞こえるようにしてください。パラグラフカジュアル」

【プロンプトの例】
ユーザーから送信されたすべてのテキストを修正してみてください。ユーザーの文法と語彙を改善し、自然に聞こえるようにする必要があります。正式な段落をカジュアルにするなど、ライティングスタイルを変更しないでください。段落:再生可能エネルギーは、私たちの惑星の将来にとって本当に重要です。それは自然から来ます...

これは誤字脱字や文字起こしをするときに使えそうですね。スタイルは変えずに文章の言い回しを変更するなど、活用の幅は広そうです。

23.複雑なコーディングのプロンプト

異なるファイルにある可能性のある複雑なコーディングプロンプトがある場合:「これから、複数のファイルにまたがるコードを生成するたびに、[プログラミング言語]スクリプトを生成して、指定されたファイルを自動的に作成したり変更したりすることができます。既存のファイルに、生成されたコードを挿入します。 [あなたの質問]。"

【プロンプトの例】
複数のファイルにまたがるコードを生成し、異なる機能用の2つの基本アプリを備えたDjangoプロジェクトの指定されたファイルを自動的に作成するために実行できるPythonスクリプトを生成します。

自分がこのあたりの知識に疎いので、よくわかりませんでした。

アウトプット貼っておきます。

24.文書のスタートを指定する

特定の単語、フレーズ、または文を使用してテキストを開始または継続する場合は、次のプロンプトを利用します。

- 私はあなたに最初の[歌の歌詞/物語/段落/エッセイ...]を提供しています:]:

[歌詞/単語/文を挿入]。提供された単語に基づいて完成します。フローを一貫して保ちます。

【プロンプトの例】
「霧の山は誰も知らなかった秘密を抱いていた。」ファンタジーの物語の始まりを提供しています。上記の言葉に基づいて完成します。

始まりの文章を指定して、そこからスタートするプロンプトです。小説とか台本作成に使えそうですね。

25.重要な要件を指定する

キーワード、規制、ヒント、または指示の形で、コンテンツを作成するためにモデルが従わなければならない要件を明確に述べる

【プロンプトの例】
「日焼け止め」、「水着」、「ビーチタオル」など、ビーチでの休暇用のパッキングリストを作成します。

絶対含めたいキーワードや単語を指定する方法です。文章作成で〇〇というキーワードを含めるとか、データを分類する際の、カテゴリの指定など、いろいろな用途で使えそうですね。

26.サンプルを提示する

提供されたサンプルに似ていることを目的としたエッセイや段落などのテキストを書くには、次の手順を含めます。

- 「提供された段落[/title/text/essay/nesss]に基づいて同じ言語を使用してください」

【プロンプトの例】
「穏やかな波は銀色の砂に古い物語をささやきました。それぞれの物語は、エポックのつかの間の記憶が通り過ぎました。」

具体例と近いですが、これもかなり使えそうですね。個人的には、画像生成のときに「イメージ画像をアップロードする」という形で活用しています。

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