53-RAG评估体系-RAGAS指标-自动化评测实战
文章目录【53.PythonAI】RAG评估体系你的问答系统到底准不准RAGAS客观评价全解导入语1 ~ RAGAS四大核心指标2 ~ 完整评估脚本3 ~ 指标解读与优化4 ~ 人工评估vs自动评估思考 总结结尾【53.PythonAI】RAG评估体系你的问答系统到底准不准RAGAS客观评价全解文章简介本文系统讲解RAG系统的量化评估方法。内容涵盖RAGAS评估框架的四大核心指标——忠实度Faithfulness、答案相关性Answer Relevancy、上下文召回率Context Recall和上下文精度Context Precision每个指标的计算公式与应用场景。文中提供完整的自动化评估脚本和测试数据集构建方法并对比人工评估与自动评估的适用边界配以Mermaid流程图展示评估流水线。适合搭建了RAG但不知道效果到底好不好的开发者。 个人主页源码骑士❄专栏传送门《Android开发基础》《python基础课程》⭐️热衷从源码视角拆解技术底层原理将复杂架构讲得通俗易懂 源码骑士的简介5年Android Framework系统开发经验曾主导多项系统级性能优化专项技术栈覆盖Android系统全链路Binder/Handler/AMS/WMS/启动流程及Java后端全家桶Spring MyBatis Redis Oracle累计产出原创技术文章100篇文章以流程图为特色被读者评价为看一篇胜过啃一周源码导入语你调了一周的RAG——换Embedding模型、改chunk size、加Reranker。效果好像变好了还是你的错觉老板问现在的准确率是多少你说感觉还行——这句话在工程上等于零。RAG需要客观评价。不是我觉得准而是有数字、有指标、可复现。这篇文章给你RAGAS框架——一套专门为RAG设计的自动评估工具四个指标覆盖检索准不准到回答对不对的完整链条。1 ~ RAGAS四大核心指标Context RecallContext PrecisionFaithfulnessAnswer Relevancy用户问题检索阶段召回的上下文(Context)生成阶段最终回答(Answer)参考上下文指标评估对象核心问题忠实度回答 vs 上下文回答里的每句话都能在检索到的文档中找到依据吗答案相关性回答 vs 用户问题回答紧扣问题了吗有没有跑题上下文精度召回的上下文 vs 回答召回的文档里有多少是真正有用的上下文召回率召回的上下文 vs 理想上下文应该被召回的文档实际召回了多少2 ~ 完整评估脚本# pip install ragas langchain-openai datasetsfromdatasetsimportDatasetfromragasimportevaluatefromragas.metricsimport(faithfulness,answer_relevancy,context_recall,context_precision,)fromlangchain_openaiimportChatOpenAI,OpenAIEmbeddings# 构建测试数据集 test_data{question:[公司年假政策是什么,远程办公需要什么审批流程,加班费怎么计算,],answer:[# 这里填你的RAG系统对每个问题的实际回答根据公司规定员工入职满一年享有5天年假...,远程办公需提前一天向直属领导申请...,工作日加班按1.5倍工资计算...,],contexts:[# 这里填RAG系统为每个问题召回的实际上下文文档片段列表[[入职满一年的员工享有5天年假...],[年假可在当年内分段使用...]],[[远程办公需填写OA申请表...],[申请需直属领导审批...]],[[工作日加班费为基本工资的1.5倍...],[周末加班为2倍...]],],ground_truth:[# 理想情况下应该召回的完整上下文员工入职满一年享有5天年假可分段使用未休完可结转至次年3月。,远程办公需提前一天在OA系统提交申请经直属领导审批后可执行。,工作日加班1.5倍工资休息日2倍法定节假日3倍。,],}datasetDataset.from_dict(test_data)# 运行评估 llmChatOpenAI(modelgpt-3.5-turbo,temperature0)embeddingsOpenAIEmbeddings()resultsevaluate(dataset,metrics[faithfulness,answer_relevancy,context_recall,context_precision],llmllm,embeddingsembeddings,)# 输出结果print(f忠实度(Faithfulness):{results[faithfulness]:.2%})print(f答案相关性(Answer Relevancy):{results[answer_relevancy]:.2%})print(f上下文召回率(Context Recall):{results[context_recall]:.2%})print(f上下文精度(Context Precision):{results[context_precision]:.2%})3 ~ 指标解读与优化指标优秀合格需优化优化方向忠实度90%75%70%降低temperature、加强Prompt约束基于上下文回答答案相关性85%70%65%优化Prompt让LLM更聚焦问题上下文精度80%60%50%加Reranker精排、缩小k值上下文召回率90%75%60%加混合检索、增大k值、查询改写4 ~ 人工评估vs自动评估RAGAS自动评估人工评估速度100条/分钟5~10条/小时成本API费用极低人力成本高一致性100%同样数据同样结果75%~90%不同人主观差异适用开发迭代阶段每次改动都跑上线前最终验收最佳实践日常迭代用RAGAS自动评估每改一个参数跑一次。上线前抽50条人工评估校准。思考 总结RAGAS把感觉变成数字四个指标覆盖了从检索到回答的完整链路每个改动都可以验证效果。忠实度是安全红线它衡量AI有没有胡说。低于70%说明你的RAG在制造幻觉而非基于文档回答。测试集质量决定评估价值10个精心设计的真实问题比100个随机生成的问题更有参考意义。每次改动都要重跑评估改chunk_size → 跑一遍 → 看四个指标变化 → 决定要不要保留改动。自动评估不能完全替代人工RAGAS的Faithfulness评估本身也依赖LLM判断存在误差。没有评估的RAG优化是盲人摸象。RAGAS让你知道摸到的是鼻子还是大腿。结尾各位小伙伴本文完源码骑士 — Android Framework 全栈开发关注| ❤️点赞| ⭐收藏| 评论| 一键四连️寄语你不能优化你无法衡量的东西——RAGAS就是你的尺子。往期回顾【PythonAI】多模态RAG / 【PythonAI】Self-Querying / 【PythonAI】检索策略进阶 / 【PythonAI】LangChain搭RAG / 【PythonAI】向量数据库选型