Book a 30-min callBook a call

Chunking strategies for RAG: fixed, recursive, structure-aware, semantic and more

Fixed-size, recursive, structure-aware, semantic, parent-child, contextual and late chunking for RAG: how each splits text, its trade-offs, and how to test it.

A document cut into blocks of different heights with overlapping bands, each block linked to a point in a field of dots.
Written by
BYD Tech
Published
Topic
Deep dives
Reading time
12 min read

Questions people ask

What is a good chunk size for RAG?

A few hundred tokens is a reasonable start for factual lookups, and larger chunks or parent-child retrieval suit explanatory text. Stay under the embedding model's input limit, then compare two or three sizes on recall@k with your own labeled questions; the best size depends on your documents and your model.

Should chunks overlap?

With fixed-size splitting, yes: a modest overlap keeps sentences cut at a boundary whole in at least one chunk. With recursive or structure-aware splitting, boundaries already fall between paragraphs or sections, so little or no overlap is usually enough. Overlap stores text twice and can return near-duplicate chunks, so deduplicate neighbors at query time.

Is semantic chunking better than recursive chunking?

Not by default. It helps on long text without headings, where topic shifts are the only boundaries, but it costs an embedding per sentence and needs a tuned threshold. On structured documents, splitting by headings and sections often does as well for less. Test both on your own questions.

Do I need to re-chunk when I change the embedding model?

You need to re-embed every chunk, because vectors from different models cannot be compared. Re-chunk as well if the new model has a different input limit or tokenizer, or if your evaluation shows another size works better with it.

Building something like this?