掘金 人工智能 前天 19:23
RAG 每日一技(九):你的RAG是“人工智障”还是“真智能”?聊聊RAG的评估
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章详细阐述了构建RAG系统后,量化评估的必要性。指出“凭感觉”无法有效优化系统,数据度量才是专业工程师的准则。文章介绍了RAG评估的两大关键领域:检索质量(上下文精确率、上下文召回率)和生成质量(忠实度、答案相关性)。同时,重点推荐了Ragas这一开源框架,它利用LLM作为“裁判”,实现了对RAG系统自动化、多维度的评估,并通过实战演示了如何使用Ragas进行系统“体检”,用数据证明系统效果。

🎯 **量化评估是RAG系统专业化的关键**:文章强调,仅凭主观感受来判断RAG系统的好坏是不可靠且不稳定的。建立一套客观、可重复的量化评估体系,能够清晰地了解系统的优缺点,指导优化决策,并防止系统在迭代过程中性能退化。

🔍 **检索质量评估关注“找得准”与“找得全”**:检索部分的评估主要包含两个核心指标:上下文精确率(Context Precision)衡量召回文档的“信噪比”,即召回文档中相关文档的比例;上下文召回率(Context Recall)则衡量“找得全不全”,即在所有相关文档中成功召回了多少。这两个指标共同决定了提供给LLM的上下文信息的质量。

📝 **生成质量评估聚焦“答得好”与“忠于原文”**:生成部分的评估更为复杂,其中“忠实度”(Faithfulness)是RAG最重要的评估指标,它衡量生成答案是否完全忠于提供的上下文,即低幻觉。另一个关键指标是“答案相关性”(Answer Relevancy),确保生成的答案直接有效地回应了用户的问题,而非答非所问。

🤖 **Ragas:AI驱动的RAG评估框架**:文章介绍了Ragas开源框架,其核心理念是利用强大的LLM(如GPT-4)作为“裁判”,自动评估另一个LLM生成的答案质量。通过模拟人类判断,Ragas能够自动化地计算忠实度、答案相关性等复杂指标,为RAG系统的评估提供了高效、可量化的解决方案。

📊 **实战演示:用Ragas为RAG系统“体检”**:文章通过一个具体的Python代码示例,展示了如何安装Ragas库,准备评估数据集(包含问题、系统答案、上下文和标准答案),并使用OpenAI的GPT-4o-mini模型运行评估。结果显示,系统在忠实度、答案相关性、上下文精确率和召回率方面均表现出色,用数据证明了系统的有效性。

前情回顾

兄弟们,恭喜大家坚持到了今天!从分块、嵌入、建库、检索、精排,再到最后的Prompt工程,我们已经亲手构建了一个能完整跑通的RAG系统。当它根据我们的文档,生成第一个答案时,那种成就感无与伦比。

但是,兴奋过后,冷静下来想一想:

“凭感觉”是业余玩家的搞法,而数据度量才是专业工程师的准则。今天,我们就来聊聊RAG系统中至关重要的、也常常被忽视的一环——评估(Evaluation)

为什么“感觉良好”远远不够?

依赖人工去判断RAG的好坏,既耗时又不稳定。我们需要一套客观、可重复的评估方法,来帮助我们:

    量化性能:用数字说话,清晰地了解系统的优缺点。指导优化:通过比较不同方案(A/B测试),做出数据驱动的决策。防止退化:在系统迭代中,确保新的改动没有损害原有的性能。

RAG评估的两大支柱:检索与生成

一个RAG系统的最终效果,由“R”(Retrieval)和“G”(Generation)两部分共同决定。因此,我们的评估也必须双管齐下。

1. 检索质量评估 (Retrieval Evaluation)

这一步是评估我们“找得准不准”的能力。核心指标有两个:

2. 生成质量评估 (Generation Evaluation)

这一步是评估我们“答得好不好”的能力。这比评估检索更复杂,核心指标通常包括:

Ragas:你的专属RAG质检员

理解了指标,但怎么计算呢?特别是像“忠实度”这种复杂的语义概念,难道要人工去判断吗?

当然不是!我们再次请出强大的“AI魔法”来解决问题。向大家介绍一个专门用于RAG评估的开源框架:Ragas

Ragas的核心思想是:利用LLM本身强大的语言理解能力,来评估另一个LLM生成的答案质量。

例如,要评估“忠实度”,Ragas会向一个强大的裁判LLM(如GPT-4)提问:“请判断下面这段‘答案’中的每一句话,是否都能在给定的‘上下文’中找到依据?”

通过这种方式,Ragas为我们提供了一套自动化的、可量化的评估流程。

上手实战:用Ragas给我们的系统“体检”

让我们来快速体验一下用Ragas评估是多么简单。

首先,安装必要的库:

pip install ragas openai "langchain-openai" # ragas需要llm来做裁判

注意:Ragas需要一个LLM作为裁判,这里以OpenAI为例。你需要设置你的OpenAI API Key。

然后,我们准备评估数据,并进行评估。

import osfrom datasets import Datasetfrom ragas import evaluatefrom ragas.metrics import (    faithfulness,    answer_relevancy,    context_recall,    context_precision,)from langchain_openai import ChatOpenAI# 设置你的OpenAI API Key# os.environ["OPENAI_API_KEY"] = "sk-..."# --- 1. 准备评估数据集 ---# 在真实场景中,你会有一个包含几十上百个问题的“黄金”测试集# 这里我们只用一个样本来演示# ground_truth是人类专家给出的标准答案dataset_dict = {    "question": ["macOS上怎么安装Python?"],    "answer": ["要在macOS上安装Python,推荐使用Homebrew。首先打开终端,输入 'brew install python'。"], # 这是我们RAG系统生成的答案    "contexts": [ # 这是我们RAG系统召回的上下文        "要在macOS上安装Python,推荐使用Homebrew。首先打开终端,输入命令 'brew install python' 即可。",        "Homebrew是macOS的包管理器。"    ],    "ground_truth": ["在macOS上安装Python,可以使用Homebrew包管理器,在终端执行命令 'brew install python'。"]}dataset = Dataset.from_dict(dataset_dict)# --- 2. 运行评估 ---# 定义评估用的llmllm = ChatOpenAI(model="gpt-4o-mini")# 选择我们想评估的指标metrics = [    faithfulness,    answer_relevancy,    context_precision,    context_recall,]# 执行评估result = evaluate(    dataset=dataset,    metrics=metrics,    llm=llm)# --- 3. 查看结果 ---print(result)

输出结果(一个漂亮的字典或DataFrame):

{  'faithfulness': 1.0,   'answer_relevancy': 0.98,   'context_precision': 1.0,   'context_recall': 1.0}

(注:由于LLM裁判的随机性,你得到的分数可能略有浮动,但趋势是一致的)

这个结果告诉我们:我们的RAG系统在这个问题上的表现非常出色!忠实度、召回率、精确率都是满分,答案相关性也极高。有了这套打分,我们就可以放心地说:“我的系统在这个问题上,效果很好!”

总结与预告

今日小结:

    “凭感觉”无法有效优化RAG系统,量化评估是走向专业和生产级的必经之路。RAG评估主要关注检索质量(上下文精确率/召回率)和生成质量(忠实度/答案相关性)。Ragas 等框架利用LLM作为“裁判”,实现了对RAG系统自动化、多维度的评估。

恭喜你!至此,你已经掌握了从0到1构建一个RAG系统,并对其进行科学评估的全套基础知识。我们的“新手村”系列到这里就告一段落了。

但技术的探索永无止境。我们目前使用的还都是最基础的RAG组件。真实世界中的顶尖RAG系统,会使用更多高级的技巧来应对复杂场景。

明天预告:RAG 每日一技(十):向量检索的“死穴”?用混合搜索(Hybrid Search)来拯救!

我们将开启本系列的全新篇章——“RAG高级技巧篇”。第一站,我们就来解决一个纯向量检索的致命弱点:对关键词和稀有实体(如产品型号、人名)不敏感。我们将学习如何将经典的关键词搜索与向量搜索结合,实现1+1>2的混合搜索效果!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

RAG 系统评估 量化指标 Ragas LLM
相关文章