通往RAG之路(一):RAG基础知识介绍

欢迎大家微信搜索“AIGCmagic”关注公众号,回复“大模型”,加入大模型交流群,一起交流学习。

一、RAG基础知识介绍

1.1、什么是RAG

RAG (Retrieval-Augmented Generation) 是一种结合了检索和生成两种方法的自然语言处理(NLP)技术。它通过先检索相关的文档或信息,再使用生成模型(如GPT-3)生成答案。这种方法在处理需要丰富背景信息的问题时特别有效。
RAG不仅仅面向文本,它还可以面向语音、视频和图像等多模态场景,只要可以embedding的内容就可以。
RAG的主要流程如下:

  1. 检索(Retrieval):首先从一个大型文本数据库中检索出与问题相关的文档。
    通常检索到的相关文档有很多个,还需要将文档进行相应筛选和排序。一般可以按照时间、相似度得分、正则化、关键词筛选等操作来实现。
  2. 生成(Generation):接下来,将检索到的文档与问题一起输入到生成模型中,生成最终的答案。生成模型会根据检索到的文档内容生成一个连贯且有意义的回答。
    这种方法的优点是它结合了检索和生成的优势,使得生成的答案不仅有语言上的流畅性,还能够基于实际的文档内容提供更准确和具体的信息。这在处理复杂的问答任务时特别有用,例如需要引用具体事实或数据的情况。
    在这里插入图片描述

1.2、RAG文档召回率是什么

RAG(Retrieval-Augmented Generation)中的文档召回率(Document Recall)是指在检索阶段,模型能够成功找到与用户查询相关的所有文档的比例。具体来说,它衡量的是在所有相关文档中,有多少被成功检索到了。
文档召回率是评估检索系统性能的重要指标。它可以用以下公式计算:
添加图片注释,不超过 140 字(可选)

在RAG中,文档召回率的高低直接影响生成模型的表现。如果召回率低,生成模型可能会缺乏足够的背景信息,从而影响答案的准确性和相关性。
高召回率可以确保生成模型有更丰富的信息源,从而提高最终生成答案的准确性和可靠性。
通常情况下,根据输入的问题进行文档召回有几种情况:
(1)根据问题检索到的相关文档信息在不超过一个固定上下文长度(512)限制的 block 以内,这种情况最好处理。
(2)根据问题检索到的相关文档信息在不同block 内,从就对大模型能力有了一定的要求。可以通过设计prompt_template、父子索引、重排序等常见的策略提高回答的精度。
(3)输入的问题需要对整体文档进行理解、分析、才能得到答案。这种目前最难处理。

1.3、RAG在各行业业务场景中的需求分析

目前能涉及到RAG的行业有:金融、法律、生产型工厂、贸易公司、电商、餐饮、知识产权和文旅政务、医疗、通信、能源、教育(非义务教育)和交通等行业。
初期大部分还是根据已有文档,建立知识对话系统。也有一些企业让大模型参与到决策系统中来。
添加图片注释,不超过 140 字(可选)

1.4、RAG技术的难点

(1)数据处理
目前的数据文档种类多,包括doc、ppt、excel、pdf扫描版和文字版。ppt和pdf中包含大量架构图、流程图、展示图片等都比较难提取。而且抽取出来的文字信息,不完整,碎片化程度比较严重。
而且在很多时候流程图,架构图多以形状元素在PPT中呈现,光提取文字,大量潜藏的信息就完全丢失了。
(2)数据切片方式
不同文档结构影响,需要不同的切片方式,切片太大,查询精准度会降低,切片太小一段话可能被切成好几块,每一段文本包含的语义信息是不完整的。
一个成熟的RAG应该支持灵活的分块,并且可以添加一点重叠以防止信息丢失。用固定的、不适合的分块策略会造成相关度下降。最好是根据文本情况去适应。或者是在定位到关键语句以后进行上下文进行扩充,然后进行重排序。
(3)内部知识专有名词不好查询
目前较多的方式是向量查询,对于专有名词非常不友好;影响了生成向量的精准度,以及大模型输出的效果。
(4)新旧版本文档同时存在
一些技术报告可能是周期更新的,召回的文档如下就会出现前后版本。
(5)复杂逻辑推理
对于无法在某一段落中直接找到答案的,需要深层次推理的问题难度较大。
(6)公式计算
如果需要计算行业内一些专业的数据,套用公式,对RAG有很大的难度。
(7)向量检索的局限性
向量检索是基于词向量的相似度计算,如果查询语句太短词向量可能无法反映出它们的真实含义,也无法和其他相关的文档进行有效的匹配。这样就会导致向量检索的结果不准确,甚至出现一些完全不相关的内容。
(8)多轮问答
多论问答在系统设计的时候需要存储一定的历史记录,这会对设备内存,LLM输入长度,系统响应时间产生要求。
(9)用户输入问题太短

1.5、RAG架构介绍

架构来源:https://pub.towardsai.net/advanced-rag-techniques-an-illustrated-overview-04d193d8fec6?gi=0eea544f219a
添加图片注释,不超过 140 字(可选)

1.6、RAG可以解决哪些问题
(1)基座大语言模型一般都是在通用数据上进行训练,对于某一个专业领域的问答回复有时候并不可靠,如果需要训练一个专业领域的大语言模型,需要大量的数据、算力,开发周期也很长,RAG就能很好的解决这个问题。
(2)对于一些公司来说,数据是公司内部相关知识,会涉及到保密信息,采用外部知识库的方式,安全性会更高一些。
(3)训练大语言模型,时间长、数据量大,没法保证信息是实时更新的,比如你24年训练的大语言模型,25年发生的事情他肯定是不知道的,这样就会出现信息实时性的问题。RAG可以把更新的知识放在外部数据库,在问答时候去检索最新的知识,这样就可以解决信息实时的问题。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值