FDEInterviews logo
arXiv preprint

Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models

The 2024 Jina AI paper that fixes chunks losing their context: run the whole document through the embedding model first, then cut the token vectors into chunks.

Breakdown by FDE Interviews · 10 min read · Updated

About the original · 2024
AUTHORS
Günther, Mohr, Williams, Wang, Xiao
FROM
Jina AI, Weaviate
PUBLISHED
Sep 2024 · arXiv preprint
CITED BY
104Semantic Scholar · Oct 2026
IN THIS BREAKDOWN · 10 SECTIONS

You can read 21% of this breakdown.

01

The paper in one minute

Retrieval systems split documents into chunks before embedding them, because one vector per short passage retrieves better than one vector per long document. The cost is context. In a Wikipedia article about Berlin, the sentence "Its more than 3.85 million inhabitants make it the European Union's most populous city" never says "Berlin". Embedded on its own, that chunk barely relates to a query about Berlin.

The fix most teams reach for is overlap, or asking an LLM to write a context sentence for every chunk. Jina AI proposes something cheaper. Modern embedding models accept long inputs, 8,192 tokens for the models tested, roughly ten pages. So run the whole document through the model first. Every token's vector now reflects the whole text, the way "its" in context reflects Berlin. Then apply the chunk boundaries afterwards: average the token vectors inside each chunk to get that chunk's embedding. The chunking happens late, after the transformer, which gives the method its name.

It needs no training and works with any chunking rule. Across three embedding models, four retrieval datasets and three chunking methods, late chunking beat naive chunking almost every time, by about 1.5 to 1.9 nDCG points on average. In the Berlin example, the similarity of "Its more than 3.85 million inhabitants..." to "Berlin" rose from 0.71 to 0.82. The authors also extend it to documents longer than the model's window and propose a fine-tuning method that adds a little more.

THE IDEA, VISUALLY
WHEN THE CHUNK IS CUT DECIDES WHAT IT KNOWS NAIVE: CUT, THEN EMBED chunk 1 embed alone chunk 2 embed alone chunk 3 embed alone LATE: EMBED, THEN CUT whole document through the model pool tokens 1 pool tokens 2 pool tokens 3 Same chunk boundaries. Each chunk's tokens have already read the rest of the document. QUERY: ACME CORP'S REVENUE GROWTH, Q2 2023 cosine similarity per chunk, Table 4 SEC filing on ACME Corp's Q2 2023... 0.85 naive 0.83 late ...a 3% revenue growth over the previous quarter 0.63 naive 0.85 late ...revenue of $314 million in the prior quarter 0.62 naive 0.84 late ...strategic initiatives and efficiencies 0.52 naive 0.80 late ...resilience and ability to navigate markets 0.60 naive 0.80 late The answer chunk never says “ACME”. Naive ranks it second; late ranks it first.
Same boundaries, different timing. Cutting after the model has read the whole document lets a chunk that says "it" carry what "it" refers to.
Research notes: the problem, approach and results
+1.5 to 1.9nDCG@10

average improvement over naive chunking across three models and four datasets

23.5 → 30.0

nDCG@10 on NFCorpus for jina-embeddings-v2-small, the largest single gain

0LLM calls

per chunk, against one per chunk for LLM-written contextual prefixes

THE PROBLEM

Documents are split into chunks before embedding, so a chunk that says "the company" or "it" loses who it is about, and retrieval misses it.

THE IDEA

Embed the whole document (up to the model's long context) to get context-aware token vectors, then average the token vectors inside each chunk's boundaries.

THE RESULT

Consistent but modest gains across models and chunking methods, no training required, large gains in some cases, and no gain where the surrounding text is irrelevant.

02

Why it matters to an FDE

Enterprise documents are full of chunks that only make sense in context: "the Supplier shall...", "this policy applies to...", "the above figures exclude...". Chunked naively, these are exactly the passages retrieval loses. Late chunking is one of the cheapest fixes available, with clear limits.

It is cheap where it applies. No LLM call per chunk, no extra storage, the same number of vectors. The alternative, asking an LLM to write a context prefix for each chunk, costs one model call per chunk at indexing time, which adds up across millions of chunks.

It needs token-level access. Late chunking pools the model's token vectors. Most hosted embedding APIs return one vector per input, not per token, so you need a self-hosted model or a provider that exposes the option. Check this before proposing it.

It is not always better. The gains were modest on average and largest for small chunks. On "needle" tasks, where a short fact is hidden inside unrelated text, naive chunking with large chunks did better, because the surrounding text added noise rather than meaning. Late chunking also pulls every chunk toward the document's overall topic, which narrows the gap between relevant and irrelevant chunks. Test it on the customer's documents rather than assuming.

THE FULL BREAKDOWN

Understand the mechanism. Try it on a real problem.

Unlock this breakdown and 49 more papers.

Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.

6 months · One payment · No auto-renewal

Get Premium · ₹2,000 / $25
  • ◇1 architecture diagram
  • </>1 runnable code experiment
  • ▦3 results tables
  • ?5 interview questions with answers
  1. 03Key takeaways

    The ideas to keep, the alternatives compared, results by setup and misreadings

    Free account
  2. 04How it works

    The algorithm, mapping chunks to tokens, long documents and the training variant

    Premium
  3. 05The numbers that matter

    Results by model and dataset, chunk size effects and the comparison with LLM context prefixes

    Premium
  4. 06Try it yourself

    Naive and late chunking side by side on a toy contextual encoder, and what the numbers do

    Premium
  5. 07Where it breaks

    The limits the authors measured, and practical constraints in production

    Premium
  6. 08Using it on a deployment

    When to try it, how to test it, and how to keep indexes consistent

    Premium
  7. 09Interview angles

    Five questions this paper prepares you for, with answer hints

    Premium
Back to the paper library →