Skip to content
🔗 分享本题
查看我的学习进度 →

RAG 评估指标库、测试框架、观测平台和托管服务按闭环选型图

🧠 记忆锚点:指标库解决怎么算,测试框架解决怎么卡门,观测平台解决线上怎么看;按团队闭环组合工具。

💡 答案要点

四大框架定位对比:

框架开发方核心定位主要特点
RAGASRAGAS TeamRAG 系统专用评估无需人工标注,LLM-as-Judge
TruLensTruEraLLM 应用可观测性实时反馈,三元组指标
DeepEval/confident-ai测试驱动评估像 Pytest 一样评估
UpTrainOpensource综合评估平台开源,多指标支持

RAGAS 详解:

四个核心指标:

指标英文测量什么计算方式
忠实度Faithfulness答案是否基于上下文LLM 判断:答案中多少比例的陈述能从上下文推导
回答相关性Answer Relevancy答案是否直接回答问题LLM 判断:问题和答案的语义相关性
上下文精度Context Precisiontop-k 检索的文档是否相关相关文档在 top-k 中的排名质量
上下文召回Context Recall相关文档是否都被检索到黄金标准 vs 检索到的相关文档

RAGAS 计算公式:

python
# Faithfulness = (可从上下文推导的陈述数 / 答案总陈述数)
# Answer Relevancy = 1 - (答案平均 embedding 距离 / 问题 embedding)
# Context Precision = Σ(相关文档权重 × 排名精度) / top-k 总数
# Context Recall = (检索到的相关文档数 / 黄金标准相关文档数)

# 示例阈值
FAITHFULNESS_THRESHOLD = 0.8
ANSWER_RELEVANCY_THRESHOLD = 0.8
CONTEXT_PRECISION_THRESHOLD = 0.7
CONTEXT_RECALL_THRESHOLD = 0.8

TruLens 详解:

RAG 三元组指标(RAG Triad):

指标说明与 RAGAS 对应
Answer Relevance答案对问题的相关性RAGAS Answer Relevancy
Context Relevance上下文对问题的支撑程度RAGAS Context Precision
Groundedness答案是否忠实于上下文RAGAS Faithfulness

TruLens 特色:实时反馈(Feedback Functions)

python
from trulens.core import Feedback
from trulens.feedback import Groundedness

# 自定义反馈函数
groundedness = Feedback(Groundedness()).on(
    context=...,  # 上下文
    summary=...   # 答案
).on_default()

# 实时评估
result = trulens_session.feedback([groundedness])

DeepEval 详解:

测试驱动评估(像 Pytest 一样):

python
from deepeval import evaluate
from deepeval.metrics import FaithfulnessMetric, AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase

# 定义测试用例
test_case = LLMTestCase(
    input="LLaMA-2有多少参数?",
    actual_output="LLaMA-2有7B、13B和70B三个版本",
    expected_output="LLaMA-2的参数规模为7B、13B和70B",
    context=["LLaMA-2是Meta开发的大模型","有7B/13B/70B三个版本"]
)

# 运行评估
metric = FaithfulnessMetric(threshold=0.8)
result = evaluate(test_cases=[test_case], metrics=[metric])

DeepEval vs RAGAS:

维度DeepEvalRAGAS
接口风格Pytest 风格独立函数
测试用例管理原生支持需自行管理
集成方式CI/CD 友好独立评估 Pipeline
覆盖范围RAG + 生成质量RAG 专项

UpTrain 详解:

综合多指标支持:

  • 代码评测(代码补全质量)
  • 对话评测(对话轮次、完成任务率)
  • RAG 评测
  • 视觉 RAG 评测
python
from uptrain import EvalLLM, Evals

# 定义评估配置
eval_llm = EvalLLM( OPENAI_API_KEY=... )
results = eval_llm.evaluate(
    data=[{"question": "...", "context": "...", "answer": "..."}],
    checks=[Evals.RESPONSE_FAITHFULNESS, Evals.RESPONSE_RELEVANCE]
)

选型建议:

场景推荐框架原因
快速评估 RAG 系统RAGAS无需标注,开箱即用
生产环境实时监控TruLens实时反馈,可观测性强
CI/CD 集成测试DeepEvalPytest 风格,团队熟悉
综合 AI 应用评测UpTrain多任务支持,开源免费
预算有限RAGAS + UpTrain均开源免费

面试话术:

"我生产环境用的是 RAGAS 做批量评估、TruLens 做实时监控。RAGAS 四个指标(忠实度、相关性、上下文精度、上下文召回)全面覆盖了 RAG 系统质量。TruLens 的三元组指标更适合快速反馈,每次上线前跑 500 道题,RAGAS 评分 > 0.8 才允许上线。DeepEval 更适合团队习惯 Pytest 的场景,用法一致,学习成本低。"