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

【第四周】SmartChunk详细过程

这篇文章提出的SmartChunk Retrieval是一种查询自适应(Query-Aware)的检索框架。它的核心目标是解决传统 RAG 中“固定分块”无法适应不同复杂度查询的问题,同时在保证准确率的前提下大幅降低计算和金钱成本。

以下是查询(Query,qqq文档(Documents,DDD在该框架中经历的详细全过程:


第一阶段:离线预处理(文档准备)

在用户提问之前,文档库需要先经过处理,建立多层级的索引结构。

  1. 基础分块 (Base Chunking)
    • 原始长文档DDD被切分成细粒度的基础块(如句子级或短段落级),记为集合CCC
  2. 构建层级 hierarchy (HHH)
    • 系统不仅仅保留细粒度块,还会通过聚合(Clustering/Aggregation)构建更粗粒度的块(如段落级、章节级、全文级)。
    • 关键创新 - 压缩编码器 (Chunk Compression Encoder,EEE)
      • 传统方法需要用大模型(LLM)对每个大块写摘要再嵌入,成本极高。
      • SmartChunk 训练了一个轻量级的压缩编码器EEE。它直接读取多个细粒度块的 Embedding,输出一个代表该大块语义的压缩向量
      • 结果:文档库现在拥有一个多层级的向量索引,每一层代表不同的抽象粒度(从细节到宏观),且构建成本低。

第二阶段:在线推理(当一个新的查询qqq进来时)

这是 SmartChunk 的核心流程,分为四个步骤:

步骤 1:规划 (Planning) —— 决定“看多细”
  • 输入:用户查询qqq+ 文档元数据 (MetaData)。
  • 执行者规划器 (Planner,PPP)。这是一个经过特殊训练(使用 STITCH 方法)的小型语言模型。
  • 动作
    • 规划器分析查询的意图和复杂度。
    • 输出:预测两个关键参数 ——最小粒度 (levelminlevel_{min}levelmin)最大粒度 (levelmaxlevel_{max}levelmax)
    • 例子
      • 如果问“某具体数值是多少?”,规划器可能判定只需要看细粒度(句子级),输出[sentence,sentence][sentence, sentence][sentence,sentence]
      • 如果问“故事的主旨是什么?”,规划器可能判定需要宏观视角,输出[paragraph,section][paragraph, section][paragraph,section]
  • 目的:动态缩小检索范围,只保留那些粒度在[levelmin,levelmax][level_{min}, level_{max}][levelmin,levelmax]之间的候选块,避免检索无关的碎片或过于模糊的大块。
步骤 2:动态层级构建与选择 (Hierarchy Selection)
  • 动作:根据规划器输出的范围,系统从预建好的多层级索引HHH中,筛选出符合粒度要求的块集合CcandidateC_{candidate}Ccandidate
  • 特点:这一步是并行的且极快的,因为多层级的 Embedding 已经在离线阶段由压缩编码器EEE生成好了,不需要实时调用大模型写摘要。
步骤 3:自适应检索 (Adaptive Retrieval)
  • 输入:查询qqq+ 筛选后的候选块集合CcandidateC_{candidate}Ccandidate
  • 执行者:检索器 (RRR)。
  • 动作
    • qqq编码为向量。
    • CcandidateC_{candidate}Ccandidate中进行相似度搜索(Top-K)。
    • 由于候选池已经过滤掉了不合适的粒度(例如去掉了太碎的或太粗的),检索到的内容更精准,噪声更少。
  • 输出:一组最相关的文本块SSS
步骤 4:生成答案 (Generation)
  • 输入:查询qqq+ 检索到的文本块SSS
  • 执行者:生成器 (GGG,通常是强大的 LLM 如 GPT-4o)。
  • 动作:LLM 阅读SSS中的内容,结合qqq生成最终答案aaa

核心组件的深度解析

为了让你更清楚qqqDDD是如何被“智能”处理的,这里补充两个关键模块的训练逻辑:

1. 规划器 (PPP) 是如何学会“做计划”的? (STITCH 算法)

规划器不是普通分类器,它需要平衡准确率成本。文章提出了STITCH训练法:

  • 难点:没有标准答案告诉模型“这个问题就该用段落级检索”。
  • 解决方法
    1. RL 尝试 (Vanilla RL):让模型自己猜粒度,如果猜对了(回答正确且成本低),就奖励。
    2. 提示 RL (Hinted RL):如果猜错了,给模型一个“专家提示”(比如:“试试扩大范围到章节级”),让它基于提示再猜一次。
    3. 模仿学习 (Imitation Learning):如果加了提示还不会,就把这个“专家解题全过程”存下来,专门用来微调模型(SFT),让它死记硬背这种难题的解法。
  • 效果:规划器学会了根据问题类型(事实型 vs. 综合型)动态调整检索粒度。
2. 压缩编码器 (EEE) 是如何省钱的?
  • 传统做法:要把 10 个小块合并成一个大块→\rightarrow调用 GPT-4 写摘要→\rightarrow调用 Embedding 模型编码。成本极高
  • SmartChunk 做法
    • 离线时:用 GPT-4 写少量摘要作为“老师”,训练一个小模型EEE
    • EEE学习直接映射:Embedding(小块1)+...+Embedding(小块n)→大块向量Embedding(小块1) + ... + Embedding(小块n) \rightarrow 大块向量Embedding(小块1)+...+Embedding(小块n)大块向量
    • 在线时:完全不需要调用 GPT-4,直接用训练好的小模型EEE瞬间生成大块向量。成本极低

总结:与传统 RAG 的对比

步骤传统 RAG (Static)SmartChunk (Adaptive)
文档处理固定切成 512 token 的块。建立多层级hierarchy (句子~全文),并用轻量模型压缩嵌入。
查询处理直接编码查询,去所有块里搜。先规划:分析查询,决定只搜哪几个层级的块。
检索范围全量固定块(容易混入噪声或丢失上下文)。动态子集:只搜最适合当前问题的粒度范围。
成本/速度检索快,但为了准可能需要搜很多块或重复检索。更优权衡:通过精准规划减少无效检索,通过压缩编码器省去摘要成本。

一句话概括过程
用户提问后,规划器先判断这个问题需要“显微镜”还是“望远镜”(决定粒度范围),系统随即在预先建好的多层级文档库中只拿出对应倍率的镜头进行检索,最后由 LLM 生成答案。整个过程既避免了大海捞针,又节省了建立多层索引的昂贵成本。

http://www.jsqmd.com/news/525761/

相关文章:

  • 深入解析TDMA与主流物理层协议:LoRa、ZigBee和BLE的技术对比与应用场景
  • Fish-speech-1.5语音合成在医疗领域的应用:无障碍就诊助手
  • 真的太省时间!全学科适配降AIGC平台 —— 千笔·专业降AIGC智能体
  • LumiPixel Canvas Quest在数字营销中的应用:快速生成品牌代言人形象
  • 别再只当目录用了!SolidWorks设计树这5个隐藏功能,帮你建模效率翻倍
  • TradingAgents-CN:多智能体LLM驱动的金融交易决策引擎技术解析
  • 初中物理必看:5分钟搞懂凸透镜成像公式推导(附几何法详解)
  • 260324最近没上来写日记
  • 2026年电除尘雾器优质厂家推荐:湿式静电除雾器/热电湿电除尘器/生物质锅炉湿电除尘器/钢厂湿电除尘器/不锈钢湿电除尘器/选择指南 - 优质品牌商家
  • 告别‘从入门到放弃’:用STM32F103+ESP8266-01S玩转RT-Thread联网(保姆级环境配置篇)
  • 避坑指南:Cluster Computing投稿时.bib转.bbl的完整操作流程(Overleaf版)
  • 人脸融合镜像实测:unet image Face Fusion 5分钟从安装到出图
  • 2026年文旅假山优质服务商推荐榜:景区民宿修建、木屋民宿打造、民宿生产施工、民宿设计生产、水泥民宿设计、溶洞假山设计选择指南 - 优质品牌商家
  • 2026年质量好的高密度埃特板工厂推荐:高密度埃特板实力厂家推荐 - 品牌宣传支持者
  • Java 26正式发布!10大新特性全解析,代码+场景一文吃透
  • Unity协程(Coroutine)实战:从原理到高效应用
  • 全志V3S+OV7725实战:手把手教你从摄像头采集到ST7789V屏幕显示(附完整代码)
  • 别再乱拖了!Vivado I/O约束的三种界面操作(Package/Device/Ports)保姆级对比与选择指南
  • 科研党福音:用MinerU开源方案,5分钟搞定论文PDF的公式与参考文献解析
  • 从CTF音频隐写题到实战:手把手教你用MP3stego解密并处理文件覆盖问题
  • Windows 10终极优化指南:一键禁用无用服务的完整教程
  • CoPaw提示词(Prompt)工程入门:从零编写高效指令的10个技巧
  • SVN检出报错?别慌!手把手教你用cleanup和子目录检出搞定E170011和E000054
  • IMX6ULL开发板LCD驱动移植实战:从设备树修改到复位信号调试
  • SenseVoice语音识别应用案例:智能座舱多语言交互系统搭建指南
  • 告别翻文档!eMMC命令大全:从CMD0到CMD54的实战指南(含HS400配置示例)
  • 别再只盯着成功率了!聊聊视觉语言导航里那些‘坑’:从SG-Nav到TriHelper的实战避雷心得
  • OpenWrt网络配置实战:从基础到高级
  • HY-MT1.5-7B翻译模型快速上手:一键部署,多语言翻译
  • 让旧Mac重获新生:OpenCore Legacy Patcher完整指南