三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

AI Agent学习:RAG基础:构建Agent知识获取管道(李博杰《深入理解 AI Agent》3.2观后总结)

AI Agent学习:RAG基础:构建Agent知识获取管道(李博杰《深入理解 AI Agent》3.2观后总结)

一、RAG 整体概述

1. 核心概念

RAG(检索增强生成)是搭建Agent共享知识库的核心技术
核心逻辑:结合大语言模型的理解、文本生成能力 + 外部知识库海量、可实时更新的内容
解决痛点:LLM训练数据存在时间截止,无法获取最新资讯、企业内部私有文档,无需重新训练模型即可扩充知识边界。

2. 标准工作四步流程

  1. 用户输入问题
  2. 检索:稠密+稀疏检索并行,召回Top-K相关文本块
  3. 增强:将用户问题 + 检索到的知识片段拼接,构造完整Prompt
  4. 生成:LLM依托参考资料输出最终答案

示例:查询故意杀人罪量刑
检索片段:《刑法》第232条法条内容
拼接Prompt:依据法条回答问题,附上法条原文+用户提问
输出结果:结合法条给出清晰量刑说明

二、前置离线处理:文档分块 Chunking

正式检索前必须对长文档预处理拆分,拆分必要性:

  1. 嵌入模型有输入长度上限;整文档向量混杂多个主题,语义模糊
  2. 整块文本过长会带入大量无关内容,占用上下文窗口,稀释有效信息

三种主流分块方案

  1. 固定大小切分
    按固定token长度切割(常用512token),块间设置重叠(50~100token),避免语句被截断
    优点:实现简单、效果稳定;缺点:无视文档结构,段落、代码、表格容易被生硬切断

  2. 递归结构感知切分(生产环境首选)
    顺着章节标题、段落、换行等文档天然边界逐层拆分,Markdown、HTML结构化文档适配性极强

  3. 语义切分
    计算相邻句子嵌入相似度,语义差距大的位置进行切割,保证单个文本块主题统一
    优点:拆分质量最优;缺点:需要额外嵌入计算,资源开销更高

调参权衡经验

常规配置:单块 256~1024 token,块重叠占比10%~20%

  • 块过小:信息残缺,指代不明,语义不完整
  • 块过大:多主题混杂,向量精度下降,冗余内容过多

固有缺陷:分块会割裂原文上下文指代关系,该问题后续通过上下文感知检索优化

三、稠密嵌入检索:语义匹配路线

1. 嵌入 Embedding 原理

把文字转化为高维数字向量;语义相近的文本,向量空间距离更近
稠密向量:向量绝大多数维度均存在数值;依靠余弦相似度判定语义相似度
余弦相似度越趋近于1,文本语义越接近;只关注向量方向,不受文本长短影响

经典语义规律:国王 - 男性 + 女性 ≈ 女王,向量运算可承载语义逻辑

2. 稠密嵌入技术演进

  1. Word2Vec(2013):静态词向量,一词固定一个向量,无法区分一词多义
  2. BERT:上下文感知向量,依靠自注意力机制,一词多语境生成不同向量,上限512token
  3. Sentence-BERT:专为句子相似度设计,适配检索场景
  4. BGE-M3:新一代多模态嵌入模型,同时输出稠密、稀疏向量,支持长文本、多语言

3. 海量向量快速检索:ANN近似最近邻

数据量巨大时无法逐句计算相似度,依靠索引算法快速近似查找
主流两类算法对比:

特性ANNOYHNSW
构建速度更快偏慢
内存占用更低较高
增量更新不支持,需全量重建支持实时新增数据
检索精度较好极高
适用场景静态不变知识库动态持续更新知识库

四、稀疏嵌入检索:关键词精准匹配路线

核心:基于词袋模型,依靠关键词字面匹配,向量绝大部分维度数值为0
主流算法:TF-IDF → BM25(工业通用标准)

1. 核心计算逻辑

  • TF词频:词汇在单篇文档内出现次数
  • IDF逆文档频率:词汇在全部知识库的稀有程度,生僻专业词汇权重远高于通用助词
  • BM25新增两项修正:
    1. k1:词频饱和系数,词汇重复多次不会无限拉高分数,规避长文档堆砌关键词占便宜
    2. b:文档长度归一化,平衡长短文档打分公平性

2. 底层存储:倒排索引

存储结构:词汇 → 所有包含该词的文档列表
优势:输入关键词可瞬间定位全部相关文档,是搜索引擎底层基础

3. 优劣与进阶

优点:专业术语、代码、人名检索精准,结果可解释
缺点:无法识别同义词、同义句式
进阶:SPLADE、BGE-M3稀疏分支(学习型稀疏检索),结合神经网络赋予词汇语义权重

五、混合检索:稠密+稀疏融合方案

两种检索各自短板

  • 稠密检索:擅长语义同义匹配,容易遗漏专业关键词、编号
  • 稀疏BM25:关键词精准命中,无法理解同义表达

完整流水线三阶段

  1. 并行召回:稠密、稀疏检索分别独立召回一批候选文档
  2. 结果融合
    • RRF倒数排名融合(最常用):抛弃原始分值,仅依据排名计算综合分数,简单稳定
    • 分值归一化加权融合:保留相似度、BM25原始分值,调参复杂度更高
  3. 神经重排序(Rerank)
    架构区分:
    • 检索阶段:双编码器,文本分开编码,速度快、精度一般
    • 重排序阶段:跨编码器,查询与文档拼接共同输入模型,深度语义交互打分,精度大幅提升,速度偏慢
      作用:对融合后的候选文档精细二次排序,是生产RAG提升效果的关键环节

检索效果三大评估指标

  1. Recall@k 召回率:相关文档是否进入前k条结果,RAG核心指标
  2. MRR平均倒数排名:衡量首个有效结果的靠前程度
  3. nDCG:综合全部文档相关性与排序位置,评估整体列表质量

六、多模态信息摄取(PDF/图片/语音)

知识库不止纯文本,三类处理方案取舍:

  1. 原生多模态编码(效果最优)
    ViT视觉编码器将图像转为视觉token,和文本纳入统一语义空间;完整保留图表、版式、空间位置信息,适合复杂报表、图文PDF
  2. OCR转录提取文本(低成本通用)
    图片、PDF、语音全部转纯文本,兼容整套RAG链路;缺陷:丢失版式、图表视觉信息
  3. 工具按需调用(折中方案)
    基础检索依靠文本摘要,遇到图表、复杂版式时,调用图像/PDF解析工具深度读取,兼顾成本与灵活性
← 返回列表