LLM(大規模言語モデル)の出力品質・安全性・信頼性を体系的に検証する手法の総称。従来のソフトウェアテストとは異なり、確率的な出力を扱うためファジーマッチング・LLM-as-Judge・統計的評価など独自のアプローチが必要となる。
LLMテスティングは、大規模言語モデルの出力を体系的に検証・評価するプロセスの総称である。従来のソフトウェアテスト(入力に対して決定的な出力を期待する)とは根本的に異なり、LLMの出力は確率的であるため、同じプロンプトに対して毎回異なる応答が生成される。この非決定性がLLMテストの最大の課題である。
LLMテスティングは大きく3つの領域に分類される。(1) 機能テスト(正確性・関連性・形式準拠の検証)、(2) 安全性テスト(有害出力・バイアス・プロンプトインジェクションの検出)、(3) 性能テスト(レイテンシ・スループット・コスト効率の計測)。
| テスト手法 | 概要 | 適用場面 | ツール例 |
|---|---|---|---|
| ゴールデンテスト | 期待出力との完全/部分一致 | 事実回答、分類 | pytest, Jest |
| LLM-as-Judge | 別のLLMが出力品質を評価 | 自由形式応答 | OpenAI Evals, Braintrust |
| ルベリック評価 | 採点基準に基づくスコアリング | 文章品質、分析 | Promptfoo, RAGAS |
| A/Bテスト | 2バージョンの比較評価 | プロンプト改善 | Langsmith, Weights & Biases |
| アドバーサリテスト | 攻撃的入力での安全性検証 | セキュリティ | Garak, Microsoft PyRIT |
| リグレッションテスト | モデル/プロンプト変更時の品質維持 | 本番運用 | Promptfoo, DeepEval |
LLMの出力品質を定量化するメトリクスは目的によって異なる。
正確性メトリクス:
安全性メトリクス:
性能メトリクス:
| ツール | 開発元 | 特徴 | 価格 |
|---|---|---|---|
| Promptfoo | OSS | CLI/CI統合、Red Team自動化 | 無料(OSS) |
| DeepEval | Confident AI | pytest統合、14種のメトリクス | 無料(OSS)+有料クラウド |
| Braintrust | Braintrust | LLM-as-Judge、実験管理 | フリーミアム |
| LangSmith | LangChain | トレーシング+評価+デバッグ | フリーミアム |
| OpenAI Evals | OpenAI | OpenAIモデル専用評価 | 無料(OSS) |
| Garak | NVIDIA |
Promptfooは最も広く使われているOSSテスティングツールで、YAML設定ファイルで評価シナリオを定義し、CI/CDパイプラインに統合できる。複数のLLMプロバイダを横断した比較評価にも対応している。
LLMアプリケーションの品質をプロンプト変更やモデル更新のたびに検証するため、CI/CDパイプラインへのテスト統合が重要である。
一般的なワークフロー:
GitHub ActionsでのPromptfoo統合はpromptfoo eval --ciコマンド一つで実行でき、結果はPRコメントとして自動投稿される。
テストケースの多様性: エッジケース、多言語入力、長文入力、空入力、悪意ある入力を網羅する。「うまくいくケース」だけのテストでは本番障害を防げない。
評価の再現性: temperatureを0に設定してテスト実行し、出力のばらつきを最小化する。統計的有意性が必要な場合は同じテストケースを5〜10回実行して平均値を取る。
ゴールデンデータセットの管理: 専門家が正解をアノテーションしたデータセットを用意し、定期的に更新する。ドメイン固有のテストケースは品質維持に不可欠である。
コードカバレッジの概念はLLMに直接適用できないが、「インテントカバレッジ」として想定ユースケースの網羅率を指標にできる。主要なユーザー意図(質問応答、要約、コード生成等)ごとにテストケースを用意し、各意図で80%以上のスコアを達成することを目標とする。
GPT-4oやClaude 3.5クラスのモデルをジャッジとして使用した場合、人間評価との一致率は80〜90%程度とされている。ジャッジモデル自体のバイアス(自社モデルへの甘い評価等)があるため、複数のジャッジモデルを使用するか、一定割合で人間レビューを併用することを推奨する。
評価セット100件をGPT-4oで実行する場合、約$2〜$5のAPI費用がかかる。LLM-as-Judgeを使用すると評価コストが追加される(ジャッジ実行で+$1〜$3)。CI/CDで毎コミット実行する場合は月$50〜$200程度を見込む。コスト削減には評価セットの重要度によるサンプリングや、安価なモデル(GPT-4o-mini等)でのスクリーニングが有効である。
| LLM脆弱性スキャナ |
| 無料(OSS) |