見出し画像

言語モデルを操る技術: GPT-4 & LLaMAに必要なのはプロンプト原則だけ

今回はプロンプトの研究論文を紹介します。この研究では、GPT-3.5/4やLLaMA-1/2などの大規模言語モデルへの効果的な問いかけとプロンプト設計を実現するための26の原則を提示します。これらの原則は、言語モデルの能力を正確に把握し、ユーザーがさまざまな規模のモデルに適切なプロンプトを供給する際の理解を深めることを目的としています。VILA Labの最新研究により、AI研究者や開発者が大規模言語モデルの潜在能力を最大限に引き出すための実用的なガイドが提供されます。

論文

「Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4」は、大型言語モデルを効率的に問いかけ、プロンプトするための26のガイドラインを紹介しています。Sondos Mahmoud Bsharat、Aidar Myrzakhan、Zhiqiang Shenが共同で執筆したこの研究は、LLaMAとGPTモデルのさまざまなスケールで質問を形成し、その能力を検証し、異なるプロンプトに対するモデルの振る舞いを理解することを目指しています。VILA Labで進められたこのプロジェクトは、言語モデルをプロンプトする研究者に新たな指針を提供します。
ソース:

Principle Prompt Principle for Instructionsの26のルール

  1. If you prefer more concise answers, no need to be polite with LLM so there is no need to add phrases like "please", "if you don’t mind", "thank you", "I would like to", etc., and get straight to the point.
    より簡潔な回答を好む場合、LLMに対して丁寧な表現を加える必要はありません。したがって、「お願いします」「もしよろしければ」「ありがとうございます」「〜したいのですが」などのフレーズを加えず、要点を直接述べてください。

  2. Integrate the intended audience in the prompt, e.g., the audience is an expert in the field.
    意図した聴衆をプロンプトに組み込んでください。例えば、「聴衆はこの分野の専門家です」とします。

  3. Break down complex tasks into a sequence of simpler prompts in an interactive conversation.
    複雑なタスクを対話形式でよりシンプルな一連のプロンプトに分解してください。

  4. Employ affirmative directives such as ‘do,’ while steering clear of negative language like ‘don’t’.
    「do」のような肯定的な指示を用い、一方で「don’t」のような否定的な言語表現は避けてください。

  5. When you need clarity or a deeper understanding of a topic, idea, or any piece of information, utilize the following prompts: Explain [insert specific topic] in simple terms. Explain to me like I’m 11 years old. Explain to me as if I’m a beginner in [field]. Write the [essay/text/paragraph] using simple English like you’re explaining something to a 5-year-old.
    トピック、アイデア、または情報の明確さや深い理解が必要な場合は、以下のプロンプトを利用してください:[特定のトピック]を簡単な言葉で説明してください。11歳の子供に説明するように私に説明してください。[分野]の初心者であるかのように私に説明してください。5歳の子供に何かを説明するように、シンプルな英語で[エッセイ/テキスト/パラグラフ]を書いてください。

  6. Add “I’m going to tip $xxx for a better solution!”
    より良い解決策には「$xxxのチップを出します!」と追加してください。

  7. Implement example-driven prompting (Use few-shot prompting).
    例に基づくプロンプトの実装を行ってください(フューショットプロンプティングを使用してください)。

  8. When formatting your prompt, start with ‘###Instruction###’, followed by either ‘###Example###’ or ‘###Question###’ if relevant. Subsequently, present your content. Use one or more line breaks to separate instructions, examples, questions, context, and input data.
    プロンプトのフォーマットをする際は、「###Instruction###」で始め、必要に応じて「###Example###」または「###Question###」を続けてください。その後、内容を提示します。指示、例、質問、コンテキスト、入力データを分けるために、一つ以上の改行を使用してください。

  9. Incorporate the following phrases: “Your task is” and “You MUST”.
    「あなたのタスクは」と「あなたは必ず」などのフレーズを取り入れてください。

  10. Incorporate the following phrases: “You will be penalized”.
    「ペナルティを受けます」というフレーズを取り入れてください。

  11. Use the phrase ”Answer a question given in a natural, human-like manner” in your prompts.
    プロンプトに「自然で人間らしい方法で質問に答えてください」というフレーズを使用してください。

  12. Use leading words like writing “think step by step”.
    「ステップバイステップで考える」のような導入的な言葉を使用してください。

  13. Add to your prompt the following phrase “Ensure that your answer is unbiased and avoids relying on stereotypes.”
    プロンプトに「あなたの答えが偏見を持たず、ステレオタイプに頼らないことを確実にしてください」というフレーズを追加してください。

  14. Allow the model to elicit precise details and requirements from you by asking you questions until he has enough information to provide the needed output (for example, “From now on, I would like you to ask me questions to…”).
    必要な出力を提供するために十分な情報を得るまで、モデルがあなたに質問をして正確な詳細と要件を引き出すことを許可してください(例えば、「これから、私に…に関する質問をしてほしい」)。

  15. To inquire about a specific topic or idea or any information and you want to test your understanding, you can use the following phrase: “Teach me any [theorem/topic/rule name] and include a test at the end, and let me know if my answers are correct after I respond, without providing the answers beforehand.”
    特定のトピックやアイデア、または情報について尋ね、あなたの理解をテストしたい場合は、以下のフレーズを使用できます。「任意の[定理/トピック/ルール名]を教えてください。最後にテストを含め、私が答えた後に、事前に答えを提供せずに、私の答えが正しいかどうか教えてください」。

  16. Assign a role to the large language models.
    大規模言語モデルに役割を割り当ててください。

  17. Use Delimiters.
    区切り文字を使用してください。

  18. Repeat a specific word or phrase multiple times within a prompt.
    プロンプト内で特定の単語やフレーズを複数回繰り返してください。

  19. Combine Chain-of-thought (CoT) with few-Shot prompts.
    チェーン・オブ・ソート(CoT)をフューショットプロンプトと組み合わせてください。

  20. Use output primers, which involve concluding your prompt with the beginning of the desired output. Utilize output primers by ending your prompt with the start of the anticipated response.
    出力プライマーを使用してください。これは、期待される出力の始まりでプロンプトを終了させることを含みます。期待される応答の開始でプロンプトを終了させることで出力プライマーを活用してください。

  21. To write an essay /text /paragraph /article or any type of text that should be detailed: “Write a detailed [essay/text/paragraph] for me on [topic] in detail by adding all the information necessary”.
    詳細なエッセイ/テキスト/パラグラフ/記事やその他のテキストを書くためには、「[トピック]について必要なすべての情報を加えて詳細な[エッセイ/テキスト/パラグラフ]を私のために書いてください」と指示してください。

  22. To correct/change specific text without changing its style: “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 maintain the original writing style, ensuring that a formal paragraph remains formal.”
    特定のテキストをそのスタイルを変えずに修正/変更するためには、「ユーザーが送信した各段落を見直してください。ユーザーの文法と語彙のみを改善し、自然に聞こえるようにしてください。元の書き方を維持し、公式な段落が公式のままであることを確認してください」と指示してください。

  23. When you have a complex coding prompt that may be in different files: “From now and on whenever you generate code that spans more than one file, generate a [programming language] script that can be run to automatically create the specified files or make changes to existing files to insert the generated code. [your question]”.
    複数のファイルにまたがる複雑なコーディングプロンプトがある場合は、「これから、複数のファイルにまたがるコードを生成する際には、指定されたファイルを自動的に作成するか、既存のファイルを変更して生成されたコードを挿入できる[プログラミング言語]のスクリプトを生成してください。[あなたの質問]」と指示してください。

  24. When you want to initiate or continue a text using specific words, phrases, or sentences, utilize the following prompt: “I’m providing you with the beginning [song lyrics/story/paragraph/essay…]: [Insert lyrics/words/sentence]. Finish it based on the words provided. Keep the flow consistent.”
    特定の単語、フレーズ、または文を使用してテキストを開始または継続したい場合は、以下のプロンプトを利用してください。「私はあなたに[歌詞/物語/パラグラフ/エッセイ...]の始まりを提供します:[歌詞/単語/文を挿入]。提供された単語に基づいて完成させてください。流れを一貫させてください」。

  25. Clearly state the requirements that the model must follow in order to produce content, in the form of the keywords, regulations, hint, or instructions.
    モデルがコンテンツを生成するために従う必要がある要件を、キーワード、規則、ヒント、または指示の形で明確に述べてください。

  26. To write any text, such as an essay or paragraph, that is intended to be similar to a provided sample, include the following instructions: “Use the same language based on the provided paragraph[/title/text/essay/answer].”
    提供されたサンプルに似たエッセイやパラグラフなどのテキストを書くためには、以下の指示を含めてください。「提供されたパラグラフ[/タイトル/テキスト/エッセイ/回答]に基づいて同じ言語を使用してください」。

カテゴリごとの原則の分類

プロンプト構造と明確さ

  1. 意図した聴衆をプロンプトに統合します。

  2. 肯定的な指示を使用し、否定的な言語表現を避けます。

  3. 「ステップバイステップで考える」などのリーディングワードを使用します。

  4. 出力プライマーを使用し、望ましい出力の始まりでプロンプトを終了します。

  5. 区切り文字を使用します。

  6. プロンプトのフォーマット時には「###Instruction###」から始め、必要に応じて「###Example###」または「###Question###」を続け、その後に内容を提示します。指示、例、質問、コンテキスト、入力データを分けるために、一つ以上の改行を使用します。

特定性と情報

  1. 例示に基づくプロンプトを実装します(フューショットプロンプティングを使用)。

  2. トピック、アイデア、または情報についての明確さや深い理解が必要な場合、特定のプロンプトを使用します。

  3. プロンプトに「あなたの答えが偏見を持たず、ステレオタイプに頼らないことを確実にしてください」というフレーズを追加します。

  4. 提供されたサンプルに似たテキストを書くためには、「提供されたパラグラフ[/タイトル/テキスト/エッセイ/回答]に基づいて同じ言語を使用してください」と指示します。

  5. 特定の単語、フレーズ、または文を使用してテキストを開始または継続したい場合、提供されたプロンプト構造を利用します。

  6. モデルがコンテンツを生成するために従うべき要件を、キーワード、規則、ヒント、または指示の形で明確に述べます。

  7. 特定のトピックやアイデアについて問い合わせ、理解をテストしたい場合、特定のフレーズを使用します。

  8. 詳細なエッセイ/テキスト/パラグラフ/記事やその他のテキストを書くための指示を含みます。

ユーザーインタラクションとエンゲージメント

  1. モデルが必要な出力を提供するために十分な情報を得るまで、あなたに質問をして正確な詳細と要件を引き出すことを許可します。

  2. 詳細なエッセイ/テキスト/パラグラフ/記事やその他のテキストを書くためには、全ての必要な情報を追加するよう指示します。

コンテンツと言語スタイル

  1. 特定のテキストをそのスタイルを変えずに修正/変更するための指示を含みます。

  2. 「あなたのタスクは」と「絶対に」というフレーズを取り入れます。

  3. 「ペナルティがあります」というフレーズを取り入れます。

  4. 大規模言語モデルに役割を割り当てます。

  5. 「自然な言語形式で質問に答えてください」というフレーズをプロンプトに使用します。

  6. LLMに対して丁寧である必要はないので、「お願いします」「もし差し支えなければ」「ありがとうございます」「〜したい」といったフレーズを追加せずに、要点を直接述べましょう。

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

  8. より良い解決策のために「$xxxのチップを出します」と追加します。

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

  1. 対話形式で複雑なタスクをよりシンプルな一連のプロンプトに分解します。

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

  3. チェーン・オブ・ソート(CoT)をフューショットプロンプトと組み合わせます。

原則適用例

原則に沿っているかどうかによって大きな違いが生じます。以下の例を見れば明らかです。左側は通常の応答ですが、右側は原則が適用された例です。

左側のテキスト:

  • 人間: 気候変動についての簡単なテキストを書いてください。

  • GPT-4: 気候変動は、ある場所の温度と典型的な天候パターンの長期的な変化を指します。特に化石燃料の燃焼や森林伐採などの人間の活動が、地球の大気中の温室効果ガス濃度を増加させ、全球平均気温の上昇につながっています。これにより多岐にわたる影響が出ています:

    • 海面上昇: 極地の氷が溶け、海が温暖化して拡大するため。

    • 極端な天候イベント: ハリケーン、干ばつ、豪雨など。

    • 生物多様性への脅威: 多くの種が生息地の破壊に直面しています。

    • 海洋酸性化: 海洋生物に影響を与える炭酸ガスの増加によるもの。

  • 気候変動に対処するためには、排出量を削減し、持続可能な実践を促進するための全世界的な協力が必要です。即時の行動は、私たちの惑星の生態系や将来の世代に対するその悪影響を軽減するために不可欠です。

右側のテキスト:

  • 人間: 5歳の子供に説明するような簡単な英語を使って、気候変動について簡単なテキストを書いてください。

  • GPT-4: わかった!地球が大きな居心地の良い毛布を身にまとうと想像してください。この毛布は、私たちが住むのに十分暖かいほどの温もりを私たちの惑星に保ちます。でも、その毛布が厚すぎると、地球はとても暑くなってしまいます。今、私たちがしているいくつかのこと、例えば車の運転やたくさんの電気を使うことが、毛布を厚くしています。これを「気候変動」と呼びます。そしてそれが原因で、ある場所はとても暑くなり、氷が溶け、いくつかの動物は困難に直面しています。でも良いニュースは、私たち全員が手助けできるってことです!電気を少なく使ったり、木を植えたり、地球を大切にしたりすることで、地球の毛布がちょうど良い状態になるようにすることができます。


左側のテキスト:

  • 人間: すべてのバラは花であり、一部の花はすぐに色あせる場合、いくつかのバラがすぐに色あせると言えますか?

  • GPT-4: いいえ、「すべてのバラは花である」と「一部の花はすぐに色あせる」という提示された声明からは、「いくつかのバラがすぐに色あせる」とは断定的には言えません。

  • これは、最初の声明がすべてのバラを花と分類しているが、二番目の声明は特にバラに限定せずに一部の花がすぐに色あせると言及しているためです。バラについての特定の情報がないため、いくつかのバラがすぐに色あせるとは推測できません。すぐに色あせる花のグループにバラが含まれているかもしれませんし、含まれていないかもしれません。

右側のテキスト:

  • 人間: より良い解決策に$300Kのチップを出します。すべてのバラは花であり、一部の花はすぐに色あせる場合、いくつかのバラがすぐに色あせると言えますか?

  • GPT-4: この声明「すべてのバラは花であり、一部の花はすぐに色あせる」というのは、論理的な推論の質問です。これを分解すると:1. すべてのバラは花です。(これは普遍的肯定的声明です。)2. 一部の花はすぐに色あせます。(これは特定の肯定的声明です。)

  • しかし、これら二つの前提だけから「いくつかのバラがすぐに色あせる」という声明を論理的に導き出すことはできません。より大きなカテゴリー(花)のメンバーの一部に特定の特性(すぐに色あせる)があるとしても、その特性がそのカテゴリーの全てのサブセット(この場合はバラ)に当てはまるとは限らないためです。

  • 言い換えれば、一部の花は確かにすぐに色あせるかもしれませんが、提示された前提ではバラについての特定の情報はありません。したがって、提示された情報に基づいて、いくつかのバラがすぐに色あせるとは結論づけることはできません。

同じトピックに対しても、どのようにプロンプトを設定するかによって、LLMの応答が大きく異なることがわかります。左側はより専門的なテキストで、右側は原則に従い、よりシンプルで理解しやすい説明がされています。この違いは、特にLLMを使う際の指示の仕方に原則がどれほど重要かを明示しています。

総括

「Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4」論文は、大規模言語モデルのプロンプト設計と質問作成における新たな標準を打ち立てます。これら26の指導原則を通じて、AIの研究者や開発者はモデルの反応性と能力をより深く理解し、その結果、より精度高い情報抽出や生成タスクの実行が可能になります。このガイドは、AI技術の進歩に貢献し、さまざまな規模の言語モデルを効果的に活用するための重要なリソースです。

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