

















ChatGPT很强,但它不是万能。这篇文章用通俗语言讲清楚:RAG到底是什么、为什么它才是企业真正需要的AI技术,适合每一个想搞懂AI落地逻辑的人看看。

我们来详细拆解一下 RAG (检索增强生成) 的工作流程。这是一个将信息检索(IR) 与大语言模型(LLM) 的强大生成能力相结合的过程。
其核心思想是:不要让LLM凭空想象,而是让它基于提供的“参考资料”来回答问题。
整个工作流程可以清晰地划分为两个主要阶段:索引(Indexing) 和查询(Retrieval & Generation)。下图展示了这一过程的完整蓝图:

这个阶段是离线的,目的是将原始知识库处理成易于检索的格式。
1)加载(Loading)
输入:原始文档(PDF、Word、HTML、Markdown、数据库等)。
过程:使用文档加载器读取文件内容,并将其转换为纯文本格式。
输出:原始文本数据。
2)分割(Splitting)
输入:上一步得到的原始文本。
过程:使用文本分割器将长文本切分成更小的、有重叠的“块”(Chunks)。这是因为:
输出:多个文本块(Text chunks)。
3)向量化(Embedding)
输入:文本块。
过程:使用嵌入模型(Embedding Model) 将每个文本块转换为一个高维数值向量(Vector Embedding)。这个向量可以理解为该文本语义的数学表示,语义相似的文本其向量在空间中的距离也更近。
输出:文本块对应的向量数组。
4)存储(Storing)
输入:向量 + 原始的文本块(以及可选的元数据,如来源、标题等)。
过程:将这些(向量, 文本, 元数据)对存储到向量数据库(Vector Database) 中。向量数据库专门为高效相似性搜索而设计。
输出:一个准备好的、可供查询的向量知识库。
这个阶段是在线、实时进行的,每当用户提出一个问题时触发。
1)查询输入(Query):
用户提出一个问题,例如:“公司今年的年假政策有什么主要变化?”
2)查询向量化(Query Embedding):
使用第一阶段相同的嵌入模型,将用户的问题也转换为一个向量。
3)检索(Retrieval):
过程:在向量数据库中,进行相似性搜索(Similarity Search)。算法(如k-NN)会计算查询向量与库中所有向量之间的“距离”,并找出距离最近(即语义最相似)的 Top-K个文本块。
在 RAG(检索增强生成)里,Top-K 指的是从海量文档中,根据与问题的相关性,筛选出最匹配的前 K 个片段。
比如你问 “猫的饮食习惯”,系统会从文档中找相关内容,Top-K=3 就取最相关的 3 段。K 是可调整的参数,比如 K=5 就取前 5 个。
选多少合适?K 太小可能漏掉关键信息,太大则引入冗余内容,影响 AI 回答的准确性和效率。实际应用中需根据场景调试,平衡相关性和处理速度。
1)输出:最相关的几个文本片段(Contexts)。
2)增强(Augmentation):
过程:将用户的问题和检索到的相关文本片段组合成一个新的、增强后的提示(Prompt),交给LLM。
提示示例:
“”” 请仅根据以下提供的上下文信息来回答问题。如果答案不在上下文中,请直接说“根据提供的信息,我无法回答这个问题”。
【上下文开始】 {这里插入检索到的Top-K个相关文本片段} 【上下文结束】
问题:{用户的问题} 答案: “””
3)生成(Generation):
过程:LLM接收到这个增强后的提示后,会基于提供的上下文(而不是其内部可能过时或不准确的知识)来生成答案。
输出:一个准确、有据可循的最终答案。
你可以把RAG的工作流程想象成一个开卷考试:
这种方式有效解决了LLM的“幻觉”问题,提高了答案的可信度,并且可以通过更新知识库来让LLM获取最新知识,而无需重新训练模型,成本极低。
截断和召回分数的对齐问题-采用的召回后加一重排序的阶段(精简召回数、提升召回质量)
embedding模型、重排序模型、生成模型-根据系统作答-针对性微调

1、检索-MRR平均倒排率、top-k(Hits Rate)命中率、NDCG排序指标
2、生成

本文由 @阿毅sunyi 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自作者提供
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。