RAG 文档有哪些切分策略,如何确定块大小?

未标记

询问 AI

考查重点:切片完整性与检索成本。按段落、标题或语义边界切分,设块大小基线后以带证据的问题集比较召回完整性、噪声和 token 成本

本题目录

参考答案

核心回答

RAG 文档切分要在“检索能定位”和“片段足以回答”之间取舍。 常见策略有四类:

  1. 固定长度切分:按字符数或 Token 数分块,适合快速建立基线。
  2. 递归切分:优先按段落、句子等边界切分,超长部分再继续细分。
  3. 结构化切分:依据标题、条款、函数或表格等文档结构组织片段。
  4. 语义切分:根据相邻内容的语义变化确定边界,同时限制块的最小和最大长度。

确定块大小时,先明确长度单位与 Embedding 输入上限,再看问题需要多大的证据单元。块太小,容易拆开前提和结论;块太大,会混入多个主题,增加检索噪声与生成成本。通常先保留自然边界,超长部分递归细分,再用同一批业务问题比较块大小和重叠量,检查证据召回、答案质量、延迟与成本。

例如运维手册中的适用版本、触发条件和恢复步骤应能一起取回。需要“小块定位、大段阅读”时,可以用父子块,把写入索引的子块与交给模型阅读的父段落分开。

几种策略怎样取舍

  • 固定长度切分:按字符数或 Token 数截断,可配滑动窗口重叠。实现简单、便于建立基线,但边界可能落在句子、条件或列表中间。
  • 递归切分:按优先级尝试段落、换行、句子等分隔符,遇到超长单元再继续细分。适合结构不完全规范的通用文本;中文要考虑句号、逗号等边界,不能只依赖空格。
  • 结构化切分:Markdown 按标题,法规按条款,代码按函数或类。表格应保留表头与数据行的对应关系;超大表格需要分组或拆行时,也要给每块补足列名和必要说明。结构边界仍要受长度预算约束。
  • 语义切分:根据相邻句子或段落的语义变化确定边界,适合主题切换明显、结构较弱的文本。它增加了离线计算与维护成本,还需要约束过小块和过大块,是否优于结构化切分要实测。

切分后还要保留来源、章节路径、页码、版本和父块标识。标题中有“Redis 超时处理”,正文却只写“上述配置”时,可以把必要标题加入块内容;仅存入元数据而没有参与编码,不会自动改变该块的向量。

怎样确定块大小和重叠

先明确长度单位,再确定预算。 chunk_size=500 不一定表示 500 Token,例如按 len 计长的分割器统计的是字符。应按目标 Embedding 模型的分词方式检查实际输入,把参与编码的标题、指令和正文一起计入,避免超限报错或被静默截断。生成阶段还要为系统提示、问题、对话历史和输出预留空间,不能让召回片段占满上下文窗口。

再看问题需要多大证据单元。 运维知识库中,查一个配置项可以用较小块;解释故障的触发条件和恢复步骤,就需要连同前提一起保留。可以依据真实段落长度选择几组候选大小,抽查条件句、列表、跨页段落和表格是否被拆坏。

重叠主要用于缓解边界断裂,不必固定为某个比例。重叠过多会增加向量数量,还可能让多个近似重复块占满 Top-K。评测时既看答案依据是否找全,也看去重后保留了多少有效信息。

若小块容易命中、但不足以回答,可以按下图取回父段落:

%%{init: {"themeVariables": {"fontSize": "16px"}, "flowchart": {"nodeSpacing": 16, "rankSpacing": 30, "padding": 10}}}%%
flowchart TB
    Q[用户问题] --> C[检索子块索引]
    C -->|父块标识| P[取回对应父段落]
    P --> D[去重并检查上下文预算]
    D --> A[生成有依据的答案]

父子块可以同时保留定位精度与上下文,但父段落仍可能过长,也有额外存储与读取成本。

最后做受控评测。 固定语料、问题集、Embedding、检索参数和生成配置,比较切分方案。问题集应标注所需证据,并覆盖事实问答、流程、多段条件和无答案问题。检索侧看证据覆盖与相关性,生成侧看正确性、引用和证据支持,同时记录上下文 Token、索引规模与延迟。切分方案变化后,重新生成受影响块的向量,并记录切分和索引版本,才能回放差异。

追问

增大 Top-K 能代替合理切分吗?

不一定。它可能补回相邻信息,也会带来更多重复和噪声。应先检查缺的是哪条证据,再选择邻块扩展、父子块或调整边界,而不是把更多候选直接拼进 Prompt。

Embedding 支持长输入,还需要切分吗?

通常仍值得切分。输入长度上限说明模型能接收多长文本,并不保证整篇文档形成的单个向量能精确定位每个知识点;是否使用整篇、章节或子块,仍需按查询粒度评测。

对应教程

教程先讲清切块与重叠的基本用法;本文进一步比较结构、语义和父子块的取舍,并补充评测方法。

参考资料

相关面经

43 篇

九方智投

Agent 开发工程师
一面
查看原面经 →
追问
按照标题切割有的很大有的很小该怎么办

小红书

Product Engineer(AI 与全栈方向)
一面
查看原面经 →
追问
Chunk 切得太细和太粗分别有什么问题?

字节跳动

Agent 开发后端实习生
日常实习一面
查看原面经 →
知识库如何构建?Markdown、TXT、PDF 分别怎么切块?

恒生电子

AI 应用开发工程师
校招秋招
查看原面经 →
追问
针对跨章节、逻辑强关联的超长文档,如何设计分块策略避免语义割裂?

美团

AI 全栈开发工程师
校招秋招二面
查看原面经 →
追问
chunk size怎么定?切太大切太小分别有什么问题
展开剩余 38 篇面经

阿里巴巴

AI 应用研发工程师
校招秋招一面
查看原面经 →
文档切分策略怎么选?Markdown没标题怎么切

靖安科技

后端工程师(RAG/Agent 项目)
秋招一面
查看原面经 →
追问
切片策略是什么

蚂蚁集团

面经合集
查看原面经 →
项目追问
分块策略怎么做的

金蝶

Agent 开发工程师
校招一面
查看原面经 →
项目追问
切分策略是怎么设计的?

阿里巴巴

AI 全栈开发工程师
一面
查看原面经 →
如果让你自己基于 LangChain 或 Spring AI 去做一个 RAG,文档切分这一块有哪些策略你有了解过吗?(追问)你自己自定义了一个切分策略,把 Markdown 多级标题合并、内容合并是吧?(追问)如果不是 Markdown 格式的话,你还了解其他切分策略吗?

百度

Agent 开发工程师
日常实习
查看原面经 →
项目追问
RAG 项目里,文档切片的粒度是怎么确定的?有什么参考依据?

百度

Agent 应用开发工程师
秋招一面
查看原面经 →
Chunk 太大或太小有什么影响?Chunk 大小怎么确定?

虾皮

Agent 应用开发工程师
秋招一面
查看原面经 →
文档分块具体采用什么分块策略?

中科创达

后端开发工程师(AI / RAG 方向)
查看原面经 →
RAG 的文档切割是怎么实现的?

小红书

AI Native 全栈开发工程师
日常实习一面、二面
查看原面经 →
文档分块怎么做的

去哪儿

AI 测试开发工程师
秋招
查看原面经 →
怎么确定合适的chunk大小

阿里巴巴

大模型应用开发工程师(RAG 方向)
一面
查看原面经 →
知识库内容的分块是怎么做的?

美团

Agent 开发工程师
实习一面
查看原面经 →
在RAG场景中,文本切分策略是如何选择的?不同切分方式会带来什么影响?

阿里巴巴(淘天)

Agent 开发
社招一面
查看原面经 →
文档还是 RAG怎么选,假如文档更新,怎么划分段落? 错误召回怎么反馈

哔哩哔哩(B站)

Agent 开发
社招二面
查看原面经 →
RAG 了解吗?怎么分片?向量化目标是什么?什么场景用?

字节跳动

秋招一面
查看原面经 →
RAG 的 chunk 的具体流程和细节

CVTE

AI 应用开发
一面
查看原面经 →
文档切片都有哪些,你提到的按照语义进行切片是什么,原理是什么,是否会有硬编码上限

字节跳动

AI Agent 开发
秋招一面
查看原面经 →
在RAG流程中,文档切分(Chunk)策略是如何设计的?Chunk大小如何确定?
为什么采用这种Chunk方式?不同切分策略会对检索效果产生什么影响?

超参数

Agent 开发工程师
社招一面
查看原面经 →
rag怎么切块

DeepSeek

Agent 开发
查看原面经 →
PDF/表格/条款类文档怎么解析和切分?

商汤

大模型应用算法工程师
实习一面、二面
查看原面经 →
RAG 原理,项目里有哪些相关经验,向量数据库、相似度计算、chunk 切片策略。

百度

AI 应用开发工程师
社招一面
查看原面经 →
Chunk怎么切?按语义段落切,带多级标题索引
Chunk大小?200-500
怎么决定大小的?(这题没答好说了不太清楚)

阿里巴巴

AI 应用算法工程师
实习
查看原面经 →
RAG项目的分块策略有哪些?

腾讯

大模型应用开发工程师(RAG 方向)
暑期三面
查看原面经 →
请介绍你在实习中负责的Agent+RAG项目的背景、整体技术方案,包括文档解析、分块策略、向量数据库的选型与存储方式,以及具体的检索查询流程。

未知公司

Agent 开发
查看原面经 →
rag切分的粒度是怎么定的?具体是怎么实现的?

网易

大模型应用开发工程师(RAG 方向)
查看原面经 →
固定大小切片和语义切片优劣对比,长文档、结构化文档、非结构化文档分别用什么切片策略?

法大大

Java 开发工程师
实习一面
查看原面经 →
你的文档切片具体怎么做的

腾讯音乐

后端开发工程师
实习一面
查看原面经 →
想问一下在优化 RAG 检索精度时,你针对文档的分割大小和检索的 topK 参数进行了测试和调优,那文档大小设置得过大或过小,分别会带来哪些负面影响?在确定最优参数组合的时候,你主要权衡了哪些因素?

快手

面经合集
查看原面经 →
在RAG中,文档切片的粒度如何选择?

阿里巴巴

Agent 开发工程师
实习
查看原面经 →
RAG系统中,chunk大小怎么确定?不同业务场景的策略差异?

阿里国际

AI 应用 / Agent 开发
一面、二面
查看原面经 →
文档切分方法能说出来几种?或者说当前最主流的切分方式是哪个呢

美团

后端开发工程师
一面
查看原面经 →
文档切片采用的是什么策略?

蚂蚁集团

Agent 应用开发工程师
暑期实习一面
查看原面经 →
有没有做过rag,rag的分块和召回

未知公司

Agent 开发
查看原面经 →
手动干预切片是怎么实现的

淘天

大模型 Agent
校招
查看原面经 →
你用的切分策略是什么?

顺丰

大模型应用开发工程师(RAG 方向)
实习
查看原面经 →
分段有没有做优化

未知公司

Agent 开发
日常实习
查看原面经 →
手动干预切片是怎么实现的

顺丰

大模型应用开发工程师(RAG 方向)
查看原面经 →
分段有没有做优化

收录题集

22 份

Agent 开发实战追问

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

传统NLP任务

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

RAG与知识库

阿东玩 AI · AgentGuide · 9 条原题

查看题集 →
展开其余 6 条原题

RAG 系统面试题

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

检索增强生成

AMIT SHEKHAR · ai-engineering-interview-questions · 2 条原题

查看题集 →
展开剩余 17 份题集

Agent_RAG与混合检索工程

Rocky Ding · AIGC-Interview-Book · 3 条原题

查看题集 →

阿里巴巴问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

快手高频面试题

Rocky Ding · AIGC-Interview-Book · 2 条原题

查看题集 →

拼多多高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

中科闻歌高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

提示工程:应用大模型的高级方法

Rocky Ding · AIGC-Interview-Book · 2 条原题

查看题集 →

大语言模型

Datawhale · daily-interview · 1 条原题

查看题集 →

AI 智能体与大模型应用开发面试题库

didilili · ai-agents-from-zero · 1 条原题

查看题集 →

LLM、VLM 与 Agent 面试题

Datawhale · hello-agents · 1 条原题

查看题集 →

检索与知识工程问答

Guide · JavaGuide · 1 条原题

查看题集 →

AI 导读问题

Guide · JavaGuide · 1 条原题

查看题集 →

RAG 面试题

Guide · JavaGuide · 1 条原题

查看题集 →

Agent开发面试题

摸鱼酱mio · 个人整理 · 1 条原题

查看题集 →

八股集锦(高频问题)

小熊饼干_ · 个人整理 · 2 条原题

查看题集 →

RAG 面试题

小林 Coding · 个人整理 · 2 条原题

查看题集 →

简历项目拷打:面试官追着你的 Agent 项目问到底

Onefly · zero2Agent · 1 条原题

查看题集 →

RAG 与检索系统:从 chunk 设计到多路召回

Onefly · zero2Agent · 3 条原题

查看题集 →

相关题目

4 题