6616AI

004|RAG 评估与优化:从指标到工程的完整链路

RAG 不是接个向量库就完了。评估要拆检索和生成,优化要端到端思考。这是面试最爱考的工程题。

核心结论:RAG(拉格,检索增强生成)系统的质量 = 检索质量 × 生成质量。评估必须拆开看,优化也要分别动手,同时关注延迟和成本。


一、RAG 为什么要分开评估

RAG 的错误来源有两个:

  1. 检索失败:关键文档没进 Top-K,或进了噪声文档。
  2. 生成失败:LLM 没理解检索结果,或编造了不存在的信息。

只看最终答案对不对,你根本不知道问题出在哪。


二、检索端指标

指标含义面试话术
Hit Rate(黑特·瑞特)正确答案是否在 Top-K命中率高说明召回能力强
MRR(米恩·瑞西普洛克·兰克)第一个正确答案排名的倒数平均关注首条结果
Recall(瑞·考)相关文档被召回的比例召回高但噪声可能多
Precision(普·瑞西·忍)召回结果中相关比例精确高但可能漏信息

三、生成端指标

指标含义面试话术
Faithfulness(费斯·福·内斯)答案是否忠于检索文档防止幻觉,面试重点
Answer Relevance(安·瑟·瑞·莱·文斯)答案是否和问题相关避免答非所问
Context Relevance(康·泰·克斯特·瑞·莱·文斯)检索上下文是否相关反映检索质量

四、检索优化

  1. Chunking(呛·克·英):按语义切分,不是越小越好。
  2. Embedding(音·拜·丁):选合适模型,垂域可微调。
  3. Hybrid Search(嗨·布·里德·瑟·奇):语义 + 关键词(BM25)结合。
  4. Rerank(瑞·兰克):先召回,再精排。
  5. Query Rewriting(克·威·瑞·瑞·埃·廷):扩展、改写用户问题。
# 混合检索伪代码
dense_scores = vector_db.search(query_embedding, top_k=50)
sparse_scores = bm25_search(query, top_k=50)
final_scores = rrf_fusion(dense_scores, sparse_scores)

五、生成优化

  1. Prompt Engineering:明确要求'不知道就说不知道'。
  2. Rerank:让最相关文档排在前面。
  3. 结果过滤:按时间、权限、来源过滤。
  4. 答案自检:让 LLM 判断答案是否忠于检索内容。

六、面试表达模板

RAG 评估我拆成检索和生成两个环节。检索看 Hit Rate、MRR、Recall;生成看 Faithfulness、Answer Relevance。优化上,检索做 Hybrid Search、Rerank、Chunking;生成做 Prompt Engineering、查询重写、结果过滤。最后还要关注 Latency 和 Cost。


七、一句话总结

RAG 评估要拆、优化要全,不能只盯着最终答案看。


下一步推荐

  • 005|Agentic RAG:让检索过程也能自主决策
  • 006|GraphRAG:知识图谱如何让 RAG 更具推理能力