模型层 开放阅读

Chunk Size

Chunk Size

概念 ID
chunk-size
更新时间
2026-05-29
来源数量
待补

Chunk Size(分块大小)

3 秒看懂

Chunk Size 是将长文本/长序列切割成可管理小块时,每一块的大小(通常以 token 数或字符数计量)。 它不是某个特定硬件规格,而是一个横跨 RAG 检索、LLM 推理调度、数据管线的”旋钮参数”——调大调小直接影响检索精度、显存占用和推理吞吐。

3 分钟产业解释

为什么一个”切割参数”值得产业级关注?

在当前大模型落地的实际工程中,几乎所有系统都需要把超长输入切分成若干”chunk”来处理:

场景被切分的对象Chunk Size 指什么产业痛点
RAG 检索增强生成文档/网页/PDF每个文本块的 token 数切太大→检索不准;切太小→语义断裂,召回碎片化
LLM 推理(Prefill 阶段)长 prompt单次送入 attention 的 token 数太大→单请求霸占 GPU,阻塞其他请求;太小→频繁启动 kernel,overhead 高
分布式训练微批次数据单个 micro-batch 的 token 数影响流水线气泡率、梯度累积步数
向量数据库写入embedding 批次单批写入行数影响写入吞吐和索引构建效率

一句话:Chunk Size 是大模型系统工程中”分而治之”策略的核心旋钮,不同场景下最优值差异巨大,且往往需要与模型上下文窗口、硬件显存、检索算法联合调优

15 分钟专家深入

一、RAG 场景中的 Chunk Size——最核心战场

RAG(Retrieval-Augmented Generation)是当前企业级 AI 应用的主战场。其基本流程:

原始文档 → 切分(Chunking) → 向量化(Embedding) → 存入向量数据库 → 检索 → 拼入 prompt → LLM 生成

Chunk Size 是这个管线中最上游、影响最深远的超参数。

1.1 典型取值范围

Chunk Size(tokens)适用场景优势劣势
128–256细粒度 FAQ、代码片段检索召回精准,噪声少语境断裂严重,需多 chunk 拼接
256–512通用知识库问答(工程主流区间精度与上下文的平衡点仍可能丢失跨段落关联
512–1024长文档摘要、合同分析保留更多上下文检索粒度粗,可能召回无关内容
>1024特定长文任务极端上下文保留embedding 模型截断风险;向量空间语义稀释

⚠️ 关键依赖:Chunk Size 的有效上限受 embedding 模型的最大输入长度约束。例如,若 embedding 模型最大输入为 512 tokens,则 chunk 超过此值会被截断,语义信息丢失。常见 embedding 模型如 OpenAI text-embedding-3 系列、BGE 系列的最大输入长度各异,需逐一确认 [厂商文档]。

1.2 切分策略不只是”固定窗口”

策略描述优缺点
固定大小(Fixed-size)每 N 个 token 切一刀简单,但可能在句子/段落中间截断
递归字符切分(Recursive Character)先按段落→句子→字符递归切LangChain 默认策略,语义保持较好
语义切分(Semantic Chunking)计算相邻句子 embedding 余弦相似度,拐点处切效果好但计算开销大 [Andrew Ng 讨论]
文档结构切分按 Markdown 标题 / HTML 标签 / PDF 段落保留结构语义,依赖文档格式质量
重叠窗口(Overlap)相邻 chunk 有 10%–20% token 重叠缓解边界语义丢失,但增加索引存储量

Overlap(重叠量) 通常是 Chunk Size 的 10%–20%,与 Chunk Size 联合调优。

1.3 Chunk Size 与检索质量的关系

直觉上:

  • Chunk 越小 → 每个向量的语义越聚焦 → 精确匹配(exact match)能力越强 → 但”需要跨 chunk 理解”的问题会失败
  • Chunk 越大 → 每个向量的语义越稀释 → 可能检索到”包含答案但噪声很大”的块 → LLM 需要更强的”大海捞针”能力

实际最佳实践往往是多粒度索引(multi-granularity indexing):同时索引 256-token 和 1024-token 的 chunk,检索时融合排序。这在工程上增加了 2–3 倍的向量存储和 embedding 计算成本 [行业工程实践估算]。


二、LLM 推理中的 Chunk Size(Prefill Chunking)

在 LLM serving(vLLM、TensorRT-LLM、SGLang 等)中,“chunk”概念出现在 prefill 阶段的调度策略中:

2.1 Prefill vs Decode 的矛盾

  • Prefill(处理 prompt):计算密集型,GPU 算力利用率高
  • Decode(逐 token 生成):访存密集型,GPU 算力利用率低

如果一个超长 prompt 的 prefill 一次完成,会长时间独占 GPU,导致同一 GPU 上的其他 decode 请求被阻塞(延迟飙升)。

2.2 Chunked Prefill 策略

核心思想:将长 prompt 的 prefill 分成多个 chunk,每个 chunk 与 decode 请求交替调度。

┌─────────┐ ┌─────────┐ ┌─────────┐
│ Prefill  │ │ Decode   │ │ Prefill  │ │ Decode   │
│ Chunk 1  │ │ (batch)  │ │ Chunk 2  │ │ (batch)  │
└─────────┘ └─────────┘ └─────────┘

Chunk Size 在此的含义:单次 prefill 处理的 token 数。

  • 常见配置:512–2048 tokens/chunk [SGLang/DeepSeek 工程实践]
  • 太小:kernel launch overhead 增大,throughput 下降
  • 太大:其他请求等待时间过长,P99 延迟恶化

这一策略在 DeepSeek 系列模型的 serving 论文以及 SGLang 的实现中有较详细讨论 [厂商技术博客]。

2.3 与 KV Cache 的关系

每处理一个 chunk,就产生对应位置的 KV Cache。Chunk Size 影响:

  • 显存峰值:单 chunk 越大,attention 矩阵的峰值显存越高(尤其在没有 FlashAttention 的情况下)
  • KV Cache 分配粒度:PagedAttention(vLLM)以 block 为单位分配 KV Cache,block size 与 chunk size 需协调

三、分布式训练中的 Chunk / Micro-batch Size

在 Pipeline Parallelism 中:

  • 全局 batch 被切分成多个 micro-batch
  • 每个 micro-batch 的 token 数可理解为训练场景的”chunk size”
  • 梯度累积步数 = 全局 batch / micro-batch 数

Micro-batch 越小 → 流水线气泡比例越高(计算/通信 ratio 下降);越大 → 显存占用越高。

典型配置(以 Megatron-LM 为代表框架):micro-batch size 通常为 1–8 个 sequence,每个 sequence 长度常见 2048–8192 tokens [Megatron-LM 文档/论文]。


技术原理(最深一层)

Chunk Size 如何影响 Attention 计算

Transformer 的 self-attention 计算复杂度为 O(n²·d),其中 n 为序列长度,d 为 head dimension。

┌──────────────────────────────────────────────────┐
│           Self-Attention 计算流程                   │
│                                                    │
│  Q, K, V = X · Wq, X · Wk, X · Wv                │
│                                                    │
│  Attention(Q,K,V) = softmax(QK^T / √d_k) · V     │
│                                                    │
│  QK^T 矩阵: [n × n],显存占用 O(n²)               │
│                                                    │
│  当 chunk_size = n:                                │
│    - 若 n 小(如 256): QK^T ≈ 64K 元素,可控        │
│    - 若 n 大(如 8192): QK^T ≈ 64M 元素,显存压力大  │
│                                                    │
│  FlashAttention 的 tiling 策略:                     │
│    将 Q/K/V 按 block(通常 128 tokens)切块计算       │
│    → 与上层"chunk size"形成两级分块层次             │
└──────────────────────────────────────────────────┘

关键洞察:FlashAttention 内部也有”chunk”(tiled block),其 block size(通常 64–128 tokens)与上层 chunk size 是不同层次的分块:

  • 上层 chunk size:调度/系统层面的序列切分
  • FlashAttention block size:硬件/算子层面的计算切分

两者独立调优,但共同决定端到端的显存与延迟特征。

Embedding 模型的 Chunk 处理

当 chunk 送入 embedding 模型时:

Chunk (e.g., 512 tokens)
    ↓
Tokenizer → Token IDs [512]
    ↓
Transformer Encoder (or similar)
    ↓
Pooling (CLS / Mean / Last Token)
    ↓
Embedding Vector (e.g., 1536-dim for OpenAI text-embedding-3-small)

若 chunk 长度 > embedding 模型 max_position_embeddings,超出部分被截断,语义丢失。这是 chunk size 的硬上限约束。


技术演进史

时期Chunk Size 主要语境典型值驱动因素
2020–2021几乎不讨论;NLP 处理以 512 token 上限为主512(模型硬限制)BERT max_length = 512;GPT-3 context = 2048
2022RAG 概念兴起,LangChain 推广固定切分1000–2000 字符(约 300–600 tokens)ChatGPT 催化 RAG 工程化
2023RAG 工程化爆发,chunk 调优成为显学256–512 tokens 成为主流社区实验发现小 chunk 召回更准;embedding 模型进步
2023 Q4–2024Chunked Prefill 在 serving 层面兴起Prefill chunk: 512–2048 tokens长 context(128K+)模型普及;SGLang/vLLM 优化
2024–2025多粒度索引、Late Chunking、Contextual Retrieval混合粒度Anthropic 提出 Contextual Retrieval;Jina AI 提出 Late Chunking(先编码再切分)

重要趋势

  1. Late Chunking(2024,Jina AI 提出):先将完整文档送入长上下文 embedding 模型得到 token-level 表示,再在表示空间上切分池化。这从根本上改变了”先切再编码”的传统范式,使得 chunk 边界的语义断裂问题大幅缓解。

  2. Anthropic Contextual Retrieval(2024):在每个 chunk 前拼接一段由 LLM 生成的上下文摘要,再做 embedding。本质上是用计算换 chunk 边界信息损失,可在不改变 chunk size 的前提下提升检索质量。


技术路线对比

Chunk Size 选取策略对比

维度固定小 Chunk (≤256)固定中 Chunk (256–512)固定大 Chunk (512–1024)多粒度索引Late Chunking
检索精度★★★★★★★★★★★★★★★★★★★★★★
上下文完整性★★★★★★★★★★★★★★★★★★
索引存储大(2–3×)
Embedding 计算高(2–3×)极高(长上下文模型)
工程复杂度
适用场景FAQ、代码通用 RAG长文摘要生产级 RAG高质量 RAG(预算充足)

Prefill Chunk Size 对比(推理 serving)

Prefill Chunk SizeGPU 利用率其他请求延迟影响适用场景
小(≤512 tokens)较低(kernel overhead)低(友好)低延迟交互场景
中(512–2048)较高通用 serving 主流
大(>2048)高(阻塞他人)离线批处理、吞吐优先

上下游

上游依赖

上游环节与 Chunk Size 的关系
TokenizerChunk Size 的计量单位是 token,tokenizer 的分词粒度直接决定实际文本长度对应关系
Embedding 模型最大输入长度是 chunk size 的硬上限
LLM Context Window检索到的 chunks 总量不能超过 LLM 的可用 context(需预留生成空间)
向量数据库单条向量的 payload 大小、索引类型(HNSW/IVF)影响 chunk 元数据存储
GPU 显存Prefill chunk size 受 KV Cache 显存预算约束

下游影响

下游环节影响
检索质量(Recall@K, MRR)直接决定
LLM 生成质量间接决定(通过检索结果质量)
Serving 延迟(TTFT, TPS)Prefill chunk size 直接影响
基础设施成本索引存储、embedding 计算、GPU 占用均受影响

关键指标

指标含义典型范围与 Chunk Size 的关系
Recall@KTop-K 检索结果中包含正确答案的比例0.7–0.95(优质 RAG)核心优化目标,chunk size 直接影响
MRR(Mean Reciprocal Rank)正确答案在检索结果中的排名倒数均值0.5–0.9chunk size 影响排序质量
TTFT(Time to First Token)用户发出请求到首个生成 token 的延迟0.5–5sPrefill chunk size 影响
KV Cache 显存占用单请求占用的 KV Cache 大小与 sequence length × layer × hidden dim 成正比Chunk 过大→单次 prefill 显存峰值高
Embedding 吞吐每秒可处理的 token 数取决于模型和硬件Chunk 越大→单次推理吞吐越高(到某阈值前)
索引膨胀比有 overlap 的 chunk 总 token 数 / 原始文档 token 数1.1–1.3(典型 overlap 10%–20%)Overlap 直接增加

供需与市场数据

RAG 市场规模

RAG 已成为企业 AI 落地的主流架构。相关市场数据:

  • 全球向量数据库市场:预计 2025 年达到数十亿美元规模 [行业报告估算,具体数字因来源差异较大]
  • 企业 AI 应用中采用 RAG 架构的比例:估计 60%–80% 的企业 LLM 应用使用某种形式的检索增强 [Gartner/行业调研估算]
  • Chunk 优化工具/平台:LangChain、LlamaIndex 等框架内置 chunk 策略调参能力;新兴工具如 Unstructured.io 专注文档智能切分

Chunk Size 调优的隐性成本

成本项描述量级估算
工程人力调参、AB 测试、评估每个项目 2–4 周 [行业经验估算]
Embedding 计算多粒度索引需多次 embedding2–3× 单粒度成本 [估算]
向量存储更多 chunk → 更多向量与 chunk 数线性相关
检索延迟更多候选向量 → 检索稍慢通常可忽略(向量 DB 优化后)

代表公司与资本映射

公司/项目与 Chunk Size 的关联备注
LangChain提供 RecursiveCharacterTextSplitter 等多种 chunking 策略RAG 工程的事实标准框架
LlamaIndex提供 SentenceWindowNodeParser、SemanticSplitterNodeParser 等高级 chunking专注 RAG 的数据框架
Jina AI提出 Late Chunking;发布长上下文 embedding 模型重新定义 chunking 范式
Anthropic提出 Contextual Retrieval用 LLM 增强 chunk 语义
Unstructured.io专注文档解析与智能切分非结构化数据处理基础设施
Weaviate / Pinecone / Milvus向量数据库,chunk 存储与检索受益于 RAG 普及
vLLM / SGLang实现 Chunked Prefill 推理调度推理 serving 层面的 chunk 优化
NVIDIA (TensorRT-LLM)推理引擎中实现 chunked context / inflight batching硬件+软件栈整合

投资逻辑

核心观点

Chunk Size 本身不是一个可投资的”概念”,但它所处的位置揭示了几个投资主题:

  1. RAG 工程化工具链:Chunking 是 RAG 管线中最”脏”的环节(需要大量人工调优),这意味着自动化 chunking 优化工具存在产品化空间。关注 LangChain/LlamaIndex 的商业化进展,以及新兴的 RAG-as-a-Service 平台。

  2. Embedding 模型进化:Late Chunking 等技术降低对 chunk 策略的敏感度,长上下文 embedding 模型成为关键。关注 Jina、Cohere 等 embedding 专业厂商。

  3. 推理 serving 效率:Chunked Prefill 提升长 prompt 场景的 serving 效率,直接关系到推理服务的经济性。关注 vLLM、SGLang 生态及其商业化实体。

  4. 向量数据库:多粒度索引策略增加向量存储需求,利好向量数据库厂商(Weaviate、Pinecone、Milvus/Zilliz 等)。

  5. 隐性壁垒:企业积累的 chunk 策略调优经验(针对其特定文档类型)构成数据飞轮壁垒——好的 chunk 策略 → 更好的检索 → 更好的 LLM 输出 → 更多用户反馈 → 更好的调优。这种飞轮在垂直领域(法律、医疗、金融)尤其显著。

风险点

  • 长上下文模型可能削弱 RAG 需求:如果模型 context window 足够大(如 >1M tokens)且推理成本足够低,“全部塞进 prompt”可能成为简单替代方案。但短期内(2025),长上下文的推理成本仍然过高,RAG 仍是主流。
  • Chunk Size 调优的”炼金术”属性:目前缺乏系统性理论,大量依赖经验调参,可能被更好的自动化方法取代。

常见误读纠偏

❌ 误读 1:“Chunk Size 越小检索越准,所以应该尽量切小”

纠偏:Chunk Size 过小会导致语义断裂。例如,一个完整的因果推理(“因为A,所以B”)被切到两个 chunk 中,检索到任何一个 chunk 都无法完整回答问题。最优 chunk size 是语义完整性与检索粒度的平衡点,不存在”越小越好”的简单规律。实际工程中,256–512 tokens 是经过大量实验验证的”甜区”,但需要结合具体文档类型和任务验证。

❌ 误读 2:“Chunk Size 是 RAG 专属概念”

纠偏:Chunk Size/Chunking 在 AI 系统中至少出现在三个层面——RAG 文档切分、LLM 推理 Prefill 调度(Chunked Prefill)、分布式训练的 micro-batch 切分。三者的”chunk”含义和优化目标完全不同。混淆三者会导致在讨论中产生歧义。

❌ 误读 3:“选好 Chunk Size 就能解决 RAG 检索质量问题”

纠偏:Chunk Size 只是 RAG 质量的影响因素之一。其他关键因素包括:

  • Embedding 模型质量(通常比 chunk size 影响更大)
  • 检索算法(BM25 vs 语义检索 vs 混合检索)
  • Reranking 策略(二阶段检索的 reranker 质量)
  • Query 改写与扩展
  • 文档预处理质量(OCR、表格解析等)

在很多实际案例中,切换 embedding 模型或加入 reranker 带来的提升远大于调 chunk size

❌ 误读 4:“所有文档应该用统一的 Chunk Size”

纠偏:不同类型文档的最优 chunk size 不同。FAQ 适合短 chunk,技术手册适合按章节切分,法律合同适合按条款切分。生产级 RAG 系统通常需要按文档类型/来源分别配置 chunk 策略


学习路径

入门(2–4 小时)

  1. LangChain 文档 — Text Splitters 章节:了解固定切分、递归切分的基本 API
  2. LlamaIndex 文档 — Node Parser 章节:了解语义切分、窗口切分等高级策略
  3. 动手实验:用同一份 PDF,分别以 256/512/1024 tokens 切分,对比检索结果质量

进阶(1–2 天)

  1. Anthropic “Contextual Retrieval” 博文(2024):理解 chunk 边界信息损失的系统性解决方案
  2. Jina AI “Late Chunking” 博文(2024):理解从”先切再编码”到”先编码再切”的范式转换
  3. vLLM/SGLang 文档 — Chunked Prefill 章节:理解推理 serving 层面的 chunk 概念
  4. “RAG 应用实战”类教程:在真实数据集上做 chunk size 的 grid search 实验

专家(持续)

  1. 阅读原始论文
    • FlashAttention 系列(理解 tiling block 与上层 chunk 的层次关系)
    • LongRoPE / YaRN 等位置编码论文(理解 context window 如何影响 chunk 策略选择)
  2. 关注 SGLang / vLLM 的 GitHub issues 和 PR:工程前沿的 chunk 调度优化讨论
  3. Benchmark 自建:在自己的业务数据上建立 chunk 策略的自动化评估 pipeline

一句话总结

Chunk Size 是大模型系统中”分而治之”策略的核心旋钮——在 RAG 中它决定检索粒度,在推理中它决定调度效率,在训练中它决定资源利用——没有万能值,只有与文档类型、模型能力、硬件约束联合优化后的”局部最优解”。


延伸阅读与来源

资源类型链接/出处
LangChain Text Splitters框架文档[LangChain 官方文档]
LlamaIndex Node Parsers框架文档[LlamaIndex 官方文档]
“Contextual Retrieval”博文[Anthropic 官方博客, 2024]
“Late Chunking”博文/论文[Jina AI, 2024]
SGLang Chunked Prefill技术文档[SGLang GitHub/docs]
vLLM PagedAttention & Chunked Prefill技术文档[vLLM GitHub/docs]
FlashAttention-2论文Dao et al., 2023
Megatron-LM论文/代码Shoeybi et al., NVIDIA
”Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”原始 RAG 论文Lewis et al., 2020

⚠️ 数据说明:本文中的定量数据,若标注 [估算] 则为基于行业经验的合理推断;若标注 [厂商文档] 则建议读者查阅对应厂商最新文档获取精确数字。本文档撰写时网络检索未成功返回结果(HTTP 403),部分数据依据领域通识,建议交叉验证。

source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型