AI产品经理必修课:RAG(终)

Wait 5 sec.

RAG,不只是技术架构,更是一种产品思维。从“检索增强”到“生成协同”,它连接的是知识系统与用户体验的双重跃迁。但很多产品经理只看到了“能搜能答”,却忽略了背后的数据治理、提示词策略与系统设计。作为系列终篇,本文将从产品视角拆解 RAG 的底层逻辑与落地路径,帮助你真正把它用成“认知引擎”,而不是“搜索外挂”。1. 引言从RAG的本质和RAG Pipeline的编排展开,把不使用RAG的坏处、使用RAG的好处、RAG系统里各个环节的思考。RAG的本质:知识检索与语言生成,二者的解耦再重新编排。RAGpipeline的编排:从离线知识库的构建,到在线检索增强生成的每一步。2. 检索与生成的解耦从一个不可分的、隐含在同一大模型的内部过程,拆分为两个各自可独立优化的模块。被解开的耦合不仅是检索功能和生成功能,更在于它带来的知识更新与模型训练的分离。2.1 不使用RAG的坏处在不使用 RAG 的情况下,大模型需要将所有知识都存储在模型参数中。而知识更新的速度远高于模型训练,可能以小时甚至分钟级变化。如果每次知识更新都要重新训练模型,那成本就太高了,而且还可能引入新的问题。a)训练周期长和训练成本高:每次知识更新都可能需要对整个大模型进行重新训练或微调,这是一个耗时且昂贵的过程。RAG 通过将知识存储在外部知识库中,避免了频繁的重新训练,只需要大语言模型通过特定的检索机制 (例如,基于语义相似度的向量检索) 从知识库中按需获取相关信息,从而降低了成本。b)数据合规性和引入新噪声: 新数据可能包含不合规内容或噪声,直接用于训练会将这些问题固化在模型参数中。RAG 允许对外部知识库进行更严格的质量控制和合规性审查,从而降低了风险。2.2 使用 RAG 的好处在使用 RAG 的情况下,知识更新无需频繁改变模型参数,知识直接存储在外部知识库,会带来这些好处:a)减少资源的消耗:模型通常会将知识直接编码到模型的参数中,知识越多,参数越多,计算量越大,就需要更多计算资源来进行部署和推理 (在部署时,需要大量的内存来加载模型参数,就需要高性能服务器和 GPU;在推理时,模型需要对每个参数进行计算,相应基础设施的调度会消耗大量电力)。b)知识管理更灵活:轻松地添加、删除或修改知识库中的信息,而无需更改或重新训练大语言模型。这使得系统更容易适应不断变化的知识需求,例如,可以快速地添加最新的行业报告、法规更新或产品信息,确保模型始终提供最准确和最新的答案。c)信息的可追溯性:大语言模型被认为是黑盒,因为很难理解它为什么会做出这样的回答,这使得它在医疗、金融、法律的关键应用中的应用受到限制。通过 RAG 可以追踪模型在生成答案的知识来源,验证模型是否使用了可靠的信息,为人类的决策提供具体依据。★ 3. Rag pipeline的编排(总的来说分为:离线知识库的构建+在线检索增强生成)a)数据收集:从各种数据源获取原始数据,并对数据进行预处理,涉及不同类型数据的解析策略 (word、pdf、ppt、跨页表格)。b)数据分块:将长文档切割成语义相对完整的文本块 (Chunk),涉及不同类型数据的分块策略 (比如结构化数据与非结构化数据、长文段与短文段)。c)向量嵌入:将上一步的文本块转换为向量。需要用向量嵌入模型 (Embedding Model) 将文本信息嵌入到向量空间中,涉及模型的选型。d)存储与索引:将上一步的向量化的文本块存储进向量数据库中 (存储),并将文本块按照一定规则排列好 (创建索引),便于查询时快速检索,涉及索引结构的选择 (摘要索引、树状索引、知识图谱、向量索引)。注意:使用向量索引时,无论是离线文本的向量化,还是在线的用户查询的编码,都必须使用同一个向量模型,保证它们编码在同一个向量空间。e)检索与重排:系统收到用户查询 (query) 后将其向量化,并在数据空中进行相似度检索,得到大量相关的文本块并进行排序,找出与查询语义最相关的 Top-K 的文本块 (比如 Top-3 就相关性前三的资料) 作为参考。f)答案生成:模型仔细阅读用户查询和参考资料,依据提示词生成一个有依据的回答,涉及增强提示词的设计。注意:返回给用户之前需要进行后处理,保证生成答案的美观度和可信度,同时过滤掉不必要的信息。虽然向量嵌入主要在数据存储时使用,但在检索重排时也会涉及。只是为了方便读者理解,在前文将向量嵌入单独作为一步进行说明,接下来将其合并为:数据收集→数据分块→创建索引→检索重排→答案生成。3.1 数据收集对文档进行搬运(不同类型的文档解析方式不同),并用模型进行预处理 (打标签、生成摘要),优质的数据收集需要满足以下特点:a)内容完整:不能漏掉任何有价值的信息,包括文字、图片、表格等。b)内容准确:提取内容不能有错误,比如 OCR 识别出来的文本,就要尽可能地避免识别错误。c)关系完整:数据内部存在关联性,比如主干段落与分支段落的层级关系、图片与图片说明的对应关系,能够帮助 RAG 系统更好地理解数据。d)元数据完整:元数据就是数据的数据,数据本身具有标题、标签、大小、生成时间等信息,能够帮助 RAG 系统更好地管理和利用数据。Word 解析方案a)文本信息解析:使用”python-docx”库对”.doc”文档进行解析,提取出保留结构层级的信息(标题、正文、编号、列表等)# ChatGPT 使用说明## 简介ChatGPT 是一个大型语言模型,由 OpenAI 训练,它可以用于各种自然语言处理任务。(解析前)ChatGPT 使用说明简介ChatGPT 是一个大型语言模型,由 OpenAI 训练,它可以用于各种自然语言处理任务。(解析后)b)图片标签生成:将 word 里的图片导出到指定文件夹 (image_folder),建立映射字典 (image_map) 表示 key 和 value 的关系(key 就是图片的身份证号,value 就是图片的身份证信息,包含图片路径 scr 和文字说明 alt)比如:img=嘿,这里有一张图片scr=它的位置在image_folder/image1.pngalt=如果图片加载不出来,就显示Image1Description这段文字c)图文内容整合:将文本内容和图片标签按照原文档的顺序组合成一个完整的 HTML 字符串。若检测到图片引用 ID (例如 “image123″)。在 image_map 中查找这个 ID 作为 Key。image_map 返回对应的 Value。将这个 HTML 标签插入到最终生成的 HTML 文档中。d)HTML文档导出:输出包含富文本结构的 HMTL 内容块,它的标准化结构和易于渲染的特性,方便了后续的分块、向量化、检索。文档分块:在RAG文档预处理时,HTML格式便于将文档内容结构化地分割成更小的块。检索展示:在展示检索内容时,将检索结果高亮显示,将插图还原,会更加的简单和可靠。# ChatGPT 使用说明## 简介ChatGPT 是一个大型语言模型,由 OpenAI 训练。 它可以用于各种自然语言处理任务,例如:– 文本生成– 机器翻译– 问答[图片ID: chatgpt_architecture](解析前)ChatGPT 使用说明简介ChatGPT 是一个大型语言模型,由 OpenAI 训练。 它可以用于各种自然语言处理任务,例如:文本生成机器翻译问答