当前位置: 首页 > news >正文

传统RAG核心流程;传统RAG数据准备阶段的数据切片策略(Chunking);传统RAG检索阶段的检索增强;代理式RAG与传统RAG;

传统RAG核心流程;

检索增强整个过一遍,加深印象

核心流程定义:RAG 是通过从外部知识库检索相关信息,并将其作为上下文喂给大模型(LLM),以解决模型幻觉和知识滞后的问题。

技术栈闭环:

  • 数据准备:文档清洗 -> 切片(Chunking)-> 向量化(Embedding)-> 存入向量数据库(如chroma)。
  • 检索阶段:用户提问 -> 向量化 -> 近邻搜索(ANN)获取 Top-K 相关片段。
  • 生成阶段:Prompt = 提示词 + 检索到的上下文 + 用户问题 -> LLM 生成回答。

传统RAG数据准备阶段的数据切片策略(Chunking);

之前做的切片是比较简单的固定长度切片,还有比较高级的切片方式,提高文档的检索准确率。

  1. 按字符/Token切片
    简单的固定长度切片,这种切片方式只适合快速原型开发,容易让模型断章取义。
  2. 重叠切片
    固定长度 + 滑动窗口,设定一个固定窗口大小和一个重叠步长,防止从中间切断语义。
  3. 语义切片
    将文档拆成极小的单元(如单句),利用 Embedding 模型计算相邻句子之间的余弦相似度,设定一个阈值,当相邻两句的相似度突然大幅下降时(意味着话题转移了),就在此处设置切片点。
  4. 递归字符切片
    用算法按层级(段落 > 句子 > 词)切分,递归切片是结构感知的,会优先尝试在段落边界切分。到字符还不够就会按字符切分,且可以加入重叠切片。

传统RAG检索阶段的检索增强;

检索阶段做个检索增强,能够决定回答是否有深度和准确度的核心环节。

  1. 检索前增强
    优化用户的“提问”,查询改写:利用LLM将用户的一句口语改为更具描述性的书面语,或者生成多个相关的搜索词,从不同角度去库里检索。
  2. 检索中增强
    提升搜索的准度,混合检索(向量搜索-语义匹配、关键词搜索-字面匹配)以及带元数据过滤的检索。
  3. 检索后增强
    重排序:最有效的提质手段。向量库检索(ANN)为了快,牺牲了部分精度。捞出前 50 个后,用一个更小、更精密的交叉编码模型对这50个重新打分,选出最准的前5个。
    上下文压缩:让一个小模型把片段里的废话删了,只保留关键句。
    父文档检索:用小的切片(Chunk)去搜,搜到后把该切片所属的整段或整篇文档传给LLM。

代理式RAG与传统RAG;

上面提到的都是以前的rag做法,可以用langgragh的单向工作流实现,agent RAG更多的是吧决策都交给智能体。

数据准备阶段

与传统 RAG 基本一样,额外需要

  • 多粒度切片:同一文档切成小块/中块/大块多份索引,Agent 按需选择
  • 丰富元数据:来源、时间、章节、类型等,供 Agent 过滤路由
  • 多索引:向量索引之外还建关键词索引,Agent 自主选择检索方式
  • 摘要索引(可选):每篇文档额外生成摘要单独索引,用于快速定位

检索阶段

传统RAG:
提问 → 向量化 → ANN → Top-K(完毕)
代理式RAG:
提问

Agent 分析:这个问题需要几步?用什么检索方式?

第一次检索

Agent 反思:结果够用吗?相关吗?
├─ 够用 → 进入生成
└─ 不够 → 重新构造查询 / 换索引 / 拆子问题 → 再检索

  • 查询改写:原始问题表达不好时自动改写再检索
  • 子问题分解:复杂问题拆成多个子问题分别检索再合并
  • 自我反思:判断检索结果质量,主动决定要不要再查
  • 工具选择:向量检索 / 关键词检索 / 调用外部API 动态切换

生成阶段

代理式RAG额外多了:

  • 答案验证:生成后 Agent 自我评估是否真正回答了问题
  • 引用溯源:答案中每个观点对应哪个文档哪个片段
  • 迭代生成:答案不够好可以重新检索补充再生成
http://www.jsqmd.com/news/603372/

相关文章:

  • Flutter网络请求实战:dio库高级封装与性能优化指南
  • 多头注意力MHA实战:用PyTorch复现Transformer核心模块(附性能对比)
  • 食品加工包装在线联系方式查询:一个垂直B2B平台如何为食品加工与包装行业提供商贸对接服务 - 品牌推荐
  • Android开发:Kotlin协程并发模型
  • 3个维度重构围棋AI分析:LizzieYzy智能分析工具全攻略
  • LongCat-Next:多模态AI的终极离散统一模型
  • 深入DeepFM:结合FM与DNN的PyTorch实现,如何高效处理Criteo的数值与类别特征?
  • FPGA实战:从原理到代码生成,手把手搞定CRC校验
  • Sigma-Delta ADC Matlab Model 集成实例与教程
  • 云原生环境中的大数据处理方案
  • 工业数据 vs. 传统资源:为什么数据才是未来的稀缺资产
  • Qwen3-0.6B-FP8模型API调用常见错误403 Forbidden分析与解决
  • 怎么批量给文件名加版本号?批量给文件名加版本号4个技巧
  • 2026年办公效率之战:智能“秘书”如何重塑文档生成工具新范式?
  • 动力系统匹配软件!本程序是基于Matlab开发的整车动力系统匹配计算软件,将整车参数及性能需求输入
  • 10分钟精通BilibiliDown:跨平台B站视频下载神器完全指南
  • glitch free clk en和clkmux 设计
  • MTKClient终极指南:高效解锁联发科设备完整实战手册
  • 如何在Mac上免费实现NTFS读写?终极完整解决方案
  • Adrenaline终极指南:让你的PSP模拟器焕然一新的强大固件
  • 别光笑AI吵架!拆解“医启论”:它可能是未来智能体的“基础设施”
  • Kubernetes与边缘计算的深度集成
  • 3大方案突破AI编程助手限制:开源工具Cursor Free VIP全攻略
  • 差动放大电路设计避雷手册:从温漂抑制到CMRR提升技巧
  • FastReport技巧:动态补打空白行实现完美分页打印
  • 用Python手把手实现MDS降维:从水果口味数据到可视化分析
  • MATLAB:构建高效多功能的平均值计算工具箱(附完整源码)
  • Mojo全局解释器锁(GIL)绕过实战:在Python主线程中安全并发执行Mojo原生代码的3种工业级方案
  • VMagicMirror:普通摄像头驱动的虚拟形象交互革命
  • yiwai