恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

RAG 系统中为什么要进行文档切割?有哪些切割策略?

  • 首页
  • 资讯中心
  • /
  • RAG 系统中为什么要进行文档切割?有哪些切割策略?

相关资讯

只要是来自济南的生鲜超市加盟,100%是骗子,从汇客隆到鲁供再到惠而美 2026/8/12 19:11:19
毕设项目分享 深度学习的人体跌倒检测与识别(源码+论文) 2026/8/12 19:11:19
毕设项目分享 大数据校园卡数据分析系统(源码+论文) 2026/8/12 19:11:19

最新资讯

3步快速提升BT下载速度:trackerslist配置完全指南
深入理解npm:Node.js包管理核心机制与实战指南
Unity DOTS中EntityPrefabReference的完整指南:从Prefab到实体实例化
从dqrsl到QR分解:线性模型底层计算与数值稳定性解析
高校导师网课常用的2026年学生导师沟通记录软件推荐
终极指南:如何通过NPU加速让xlm-roberta-large-openmind推理性能提升300%

今日推荐

终极Navicat重置指南:3种专业方案实现Mac版无限试用
终极免费围棋AI训练指南:如何用KaTrain快速提升你的棋艺水平
3分钟掌握res-downloader:全网视频音频图片资源一键下载终极指南

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

RAG 系统中为什么要进行文档切割?有哪些切割策略?

发布时间:2026/8/12 19:16:19
RAG 系统中为什么要进行文档切割?有哪些切割策略? RAG 系统中为什么要进行文档切割有哪些切割策略RAG 系统中为什么要进行文档切割有哪些切割策略RAG 中为什么要进行文档切割简单来说大模型记不住整本书你需要给它恰好相关的“精华片段”。如果直接把整本《公司员工手册》10万字塞给大模型会遇到三个核心问题上下文窗口限制大模型能处理的文本长度Context Window是有限的。GPT-4 的上下文可能只有 8K-128K tokens直接塞入整本书就会超限。信息淹没与“中间丢失”把大海都给你你反而捞不到那根针。如果在一大堆无关信息中藏了一句关键答案模型很容易被干扰甚至忽略掉藏在长文本中间的关键信息Lost in the Middle 现象。成本高昂且响应慢每次提问都带上整本书消耗的 Token 多费用贵等待时间也长。文档切割Chunking就是为了解决这些问题把大文档切分成一个个小块Chunk。这样RAG 在检索时就能只把最相关的几个小块而不是整本书送给大模型让它又快、又准、又便宜地回答问题。有哪些切割策略你可以根据文档类型和业务需求从粗到细地选择切割策略。策略做法优点缺点适合场景1. 固定大小切割不管内容按固定的字符数或 Token 数如500字硬切。极其简单实现快。容易切在句子中间破坏语义毫无上下文。非常粗糙的初期原型。2. 基于句子切割在句号、问号、感叹号等标点符号处切割。保证每个块是完整的句子语义相对完整。块之间没有关联可能丢失跨句的上下文。通用文本特别是叙述性内容。3. 基于段落切割直接按文档中的空行\n\n或段落标记切割。保持了作者的自然语义单元一个段落通常讲一个意思。段落可能过长或过短。Markdown、文章、报告等结构清晰文档。4. 递归字符切割按一个优先级列表[\n\n, \n, 。, , ]尝试切割尽量让块在语义边界断开。兼顾语义完整性和长度控制是最常用、最平衡的方法。需要配置分隔符优先级。这是生产环境中最常用的默认选择。5. 语义切割计算句子间的向量相似度在相似度低语义转变的地方切割。切割点最符合语义逻辑效果最好。需要调用 Embedding 模型计算成本高。对检索质量要求极高的场景。6. 文档结构切割利用 Markdown 标题(#)、HTML 标签等按章节结构切割。块本身就是一个完整的知识单元如一个章节检索命中率高。强依赖文档有良好的结构化标记。技术文档、维基、规范文件。核心策略详解1. 递归字符切割 (RecursiveCharacterTextSplitter) —— 最推荐这是 LangChain 等框架的默认策略思想是“多级备胎”。工作原理先尝试用最大的分隔符如段落\n\n切。如果切出来的块还是太大就换下一个分隔符如句号。继续切直到块的大小符合要求。效果最大化地保证了“块”在语义边界段落、句子处断开。2. 语义切割 (Semantic Chunker) —— 效果最好工作原理把文本切成句子。用 Embedding 模型给每个句子算一个向量。计算相邻句子的相似度。当相似度出现骤降时说明话题变了就在那里切一刀。形象理解模型能“读懂”文本在话题转弯的地方自动切分。高级技巧与最佳实践在实际应用中还有一些进阶技巧可以显著提升效果。1. 重叠切割 (Overlap)为了避免关键信息恰好被切在上一块的尾巴上导致检索时漏掉可以让相邻块有部分内容重叠。块1: [句子A, 句子B, 句子C, 句子D] 块2: [句子C, 句子D, 句子E, 句子F] // 重叠了2个句子这样做能保留上下文是生产环境的必备技巧。2. 父子文档 (Parent-Child / Small-to-Big)这是一个巧妙的两阶段检索策略父块较大的块如一个段落或整个章节用于提供丰富的上下文。子块较小的块如一个句子用于精确检索。工作流程用户提问后先在小块的子块中进行快速检索找到最相关的几个句子。然后把这些句子所属的大块的父块即完整的段落或章节取出来。最后把这些完整的父块送给大模型生成答案。这样做的好处是既能快速命中关键信息又能保证模型看到完整的上下文。3. 元数据附加切分时别忘了给每个块打上“标签”元数据如source: 2024年报.pdf、page: 5、chapter: 财务概览。这在检索时可以用于过滤如只查PDF文件也方便模型在回答时引用来源。如何选择一张决策表你的情况推荐策略开始尝试想快速跑通流程递归字符切割 小重叠chunk_size500, overlap50文档结构清晰如技术文档、维基按文档标题Markdown header切割对检索精度要求高愿意投入计算资源语义切割担心关键信息被切碎父子文档检索需要平衡精度、速度和简单性递归字符切割是你的最佳起点一个可直接上手的参数配置fromlangchain.text_splitterimportRecursiveCharacterTextSplitter# 这是一个能应对大多数情况的稳健配置text_splitterRecursiveCharacterTextSplitter(chunk_size512,# 每个块最大大小通常为500-1000chunk_overlap80,# 块间重叠大小约为 chunk_size 的 10-20%separators[\n\n,\n,。,,,, ,],length_functionlen,)chunkstext_splitter.split_text(your_document)

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号