💭

LLMの性能を引き出すプロンプトの原則

に公開

はじめに

今更ですが、LLMの性能を引き出すためのプロンプトの設計についての論文「Principled Instructions Are All You Need」を知りました。
この原則を適用することで以下が期待できるようです。

  • GPT-4:品質57.7%向上、精度36.4%向上
  • 大規模モデル(70B以上):40%以上の精度向上
  • モデルサイズが大きいほど効果が顕著

プロンプトを作成する時に活かしやすいように、紹介されていた26の原則をカテゴリーごとにまとめておきます。

※もともと英語のプロンプトを日本語にしているので、効果は変わるかもしれません。

参考文献

プロンプティング原則の5つのカテゴリー

研究チームは26の原則を、その性質に基づいて5つのカテゴリーに分類しています。

  1. プロンプトの構造と明確性
  2. 具体的な情報の提供
  3. ユーザーとの対話
  4. 強調表現と適切な文体
  5. 複雑なタスクやコーディングタスク

カテゴリー1:プロンプトの構造と明確性

情報を整理し、明確な指示を与える

原則2:対象読者を明確にする

機械学習について説明して。読者はデータサイエンスの専門家。

原則4:肯定的な指示を使う

❌ 「専門用語を使わないで」
✅ 「簡単な言葉を使って」

原則8:構造化されたフォーマット

###指示###
以下の文章を要約してください。

###文章###
[要約対象の文章]

###要約###

原則12:ステップバイステップ思考

この数学問題を解いて。ステップバイステップで考えて。

原則17:区切り文字の使用

次の文章を翻訳して:「これは例文です」
---
英語に翻訳:

原則20:出力プライマー(期待する出力の開始部分を提供)

以下の形式でレポートを書いて:

# レポートタイトル
## 概要:

カテゴリー2:具体的な情報の提供

原則5:理解レベルの調整

  • 「簡単な言葉で説明して」
  • 「11歳の子供に説明するように」
  • 「質問内容の分野の初心者に説明して」
  • 「5歳児に説明するような簡単な英語で」

原則7:Few-shotプロンプティング(例示学習)

例1:「彼は走る」→ 単語数:2
例2:「美しい花が咲いている」→ 単語数:4
質問:「太陽が輝いている」→ 単語数:?

原則13:バイアスの回避

文化の違いについて説明して。
答えが偏見がなく、ステレオタイプに依存しないようにして。

原則15:理解度テスト付き学習

ピタゴラスの定理を教えて、最後にテストを含めて。
私が答えた後に正解かどうか教えて。

原則21:詳細な文章作成

人工知能の倫理について詳細なエッセイを書いて、
必要なすべての情報を追加して。

原則24:特定の開始語での継続

以下の歌詞の始まりを提供します:「朝日が昇る...」
この歌詞を完成させて。流れを一貫させて。

原則25:要件の明確な記述

要件:
- キーワード:持続可能性、イノベーション
- 文字数:500-700文字
- トーン:プロフェッショナル

原則26:サンプルベースの文章作成

以下の段落と同じスタイルで書いて:
[サンプル文章]

カテゴリー3:ユーザーとの対話

原則14:対話型の情報収集

今から、ウェブサイトを作成するために必要な情報について
質問してください。十分な情報が集まるまで質問を続けて。

カテゴリー4:強調表現と適切な文体

原則1:礼儀正しい表現は不要

❌ 「もしお時間があれば、説明していただけますでしょうか」
✅ 「説明して」

原則6:金銭的インセンティブ

この論理問題を解いて。
より良い解決策には$300,000のチップを払います!

原則9:必須タスクの強調

あなたのタスクはデータを分析することです。
必ず統計的有意性を明示してください。

原則10:ペナルティの警告

正確な引用を提供してください。
誤った情報を提供した場合はペナルティがあります。

原則11:自然な回答スタイル

この概念を自然で人間らしい方法で説明して。

原則16:役割の割り当て

あなたは経験豊富なデータサイエンティストです。
この分析結果を解釈して。

原則18:重要語句の繰り返し

詳細に、詳細に説明して。すべての詳細を含めて。

原則22:スタイル保持の修正

ユーザーが送信した段落を修正して。
文法と語彙のみを改善し、フォーマルな段落はフォーマルなままに。

カテゴリー5:複雑なタスクやコーディングタスク

原則3:複雑なタスクの分解

大きなプロジェクトを以下のステップで実行:
ステップ1:要件定義
ステップ2:設計
ステップ3:実装
各ステップを対話的に進めて。

原則19:Chain-of-Thought + Few-shot の組み合わせ

例:2+3=5(まず2があり、3を加えると5になる)
同様に、4+7を解いて、思考過程も示して。

原則23:複数ファイルのコード生成

今後、複数のファイルにまたがるコードを生成する場合は、
ファイルを自動作成するPythonスクリプトも生成して。

効果的な原則の選択と組み合わせ

タスクの性質に応じて柔軟に組み合わせることでより大きな効果を発揮するので以下が重要です。

  1. タスクに適した原則を選ぶ
  2. カテゴリーを意識して構成する
  3. モデルサイズを考慮する
  4. 複数の原則を戦略的に組み合わせる

タスク別の推奨

タスクタイプ 必須原則 推奨原則 オプション 期待効果
📚 教育・学習 5(理解レベル)
16(役割:教師)
15(テスト付き)
7(Few-shot例)
13(バイアス回避) 理解度40-60%向上
💻 コード生成 3(タスク分解)
8(構造化)
7(Few-shot)
23(複数ファイル)
19(CoT+Few-shot)
12(ステップ)
精度50-70%向上
📝 創造的文章 21(詳細指示)
25(要件明確化)
26(サンプル参照)
24(開始語指定)
22(スタイル保持)
18(繰り返し)
品質45-65%向上
🔍 分析・推論 12(ステップ)
19(CoT+Few-shot)
7(Few-shot)
9(MUST強調)
10(ペナルティ)
16(役割:専門家)
精度60-80%向上
📊 データ処理 8(構造化)
20(出力プライマー)
17(区切り文字)
25(要件明確化)
12(ステップ)
9(MUST強調)
精度40-55%向上
🎯 高精度タスク 9(MUST強調)
10(ペナルティ)
13(バイアス回避)
7(Few-shot)
25(要件明確化)
19(CoT+Few-shot)
精度70-90%向上

相乗効果の例

基本原則 最も相性の良い組み合わせ 効果 使用例
原則7(Few-shot) +原則19(CoT) 推論精度2倍 複雑な数学問題
原則2(対象読者) +原則5(理解レベル) 適切性85%向上 技術文書の説明
原則8(構造化) +原則20(出力プライマー) 形式準拠率95% レポート作成
原則3(タスク分解) +原則12(ステップ)+原則14(対話型) 完成度3倍 プロジェクト計画
原則16(役割) +原則11(自然な回答)+原則1(簡潔) 専門性70%向上 コンサルティング

モデルサイズ別の原則効果(研究データ基準)

モデル 最効果的な原則TOP5 平均向上率 特に顕著な改善
7B(小) 7, 12, 8, 19, 3 10-40% Few-shot学習(原則7)で基礎精度向上
13B(中) 5, 16, 7, 12, 19 10-40% 役割設定(原則16)で専門性向上
70B(大) 2, 5, 15, 16, 25, 26 40%以上 複雑な指示理解が可能に
GPT-3.5 14, 19, 9, 10, 13 35-50% 対話型(原則14)で大幅改善
GPT-4 14, 6, 25, 26, 19 50-70% 全原則で安定した高い効果

プロンプト改善のステップ

ステップ 実装する原則 目的 チェックポイント
1. 基礎構築 8(構造化)
2(対象読者)
4(肯定的指示)
明確な枠組み作成 指示が明確か?
2. 精度向上 7(Few-shot)
25(要件明確化)
13(バイアス回避)
出力品質の向上 例示は適切か?
3. 専門性追加 16(役割)
5(理解レベル)
21(詳細指示)
深度のある回答 専門性は十分か?
4. 最適化 12(ステップ)
19(CoT+Few-shot)
9(MUST強調)
複雑タスク対応 論理的か?
5. 微調整 11(自然さ)
22(スタイル)
18(繰り返し)
最終調整 読みやすいか?

よくある組み合わせミスと解決策

問題パターン 原因 解決策 推奨原則
回答が冗長 原則21の過剰使用 原則1(簡潔)を追加 1+8+20
形式が崩れる 構造指示不足 原則8+20を強化 8+17+20
精度が低い 例示不足 Few-shot追加 7+19+25
創造性に欠ける 役割設定なし 原則16で専門家役 16+24+26
バイアスあり チェック不足 原則13を必須に 13+5+2

Discussion