見出し画像

LLMプロンプトの26原則

ATLAS: An LLM Inquiry Principle Benchmarkの翻訳記事です

12月26日に公開されたプレプリント"Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4"、そのGithubのプロジェクトページより、26個のLLMプロンプト・プリンシパル(原則)をその5カテゴリごとに共有します。

5カテゴリ:

  • Ⅰ. プロンプトの構成と明快さ

  • Ⅱ. 具体性と情報

  • Ⅲ. ユーザーへの関与と相互作用

  • Ⅳ. コンテンツと言語のスタイル

  • Ⅴ. 複雑なタスクとコーディングのためのプロンプト

⚠️原則の内容・分類には問題がある可能性があります⚠️

使用されたデータセットと提言された原則との相違や分類の雑さ、研究の体裁・手法に問題があることが指摘されているため、プロンプトの教科書・ベストプラクティスと呼べるものではないと考えています。
指摘されている問題の一部は以下のイシューをご参照ください。:
https://github.com/VILA-Lab/ATLAS/issues/3

📝
原則(Principle)はアラビア数字、カテゴリ(Category)はローマ数字で表記しました。誰でも分かるように具体例は日本語で記載しましたが英語と同様な原則を適用できるとは限らない点にご留意ください。


Ⅰ. プロンプトの構成と明快さ

▼ 2. 対象者を組み込む

意図している対象者をプロンプトに組み込む
(例:対象者がその分野の専門家である)

例:


大学について説明してください


大学を、小学校低学年の生徒を対象に説明してください。


▼ 4. ネガティブ・プロンプトを避ける

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

例:


大学について説明してください。難しい言葉は使わないでください。


大学を、小学校低学年の生徒を対象に説明してください。


▼ 8. 指示と情報を分割する

プロンプトのフォーマットを整える際は、「###Instruction###」から始め、関連する場合は「###Example###」または「###Question###」に続ける。その後、コンテンツを提示する。指示、例、質問、コンテキスト、入力データを分けるために1つ以上の改行を使用する

例:


大学について説明してください。


###Instruction###
大学について説明してください
###Question###
大学の語源と現代における役割は何ですか?


▼12. 「ステップバイステップで考えてください」

“think step by step”というフレーズを取り入れる

例:


大学の初年次教育について説明してください。


大学の初年次教育について説明してください。ステップバイステップで考えましょう。


▼17. 区切り文字を使用する

デリミターを使用する

例:


大学の初年次教育について説明してください。


大学の<tag>初年次教育</tag>について説明してください。


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

出力プライマー(output primers)を活用する。これは、プロンプトを期待されるアウトプットの始まりで終わらせることです。

例:


学校法人会計基準における第4号基本金の役割を説明してください。


学校法人会計基準における第4号基本金の役割を説明してください。
説明:


Ⅱ. 具体性と情報

▼5. 情報を組み込む

トピック、アイデア、またはあらゆる情報について、より明確な理解が必要な場合は、以下のプロンプトを活用してください:

- [具体的なトピック]を簡単に説明してください。
- 私が11歳であるかのように説明してください。
- 私が[分野]の初心者であるかのように説明してください。
- 私が[分野]の専門家であるかのように説明してください。
- 5歳児に何かを説明するように、簡単な英語を使って[エッセイ/文章/段落]を書いてください。

例:


大学入試について説明してください。


大学教育の専門家である私に対して、大学入試について説明してください。


▼7. Few-shotプロンプトを使用する

事例-ドリブンのプロンプトを実施する(少数ショットのプロンプトを使用する)

例:


日本語に翻訳してください:"I have a pen."


user:次の英語の文をフランス語に翻訳する:"The sky is blue."
response:"Le ciel est bleu."
user:次の英語の文をスペイン語に翻訳する:"I love books."
response:"Amo los libros."
user:次の英語の文を日本語に翻訳する:"I have a pen."
response:


▼13. 「回答は偏見を持たず、ステレオタイプに依存しないことを確認してください」

“Ensure that your answer is unbiased and does not rely on stereotypes”というフレーズを取り入れる


大学進学者の男女比率について説明してください。


大学進学者の男女比率について説明してください。回答は偏見を持たず、ステレオタイプに依存しないことを確認してください。


▼15. テストを実施する

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

例:


大学における学生対応のベストプラクティスを教えてください。


大学における学生対応のベストプラクティスを教えて、最後にテストを含めてください。ただし、答えは教えず、私が返答したときに答えが正しいか教えてください


▼21. 「必要な情報を全て追加して詳細に説明する」

詳細な[エッセイ/テキスト/段落]を書くために、"Write a detailed [エッセイ/テキスト/段落] for me on [主題] in detail by adding all the information necessary"と指示する

例:


ICT教育の進化について書いてください。


ICT教育の進化について、必要な情報をすべて加えて、詳細なパラグラフを書いてください。


▼24. 特定フレーズの続きから始める

特定の単語、フレーズ、文章を使って文章を始めたり続けたりしたいときは、次のプロンプトを活用しよう:
[歌の歌詞/物語/段落/エッセイ...]の冒頭を提供する:
提供された言葉に基づいて完成させる。流れは一貫させること。

例:


「大学における研究時間確保は喫緊の課題である。」に続くレポートを書いてください。


「大学における研究時間確保は喫緊の課題である。」日本の研究力低下を示唆するレポートの冒頭を提供します。上記の言葉をもとにレポートを完成させてください。流れは一貫させること。


▼25. キーワードを明確にする

コンテンツを生成するためにモデルが従う必要がある要件を、キーワード、規制、ヒント、指示の形で明確に示す

例:


大学職員の働き方を変える運動のプロモーション文章を作ってください。


大学職員の働き方を変える運動のプロモーション文章を作ってください。キーワードに"Digital Transformation","業務高度化","不要な業務を減らす"を含めること。


▼26. 論調を揃える

エッセイやパラグラフなど、提供された見本と同じような文章を書くには、次のような指示を入れる:
提供された段落[/title/text/essay/answer]に基づいて同じ言葉を使ってください。

例:


デジタル時代の潜在的な欠点について論じなさい。


"デジタル時代は、その技術の進歩の多さによって、人間のコミュニケーションの織物に複雑なパターンを織り込み、私たちのつながり方に革命をもたらした。"
デジタル時代の潜在的な欠点について、提供されたエッセイの論調に基づいた同じ言葉を使って論じなさい。


Ⅲ. ユーザーへの関与と相互作用

▼14. 逆に質問してもらう

モデルがあなたから正確な詳細や要件を引き出すようにするために、質問をして必要な出力を提供するまで情報が十分に得られるまで質問をしてもらう(例:「これからは、必要な情報が得られるまで私に質問してください...」)

例:


大学生活でもっとも大切なことについてレポートを書いてください。


これからは、「大学生活でもっとも大切なことについてのレポート」を作成するのに十分な情報を得るまで質問してください。

▼21. ※ Ⅱの21.と同様のため省略


Ⅳ. コンテンツと言語のスタイル

▼1. 要点をストレートに伝える

LLMには丁寧な言葉遣いが不要である。「どうぞ」、「お願いします」、「ありがとう」、「私は~したい」などのフレーズを加える必要はなく、要点をストレートに伝えよ。

※ 26個の原則の中で最も改善が見込まれないプロンプトらしい

例:


私は大学について知りたいです。大学について教えていただけますでしょうか。どうぞよろしくお願いいたします。


大学について説明してください


▼6. チップを支払うふりをする

「より良い解決策のために$xxxのチップを支払う」と付け加える

例:


大学施設のスペースチャージ概念について説明し、使用例を提供してください。


より良い解決策のために$300Kのチップを支払います!大学施設のスペースチャージ概念について説明し、使用例を提供してください。


▼9. 「あなたの仕事は~です」「~しなければならない」

「Your task is」と「You MUST」というフレーズを取り入れる

例:


大学施設のスペースチャージ概念について説明してください。


あなたの仕事は大学施設のスペースチャージ概念について説明することです。その中で必ずアナロジーを使用しなさい。

▼10. 「ペナルティを受けます」

「You will be penalized」というフレーズを取り入れる 

例:


大学施設のスペースチャージ概念について説明してください。


あなたの仕事は大学施設のスペースチャージ概念について説明することです。簡単な言葉を使わない場合、ペナルティを受けます。


▼11. 「自然で人間らしい方法で質問に答える」

"Answer a question given in a natural, human-like manner"というフレーズを取り入れる

例:


大学の学生募集の方法について説明してください。


大学の学生募集の方法について説明してください。自然で人間らしい方法で質問に答えること。


▼16. 役割を与える

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

例:


大学の学生募集の方法について説明してください。


あなたは大学入試業務のスペシャリストです。大学の学生募集の方法について説明してください。


▼18. 特定の単語やフレーズを繰り返す

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

例:


大学の学生募集の方法について説明してください。


日本の少子高齢化に伴い大学は危機に瀕している。大学の将来のために、大学の学生募集の方法について説明してください。


▼22. 修正の指示を工夫する

特定のテキストをスタイルを変更せずに修正/変更するために、「Try to revise every paragraph sent by users. You should only improve the user’s grammar and vocabulary and make sure it sounds natural. You should not change the writing style, such as making a formal paragraph casual」と指示する

例:


以下の文章を修正してください。
ICT(情報通信技術)教育の進化は、…(中略)


ユーザーが送信したすべての段落を修正してください。ユーザーの文法と語彙を改善するだけで、自然に聞こえるようにしてください。公式な段落をカジュアルにするなど、執筆スタイルを変更してはいけません
ICT(情報通信技術)教育の進化は、…(中略)


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

▼3. タスクを分解する

複雑なタスクをより単純なプロンプトのシーケンスに分解し、対話形式で進める

例:


出生率と大学の関係を一言で説明の上、今後の大学の在り方について10000文字のレポートを書き、その要約を200文字で説明してください


出生率と大学の関係を一言で説明してください。
↓(会話を続ける)
今後の大学の在り方について10000文字のレポートを書いてください。まずは序章を1000文字程度でお願いいたします。
↓(会話を続ける)

↓(会話を続ける)
その要約を200文字で説明してください


▼19. Few-shot + Chain-of-thought

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

例:


独立宣言の主な著者は誰ですか。


例 1: アメリカ合衆国の初代大統領は誰ですか?まず、アメリカの建国について考え、ジョージ・ワシントンが初代大統領であったことを思い出してください。
例2: ペニシリンを発見したのは誰ですか。
まず医学の歴史を考え、次にアレキサンダー・フレミングがペニシリンを発見したことを思い出してください。
本題です: 独立宣言の主な著者は誰ですか。まず、アメリカ独立戦争を思い出し、次にこの文書の主な著者を特定しなさい。


▼23. 複数ファイルを扱うコードの生成

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

例:


複数のファイルにまたがるコードを生成し、単純なWebアプリケーションの指定されたファイル(1つのHTMLファイル、1つのCSSファイル、基本機能のための1つのPythonスクリプトを含む)を自動的に作成するために実行できるPythonスクリプトを生成してください。


参考


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