RAG工作原理
1.什么是知识库
在大模型领域,知识库是指⽤于存储、组织和检索结构化或⾮结构化知识的系统,通常作为外部数据源与大模型结合,以增强模型对专业领域或实时信息的理解能⼒
2.知识库的核心作用
- 补充模型固有知识
大模型的训练数据存在截止日期,比如GPT-4训练数据截⾄2023年,问2025年的事件,它会编造事实。知识库可提供新知识或企业内部业务数据,或者行业专业知识,如法律、医疗
- 减少幻觉
通过检索真实数据生成答案,避免模型编造
- 动态更新
⽆需重新训练模型,直接更新知识库即可同步最新信息
3.什么是RAG
3.1 RAG定义
RAG是Retrieval-Augmented Generation的缩写,译为检索增强生成,是一种将信息检索(Retrieval)与语言大模型生成(Generation)相结合的一种技术。它通过实时从外部知识库(如文档、数据库)中检索相关信息,将其作为上下文输入给大模型,使模型生成更准确、可验证且符合该领域的回答。
其目的是为了解决语言大模型的“幻觉”、知识更新滞后及私域数据利⽤问题
3.2 RAG工作原理
RAG工作流程可拆解为重要四步:检索—>重排序—>增强—>生成
1.首先需要给知识库添加数据:比如导入文档,或者某个网页链接
2.然后知识库会对导入的文档或者网页内容进行分段
3.然后再利用Embedding嵌入技术把每段数据向量化,保存到向量数据库中
4.当用户提出问题,大模型先对问题向量化,然后根据语义相似度,到向量数据库中去匹配(检索)
匹配到数据后,会对结果进行重排序:根据关联度对检索结果评分,关联度高的评分高,然后根据评分进行重排序,分数最高的放在最前面,分数低的放在后面。
然后把重排序结果,作为上下⽂传递给⼤模型(增强)
由⼤模型结合用户问题和上下⽂知识,生成最终答案
3.3 指标理解
召回率(Recall):用于评估检索组件性能的关键指标,衡量的是检索组件找到所有真正相关信息的能力,关注找全。召回率 = 检索组件检索到的相关信息数量 / 整个知识库中所有真正相关的信息总数
准确率(Precision):衡量检索结果中正确信息的比例,避免给生成器输入过多干扰信息,关注找对
命中率:在Top-K个检索结果中,是否至少包含一个相关信息
覆盖率: 衡量检索到的信息是否覆盖了问题中不同方面或所需信息点的程度
检索延迟: 检索所需时间,单位毫秒
平均倒数排名: 衡量相关信息在检索结果列表中排序位置的质量
F1 分数: 召回率和准确率两个指标是需要权衡的。为了提高召回率,需要尽可能多地检索到相关信息,检索系统可能需要放宽检索条件,但这可能会检索到更多不正确的信息,导致准确率下降。
为了提高准确率,需要确保返回的信息尽量都相关,检索组件可能需要收紧检索条件,比如只返回最确定的前几条结果,但这又可能导致遗漏一些相关文档,导致召回率下降。F1分数是平衡召回率和准确率的常用综合指标,F1 = 2 * (Precision * Recall) / (Precision + Recall)。