一、评估体系全景架构与核心维度
(一)三维评估框架概述
LLaMA 3驱动的RAG(检索增强生成)系统评估需从检索质量、生成质量和系统效率三大维度构建完整体系,形成闭环验证机制。其全景架构如下:
(二)核心评估维度解析
1. 检索质量评估
检索质量直接决定RAG系统的知识召回能力,包含三大核心指标:
- Hit Rate@K:前K个检索结果中相关文档的比例,衡量基础召回能力
- Mean Reciprocal Rank (MRR):考虑正确结果排序位置的加权评分,公式为:
M R R = 1 ∣ Q ∣ ∑ q = 1 ∣ Q ∣ 1 r a n k q MRR = \frac{1}{|Q|} \sum_{q=1}^{|Q|} \frac{1}{rank_q} MRR=∣Q∣1q=1∑∣Q∣rankq1 - Normalized Discounted Cumulative Gain (NDCG@K):评估排序质量,对高相关性结果赋予更高权重
# 检索质量自动化评估代码
from llama_index.core.evaluation import RetrieverEvaluator
from datasets import load_dataset
# 加载测试数据集(问题-相关文档对)
def load_evaluation_data():
dataset = load_dataset("squad", split="validation[:100]") # 简化示例,实际应用需定制
test_cases = []
for item in dataset:
test_cases.append({
"question": item["question"],
"contexts": [item["context"]] # 假设context为相关文档
})
return test_cases
# 执行检索评估
def evaluate_retrieval(retriever, test_cases, k_values=[1, 3, 5]):
evaluator = RetrieverEvaluator.from_metric_names(
["mrr", "hit_rate"],
retriever=retriever
)
results = {
}
for k in k_values:
evaluator.k = k
metrics = evaluator.evaluate_dataset(test_cases)
results[f"MRR@{
k}"] = metrics["mrr"]
results[f"Hit@{
k}"] = metrics[f"hit_rate_{
k}"]
return results
# 示例调用
test_data = load_evaluation_data()
retrieval_metrics = evaluate_retrieval(vector_retriever, test_data)
print(f"检索评估结果: {
retrieval_metrics}")
2. 生成质量评估
生成质量反映LLaMA 3对检索结果的利用效率,关键指标包括:
- 事实准确率:人工标注生成内容与检索文档的事实一致性
- RAGAS忠实度:计算生成内容中可被上下文支持的陈述比例,公式为:
faithfulness = 支持陈述数 总陈述数 \text{faithfulness} = \frac{\text{支持陈述数}}{\text{总陈述数}} faithfulness=总陈述数支持陈述数 - 幻觉率:生成内容中无法被上下文验证的虚构信息比例
- 答案相关性:生成答案与用户问题的语义匹配度
# RAGAS忠实度与相关性评估
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevance
# 准备评估数据集
def prepare_generation_evaluation_data():
return {
"question": ["LLaMA 3支持多少种语言?"],
"answer": ["LLaMA 3支持英语、中文等30多种语言"],
"contexts": [["官方文档:LLaMA 3支持30+语言,包括中、英、法、德等主要语种"]],
"ground_truth": ["支持30余种主要语言"]
}
# 执行生成质量评估
def evaluate_generation(rag_system, evaluation_data):
# 调用RAG系统生成答案
generated_answer = rag_system.generate(evaluation_data["question"])
# 构建评估输入
eval_dataset = {
"question": [evaluation_data["question"]],
"answer": [generated_answer],
"contexts": [evaluation_data["contexts"]],
"ground_truth": [evaluation_data["ground_truth"]]
}
# 使用RAGAS评估忠实度和相关性
results = evaluate(
eval_dataset,
metrics=[faithfulness, answer_relevance]
)
return results
# 示例调用
rag_pipeline = build_llama3_rag_system()
gen_metrics = evaluate_generation(rag_pipeline, prepare_generation_evaluation_data())
print(f"生成评估结果: 忠实度={
gen_metrics['faithfulness']:.2f}, 相关性={
gen_metrics['answer_relevance']:.2f}")
3. 系统效率评估
系统效率决定RAG系统的工程落地可行性,涵盖:
- 端到端延迟:从用户提问到生成回答的全流程耗时
- 吞吐量:系统单位时间内处理的查询数量(QPS)
- 资源利用率:GPU/CPU内存占用、计算资源消耗等
二、三级评估框架与实施路径
(一)单元级组件测试
聚焦RAG系统各组件的独立功能验证