AI 大模型 RAG 技术原理与实战应用
一、RAG 概念
检索增强生成(Retrieval Augmented Generation),简称 RAG,已成为当前最火热的 LLM 应用方案之一。
其核心逻辑在于:通过自有垂域数据库检索相关信息,将其合并为提示模板(Prompt),再输入给大模型生成回答。尽管基础大模型能力强大,但在实际业务场景中,通用模型往往无法满足特定领域的知识需求,RAG 正是解决这一问题的关键路径。
二、基础的 RAG 技术架构
RAG 系统的起点通常是一个文本文档的语料库。基本流程如下:
- 文档处理:将文本分割成块(Chunks)。
- 向量化:利用嵌入模型(Embedding Model)或 Transformer 编码器将这些分块转换为向量。
- 索引构建:将所有向量建立索引,存入向量数据库。
- 查询生成:创建 LLM 提示语,指导模型在搜索步骤中找到上下文后回答问题。
在运行时,使用相同的编码器模型完成用户查询的向量化,执行索引搜索找到 Top-K 结果,从数据库中检索相应文本块,并提供给 LLM 作为上下文输入。
三、RAG 的核心环节:检索、增强与生成
1. 检索(Retrieve)
检索是 RAG 流程的第一步,旨在从预先建立的知识库中检索与问题相关的信息。这一步的目的是为后续的生成过程提供有用的上下文信息和知识支撑,确保模型回答基于事实而非凭空捏造。
2. 增强(Augment)
增强是将检索到的信息用作生成模型的上下文输入。这一步将外部知识融入生成过程中,使生成的文本内容更加丰富、准确和符合用户需求。通过增强步骤,LLM 能够充分利用外部知识库中的信息,减少幻觉现象。
3. 生成(Generate)
生成是 RAG 流程的最后一步。生成器会利用检索到的信息作为上下文输入,并结合大语言模型来生成最终回答。此阶段需优化 Prompt 工程,确保模型能正确理解上下文并输出结构化或自然语言答案。
四、常用的排序模型架构
在 RAG 的检索阶段,排序模型的质量直接影响召回结果的准确性。主要有三类架构:
1. 双编码器(Dual Encoder)
以 BERT 模型为例,它针对查询和文档分别编码,最后经过 Pooling 层输出单个向量。排序阶段只需计算两个向量相似度。优点是速度快,适合大规模检索;缺点是无法捕获查询和文档 Token 之间的复杂交互关系,语义损耗较大。
2. 交叉编码器(Cross Encoder)
Cross-Encoder 使用单编码器同时编码查询和文档,能捕捉复杂的交互关系,提供更精准的排序结果。但它不输出向量,而是直接输出相似度得分。缺点是需要对每个文档和查询共同编码,速度较慢,通常仅用于对初筛结果(如 Top 10)进行重排序。
3. 延迟交互编码器(Late Interaction Encoder)
以 ColBERT 为例,采用双编码器策略但保留多向量输出。查询 Token 和文档 Token 在编码时互不影响,文档编码可离线处理。相比双编码器,它保留了更多语义细节;相比交叉编码器,它处理速度更快,可针对更多文档(如 Top 1000)进行排序,平衡了精度与效率。
五、RAG 实施难点与解决方案
1. 数据格式多样性
文档种类包括 doc、ppt、excel、pdf 等。其中 PDF 有扫描版和文字版之分,PPT 包含大量架构图和流程图。
- 难点:提取的文字碎片化,图示信息丢失。
- 方案:对于 PPT,可先转换为 PDF 再进行解析;对于扫描版 PDF,需结合 OCR 技术;对于图表,需引入多模态模型进行识别。
2. 切片策略(Chunking)
切片方式直接影响检索精准度。
- 过大:查询精准度低,包含无关噪声。
- 过小:完整语义被切断,导致上下文缺失。


