本文深入浅出地介绍了检索增强生成(RAG)技术的核心价值与实现机制。详细拆解RAG的工作流程。最后,重点讲解向量化的数学本质、文本转向量的技术实现、相似度计算(如余弦相似度)及维度选择对语义精度的影响。

一 为什么需要RAG ?

经常使用大模型的开发者和用户都会有一个直观感受:大语言模型本质是输入→理解→生成的黑盒系统,想要提升输出质量,核心就是优化模型能看到的信息。围绕这一目标,业界诞生了两条主流路径:提示词工程(Prompt Engineering) 和 检索增强生成(RAG, Retrieval-Augmented Generation)。它们的优化方向完全不同。提示词工程聚焦输入结构与逻辑,通过清晰的指令、角色、约束、示例,让模型更准确理解任务意图,本质是把问题问对RAG聚焦输入知识量与准确性,在提问时主动补充外部可信知识,让模型带着资料回答,本质是给模型喂对资料。

可以说,提示词工程是让提问更规范,RAG 是让知识更充足、更可靠,二者常结合使用,共同决定大模型最终生成效果。


RAG的工作内容:在向模型提问之前基于已有的知识库或文档检索出相关的知识后,再将检索到的相关知识连同问题一起输入大模型。(所以这么来看,其实就是丰富了问题的相关知识)

  • LLM知识不是实时的:大模型在完成训练的那一刻,其内部知识就是静态截至的了,无法自动学习训练完成之后的新事件,新数据,新政策。但是RAG可以直接对接实时数据库,最新文档,动态数据。
  • LLM某些领域的知识是不具备的:通用大模型只具备公开知识,对企业内部文档、业务流程、产品手册、客户数据、行业专有规范等完全未知。通过 RAG,我们可以把企业内部财报、规章制度、项目文档、FAQ 等接入系统,让模型零成本、快速拥有垂直领域 / 企业私有知识,成本远低于微调与重新训练。
  • LLM存在幻觉问题:大模型生成时会优先依赖自身参数记忆,在信息不足或模糊时,极易编造事实、虚构数据、扭曲逻辑,也就是常说的模型幻觉。RAG 强制要求模型基于检索到的真实文档片段回答,生成内容有据可依、有原文可查,从根源上大幅降低虚构、胡说的概率。
  • 数据安全性问题:涉密文档、敏感业务数据、内部机密绝对不能用于大模型训练,一旦上传公有云模型或用于微调,会造成不可逆的数据泄露。RAG 全程不修改模型权重、不把隐私数据灌入训练流程,只在推理时临时检索、临时引用,用完即释放,在保证知识可用的同时,满足隐私与合规底线。

总结来看:RAG = 检索增强生成,通过实时检索外部可信文档,为大模型补充知识、约束输出,实现更准确、更实时、更安全、更贴合业务的生成效果。

二 RAG 的工作原理

RAG 的工作原理如下流程图所示:

我们要完整的实现RAG检索增强,首先要做的第一步就是制作相应的向量数据库;首先获取最基本的数据库(企业内部知识 领域文档 书籍 教材 等),提取相应的字符串内容并划分文本区块,最后做向量嵌入就得到了向量数据库。(第一步构建向量数据库)

当用户提问,向大模型输入:产品 A 的使用流程是什么?,RAG发挥作用的第一步,将用户问题向量化并和构建的向量数据库做相似匹配,抽取和相关问题匹配度高的向量数据库内部知识(第二步抽取相似度高的知识)

将抽取的相关知识连同问题一起送入LLM,让LLM给出最后的回答。(第三步增强检索回答)

上面讲述的RAG 的工作原理是从其工作流来看的,其实RAG可以完全被分为在线流程和离线流程,离线流程就是私有化知识数据库的构建;在线环节就是用户提问,先进入检索环节,抽取相对应的知识,然后输入大模型进行回答。

  • 离线流程:提前构建私有向量知识库(一次构建,多次复用)
  • 在线流程:用户提问 → 检索相关知识 → 送入大模型生成答案

但真实业务中,由于涉及私有数据,在线环节几乎不会使用公有云网页版 AI,而是搭配私有化部署大模型,实现全流程内网可控、数据不外出。

不用重新训练大模型,只需要给它一本可随时翻阅的精准参考书,就能准确回答没学习过的领域,这就是 RAG。

三 如何向量化?

在RAG的离线流程中,我们需要将文档转化为向量存入数据库;在线流程中,又需要将用户问题转为向量进行相似匹配。因此,理解向量化是掌握RAG的关键。

3.1 向量是什么?

向量(Vector)就是文本的数学身份证,它把一段文字的语义信息,转换成一串固定长度的数字列表,让计算机能看懂文字的含义并做相似度计算。简单来说,就是让计算机更方便的理解不同的文本内容,是否表述的是一个意思。

对于我们人类来说是很容易判断 “如何快速学会RAG” 和 “RAG如何快速学会” 这两句话表述的意思是相同的;但是对于电脑来说,他判断是非常难的,只有将 “如何快速学会RAG” 和 “RAG如何快速学会”转化为对应的向量,计算机才很好判断这两句话是同一个意思。所以将“如何快速学会RAG” 和 “RAG如何快速学会”转化为对应向量这一步就很关键,如何让计算机看来是同一个意思。

3.2 如何向量化

我们通常使用预训练的Embedding模型(如OpenAI的text-embedding-ada-002或国产的text-embedding-v1)将文本转为向量,所以向量化的完成需要借助深度学习技术来完成,通过大模型将自然语言转化为对应的向量。

text-embedding-v1 如何被训练 ?


这类文本嵌入模型,先通过海量无标注文本做无监督预训练,学习通用语义;再用对比学习微调,让相似文本的向量更接近、不相似的更远;最后输出固定长度向量,方便计算机做语义相似度计算。


微调数据的常见形式:

① 三元组(Triplets)

  • 格式:(锚点文本 相似文本 不相识文本)

  • 示例:("人工智能大模型", "生成式AI模型", "猫咪喜欢吃鱼")

  • 作用:让模型明确 锚点 应该和 相似文本 更近,和 不相似文本 更远。

② 带标签的相似度数据

  • 式:(文本A,文本B,相似度分数)

  • 示例:(“今天天气很好”,“今天天气晴朗”,0.95)(“今天天气很好”,“人工智能大模型”,0.05)

  • 作用:用连续分数精细指导向量距离。

 文本被转化为对应向量后,计算机又怎么知道两句话是否相近呢?这个是通过计算余弦相似度等算法来完成,余弦相似度通过计算两个向量夹角的余弦值来判断语义接近程度,值越接近1表示越相似。具体示例如下:

生成向量的维度有什么影响?


  • 高维度(如 768/1024 维):能承载更丰富的语义细节,比如区分 “苹果手机” 和 “苹果水果” 这类细微的语义差异,适合对语义精度要求高的场景(如智能问答、精准检索);
  • 低维度(如 64/128 维):语义信息会被压缩,可能丢失细节,容易把 “苹果手机” 和 “苹果水果” 的向量变得相似,但足以区分 “苹果” 和 “香蕉” 这类大的语义差异。

总结来看:每个向量的维度就是对一个句子的考察角度,比如情感上,行动上,产品名等的抽象的语义特征方向的得分。

四 总结 

RAG(检索增强生成)通过为大模型配备一个可随时查阅的外部知识库,巧妙地解决了通用大模型知识静态、领域局限、易产生幻觉及数据安全等核心痛点。其核心思想检索+生成的双阶段协作,离线阶段将私有文档分块、向量化并构建索引,在线阶段将用户问题转为向量,从知识库中召回最相关的片段,再与问题一同输入大模型生成最终答案。

在这个过程中,向量化扮演了关键角色——它将文本的语义转化为计算机可计算的数字表示,通过相似度匹配实现知识的精准召回。

RAG并非终点,而是一个持续进化的技术框架。在实际应用中,我们可以通过优化分块策略(如重叠分块、语义分块)、引入混合检索(结合关键词与向量)、增加重排序环节(对召回结果二次筛选)以及精细化Prompt设计等方式,进一步提升生成质量与业务适配性。对于希望快速构建企业级问答系统、私有知识助手的开发者而言,RAG无疑是当前最具性价比且可落地的最佳实践路径。希望本文能帮助你理清RAG的基本逻辑。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐