模型層 開放閱讀

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 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型