RAG evaluation
RAG评测(即将完结)
指标、数据集、框架与 bad case
26 篇 · 约 84 分钟为什么需要对RAG做评测?
一个基于RAG的系统想要构建,其实不难,尤其是现在有很多成熟的工具,比如Dify,Coze这些,你可以直接上传一个文档,就能实现一个简单的RAG了。但是效果到底怎么样的?没人知道。 而且,一个RAG的系统和普通的LLM问答还不一样,…
RAG测评之RAG Triad
前面说过了,RAG系统中三个要素,分别是问题、答案以及检索资料。所以,我们需要有一套方法论来针对问题和答案、问题和检索资料、检索资料和答案之间的组合做全面评估。 RAG Triad(RAG 三元组)是一套专门用于评估 RAG(检索增…
RAG的核心评测指标有哪些?
✅RAG测评之RAG Triad 前面说过了,RAG系统中三个要素,分别是问题、答案以及检索资料。所以,我们需要有一套方法论来针对问题和答案、问题和检索资料、检索资料和答案之间的组合做全面评估。 RAG Triad(RAG 三元组)…
LLM-as-a-Judge
在前面的课程中,我们了解了 RAG Triad 评估体系。大家可能会好奇,像 Context Precision / Context Recall 这些指标,到底是通过什么手段来具体度量的呢? 在深入讲解目前最主流的 LLM as …
主流RAG评测框架:RAGAS、TruLens、DeepEval、Phoenix
为了降低评测的成本,更加"开箱即用"的实现RAG的评测,有很多成熟的框架出现,我们介绍几个目前比较主流的评测框架。 TruLens 开源地址:https://github.com/truera/trulens 官方网站:https:…
RAGAS框架初探&实现原理
RAGAS评估流程 前面我们介绍过了RAGAS,它是一个用于评估RAG管道质量的框架。他的评估流程如下: 1. 输入数据源 (Input Data) 评估需要四个核心数据元素: Question(user input): 用户提出的…
RAGAS评测时,如何抑制模型幻觉导致的结果不稳定问题?
上一期我们在评测的时候,遇到一个情况,那就是在评测某些指标的时候,ragas输出的分数并不稳定。比如在评测answer relevancy这个指标的时候。
RAG的评测数据集该如何准备?
前面我们介绍过了如何使用RAGAS做评测,介绍了几种指标的评测。从前面的示例我们知道了,要想做评测,我们需要提供数据集,数据集中包括原始问题、AI的回答、标准答案以及参考资料等信息。 这几种数据生成方式其实可以分为两类:一类是“从文…
怎样的评测集算是好的评测集?
一个优秀的 RAG 评测集,就像是给系统准备的一份高质量“期末考卷”。它不仅要能准确测出系统的真实水平,还要能暴露出系统的短板。结合你的实际情况,一个真正“能打”的评测集通常具备以下 4 个核心特征: 题型丰富 如果你的评测集里全是…
基于文档生成用于评测的数据集
前面我们介绍过了如何获取测评集,有一种方式是通过文档可以生成一些问题和答案。那么ragas就只次,我们介绍下如何使用。 基于AI生成数据集 比如我们提前准备一份文档,markdown格式最好,放到docs目录下 运行以下脚本代码:
针对问题生成RAG系统的回答
为了让我们的系统可以更加方便的根据数据集中的问题获取到回答和参考资料,我们可以单独写一个方法,简化一下chat方法的逻辑,比如取消卡片,返回内容也需要调整,比如过滤一些进度数据,返回值也要做格式化等等。 于是,我们单独提供一个Dat…
如何获取know-engine的评测集
通过前面我们介绍的方法,我们针对我们的项目获取一份用来做评测的数据集。需要注意的几个点: 1、多少数据集够用? 2、数据集怎么构成的? 3、如果是AI生成,使用什么模型? 多少数据集够用? 数据集的数量没有什么固定的要求,一般是根据…
评测脚本准备&开始运行评测
加载 .env 文件中的环境变量(如 OPENAI API KEY) load dotenv()
RAGAS评测时,如何加速评测速度
评测的每一个指标,都需要LLM参与,并且随着评测集越来越大,速度会越来越慢。我们前一个章节中给大家提供的脚本中,也做了些性能方面的优化。 1. 核心加速:全面采用异步并发架构 这是该脚本提速的最关键因素。我们没有使用传统的同步阻塞方…
【持续更新】know-engine评测问题与优化(bad case)
智界R7的超级桌面如何开启?——召回率低 相似度检索到的分段:
解决mineru不支持多级标题解析的问题。
因为我们之前讲过mineru他默认是不支持多级标题的,所以文档转换成markdown之后,就都会变成1级标题。 虽然官方给出过一个解决方案:https://github.com/opendatalab/MinerU/discussi…
解决中文分词不准确导致召回效果差的问题
我们虽然在ES中安装了IK分词器,但是并没有用上,所以导致中文分词是每个中文字单独作为一个分词了,就导致召回结果不好,明明相关的内容却召不回。 所以我们需要让IK分词器生效。 创建组件模板
解决问题重写导致的召回不准问题
一、问题背景 know engine 在执行 RAG 之前,会先经过 KnowEngineQueryTransformer 对用户 Query 做 LLM 改写: 简洁化、抽象化、错别字纠正、车型标准化、上下文补全; 改写后的 Qu…
解决RRF融合乱序和结果重复的问题
know engine 采用多路召回 + RRF(Reciprocal Rank Fusion,倒数排序融合)+ Re rank 的检索架构: 1. 多个 ContentRetriever(向量检索、全文检索、混合检索、SQL 结构…
解决引用信息补全导致参考资料乱序问题
在ProgressAwareContentAggregator中,我们做了RAG中引用材料的持久化,我们有以下代码:
通过 minScore 解决召回准确率低的问题
现象 部分 Query 即便经过查询改写、混合检索(KNN + 全文)、BGE RERANKER 重排序,仍会把语义相关度极低的分片喂给 LLM。不仅可能出现错误回答,还会导致召回准确率降低。 比如我们在测试的时候发现,经过重排序后…
通过优化系统提示词,提升答案正确性
我们在评测时发现,有些问题的回答的准确率比较低,经过分析发现有这么几个问题: 1、回答中有编造的内容,如编造了一段不存在的图片。明明参考文档中没有对应的图片,但是他非要给编造一个不存在的图片说是示意图。 2、回答中有一些和问题不太相…
通过修改ground truth,解决召回率低和答案准确率低的问题
在AI模型测评中,当发现答案准确率低时,除了怀疑我们的RAG系统回答的不好以外,还需要怀疑一下ground truth。有的时候问题根源并不在RAG系统本身,而在于评测基准(Benchmark)或标注数据存在缺陷。 Ground T…
通过换模型解决忠诚度低的问题
我们的问题:智界R7那个行车记录仪拍的视频,平时怎么调出来看啊?想导出来又该咋整? 在评测时发现忠诚度比较低,才0.6都不到,于是我们开始分析回答的结果和参考资料之间的关系。 以下是一次回答结果:
增加分层拒答能力,减少错误回答发生
一个优秀的RAG系统不仅要“答得准”,更要“知之为知之,不知为不知”。不能一本正经的胡说八道,如果是这样的话,那我和直接问豆包有啥区别? 尤其是一些专业领域、比如医疗、金融、法律等场景下,一旦回答错误,后果有可能不堪设想。 所以,在…
RAG评测总结
深入理解RAG评测总结的核心概念、工程方法与实践要点。