RAG基础知识

1.1 RAG简介

1. RAG定义

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合检索和生成技术的方法 。2020年,Facebook AI Research(FAIR)团队发表名为《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》的论文,该篇论文首次提出了RAG概念。在大模型领域中,RAG特指一种模式:模型在回答问题或生成文本时,首先从广阔的文档库中寻找相关信息。然后,模型使用这些找到的信息来生成回答或文本,从而提高其预测的准确度。RAG的方法使得开发人员无需为每一个特定任务重新训练整个庞大的模型,他们可以简单地给模型加上一个知识库,通过这种方式增加模型的信息输入,从而提高回答的精确性。

2. RAG作用

RAG作为一种工程化解决方案,能够有效解决上述问题大模型应用于实际业务场景时,遇到的以下问题:

  • 知识的局限性:

    • 信息滞后,大模型训练的成本非常高昂,训练数据非实时,比如使用2025年1月之前的数据训练,那么对于2025年1月之后的事情就不得而知了,如天气、新闻、政策等,只依赖大模型基本上无法得到正确的答案。
    • 私有数据匮乏,LLM的训练数据主要来源于互联网公开的数据,而垂类领域、企业内部等有很多专属知识,这部分是LLM无法直接提供的。
  • 幻觉:大模型的底层生成原理是基于概率,自身并不具备任何判断回复是否符合现实世界事实的能力,所以有时候会一本正经胡说八道,当模型生成的文本不遵循原文或者不符合事实,生成的内容是无意义的。

  • token大小:目前,不同模型对token的限制也不同,以gpt-4o为例,上下文最多支持128k个token(约10w个字,相当于100-200页的日常书籍),无法给到模型大量的外部知识,例如想要模型直接基于行业产品整理好的文档或者行业数据库做问答。所以需要对输入给大模型的上下文做选择性的筛选。

  • 数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。

1.2 RAG架构

1. 基本认知

  • 离线:对知识库文档进行解析、拆分、索引构建和入库。这部分会从用户给定的文档、图片、表格和外部URL等资源中提取内容,然后通过chunking(可以认为是将连续的文本分成一个个小块)进行合理切割,再使用Embedding模型变成向量数据存入向量数据库或elasticsearch等载体中,同时结合这些非结构化文件所附带的元数据(时间、文件名、作者、副标题、文件类型等)进行索引创建。

  • 在线:当用户输入问题之后,我们会对query进行分析,如关键词提取、意图识别等,然后再根据路由条件进行知识库的多种召回检索或者联网搜索等。如果是做向量数据库的检索,会先将查询内容通过Embedding模型转化为向量数据,接着在向量数据库中进行相似度匹配,比如从百万的数据块中找出匹配度较高的100个,然后再将这100个数据块进行更精准的重排序(如使用交叉熵校验的Rerank算法),将最相关的top k结果找到,最后将用户问题,经过技术处理的top k数据块,还有prompt一起提交给LLM,让它生成最终可靠的答案。

    另外,为了进一步提高系统的稳定性,我们也会引入后置处理的环节,如风控检测、结果缓存和RAG相关指标的监控上报等。

2. RAG迭代优化

目前RAG已经经过一轮迭代发展,主要分三个阶段,分别是原始RAG、高级RAG、模块化RAG,三者的大致区别如下图所示。

原始RAG只具备了最基础的部分:离线索引构造、在线检索以及大模型生成。

高级RAG则是在这3个流程里增加更多细化的工作,用于进一步优化,重点在检索层面的优化,例如增加:数据预处理、文章切片、用户query重写、检索结果重排等,提升检索模块的质量。

模块化RAG则是一个更为精细的系统,它是高级RAG在工程化上的改进,对RAG流程步骤和能力做模块化,供各个业务场景灵活的选择和编排。

相关推荐
西格电力科技4 小时前
分布式光伏 “四可” 装置:“发电孤岛” 到 “电网友好” 的关键跨越
分布式·科技·机器学习·能源
陈天伟教授6 小时前
基于学习的人工智能(3)机器学习基本框架
人工智能·学习·机器学习·知识图谱
serve the people11 小时前
机器学习(ML)和人工智能(AI)技术在WAF安防中的应用
人工智能·机器学习
0***K89212 小时前
前端机器学习
人工智能·机器学习
陈天伟教授12 小时前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
@sinner15 小时前
你好,Scikit-learn:从零开始你的第一个机器学习项目
python·机器学习·scikit-learn
Jay200211115 小时前
【机器学习】7-9 分类任务 & 逻辑回归的成本函数 & 逻辑回归的梯度下降
笔记·机器学习·分类
Christo318 小时前
AAAI-2024《Multi-Class Support Vector Machine with Maximizing Minimum Margin》
人工智能·算法·机器学习·支持向量机·数据挖掘