明けましておめでとうございます。
概要
- LLMの回答精度を向上させるための「26のプロンプト原則」を紹介する論文
- 以下の5つのカテゴリに分けて、26の原則について説明している。
- プロンプトの構造と明瞭さ
- 2. プロンプトの対象者を指定する (例:対象者は専門家)
- 4. 肯定的な指示を用いて、否定的な言葉を使わない
- 12. "step by stepで考えて" のような誘導する言葉を用いる
- 20. 「楽しい:ポジティブ、悲しい:ネガティブ」の後に「嬉しい:」で終わらせると、返答が「ポジティブ」となるように、期待する出力が出るように、入力の最後を出力させたい形式の最初の部分で終わるように入力する
- 17. 特定の区切り文字を使う
- 8. ###Instruction###'で始め、必要があれば'###Example###'または'###Question###'のいずれかをつける。
- 具体性と情報
- 7. 事例をプロンプトに入力する
- 5. トピック、アイデアなどに対して明瞭さや深い理解が必要なら、簡単な指示を出す
- 「〇〇」を簡単な単語で説明して
- 11歳に対して説明して
- 初心者でもわかるように説明して
- 5歳の子供に何かを説明しているように、シンプルな英語で[エッセイ/テキスト/段落]を書いて
- 13. プロンプトに「回答が偏って無く、ステレオタイプにならない」ことを指示
- 26. 提供されたサンプルに基づいて同じ言語で書くように指示する
- 24. 特定の単語、フレーズ、または文を使用してテキストを完成させるように指示
- 25. モデルの要件を、キーワード、規制、ヒント、または指示の形式で明確にする
- 15. 特定のトピックやアイデアについて問い合わせをし、入力者が理解しているかテストするように指示する。
- 21. トピックの詳細が必要ならば、そのように指示する
- ユーザーの相互性とエンゲージメント
- 14. モデルが必要な出力をするまで、質問をして正確な詳細と要件を引き出すことをモデルに指示する
- 21. 詳細なテキストを出力するように指示する
- コンテンツと言語の形式
- 22. 変更する形式と変更しない形式をそれぞれ指示する
- 9. 「あなたのタスクは」と「必ず」というフレーズを組み込む
- 10. 「ペナルティを課す」というフレーズを組み込む
- 16. モデルに役割を与える
- 11. 「自然言語で与えられた質問を答える」というフレーズを使う
- 1. 「お願いします」とか「ありがとう」や敬語などは使わない
- 18. プロンプト内で特定の「単語」や「フレーズ」を繰り返し用いる
- 6. 「良い回答には〇〇$のチップをあげる」と報酬を与えるようなフレーズ追加する
- 複雑なタスクとコーディングのプロンプト
- LLaMA-1 {7B, 13B} /LLaMA-2{7,13,70B} とChatGPT-3.5/4 で「26の原則」の効果を検証
- ATLAS というベンチマークを使って検証
- small (7B), medium (13B) とLarge (70B, GPT3.5/4)
- 検証指標は、BoostingとCorrectness
- Boostingが、指示によって出力の精度が向上するかどうか
- Correctnessは、指示によって期待した出力がでるかどうか
- Boostingでは、2, 5, 15, 16, 25, 26の原則によって、largeモデルでの精度が大きく向上
- Correctnessでは、モデル全体で20%を超える精度向上
- small, medium モデルは20~30%
- largeモデルは50%以上
感想
- プロンプトの精度を高める方法論をまとめただけではなく、様々なサイズのモデルに対して、2つの指標を用いて各原則がどれくらいの効果があるかを定量的に調べている
- 今までも「精度を高める指示や方法」があちこちで出てきたが、この論文の良いところは「定量的にその効果を幅広く示した」という点
- もちろん幾つか限界があり、今後同様のことをやる際には、より良い検証が出来るように環境を作っていく必要がある
- また、「26の原則」ということで精度向上のための「指示や方法」をまとめているのも良い
- ユーザー側にも良い情報となる
- 「原則」というタイトルの付け方もキャッチーだなあと感心した
- largeモデルの方が効果が大きいのは、原則にあるような「指示や方法」を理解できる能力がsmall、mediumと比べてlargeの方があるからなのか
- Limitation and Discussionにも「原則の効果は、複雑もしくは専門的すぎる絵質問を扱う場合は減少する。その理由は、各モデルの推論能力と学習に依存しているから」とある。
- 処理する側の能力が高ければ高いほど、恩恵は受けるということだろう
- 良いプロンプトを生成AIが作ってくれれば良いのではないだろうか、かと考えた
- ユーザーによるバラツキが大きいので、そこを小さくすることはできないものなのだろうか
- こういう原則を見ても、人によって精度のバラツキは大きそうだし
- でもその良いプロンプトを作るプロンプト、みたいにスパイラルになりそうとか妄想する
- 難しいのかな、やっぱり