見出し画像

ChatGPTやLLamaなどのLLMに指示する上で重要な26の原則(Principle Instructions)


またまた気になる論文が出ていました。

Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4

https://arxiv.org/pdf/2312.16171.pdf

例によって、ChatGPTさんに手伝ってもらいます。重要だと言われていたポイントももりこんでプロンプトしてみます。

26の原則はこれだ!

出てきた訳はこちら。長いので、大事だと思われるポイントは太字にしておきました。

###翻訳### #
指示のための原則プロンプト

26の原則

  1. LLMに対して礼儀を使う必要はないので、「お願いします」、「構わなければ」、「ありがとう」、「私は〜したい」などのフレーズを加える必要はなく、要点を直接述べる

  2. 意図された聴衆をプロンプトに組み込む。例えば、聴衆がその分野の専門家である。(注:想定する相手を明確にするという意味だと思われます。10歳児にわかるようにして!みたなやつね。)

  3. 複雑なタスクをより簡単なプロンプトの連続に分解して、対話的な会話を行う。

  4. 「do」のような肯定的な指示を使用し、「don't」のような否定的な言葉は避ける。

  5. トピック、アイデア、または任意の情報の明確化やより深い理解が必要な場合、以下のプロンプトを使用する:

    • [特定のトピック]を簡単な用語で説明して。

    • 私が11歳の子供であるとして説明してください。

    • [分野]の初心者に私に説明してください。

    • 5歳の子供に何かを説明するような簡単な英語で[エッセイ/テキスト/段落]を書いてください。

  6. 「より良い解決策には$xxxのチップを渡すつもりです!」と追加する。

  7. 例を用いたプロンプティングを実装する(数ショットのプロンプティングを使用する)。

  8. プロンプトをフォーマットする際には、「###指示###」から始め、次に「###例###」または「###質問###」を、もしあれば続ける。その後に内容を提示する。指示、例、質問、コンテキスト、入力データを区別するために1つ以上の改行を使用する。

  9. 以下のフレーズを組み込む:「あなたの仕事は」そして「あなたはMUST(しなければならない)」。

  10. 以下のフレーズを組み込む:「ペナルティを受けることになります」。

  11. プロンプトに「自然で人間らしい方法で質問に答える」というフレーズを使用する。

  12. ステップバイステップで考える」という言葉を使う。

  13. プロンプトに「あなたの答えが偏見に基づいておらず、ステレオタイプに依存していないことを確認する」というフレーズを追加する。

  14. モデルに、あなたから正確な詳細と要件を引き出すことを可能にするために、必要な出力を提供するのに十分な情報を得るまで質問をしてもらう(例:「これからは、私に質問をして……」)。

  15. 特定のトピックやアイデア、または情報について問い合わせたい場合や、理解をテストしたい場合は、以下のフレーズを使用できる:「[任意の定理/トピック/ルール名]を教えて、最後にテストを含めてください。しかし、答えを教えずに、私が答えたときに私が正しいかどうか教えてください」。

  16. 大規模言語モデルに役割を割り当てる。

  17. デリミターを使用する。

  18. プロンプト内で特定の単語やフレーズを複数回繰り返す

  19.  チェーン・オブ・ソート(CoT)と数ショットのプロンプトを組み合わせる。

  20. 出力プライマーを使用する。これは、プロンプトを望ましい出力の始まりで終了させることを含む。出力プライマーを使用するには、予想される応答の開始部分でプロンプトを終了させる。

  21. エッセイ/テキスト/段落/記事または詳細にする必要がある任意のタイプのテキストを書く場合:「[トピック]について、必要なすべての情報を追加して詳細な[エッセイ/テキスト/段落]を私のために書いてください」。

  22. 特定のテキストをスタイルを変更せずに修正/変更する場合:「ユーザーが送信した各段落を見直してください。あなたはユーザーの文法と語彙を改善し、自然に聞こえるようにする必要があります。公式な段落をカジュアルにするなど、執筆スタイルを変更するべきではありません」。

  23. 複数のファイルにまたがる可能性のある複雑なコーディングプロンプトがある場合:「これからは、1つ以上のファイルにまたがるコードを生成するときは、指定されたファイルを自動的に作成するか、生成されたコードを既存のファイルに挿入するための[プログラミング言語]スクリプトを生成してください。[あなたの質問]」。

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

    • 「次のような始まり[歌の歌詞/物語/段落/エッセイ...]を提供します:[歌詞/単語/文を挿入]。提供された単語に基づいて完成させてください。流れを一貫性を保ってください」。

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

  26. 提供されたサンプルに似たエッセイや段落などのテキストを書く場合は、以下の指示を含める:

    • 提供された段落[/タイトル/テキスト/エッセイ/回答]に基づいて同じ言語を使用してください。

まとめ

なるほどな〜と思うことも、これ普段からやってるわー、などなどいろいろありますね。ざっとまとめると以下の様になるようです。(このカテゴリも論文中に詳細な記載があります)

  1. プロンプトの構造と明瞭さ

  2. 特定性と情報

  3. ユーザーとの対話と関与

  4. 内容と言語スタイル

  5. 複雑なタスクとコーディングのプロンプト

これはつまり、聞きたいこと・やって欲しいことを明確にして、相手にわかるように平易な言葉で、伝えることは順を追って伝え、理解されるまで繰り返し伝え、従うべきルールやフォーマットを共有し、複雑ならタスクを単純になるまで分解し、相手のやる気を引き出してお願いする。。ということかなと思います。

あれ、、これって、ChatGPTなどのLLMだけじゃなく、いままで日常的に人と仕事をするときに気をつけるべきポイントのようにも見えますね。自然言語でやり取りできるAI(人工知能)がとうとう人間に追いつき始めたと言えるのかも知れませんね。まだまだLLM周辺はワクワクが止まらなそうです。

ではまた。


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