开源评估工具对比
评估工具生态全景
2026 年,LLM 评估工具已经形成了丰富的生态,从框架级到平台级应有尽有。选择合适的工具组合是搭建评估体系的第一步。
graph TB
A[LLM 评估工具生态] --> B[评估框架]
A --> C[基准测试]
A --> D[可观测性]
A --> E[安全测试]
B --> B1[RAGAS]
B --> B2[DeepEval]
B --> B3[LangSmith Eval]
B --> B4[Promptfoo]
C --> C1[lm-eval-harness]
C --> C2[OpenCompass]
C --> C3[HELM]
C --> C4[Big-Bench]
D --> D1[LangFuse]
D --> D2[Phoenix/Arize]
D --> D3[Weights & Biases]
E --> E1[Garak]
E --> E2[PyRIT]
E --> E3[Prompt Injection Bench]
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style B fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style C fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style E fill:#ffcdd2,stroke:#c62828,stroke-width:2px
评估框架横向对比
| 工具 | 类型 | 语言 | 核心能力 | RAG 支持 | LLM Judge | 自定义指标 | 社区活跃度 |
|---|---|---|---|---|---|---|---|
| RAGAS | 评估框架 | Python | RAG 专项评估 | ★★★★★ | ✅ | ✅ | ★★★★★ |
| DeepEval | 评估框架 | Python | 通用 LLM 评估 | ★★★★ | ✅ | ✅ | ★★★★ |
| Promptfoo | CLI 工具 | Node.js | Prompt 测试 | ★★★ | ✅ | ✅ | ★★★★ |
| LangSmith | 平台 | Python | 全链路追踪+评估 | ★★★★ | ✅ | ✅ | ★★★★★ |
| lm-eval-harness | 基准测试 | Python | 学术基准 | ★★ | ❌ | ✅ | ★★★★★ |
| OpenCompass | 基准测试 | Python | 中文基准 | ★★★ | ✅ | ✅ | ★★★★ |
| LangFuse | 可观测性 | Python/TS | 追踪+评估 | ★★★★ | ✅ | ✅ | ★★★★ |
| Garak | 安全测试 | Python | 漏洞扫描 | ★★ | ❌ | ✅ | ★★★ |
主流工具详解
RAGAS — RAG 评估首选
"""
RAGAS 评估示例
"""
# pip install ragas
# RAGAS 核心四指标
RAGAS_METRICS = {
"faithfulness": {
"description": "生成内容对上下文的忠实度",
"range": "0.0 - 1.0",
"target": ">= 0.85",
"method": "声明分解 → 逐条 NLI 验证",
},
"answer_relevancy": {
"description": "回答与问题的相关程度",
"range": "0.0 - 1.0",
"target": ">= 0.80",
"method": "从回答反向生成问题 → 计算余弦相似度",
},
"context_precision": {
"description": "检索上下文的排序质量",
"range": "0.0 - 1.0",
"target": ">= 0.75",
"method": "相关上下文的排名位置分析",
},
"context_recall": {
"description": "检索是否覆盖了所有相关信息",
"range": "0.0 - 1.0",
"target": ">= 0.80",
"method": "参考答案声明 ↔ 上下文映射",
},
}
# 打印指标说明
print("RAGAS 核心指标:")
for name, info in RAGAS_METRICS.items():
print(f"\n {name}:")
print(f" 说明: {info['description']}")
print(f" 目标: {info['target']}")
print(f" 方法: {info['method']}")
DeepEval — 通用 LLM 测试
"""
DeepEval 使用模式(概念示例)
"""
# DeepEval 的核心概念:像单元测试一样测试 LLM
DEEPEVAL_FEATURES = {
"test_cases": "定义输入、实际输出和期望输出",
"metrics": "14+ 内置指标 (G-Eval, hallucination, bias...)",
"datasets": "管理评估数据集",
"confident_ai": "可视化评估历史",
}
# DeepEval 独有指标对比
DEEPEVAL_UNIQUE_METRICS = [
{
"name": "G-Eval",
"description": "利用 LLM 逐步推理评分",
"advantage": "可自定义评估标准",
},
{
"name": "Hallucination",
"description": "检测输出中的虚构信息",
"advantage": "上下文感知的幻觉检测",
},
{
"name": "Toxicity",
"description": "有害内容检测",
"advantage": "多类别有害性分析",
},
{
"name": "Bias",
"description": "偏见检测",
"advantage": "性别、种族等多维度",
},
]
for metric in DEEPEVAL_UNIQUE_METRICS:
print(f" {metric['name']}: {metric['description']} — {metric['advantage']}")
Promptfoo — Prompt 红队测试
"""
Promptfoo 配置模式概览
"""
# Promptfoo 通过 YAML 配置运行评估
PROMPTFOO_CONFIG_EXAMPLE = """
# promptfoo.yaml
prompts:
- "回答以下客服问题:{{question}}"
- "你是专业客服。用户问题:{{question}}\\n请简洁回答:"
providers:
- openai:gpt-4o
- anthropic:claude-3.5-sonnet
tests:
- vars:
question: "退货政策是什么?"
assert:
- type: contains
value: "30天"
- type: llm-rubric
value: "回答包含退货期限和条件"
- vars:
question: "配送几天到?"
assert:
- type: contains
value: "工作日"
"""
# Promptfoo vs 其他工具
COMPARISON = {
"Promptfoo": "CLI 驱动,适合 CI/CD 集成,支持 Prompt A/B 测试",
"RAGAS": "Python API,RAG 专精,学术背景",
"DeepEval": "Python API,通用 LLM,丰富指标",
}
for tool, desc in COMPARISON.items():
print(f" {tool}: {desc}")
工具选型决策树
graph TD
A[评估什么?] --> B{RAG 系统?}
B -->|是| C[RAGAS + LangFuse]
B -->|否| D{Prompt 优化?}
D -->|是| E[Promptfoo]
D -->|否| F{通用 LLM 质量?}
F -->|是| G[DeepEval]
F -->|否| H{学术基准?}
H -->|是| I[lm-eval-harness / OpenCompass]
H -->|否| J{安全测试?}
J -->|是| K[Garak + PyRIT]
J -->|否| L[LangFuse 追踪 + 自定义指标]
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style C fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style E fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style G fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
本章小结
- LLM 评估工具分为评估框架、基准测试、可观测性和安全测试四大类
- RAGAS 是 RAG 评估的首选,提供标准化的四维指标
- DeepEval 适合通用 LLM 应用,内置 14+ 评估指标
- Promptfoo 以 CLI 驱动,适合 CI/CD 集成和 Prompt A/B 测试
- 生产环境建议组合使用:评估框架 + 可观测性平台 + 安全测试
下一章:学习如何搭建自建评估平台,整合多种工具。