前言

自2025年年初DeepSeek引发广泛关注以来,大模型技术逐渐家喻户晓。作为其重要应用方向之一,RAG(检索增强生成)技术也被更多提及。
本文将对RAG的核心技术流程进行简要解析。

RAG从何而来?

可将大模型类比为理解力极强的人类,但其无法回答未接触过的领域问题——这类问题称为私域问题

例如提问:”我今天早上9点到达公司是否迟到?” 大模型无法直接回答,因为它不了解公司考勤制度。若将考勤规则提供给大模型,它即可作出准确判断。

企业实际场景中私域问题极为常见,RAG技术正是为此而生。

什么是RAG?

RAG技术

R:检索 - 构建知识库的过程
A:增强 - 扩展模型知识边界的能力
G:生成 - 基于知识库的问答过程

本质是通过构建外部知识库,赋能大模型完成精准问答

RAG核心流程

RAG整个过程可以分为下面几个步骤:

1
2
3
4
graph LR
A(原始文档)-->B(文本分割)-->C(向量化)-->|存储|D[向量数据库]
Q[提问问题]-->E(向量化)-->D[向量数据库]-->|相似度检索|F[文本]-->|提示词模板|G[提示词]-->H[LLM]-->I(回答内容)
Q[提问问题]-->|提示词模板|G[提示词]

索引过程(R构建知识库):
原始文档 → 向量数据库存储
检索过程(A增强):
用户问题 → 相似度匹配 → 关联知识块
生成过程(G生成):
问题+知识块 → 提示词工程 → 大模型生成答案

关键技术细节

1. 文档处理

  • 存储格式:Excel/Word等格式影响文本分割策略
  • 多模态支持:PDF/图片/音频需结合多模态解析技术
  • 数据清洗:大模型容错性高,基础清洗即可满足需求

2. 文本切割

核心原则:语义完整性与独立性平衡

  • 切割方式(复杂度递增):
    • 按字数/Token数分割
    • 按标点符号分段
    • 依文档结构(标题/段落/章节)划分
    • 先标点初分→语义相似度聚合(最优方案)
  • 知识块:切割后形成的独立语义单元
  • 理想状态:原始文档本身为结构化问答对

3. 向量化

文本数字化方案演进

技术 特点描述 向量类型
词袋模型 统计词频(是否出现/出现次数) 稀疏向量
TF-IDF 词频×逆文档频率(突出关键词) 稀疏向量
词向量 神经网络训练的词级语义表示 稠密向量
Embedding Transformer模型输出的上下文语义编码 稠密向量

核心差异

  • 稀疏向量:高维稀疏(多数位置为0),保留词频特征
  • 稠密向量:固定维度(如128/512维),编码深层语义
  • 关键特性:稠密向量维度固定且无列含义,仅表征整体语义

4. 向量数据库

三大核心能力

  • Embedding集成:支持指定模型自动生成向量
  • 混合存储:向量+元数据(作者/日期等标量字段)
  • 联合检索
    • 标量检索(关键词过滤)
    • 向量检索(语义相似度匹配)

相似度度量

  • 余弦相似度 → 向量方向一致性
  • 欧氏距离 → 向量空间绝对距离

5. 提示词工程

模板结构
[系统角色定义] + [输出格式要求] + [历史对话上下文] + 用户问题:{question} + 参考知识:{retrieved_context}
动态部分仅占30%,70%为预定义的结构化指令

6. LLM模型选择

考量维度 开源模型 闭源模型
成本 免授权费 按Token付费
数据安全 私有化部署保障安全 数据需传输至第三方
性能表现 依赖自身优化能力 提供商持续优化
硬件投入 需自建GPU集群 零硬件投入(API调用)