Chunking Strategies
Theme
Palette
Download
Caption (tap to copy)
📖 Deep dive (full written explanation)
This cover reframes a common failure narrative. Teams that get bad RAG answers tend to suspect the model or the vector database — the visible, swappable components. The argument of this post is that the invisible upstream step, chunking, is usually where the ceiling was set.
The stakes framing matters because it changes where you spend effort. If chunking caps everything, then time spent tuning it returns more than time spent swapping models.
The core claim is causal: the retriever can only ever return chunks that exist in the index, so any answer not cleanly contained in some chunk is, in effect, invisible to the system. This makes chunking a hard ceiling rather than a soft factor.
The practical consequence is ordering: fix chunking before reaching for fancier retrieval. A re-ranker reorders existing chunks; it can't manufacture a coherent chunk that was never created. This is why chunking sits at the top of the dependency chain.
The pipeline diagram places chunking first for a reason — it visually establishes that every later stage consumes its output. Embed, retrieve, and generate all operate on the units chunking produced, so an error there is inherited by each downstream box.
Use this picture to locate where a quality problem actually originates. If retrieval feels fuzzy, the instinct is to tune retrieval; the diagram reminds you the cause might be one stage upstream.
This comparison makes the trade-off concrete by listing the real consequences of each extreme. Small chunks give sharp matches because each vector encodes one idea, but they may not carry enough surrounding context to answer, and you'll need more of them in the prompt to cover a topic.
Large chunks invert every line: rich context but vague matching, wasted tokens, and the answer buried among unrelated sentences. Seeing both columns side by side is what turns 'pick a chunk size' from a guess into a reasoned trade.
Here the trade-off is stated as a curve rather than a binary. Precision rises as chunks shrink because the embedding becomes more specific; context falls because there's less surrounding text. Neither extreme wins — the goal is the point on the curve that fits your data and queries.
The phrase 'for your data' is the key qualifier. A FAQ of short, independent answers wants small chunks; a legal contract where clauses reference each other wants larger or hierarchical ones. Chunking is choosing a position on this curve deliberately instead of by default.
This slide reframes chunking as a cost lever, which teams routinely miss. Every retrieved chunk is pasted into the prompt and billed as input tokens — on every single query, forever. Oversized chunks quietly multiply both latency and spend for context the model didn't need.
The lesson is that right-sizing chunks is simultaneously a quality decision and a unit-economics decision. A system that retrieves four 600-token chunks per query costs three times more in context tokens than one retrieving four 200-token chunks — at scale that's a real line item.
The bar chart visualizes the quality-versus-size relationship as an inverted U. Tiny chunks score poorly because they lack context; enormous chunks score poorly because they're blurry and noisy; a middle band performs best. The exact peak shifts by dataset, but the shape is remarkably consistent.
The takeaway isn't the specific numbers — they're illustrative — but the shape. It tells you that both 'too small' and 'too big' are failure modes, so the sweet spot must be found empirically rather than assumed at either extreme.
This split-answer example makes the abstract failure visceral. The refund rule lives in two adjacent sentences; a fixed-size cut lands the boundary between them; the retriever returns one chunk; the model answers with half the rule and sounds completely confident.
This is the canonical chunking bug because it's silent. There's no error and the answer is fluent — it's just wrong in a way only someone who knows the real policy would catch. Overlap and boundary-aware splitting exist largely to prevent exactly this.
This snippet turns the cost argument into arithmetic. Multiplying chunks-per-query by tokens-per-chunk by daily query volume yields the input tokens spent purely on retrieved context — a number that's often startlingly large and entirely under your control via chunk size.
The comment makes the lever explicit: halving chunk size halves this line of the bill. Running this calculation with your real numbers is a fast way to justify spending time on chunking, and to catch oversized-chunk configurations before they hit production billing.
This slide preempts the common escape hatches. Re-rankers, hybrid (keyword + vector) search, and larger context windows are all genuinely useful — but each operates on the chunks you already built. They reorder, supplement, or pad; none can reassemble an answer that was shredded across boundaries at indexing time.
The ordering advice is therefore concrete: get chunking right first, then add these as refinements. Reaching for them to compensate for bad chunks is polishing broken pieces, and it hides the real defect behind added complexity.
The summary distills the stakes into four claims you can act on. Chunking caps quality, trades precision for context, drives cost and latency, and can't be rescued downstream. Together they argue for treating chunking as a first-class design decision rather than a default.
A reader who internalizes this will resist the temptation to jump straight to model and database tuning, and will instead start by examining how their text was cut — usually the highest-return place to look.
The CTA passes to the how-it-works post, which finally opens the hood on the splitting algorithms themselves: fixed, recursive, semantic, and hierarchical. Now that the stakes are clear, the mechanics have motivation.
The progression mirrors the series' arc — understand why it matters, then learn precisely how it's done — so the next post lands with context rather than as a list of techniques.