RAG(检索增强生成)原理、实现与评测方法探讨

RAG是什么?

    看一下RAG的英文全称:Retrieval-Augmented Generation,建索、增强、生成;一句话串起来就是通过检索增强模型的生成,是的,这就是RAG。

RAG怎么做?

    目前比较通用的套路是这样的:

    离线数据准备:数据提取->数据切片->创建索引->embedding->落库。

    解释一下embedding:嵌入,它其实就是将高维度的,复杂的、通常是离散的数据(比如文本、图像、音频等)转换为低维度的、连续的向量表示的过程。这些向量表示具有语义上的相似性,意味着在向量空间中,相似的对象会被映射到相近的向量。

在线查询:query->embedding query ->向量检索->送给大模型->LLM归纳生成

当然根据实际业务场景,有各种各样的变体,如:

变体1:在线查询:query->embedding query->向量检索->rank->送给大模型->LLM归纳生成

变体2:在线查询:query->意图识别->embedding query->向量检索->切块->emdedding->rank->送给大模型->LLM归纳生成

变体3:在线查询:query->意图识别->大模型丰富问题->embedding query->向量检索->切块->emdedding->rank->送给大模型->LLM归纳生成

。。。

大家都在根据自己的实际情况在不断的调整rag的策略,上述的每一个环节都有大量的工作值得探索,比如切块、向量检索、rank等等,后面有机会逐步聊一下

RAG(检索增强)评测

今天主要聊一下RAG(大模型检索增强)的评测。

大家一直都在尝试用RAG来解决模型幻觉、数据实效性、数据保密性等等问题,但是RAG作为模型推理中间的一环,如何来评测RAG(检索增强)的有效性值得研究一下。

当然我们期望理论上模型足够强大可以自己从RAG结果中提取有效信息来推理,甚至模型不需要RAG会更好

RAG简单来说其实就是检索相关信息给到大模型,所以很直观的感受是,要评价RAG结果的有效性可以考虑传统检索或推荐系统中召回、排序等相关指标(召回率、精准率、MRR、NDCG等等)有关这些指标的原理大家自行了解一下,后面有机会也可以简单聊一下

要计算这些指标不可避免的需要知道,每次检索到的信息是否相关,以及相关的信息排序是否合理,这些都决定了最终给到大模型的信息是否更有意义,更能帮助到大模型推理

但是如何判断检索到的信息是否相关呢?embedding虽然提供了各种策略、算法,但是embedding后的结果并不一定就是相关的,向量化后可能因为各种原因导致原本不相关的两个text向量是接近的,所以才需要我们来评测。

目前了解到2种方式来做测评:

1、将query和查到的相关信息给到gpt4,让gpt4来评测;

2、人为打标数据,划定数据集及相关性,然后通过脚本对比

我们使用的第二种方式。我们的处理方式大体是这样:

1、首先将原始数据切块

2、然后选择各种场景下的用户提问

3、然后将原始切块进行标注,标记这些块中哪些和用户提问时相关的

4、实时query结果保存下来,然后和标注数据进行对比

5、计算RAG(检索增强)的召回率、精准率等

如何切块也是我们重点评测的一部分,通过数据标记,我们测试不同chunk size下各种指标来评估我们的RAG效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值