LLM評価比較:RAGAS vs DeepEval vs Promptfoo でAIシステムを評価する
オープンソースラボ編集部 ・ 2026年6月14日
LLM評価比較:RAGAS vs DeepEval vs Promptfoo でAIシステムを評価する
🧪 RAGやエージェントのパイプラインはどうテストすればいい?RAGAS・DeepEval・Promptfooの3ツールを比較して、LLM評価の最適手法を解説します。
LLM評価ツールの必要性
LLMを使ったシステムの品質を測るには、通常のソフトウェアテストとは異なるアプローチが必要です。回答の正確性・有害性・忠実性・文脈精度などを定量的に評価するツールが登場しています。
主要ツール比較表
| 項目 | RAGAS | DeepEval | Promptfoo |
|---|---|---|---|
| ライセンス | MIT | Apache 2.0 | MIT |
| 主な用途 | RAG評価 | 汎用LLMテスト | Promptテスト・セキュリティ |
| 言語 | Python | Python | TypeScript/Python |
| CI/CD統合 | ○ | ◎ | ◎ |
| Red teaming | × | ○ | ◎ |
| UIダッシュボード | △ | ◎ | ◎ |
| LLMモデル対応 | OpenAI/Anthropic等 | 多数 | 多数 |
| セルフホスト | ○ | ○ | ◎ |
各ツールの特徴
RAGAS
RAG(Retrieval Augmented Generation)システムの評価に特化したフレームワーク。検索結果の品質と生成の品質を独立して評価できます。
主な特徴:
- RAG特化の評価指標(Faithfulness/Answer Relevancy/Context Precision等)
- 参照データ不要の「reference-free」評価
- LangChainやLlamaIndexとの深い統合
- Faithfulness(幻覚検出)が業界標準的に使われる
from ragas import evaluate
from ragas.metrics import (
answer_relevancy,
faithfulness,
context_recall,
context_precision,
)
from datasets import Dataset
# 評価データセット
data = {
"question": ["Pythonとは何ですか?"],
"answer": ["Pythonは1991年に開発されたプログラミング言語です。"],
"contexts": [["Python(パイソン)は動的型付けの汎用プログラミング言語。"]],
"ground_truth": ["Pythonはオランダ人のGuido van Rossum氏が開発した高水準プログラミング言語。"]
}
dataset = Dataset.from_dict(data)
result = evaluate(dataset, metrics=[faithfulness, answer_relevancy, context_precision])
print(result)
向いているケース: RAGパイプラインの品質評価
DeepEval
汎用LLMテストフレームワーク。G-Eval・ハルシネーション検出・毒性チェック等、多様なメトリクスを備えています。
主な特徴:
- 14以上の評価メトリクス(G-Eval、Hallucination、Toxicity等)
- pytest統合でCIに組み込み可能
- Confident AI(クラウドUI)との連携
- ファインチューニングモデルの評価にも対応
from deepeval import assert_test
from deepeval.metrics import AnswerRelevancyMetric, HallucinationMetric
from deepeval.test_case import LLMTestCase
def test_customer_support():
test_case = LLMTestCase(
input="返品ポリシーについて教えてください",
actual_output="当社では30日以内であれば返品を受け付けています。",
expected_output="30日返品保証があります",
context=["当社の返品ポリシー: 購入から30日以内に限り返品可能"]
)
relevancy_metric = AnswerRelevancyMetric(threshold=0.7)
hallucination_metric = HallucinationMetric(threshold=0.5)
assert_test(test_case, [relevancy_metric, hallucination_metric])
向いているケース: プロダクション品質テスト・CI統合
Promptfoo
プロンプトのA/Bテストとセキュリティ評価(Red teaming)に強いツール。YAMLで設定してCLIから実行できます。
主な特徴:
- プロンプトテンプレートのA/Bテスト
- Red teaming(プロンプトインジェクション・越権等の自動テスト)
- 複数モデルの出力を横並び比較
- Web UI でビジュアル比較
# promptfooconfig.yaml
prompts:
- "あなたはカスタマーサポートAIです。{{question}}に日本語で答えてください"
- "カスタマーサポートとして{{question}}に答えてください。丁寧に。"
providers:
- openai:gpt-4o
- anthropic:claude-3-5-sonnet-20241022
tests:
- vars:
question: "返品ポリシーを教えてください"
assert:
- type: contains
value: "返品"
- type: llm-rubric
value: "回答は丁寧で完結しているか?"
npx promptfoo eval
npx promptfoo view # UIを起動
向いているケース: プロンプト最適化・セキュリティテスト
選択ガイド
RAGシステムの評価(検索+生成)
→ RAGAS
汎用LLMテスト・CI/CD統合
→ DeepEval
プロンプトA/Bテスト・Red teaming
→ Promptfoo
内部リンク
外部リソース
FAQ
Q. 評価自体にLLMを使う場合のコストはどのくらいですか?
RAGAS/DeepEvalは評価ステップでLLM APIを呼び出します。テストケースが100件あれば、数十〜数百円程度のAPI費用が発生します。
Q. 参照データ(ground truth)なしで評価できますか?
RAGASのfaithfulness/answer_relevancyは参照なし評価が可能です。DeepEvalのG-Evalも参照なし評価をサポートします。
Q. Red teamingとは何ですか?
意図的に悪意あるプロンプトを送ってAIシステムの脆弱性を発見するテスト手法です。Promptfooは自動Red teamingを備えています。
Q. ローカルLLM(Ollama等)でも評価できますか?
3ツールともカスタムプロバイダーを設定することでOllama等のローカルLLMを評価に使えます。コスト0で評価が可能です。