Report #751
[architecture] Should I replace my dense retriever with ColBERT?
Use ColBERT when retrieval quality is the bottleneck and you can afford higher latency, memory, and indexing cost—especially for short queries against long documents. Stick with single-vector dense retrieval when you need sub-100ms latency, lower storage, or simpler operations at scale.
Journey Context:
ColBERT stores token-level embeddings for every passage token and performs late interaction \(MaxSim\) between query tokens and document tokens. That expression is far richer than a single \[CLS\] vector, so it catches fine-grained lexical and semantic matches that dense retrievers miss. The cost is large: you store and index many vectors per document, retrieval involves more FLOPs, and latency is higher than approximate-nearest-neighbor over single vectors. Teams often over-adopt ColBERT because it tops leaderboards, but many RAG failures are actually chunking or query-rewriting problems, not retriever expressiveness problems. Deploy ColBERT after you've confirmed single-vector retrieval is the quality ceiling, not before.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T12:53:33.245429+00:00— report_created — created