ストーリー
プロンプトA/Bテストとは
2つのプロンプトバリアント(A/B)を同じテストケースで実行し、評価指標を比較して優れた方を選択する手法だ。
テストケース群
├── プロンプトA → 出力群A → 評価スコアA
└── プロンプトB → 出力群B → 評価スコアB
比較: スコアA vs スコアB → 統計的に有意な差があるか?
実験設計の手順
Step 1: 変数の特定
独立変数(変更するもの):
- プロンプトの文面(AとBの違い)
統制変数(固定するもの):
- モデル(同じモデルを使用)
- 温度パラメータ
- max_tokens
- テストケース(同一セットを使用)
従属変数(測定するもの):
- 正確性スコア
- 一貫性スコア
- 平均応答トークン数
- コスト
Step 2: テストケースの準備
テストケースの設計基準:
- 最低30件のテストケース(統計的有意性の確保)
- 難易度を均等に分布させる
- Easy: 10件(単純な質問)
- Medium: 10件(複数の要素を含む質問)
- Hard: 10件(曖昧さやエッジケースを含む質問)
- 各テストケースに正解データを付与
Step 3: 実行と測定
各プロンプトバリアントについて:
- 全テストケースを実行
- 各テストケースを3回ずつ実行(一貫性の測定)
- 評価スコアを記録
実行マトリクス:
30テストケース × 2バリアント × 3回 = 180回の実行
統計的有意性
なぜ統計的有意性が重要か
LLMの出力は確率的であるため、少数の実行で得た結果は偶然によるものかもしれない。統計的検定を行うことで、観測された差が偶然でないことを確認する。
簡易的な判定方法
プロンプトA: 正確性 82%(30件中25件正解)
プロンプトB: 正確性 90%(30件中27件正解)
差: 8ポイント
判定基準(簡易版):
- 差が5ポイント以上 かつ テストケース30件以上 → 有意な差の可能性が高い
- 差が5ポイント未満 → 追加テストが必要
- テストケース30件未満 → サンプル不足
より厳密な判定
統計的検定の手順:
1. 帰無仮説: 「プロンプトAとBの性能に差はない」
2. 対応のあるt検定またはウィルコクソンの符号順位検定を実行
3. p値 < 0.05 であれば帰無仮説を棄却
4. 効果量(Cohen's d)も計算し、実用的な差の大きさを確認
効果量の目安:
| Cohen's d | 効果の大きさ |
|-----------|------------|
| 0.2未満 | 小さい |
| 0.2-0.5 | 中程度 |
| 0.5-0.8 | 大きい |
| 0.8以上 | 非常に大きい |
改善サイクル
PDCAサイクルの適用
Plan(計画):
- 現在のプロンプトの問題点を特定
- 改善仮説を立てる
- テストケースを準備
Do(実行):
- 改善版プロンプトを作成
- A/Bテストを実行
Check(評価):
- 評価指標を比較
- 統計的有意性を確認
- 想定外の副作用がないか確認
Act(適用):
- 優位なバリアントを採用
- 次の改善ポイントを特定
- サイクルを繰り返す
改善の方向性
| 問題 | 改善アプローチ |
|---|---|
| 正確性が低い | 指示の明確化、Few-shot例の追加 |
| 一貫性が低い | 出力形式の厳密化、温度の低下 |
| 安全性テスト不合格 | 禁止事項の強化、ガードレール追加 |
| コストが高い | プロンプトの圧縮、不要な指示の削除 |
| 応答が冗長 | 文字数制限の追加、簡潔さの指示 |
実践: NetShop社でのA/Bテスト
実験名: チャットボット応答品質の改善
対象: 商品問い合わせプロンプト
プロンプトA(現行版):
「お客様の質問に丁寧に回答してください。商品情報は参照データを使ってください。」
プロンプトB(改善版):
「お客様の質問に対し、参照データ[REF]のみに基づいて回答してください。
参照データにない情報は『確認いたします』と応答してください。
回答は3文以内、150文字以内としてください。」
テストケース: 30件
実行回数: 各3回
評価指標: 正確性、ハルシネーション率、応答文字数
結果:
| 指標 | A | B | 差 |
|------|---|---|-----|
| 正確性 | 78% | 91% | +13pt |
| ハルシネーション率 | 12% | 2% | -10pt |
| 平均文字数 | 280字 | 120字 | -160字 |
判定: プロンプトBが全指標で有意に優位 → B を採用
まとめ
| 項目 | ポイント |
|---|---|
| A/Bテスト | 2つのプロンプトを同条件で比較し優劣を判定 |
| 実験設計 | 変数の特定→テストケース準備→実行→測定 |
| 統計的有意性 | 30件以上のテストケースでp<0.05を確認 |
| 改善サイクル | PDCAで継続的にプロンプトを改善 |
チェックリスト
- A/Bテストの実験設計手順を理解した
- 独立変数・統制変数・従属変数を正しく設定できる
- 統計的有意性の簡易判定ができる
- PDCAサイクルでプロンプト改善を回す方法を把握した
次のステップへ
次は「プロンプトバージョニング」として、プロンプトの変更管理を学ぼう。
推定読了時間: 30分