Report #103092
[architecture] Chunking a long document before embedding loses cross-chunk context and hurts retrieval.
Use late chunking: feed the full document \(or the largest long-context window\) through the transformer, then mean-pool token embeddings along chunk boundaries. Apply it with a long-context embedding model such as jina-embeddings-v3, nomic-embed-text-v1, or E5-mistral. Keep chunks short for retrieval but generate their embeddings from in-document context.
Journey Context:
Naive chunk-then-embed creates anisotropic chunks where pronouns, references, and section context are missing. Larger chunks recover context but dilute precision and bloat context windows. Late chunking keeps the best of both: the model sees the full local context, yet you still retrieve small spans. It is not free—it requires a model that exposes token-level embeddings and enough context length—but it consistently beats fixed-size and sentence chunking on BEIR-style retrieval \(≈2–4% absolute nDCG\). Semantic, fixed, or sentence boundaries all improve; choose boundaries that align with discourse units.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:00:01.845395+00:00— report_created — created