学习笔记:检索增强生成 (RAG) 方法概述
1. 引言
在实际业务场景中,通用的大模型可能无法满足特定需求,主要由于以下原因:
- 知识局限性:大模型只能基于训练数据生成回答,而这些数据大多来自公开资源,无法包含实时性或非公开的信息。
- 数据安全性:企业数据需要安全保护,纳入训练集可能导致数据泄露风险。
- 大模型幻觉:由于大模型基于概率统计进行生成,有时可能输出错误信息,尤其在模型知识薄弱的领域。
为解决上述问题,研究人员提出了检索增强生成(RAG)的方法。RAG通过引入外部知识,提升大模型的准确性,减少模型幻觉的出现,成为了主流的应用方案之一。
2. RAG 基本步骤
RAG通常包括以下三个基本步骤:
- 索引:将文档库分割成较短的文本块(Chunks),并构建向量索引。
- 检索:计算问题与文本块的相似度,检索出相关内容。
- 生成:将检索到的内容作为背景信息,生成回答。
3. RAG 完整链路
线上接收用户查询后,RAG先进行检索,将相关内容与查询一并输入大模型,生成答案。为了支持检索,需要提前进行离线计算与在线计算。
3.1 离线计算
- 文档处理:解析并切割文档,将其转化为较短的文本块,并进行清洗和去重。
- 向量化:将文本块转化为向量,并存储到数据库中。此过程通常离线完成,以处理大量数据。
3.2 在线计算
- 检索:用户查询通过向量模型计算相似度,从数据库中检索最相近的内容块。
- 召回:从数据库快速获取相关内容块,减少计算复杂度。
- 重排:通过重排模型提升检索效果,使得最相似的结果排名更靠前。
4. 开源 RAG 框架
目前有多个开源 RAG 框架,如 TinyRAG、LlamaIndex、LangChain 等,它们各具特色,推动了 RAG 技术的发展。
5. 总结
通过 RAG 技术,利用外部知识增强大模型的能力,有效解决了知识局限性和数据安全性问题,并减少了模型幻觉的出现。理解和掌握 RAG 的核心步骤,可以帮助我们更好地构建智能对话系统。