系列文章:第一章 RAG的基础介绍和简单入门
[1. 数据层面的优化](#1. 数据层面的优化)
[2. 检索层面的优化](#2. 检索层面的优化)
[3. 生成层面的优化](#3. 生成层面的优化)
前言
在正式开始介绍之前大家之前是否了解RAG,RAG是为了解决什么呢?是为了数据安全吗?先给个答案:并不完全是哦。
虽然数据安全是企业引入 RAG 的一个重要考量(因为不必将私有数据喂给大模型训练),但 RAG 诞生的核心初衷是为了解决大语言模型(LLM)的两大致命伤:"知识滞后"与"幻觉问题"。通过外挂知识库,让大模型能够基于最新、最准确的私有数据生成答案,这才是 RAG 的真正使命。
一、RAG是什么?
RAG是Retrieval Augument Generate的缩写,中文即是指检索增强生成。
简单来说,它是一种结合了信息检索和文本生成的技术架构。通过在生成回答前,先从外部知识库中检索相关信息,作为大模型生成答案的上下文参考,从而提升回答的准确性、可靠性和时效性。
二、rag主要模块
1.数据预处理与嵌入(embedding)
用户输入的query语句可能是繁体、标点符合不合规范,中英文掺杂的文本,又或者是非结构化数据(语音、图像、pdf、文档、邮件等),又或者是结构化数据(比如数据库)。我们需要对这些输入进行清洗、分块等操作,然后使用嵌入模型将其转化为计算机可以识别的数学向量。
2、向量数据库
向量数据库不仅是"用来存储"的,它的核心作用是进行高效的相似度搜索。它存储着经过 Embedding 处理的文档向量以及相关的元数据,能够支持在海量数据中快速找到与用户问题最相似的文本片段。
3、检索模块
这是连接用户与知识库的桥梁。当用户输入 query 后,检索模块会计算 query 向量与数据库中向量之间的相似度(如余弦相似度、点积等),召回 Top-K 个最相关的文档片段。高级的检索模块还会结合关键词检索(如BM25)进行混合检索。
4、生成模块
大模型根据增强后的提示词,结合检索到的上下文信息以及自身的推理能力,生成准确、靠谱的答案回复,并通常附带信息来源以供用户溯源。
三、核心工作流
RAG 系统的工作流程概括起来就是经典的"检索------增强------生成"三步曲:
检索 : 用户输入一个无法单纯依靠大模型已有训练数据回答的 query。系统将 query 转换成向量,在外部知识库(如向量数据库)中进行语义搜索,找到最相关的文档片段或语料。
增强 : 系统将用户输入的 query 与上一步检索到的相关片段进行拼接、融合,构建成一个包含丰富上下文的"增强提示词"。
生成: 把拼接后的增强提示词输入给大语言模型,大模型基于给定的上下文进行推理,生成准确、可靠的答案,并附带检索到的信息来源。
四、rag里的优化策略
在实际落地中,基础的 RAG 往往会遇到"检索不准 "或"回答不靠谱"的问题。以下是常见的优化策略:
1. 数据层面的优化
更智能的分块: 摒弃固定长度的粗暴切分,采用按语义分块,保留完整上下文。
元数据注入: 在分块时打上标签(如时间、作者、章节),检索时通过元数据过滤,缩小检索范围,提高精准度。
2. 检索层面的优化
查询重写: 大模型先将用户的口语化提问重写为更利于检索的标准化问题,或者拆解为多个子问题分别检索。
混合检索: 结合稀疏检索(如 BM25 关键词匹配)和稠密检索(向量语义匹配)的优势,既抓字面匹配,又抓语义理解。
重排机制: 初步检索出 Top-20 的结果后,使用交叉编码器对结果进行二次打分和重新排序,将最相关的片段提到 Top-5 提供给大模型。
3. 生成层面的优化
Prompt工程: 设计清晰的指令,如"仅根据以下参考资料回答,如果资料中没有答案请回答'不知道'",以强制约束大模型,避免幻觉。
自我反思: 让大模型在生成答案后,自己评估检索到的内容是否足以回答问题,如果不足则触发新一轮的检索。
五、rag的应用场景
RAG 在需要"精准知识"和"私有数据"的场景中有着广泛的应用:
1、企业知识库问答系统: 接入企业的规章制度、技术文档、历史案例等,员工可通过对话快速查询内部信息,打造企业"最强大脑"。
2、智能客服系统: 结合产品手册和 FAQ,为用户提供准确的产品咨询和售后支持,避免传统客服机器人的"答非所问"。
3、个人文档阅读助手: 用户上传 PDF、长文或财报,大模型基于文档内容进行总结、提取和问答,极大地提升阅读效率。
4、垂直领域专家辅助: 在医疗、法律、金融等容错率低的领域,RAG 可以结合权威指南和最新案例库,为专业人员提供有据可依的决策参考。
5、代码辅助与审查: 结合企业私有代码仓库,帮助开发者快速查找API用法、理解历史代码逻辑或进行代码审查。
总结
例如:以上就是今天分享给大家的内容,本文仅仅简单是RAG的入门概念以及基础使用场景的说明。
如果各位观众姥爷觉得有帮助的话,希望可以一键三连!你的点赞关注是我持续创作的动力。