00-START-HERE · 01-READING-ROUTES · 20_dense_retrieval · 22_reranking This chapter prepares you to explain how learned lexical weights, token-level matching, compression, pruning, and rank fusion trade retrieval quality against index size and latency.
TL;DR
- BM25 and SPLADE can be expressed as sparse dot products. SPLADE learns nonnegative weights over vocabulary pieces, including absent pieces; support does not guarantee literal containment or relevance.
- ReLU supplies exact zeros. The logarithm compresses large positive logits but is unbounded and does not cap repeated contributions under sum pooling.
- FLOPS regularization penalizes squared batch-mean weights. It can encourage balanced activation, but mean weights are not probabilities. A feasible capped-Zipf example at average nonzeros gives a -fold posting-work gap against effective support ; the previous -fold example violated probability constraints.
- ColBERT preserves token vectors and scores a sum of row maxima after independent encoding. A fixed per-token ANN depth can still omit the globally best MaxSim document.
- The reported ablations show different losses under one recipe, not universal architecture gaps. Match precision, vector width and score units when pricing them.
- ColBERTv2 uses centroid identifiers and quantized residuals. PLAID uses centroid proxies before reconstructing survivors; compression and pruning need quality checks, and selected-list sizes are not bounded by their global average.
- RRF combines ranks without raw-score calibration. Its constant and list depth determine agreement trade-offs; extra correlated lists are not independent evidence and can change the fused head.
The story
Imagine one large library with a librarian named Mira. The old card catalog uses BM25, a literal-word clerk that files a book only under words printed in it. A patron asks for “laptop won’t charge,” while the manual says “AC adapter fails to supply power.” Mira owns the right manual, but the catalog cannot connect the two phrasings. Mira upgrades each catalog card with SPLADE. SPLADE is a learned sparse clerk that predicts useful vocabulary labels, including labels absent from the page. The manual can now receive a positive “charge” label even if that word never appears. Mira still uses the same inverted catalog. She has changed the weights written on the cards, not the shelves or the lookup rule. The learned vocabulary produces many possible labels. ReLU gives exact blanks that need no posting, while the logarithm reduces each large logit's marginal influence without imposing a hard cap. Repeating the same positive contribution still scales a sum-pooled weight linearly. FLOPS regularization penalizes crowded mean-weight dimensions; its relationship to posting traffic also depends on which dimensions become nonzero. Some questions need more than vocabulary labels. Mira then uses ColBERT, a reference method that keeps a small note for every query token and every document token. Each query note scans the document notes and keeps its best match. MaxSim is this best-match rule. The interaction happens late, after Mira has prepared every document note offline, so she preserves detail without rereading every document through a joint model. Mira compares three controlled changes under one training recipe: collapsing token vectors, replacing maxima with means, and removing augmented query positions. In the reported experiment, token collapse has the largest loss, then mean pooling, then removal of query augmentation. Those separate ablations do not assign independent additive shares of quality or prove that every well-trained single-vector model must lose the same amount. Token vectors occupy more space. ColBERTv2 stores a centroid identifier plus a quantized residual for each one. This preserves a selected cluster label exactly, not every semantic distinction in the original vector. PLAID reuses centroid scores to rank and prune candidates, then reconstructs the final survivors. Both quantization and candidate pruning can change rankings, so Mira checks quality at every stage. Mira keeps the literal and learned catalogs because each may help different requests. Their raw scores have different scales, so a direct uncalibrated sum needs validation rather than a claim of impossibility. RRF gives reciprocal-rank contributions and can reward agreement. Its rank constant, list depths, weights and treatment of missing documents determine the result; two correlated catalogs do not become independent corroboration. The full lesson stays inside this library. Learn better catalog labels, balance crowded drawers, retain token notes when detail pays, compress shared patterns, postpone expensive reconstruction, and fuse distinct catalogs only with a rule whose exchange rate you can explain.
Decoder table
| Technical term | Plain-English meaning | Why it matters |
|---|---|---|
| Retrieval-Augmented Generation (RAG) | A system retrieves external text before a generator answers | Retrieval quality determines what evidence reaches the generator |
| Sparse retrieval | Retrieval with mostly zero vocabulary coordinates | An inverted index omits zero-weight postings; encoding and head evaluation still have a cost |
| BM25 | A lexical ranker with term-frequency saturation and inverse-frequency weights | It can exactly evaluate its lexical scoring rule with a suitable index; that is not exact semantic relevance |
| Inverted index | A map from each term to documents carrying that term | It evaluates sparse dot products without scanning every document |
| Posting | One term, document identifier, and weight entry | Posting count sets index size and contributes to query work |
| Posting list | All postings for one vocabulary dimension | Each active query dimension opens one such list |
| Vocabulary gap | A mismatch between query words and relevant document words | It explains failures such as “charge” versus “supply power” |
| WordPiece vocabulary and size | The encoder's fixed subword inventory, here entries | SPLADE predicts vocabulary weights; a BM25 analyzer need not use this same inventory |
| Exact match | Evidence that the same literal token occurs on both sides | It remains valuable for part numbers, versions, and error codes |
| Sparse score and weights | A sum of query/document weight products over shared active coordinates | BM25 can be written in a compatible coordinate form; SPLADE learns support and weights |
| Term weight | The importance assigned to one vocabulary entry | Learned weights can represent context and absent terms |
| Term support | The set of dimensions with nonzero weight | Support determines which postings exist |
| Inverse document frequency (IDF) | A corpus-frequency weight that generally favors rarer terms | The positive guarded variant used here is finite and nonnegative; it is not probability calibration |
| docT5query | Discrete document expansion by generated likely queries | Ordinary backpropagation does not pass through discrete generation/ranking; alternative estimators are not mathematically forbidden |
| Sequence-to-sequence model | A model that generates one token sequence from another | docT5query uses it to append synthetic queries |
| Implicit expansion | Positive weights on terms absent from the original text | SPLADE closes vocabulary gaps without generating strings |
| Masked language model (MLM) head | A vocabulary-logit head evaluated at every input position | SPLADE initializes from pretraining and then learns under its retrieval objective; expansion is not a free untrained side effect |
| BERT-base | The worked encoder has parameters and hidden width | Its FLOP proxy is an input assumption, not a latency model |
| Contextual state , term embedding and logit | A contextual state, output vocabulary embedding and signed pre-activation score | Use a separate symbol for the signed logit rather than confuse it with the final nonnegative retrieval weight |
| Tied input embedding | The vocabulary embedding reused by the output head | It maps contextual states back onto vocabulary dimensions |
| Gaussian Error Linear Unit (GELU) | The nonlinearity inside the MLM transform block | It is part of the unchanged pre-training head SPLADE reuses |
| Layer normalization (LayerNorm) | A normalization step inside the MLM transform block | It is part of the per-position vocabulary scorer |
| ReLU | Nonpositive logits become zero; shared-parameter updates can later reactivate a coordinate | |
| Log compression | Applying for | It is unbounded and sublinear, not a finite cap; sum pooling still adds repeated contributions |
| Sum pooling | Adding one term’s contribution across token positions | It returns one sparse document weight per vocabulary entry |
| Max pooling | Keeping the strongest position for each vocabulary term | It improved one Microsoft Machine Reading Comprehension (MS MARCO) result, but the source says the gain is not universal |
| Nonzero | A vocabulary coordinate that survives sparsification | Nonzeros create postings and query traversals |
| In-batch negative | Another example in the training batch used as a negative | SPLADE v1 combines these with one BM25 hard negative |
| Hard negative | A high-ranked but irrelevant passage used for training | It teaches the model distinctions that random negatives miss |
| Cross-encoder teacher | A joint query-document model that supplies training scores | Distillation from it produced a larger gain than tuning sparsity alone |
| Distillation | Training a smaller or restricted model to match teacher scores | It raises retrieval quality without changing the serving architecture |
| Dense vector | A representation whose dimensions are generally all stored | It offers semantic matching but has different index economics |
| fp32 | A -bit floating-point value using | This is coordinate payload, not an all-in vector-index size |
| fp16 | A -bit floating-point value using | Keep precision fixed when attributing a footprint difference to width alone |
| Floating-point operations (FLOPs) | A count of floating-point operations in a stated work proxy | It excludes memory and many execution effects; do not divide unlike FLOP proxies to explain measured latency |
| Multiply-accumulate (MAC) | One multiplication with accumulation, counted here as two FLOPs | Posting-traversal MACs are a simplified work model, not a universal instruction or latency count |
| support count | The number of nonzero coordinates | It is discontinuous and locally constant away from zero; thresholding/regularization can change support |
| penalty | The sum of absolute coordinate weights | It promotes small weights under appropriate optimization; it does not by itself bound nonzero count or popularity |
| Least Absolute Shrinkage and Selection Operator (LASSO) | A common use of an penalty | A convex-envelope interpretation requires a bounded domain; it does not turn the penalty into exact posting cost |
| Activation profiles | Probabilities that a document/query activates coordinate , each in | For a randomly drawn query against a fixed corpus, the document activation fraction gives expected posting traversal |
| Nonzero budgets and work | Average active-coordinate counts and an expected posting-traversal MAC proxy | Support controls payload; its distribution and query alignment also control work |
| Zipfian profile | A skewed rank profile, for example | A normalized reciprocal-rank mass is not automatically a valid activation-probability vector |
| Harmonic number | The unconstrained Zipf participation ratio is not feasible at every prescribed nonzero budget | |
| Participation ratio | for nonzero | With activation probabilities and mass , it obeys |
| Effective support | A participation-ratio description of how activation mass is distributed | Larger effective support lowers the proxy when the query profile is proportional to the document profile; it is not a universal ordering |
| FLOPS penalty , batch mean and size | The squared norm of batch mean nonnegative weights, | It couples examples within a batch; weights are not the same as binary activation probabilities |
| Ranking objective and weights | A ranking loss with separately weighted query/document regularizers | The multipliers control a coupled shared-encoder trade-off, not independent guaranteed support budgets |
| Ranking loss | The objective that rewards relevant passages over negatives | It must establish useful dimensions before strong sparsity pressure begins |
| Quadratic warm-up | A gradually increasing regularization schedule | It can reduce early over-sparsification, but does not guarantee avoidance of or recovery from an all-inactive local state |
| Weak AND (WAND) | A dynamic-pruning algorithm for top- sparse retrieval | Its benefit depends on score bounds and the workload; no universal BM25-versus-learned-sparse pruning ordering follows |
| BlockMax-WAND | A block-level form of dynamic pruning | Learned impact distributions can change skipping effectiveness; benchmark it rather than infer p99 from MAC counts |
| Impact-ordered evaluation | Scoring higher-impact postings before lower-impact ones | The source names it as an alternative when learned weights hurt WAND pruning |
| Service-level objective (SLO) | A promised latency or reliability target | Query and document penalties should respect distinct operational limits |
| Latency percentiles | The ninety-fifth and ninety-ninth percentile response times | Averaged support or MACs alone do not determine either tail percentile |
| Bi-encoder | Separate query and document encoders with one vector per side | It allows document precomputation but pools away token detail |
| Cross-encoder | One joint encoder over the query-document pair | It retains all-to-all interaction but cannot precompute document states |
| Dense Passage Retrieval (DPR) | A single-vector dense baseline, here width in fp32 and per passage | Do not assign the same format to a different single-vector system without specifying it |
| ColBERT counts , width and vectors | Processed query rows, stored document rows, projected width and token embeddings | Query masks/specials and document-length policy affect both work and payload |
| Late interaction | Cross-side scoring after both encoders have finished | It makes document token vectors reusable across queries |
| normalization | Scaling a nonzero vector to unit Euclidean norm | This makes token dot products cosine similarities; declare a zero-vector policy |
| Classification token [CLS] | A single encoder position used as a pooled summary | Collapsing to it measures the loss from representation granularity |
| Mask token [MASK] | A pre-training placeholder that BERT predicts from context | ColBERT uses padded mask rows as query augmentation |
| MaxSim score | It preserves per-query-row local evidence; fixed token-ANN depths need not recover its global top documents | |
| Approximate nearest-neighbor (ANN) search | Approximate search for close vectors | Candidate generation can miss documents with strong aggregate MaxSim even if each individual token probe is accurate |
| Inverted file index with product quantization (IVF-PQ) | A partitioned compressed vector index | Original end-to-end ColBERT used it for candidate generation |
| The fraction of gold-relevant passages retained among the first thousand | Reranking the same thousand cannot change their set recall; evaluate the final smaller cutoff separately | |
| The mean reciprocal rank of the first relevant passage, set to zero beyond rank ten | Scores are fractions in ; one scaled MRR point is an absolute change | |
| Ablation | A controlled component change under a stated recipe | It measures a conditional difference, not an additive causal share or the ceiling of another architecture |
| Representation granularity | Keeping one representation or multiple token representations per passage | It produced the largest reported drop among these specific ColBERT ablations, not a universal ranking of design choices |
| Query augmentation | Adding extra query-side rows beyond literal tokens | ColBERT obtains it from contextualized [MASK] positions |
| Approximate Nearest Neighbor Negative Contrastive Estimation (ANCE) | A later single-vector training system named in the source | Its result limits what the ColBERT [CLS] ablation proves |
| K-means | Clustering vectors around learned centers | ColBERTv2 uses it to build the centroid codebook |
| Codebook , assignment , embedding and residual | A shared codebook, centroid assignment, token embedding and residual | The centroid identifier is an exact cluster address, not exact lexical/semantic identity |
| Codebook size , embedding count and residual width | Number of centroids, number of stored token embeddings and residual bits per coordinate | Identifier packing, codebook precision and metadata must also be specified |
| Residual | The exact difference | Storing a quantized residual instead gives a lossy reconstruction |
| Residual quantization | Storing a low-bit code and reconstructing | It preserves a cluster address but changes vectors and can change retrieval ranks |
| Quantile bucket edges | Thresholds chosen from the residual distribution | They define the one-bit or two-bit residual codes |
| Inverted File with Asymmetric Distance Computation (IVFADC) | A coarse/residual representation scored with asymmetric distance computation | Product-quantization codes can be scored by lookup tables without reconstructing every full vector |
| PLAID | A centroid-first late-interaction candidate and scoring funnel | Final scoring is exact only for the retained reconstructed vectors; earlier pruning and quantization remain approximate |
| Candidate generation | Probing selected centroid lists and mapping hits to passages | Global average list length does not upper-bound query-selected hits or unique candidate passages |
| Centroid pruning | Removing centroids too dissimilar to every query token | It shrinks later stages before they read more bytes |
| Centroid interaction | A cheaper centroid-based proxy for MaxSim | The worked funnel keeps then candidates; proxy errors can remove a relevant passage |
| Ragged gather | Loading variable numbers of token vectors per passage | Reshape and padding make it a major runtime cost |
| Lookup table | Precomputed values used during decompression or scoring | PLAID uses them to accelerate central processing unit execution |
| Central processing unit (CPU) | A general-purpose processor | PLAID reports a larger speedup there than on a GPU |
| Graphics processing unit (GPU) | A highly parallel processor | Parallelism already hides some padding waste there |
| Peripheral Component Interconnect Express (PCIe) | The host-to-accelerator data path named in the serving discussion | Crossing it makes byte traffic more important than arithmetic |
| MiniLM | The 22-million-parameter cross-encoder teacher in ColBERTv2 | It supplies soft scores for denoised distillation |
| Kullback-Leibler (KL) divergence | A loss that matches two score distributions | ColBERTv2 uses it over 64-way tuples |
| Denoised distillation | Teacher training that reduces noisy binary-label effects | The source credits it, not compression, for ColBERTv2’s quality gain |
| A discounted, ideal-normalized top-ten gain metric | A reported scaled-point aggregate gain does not rule out important cohort regressions | |
| Cosine similarity | For nonzero vectors, normalized inner product in | It is not a calibrated relevance probability; raw dense dot products need not have this bound |
| Min-max normalization | Rescaling a nonconstant list window to | It depends on window extremes and needs a zero-range fallback and a missing-list policy |
| Convex combination | A weighted sum whose nonnegative weights total one | It can outperform RRF after sound normalization and in-domain tuning |
| Fusion weight | The sparse share in a two-list convex combination | Tune with independent in-domain judgments and important slices, not on the final test set |
| Rank | A one-based document position within one returned list | Define treatment of tied input scores and absent documents |
| RRF score and ranks | A sum of reciprocal-rank contributions from lists in which the document appears | It avoids raw-score scale matching, but is not a confidence or independence model |
| Rank constant , list count and depth | Nonnegative offset , number of lists and per-list depth | The constant, depth and list weights jointly affect head rank versus agreement |
| Raw score and fusion weight | An individual retriever score and the sparse share of score fusion | Normalization and held-out validation matter; a bounded score is not automatically calibrated |
| Weighted RRF | RRF with nonnegative list weights | Weights can be validated or learned; they do not automatically correct correlated errors |
| Hierarchical fusion | Combine correlated lists within a family before combining families | It can cap a family's voting budget, but changes the algorithm and is not a guaranteed quality improvement |
| RAG-Fusion | RRF across lists from generated paraphrases of one query | Correlated agreement can amplify a shared near-miss |
| Calibration | A validated mapping from scores to an interpretable outcome probability | Rank fusion is not itself calibration; a score threshold can be tested but is not justified by the RRF range alone |
Core mechanics
Mathematical conventions
Use decimal for powers of ten and binary for powers of two: and . fp32 and fp16 use and per value. One multiply-accumulate (MAC) counts as two FLOPs in the work proxies. Vector or posting payloads exclude dictionaries, source text, graph links, identifiers not already counted, allocation, replicas and runtime buffers unless stated. Keep full precision until reporting; marks rounding or modeling approximation. For sparse examples, let be the vocabulary with size , , and describe document and query activation profiles. Thus and is average nonzero count. Learned mean weight is not generally . The exhaustive posting-work proxy is distinct from actual latency with pruning, query encoding, score accumulation and top-result selection. For the late-interaction payload examples, use the separately stipulated rounded corpus , indexed token vectors per passage, query positions and projection width . Do not silently mix this with the exact sparse corpus count. A BERT-base encoder has parameters; forward FLOPs for processed positions is approximate and omits attention-length effects, projections and other work. Lengths omit any additional special tokens unless included in the stipulated count. Dividing work by hardware rates is not a measured latency, physical lower bound or request-percentile guarantee. MRR is a fraction: , with zero contribution if no relevant result is found, where is the first relevant one-based rank. One scaled MRR point is on this scale; relative loss instead divides an absolute score change by a specified baseline. Passage recall, answer-hit accuracy and ANN neighbor recall have different reference sets and denominators. The cited scores, ablations and latency profiles are reported inputs; they are not all one matched experiment. In fusion, use for the RRF rank constant, for list depth and for list count, distinct from BM25 , projection width and rerank depth. A document absent from a truncated list contributes zero; ranks are one-based, with a declared deterministic tie policy. Min-max normalization requires a nonzero score range and a documented constant-list fallback. Normalized or fused scores are not automatically probabilities. Historical software, benchmark and hardware assertions remain reported source claims, not independent verification.
21.1 SPLADE: MLM-predicted term importance and implicit expansion
The shared sparse scoring form
- What: Let be a shared abstract term-coordinate set with in the SPLADE WordPiece example. Weights refer to query and document coordinate .
- Why: Sparse dot-product scoring supports inverted lists, with contributions only from nonzero query dimensions and stored nonzero document dimensions.
- Scope: Real BM25 analyzers need not use WordPiece; sharing the scoring shape does not make every implementation's vocabulary or posting format identical.
- Cost: Exhaustively visiting eligible postings is one work model. Dynamic pruning, quantization and top-result selection change execution cost.
For one unfielded BM25 variant, let be analyzed term count, document length, average length, and . Use the guarded positive IDF convention from Chapters 18 and 20, and ignore query-frequency weighting in this particular decomposition:
- What: A zero document term count contributes zero under this lexical variant; learned expansion changes that literal-support property.
- Why: An exact posting match is evidence of analyzed term occurrence, not proof of relevance. BM25 can use other query terms and length effects, but does not itself contextualize the word “bank.”
- Failure case: A relevant passage may paraphrase all informative query terms and have no analyzed overlap. Translation, expansion or another retrieval route changes that premise.
- Reported scenario: The opening example gives BM25 request and an audited unacceptable-candidate rate . These are scenario observations, not consequences of the formula or a general BM25 failure rate.
Discrete expansion versus direct vocabulary weighting
- Discrete expansion: The cited docT5query configuration generates forty possible queries, appends their text and indexes it with BM25. Generation settings change the resulting corpus and term counts. Ordinary backpropagation does not pass directly through discrete decoding, although other training estimators or surrogates are possible.
- Reported result: The chapter gives versus BM25 in that comparison; do not combine these automatically with the separate ColBERT baseline.
- Direct weights: SPLADE's MLM vocabulary head scores vocabulary pieces at contextual positions, so absent pieces can receive weight without generating a string. This is one expansion parameterization, not a theorem that no other architecture can expand absent terms.
- Intermediate size: At and , there are logits, or if materialized in fp32. Implementation and streaming can change peak memory.
Here is the MLM dense/GELU/LayerNorm transform, the tied vocabulary embedding and its output bias. The position set used for pooling must follow the attention and special-token policy; padding positions must not accidentally create indexed terms.
Exact zeros, saturation, and pooling
- What: ReLU sets nonpositive logits to zero. For positive logits, grows sublinearly but remains unbounded; its derivative is .
- Why: Exact output zeros can be omitted from the inverted index. The log transform reduces marginal scale, not the total number of active dimensions.
- Limit: ReLU can leave many positives, and sum pooling still adds repeated contributions. It does not impose a posting budget or a hard per-term cap.
- Cost: Sparse serving does not imply sparse indexing computation: the vocabulary head can still be dense.
Five logits equal to twelve have raw sum , versus for five logits equal to one, a raw ratio . Transformed sums are and , ratio . The transform compresses the ratio; doubling the number of identical positions still doubles either sum-pooled weight. Pooling removes explicit position indexing only after contextual encoding, so the output is a vocabulary-weight vector rather than a literal order-free input model. A max-pooled variant uses . The chapter reports changing from to for a cited variant, but not reproducing universally. Treat the result as a reported configuration comparison, not proof that max pooling always wins or that pooling alone explains every v2 gain.
Training and interpretability
- Training: The cited SPLADE v1 recipe uses in-batch candidates and one BM25-mined hard negative per query. Mask known positives and duplicates; mined candidates are not exhaustively judged negatives.
- Objective: Ranking supervision can train the vocabulary weights end to end, with ReLU's local zero derivatives and shared parameters accounted for. It does not automatically enforce sparsity or calibrated expansion.
- Reported results: The chapter gives for v1 and for a distilled v2 configuration, versus BM25 and docT5query in that comparison. Distillation, training and architecture changes must not all be attributed to one pooling operation. SPLADE coordinates are inspectable vocabulary pieces, not necessarily whole readable words or a faithful explanation of the complete ranking decision. The source suggests reviewing the top twenty coordinates on a few hundred documents. Check context, negation, brands and unsupported expansions against judgments; deleting a coordinate can remove useful matches too. An expanded posting does not certify that its label literally occurred in the source.
Worked index economics
For a payload example use , and per posting: a four-byte document identifier plus four-byte weight. Assume forty stored BM25 terms per passage. To make the query arithmetic explicit, the following table uses uniform activation across the vocabulary, not an observed natural-language frequency distribution. For the unregularized row, gives average active dimensions; its fractional totals are expected quantities, not literal fractional records.
| Configuration | Index arithmetic | Query arithmetic | Result |
|---|---|---|---|
| BM25 | postings | MACs | payload |
| Unregularized SPLADE at positive | expected MACs | expected payload; times BM25 toy work | |
| SPLADE at 160 nonzeros | postings | MACs | payload; times BM25 toy work |
At stored pairs, each document uses under this posting format. A width- fp32 vector uses ; corpus payloads are versus , a ratio . This is not an all-in sparse/dense index ratio; real engines use different compression, dictionaries and auxiliary structures. The vocabulary projection alone has proxy FLOPs per passage, compared with encoder proxy FLOPs, a ratio . The preceding dense transform adds another FLOPs before nonlinearities, normalization, bias and pooling. The head percentage alone does not establish indexing throughput or the dominant production bill. At five hundred million chunks, payloads are for width- fp32 dense vectors, for forty eight-byte postings and for one hundred sixty postings. Learned sparse expansion still uses lexical coordinates, but does not provide a hard literal-containment guarantee. Compare measured request , candidate coverage and final quality before choosing one learned index over a lexical/dense pair. An average of one hundred sixty nonzeros—four times the forty-term baseline—is a source starting heuristic, not a universal optimum. Query sparsity can reduce posting traffic without reducing the dense query encoder/head work. Use an index that supports learned posting weights and its quantization/pruning contract. Dense materialization of all fp32 coordinates costs per document and over this exact corpus. The cited SPLADE-doc option removes the learned query-side encoder/expansion in favor of lexical query coordinates; evaluate its quality. docT5query is another option when the serving engine accepts expanded text but not custom impact weights.
21.2 FLOPS regularization: making sparsity a trainable objective
Model the work the index performs
- What: Let be corpus activation probability and query activation probability. An exhaustive traversal opens list with probability and its modeled length is .
- Why: Expected posting visits depend on the product of the two profiles, not just their separate nonzero totals. One posting contribution uses one MAC in this proxy.
- Scope: Corpus frequencies can be fixed empirical fractions; query randomness supplies the expectation. Dynamic skipping, caches, score quantization and query encoding are not counted.
The exact support count is piecewise constant and has zero derivative almost everywhere, so naive gradient descent on it is unsuitable. The identity is about nonzero indicators, not an identity for weight mass. With arbitrary nonnegative weights, shrinking every positive weight reduces without changing any support. Calling the tightest convex relaxation needs a domain: on a bounded unit box it is the convex envelope of , not an unqualified statement on unbounded weights. Support budgets still require measurements, thresholds or further assumptions. For the following tractable toy only, assume proportional activation profiles , with and probabilities remaining in . The worked case has , so the query constraint is feasible. This assumption is not implied by the FLOPS penalty:
Then expected cost and effective support become:
Cauchy–Schwarz gives , with equality for equal nonzero popularity across all vocabulary coordinates. Also because , so . At , the tight minimum is , achieved by one hundred sixty always-active dimensions. Thus the maximum cost ratio between feasible profiles at these fixed proportional counts is , not the vocabulary size. Against the specific comparison below, the greatest possible ratio is .
Why a Zipfian profile is expensive
An uncapped reciprocal profile has harmonic sums and . Its scale-invariant effective support is . This is a valid concentration statistic for arbitrary nonnegative weights, but not a feasible probability profile at mean support one hundred sixty: normalization would require . The previous fifty-six-fold posting-cost example therefore mixed weight mass with activation probabilities. A feasible concentrated example is , choosing so . Numerically ; the first nineteen probabilities equal one. Then and . This is a constructed capped-Zipf example, not a theorem that an -trained model must learn this profile. Harmonic approximations include finite-size terms; do not replace by as an exact equality.
FLOPS as load balancing
For a batch of nonnegative document-weight vectors, define a mean weight and the named FLOPS surrogate. These are real weights, not automatically binary activation probabilities:
For this penalty, . For , the derivative on a positive weight is . Mean weights and therefore have a fortyfold FLOPS derivative ratio before coefficients and the activation chain rule. The pressure is on output weights; derivatives through ReLU/log pooling and shared encoder parameters are different quantities. For , squaring the mean introduces cross-document coupling. Under IID batches, , not exactly . Batch size one lacks cross-document coupling. Finite-batch variance, active-weight magnitudes and the query/document relation all affect how this surrogate translates into support and real posting traffic. For a nonzero mean-weight vector , define . At fixed mean mass , the population mean-square term is , so minimizing it spreads that weight mass. Equating this with additionally needs binary weights or a fixed common active amplitude. Arbitrary SPLADE weights need not satisfy it. FLOPS can encourage sparsity and load balance but does not guarantee a fixed support count, profile proportionality or latency optimum.
Separate query and document penalties
Document support affects persistent postings and traffic; query support affects posting traffic and transient query work. Both sides can affect relevance, encoder cost and caches. The source suggests trying roughly an order of magnitude above when query latency binds, but the coefficients depend on loss normalization, weight scales, parameter sharing and task. Stronger query regularization does not automatically leave the document profile unchanged in a shared encoder; measure both after training. The all-zero output minimizes either nonnegative penalty. A strictly negative logit has zero local derivative through ReLU, but this alone does not make a vocabulary dimension permanently dead: shared parameters can move from other examples, and optimizer state or weight decay can change logits. A completely inactive model can be locally stuck if every training gradient reaches only these zero-derivative paths and no other update acts. The source describes a quadratic regularization warm-up; trying the first ten to fifteen percent of steps is a scheduling heuristic, not a guarantee against collapse or proof that full initial regularization always kills outputs.
Worked cost profiles
Use the exact sparse corpus , average document support and query support . Keep proportional probability profiles explicit; this is a different query support from the preceding one-hundred-coordinate payload example.
| Configuration | Effective support | Query cost | Index size |
|---|---|---|---|
| Feasible capped-Zipf profile (constructed) | MACs | payload | |
| Balanced profile on dimensions (constructed) | MACs | payload | |
| Reduce query support to eight, holding document profile fixed | MACs | Unchanged only because the document profile is held fixed |
The feasible concentrated and balanced examples have the same average document support and a posting-work ratio , not fifty-six. Reducing query support from thirty to eight gives another factor only with the document profile and proportionality held fixed. The balanced document profile is feasible: take on four thousand dimensions and zero elsewhere; its corresponding query probabilities are . The balanced and capped-Zipf proxies are approximately and times the earlier uniform BM25 posting estimate MACs. These compare different constructed query/document profiles, not shipped query latency. The invalid uncapped calculation does not justify a six-thousand-four-hundred-fold production claim. WAND and BlockMax-WAND can skip contributions using upper bounds; their benefit depends on score distributions, impact quantization, list order, cutoffs and implementation. The source reports difficulties with dynamic pruning for some learned sparse distributions, not a theorem that every SPLADE index prunes worse than BM25. Evaluate document-at-a-time, impact-ordered and score-at-a-time engines on the deployment workload. Report document/query support distributions, activation-based effective support, mean-weight concentration and measured request tails together. Estimating frequencies from one hundred thousand vectors is a source sampling heuristic; unseen rare dimensions and domain shift add uncertainty. A target of one hundred sixty document nonzeros and effective support at least four thousand is a candidate budget, not a theorem. At five hundred million chunks that posting payload is under this format. Compare training-time regularization with serving-time top-coordinate truncation: neither universally preserves recall or fixes skew. Recompute profiles after changing corpus, tokenizer, thresholds, weights or domain.
21.3 ColBERT and late interaction
Locate the architectural gap
- Architecture: A single-vector bi-encoder scores two query-independent-side vectors. A standard cross-encoder jointly conditions token states on the current query/document pair; reusable final document states are therefore unavailable in that baseline, even though raw text and some preprocessing can be cached.
- Representation limit: A simple mean gives equal coefficients to contextual token vectors, not necessarily equal semantic importance to the original words. Contextual states can already encode salience. A single vector is a bottleneck, but its width alone does not prove a fixed quality gap.
- Reported comparison: The chapter gives cross-encoder and at candidate depth one thousand. Keep measured configuration and approximate work models distinct.
Keep token vectors and interact late
- What: ColBERT independently encodes the two texts, projects token states to and normalizes nonzero token vectors. A zero vector or empty document requires an explicit masking/fallback policy rather than division by zero or a maximum of an empty set.
- Query positions: The cited recipe augments queries to positions with mask tokens. These contextual outputs are not zero-padding vectors.
- Why: Documents remain precomputable, while query-token-specific matching is delayed until scoring. Contextual encoding still precedes the late interaction.
- Cost: Payload scales with indexed document-token count and vector width/precision, not merely passage count.
For a single query row, suppose a document of vectors has one similarity and the other similarities . Replacing its maximum by its mean yields:
A comparison row with all similarities scores . Maximum similarity has ratio and additive gap , while the mean has ratio and gap . These are similarity-score comparisons, not likelihood ratios or calibrated evidence. With one strong cell and a fixed background, the mean gap shrinks as . MaxSim can also match several query tokens to the same document token and does not itself enforce joint factual consistency.
End-to-end candidate generation
A token-driven candidate stage can issue ANN probes for query vectors, map hits to passages, deduplicate and rescore their union with MaxSim. This changes the first-stage candidate set; it does not remove all coverage ceilings. A fixed probe depth is not guaranteed to retrieve the global MaxSim winner. For example, take orthogonal unit query vectors , two single-token distractors , and a single-token relevant document . That document has total score , but each query token's nearest single token is its corresponding distractor. Two top-one probes omit the highest-scoring document. The source reports end-to-end versus BM25-candidate reranking . If a reranker receives and returns exactly the same thousand documents, its recall at that same depth is unchanged by reordering. At smaller output depths ranking can help. Token ANN, filters and later pruning impose their own candidate-survival limits, and passage recall is not numerically a universal NDCG ceiling.
Worked architecture costs
For matched work proxies use , , , , fp16 token vectors, and a fixed candidate depth . The cross-encoder proxy processes positions per pair, with any extra special positions omitted. Token candidate generation, projection/normalization, maximum reductions, data movement and selection are not included in the dot-product FLOP formulas.
| Architecture | Online arithmetic | Stored bytes per passage | Reported behavior |
|---|---|---|---|
| Cross-encoder | FLOPs | No reusable final query-conditioned vectors; source/cache storage remains | Reported and , not derived from this proxy |
| ColBERT | FLOPs | Reported reranking time ; ANN generation is a separate stage | |
| Single-vector bi-encoder | FLOPs | in the DPR fp32 example | Submillisecond dot scoring, where reported, excludes query encoding and full retrieval |
The query encoder proxy is FLOPs. Candidate token dot products add FLOPs, for total . These shares are approximately encoding and token dots, summing to one hundred percent. Max comparisons, row summation, projections and system work remain outside this accounting. At the matched lengths, the cross/ColBERT work-proxy ratio is approximately . The previous ninety-seven-trillion-FLOP figure is not implied by those lengths; under the same rule it would require roughly processed positions per pair. Do not combine it with a rounded seven-billion denominator as though all numbers describe one experiment. The reported latency ratio is . Dividing an unmatched FLOP ratio by that measured ratio does not prove a seventy-ninefold overstatement or isolate overhead. The cited profile allocates of to encoding/interaction and the remaining to gathering, stacking and transfers. That profile motivates a data-movement optimization in its configuration, not a universal bottleneck for all late-interaction systems. Token payload is per passage. The width- fp32 single-vector example is , giving ratio . At the rounded corpus , totals are and . The comparison deliberately uses different widths/precisions and excludes auxiliary index structures; it is not a universal multi-vector multiplier. At fixed passage count and storage format, doubling indexed token count doubles raw multi-vector payload. A single-vector payload stays constant only if chunk count and width remain fixed; longer chunks can change tokenization limits, quality and serving work. For and sixty-eight vectors per passage, width- fp32 payload is and width- fp16 payload is , ratio . The source's rounded reported footprints are and , a ratio approximately ; do not equate rounded empirical totals with the exact toy count. This change includes both width and precision. Holding fp16 fixed, width gives ratio instead. The cited quality operating points are and , an absolute loss , or one scaled MRR point. Relative loss from the larger baseline is ; relative gain of the larger over the smaller is . These are different denominators and are not a universal marginal price of dimensions. The source reports end-to-end retrieval at versus reranking at , ratio approximately for those configurations. End-to-end retrieval replaces the BM25 candidate ceiling with token-search and pruning constraints; it does not eliminate candidate loss. A sub-hundred-millisecond target may motivate shallow reranking, but nominal or average measurements do not establish a request-tail SLO. The source's roughly one-million-chunk affordability boundary is a workload heuristic; evaluate payload, all-in index size, candidate coverage and measured latency.
21.4 The three ablations that show what makes ColBERT work
Read controlled deletions correctly
The chapter reports all three variants reranking BM25's top thousand passages on MS MARCO development data, with full . The following differences use that baseline and a fractional MRR scale. They are separate reported ablations, not additive causal allocations or a complete factorial experiment.
| Controlled deletion | MRR@10 | Absolute drop | Relative drop | What it isolates |
|---|---|---|---|---|
| Collapse token vectors to one [CLS] vector | (scaled points ) | Changing the token representation/score bottleneck under this recipe | ||
| Replace row maximum with row mean | (scaled points ) | Loss of nonlinear per-query-token selection; the stated pure mean score factorizes | ||
| Remove [MASK] query augmentation | (scaled points ) | Removing contextual augmentation under this recipe, not all possible expansion methods |
Against the separately reported BM25 baseline in this comparison, the full model gains and the pooled variant . Token collapse loses of that measured improvement. This is a descriptive gain ratio, not a fraction of all useful knowledge or a universal attribution of architectural value. The absolute-drop ratio is ; using the rounded relative percentages gives a less precise comparison. In this recipe the token-collapse ablation loses more than the mean-score ablation. A fixed representation cannot recover a distinction if it maps the relevant inputs identically, but this does not prove which distinctions another trained representation can preserve, or that granularity and aggregation have independent effects. A literal grid-based mean implementation still computes the same dot-product grid, but the chapter's unweighted row-mean score has an exact real-arithmetic factorization:
For this score alone, precompute the document mean and score one vector pair; retaining the full token grid is unnecessary. Do not renormalize pooled vectors and claim the same score, because document-dependent norm changes can change ranks. Finite-precision pooling introduces its own numerical differences. If a separate token-ANN candidate stage is retained, it may still need token vectors; scorer and candidate-index storage must be distinguished. Thus “mean saves zero storage and zero FLOPs” is not a mathematical consequence of the stated score. MaxSim's nonlinearity prevents this simple factorization and preserves per-query-token best matches. Mask-augmentation positions pass through the contextual encoder and can learn useful latent query features; they are not guaranteed literal synonyms predicted by pre-training alone. One independently supplied, compatible query vector adds dot-product MACs per candidate, plus maximum/accumulation work. Re-encoding an augmented text can also change every original query vector, unlike merely appending a fixed vector after encoding. End-to-end token retrieval may require new ANN probes and a changed candidate union. Document-side expansion likewise changes stored vectors/postings and indexing work. Evaluate arbitrary term-table or centroid-vector additions for training compatibility rather than assume equivalence to the cited mask ablation.
Price each deletion
For consistent payload arithmetic, use the fp16 width- baseline and reranking proxy FLOPs. The following storage-per-score comparisons are illustrative ratios of operating-point differences, not causal derivatives or confidence intervals.
- Token-collapse payload: One width- fp16 vector is per passage, or at . Against the raw token payload it saves . Dividing by the reported scaled MRR-point loss gives per point in this illustrative comparison.
- Width payload: Holding fp16 fixed, width saves . Pairing this payload difference with the reported one-point operating-point loss gives a descriptive ratio times the preceding storage-per-point number. The source's footprint/quality configurations are not proof that width alone caused this result.
- Mean-score lever: The pure mean-dot score can store an aggregate document vector instead of all token vectors; it has potential scorer-storage and interaction savings. A retained token candidate index changes the all-in saving. Its reported MRR loss is not payment for mathematically zero efficiency gain.
- Augmentation proxy: If processed query positions drop from thirty-two to eight, including the chosen special-token policy, the encoder proxy becomes FLOPs and token-dot work , total , exactly one quarter of this matched proxy. Eight query words plus extra positions are a different length. For an Amdahl-style scenario, hold the reported gathering/transfer component fixed and suppose the affected component becomes four times faster. Then time would be , saving or of the baseline. This is conditional arithmetic, not a measured new latency or a universal upper bound derived from FLOPs. The reported augmentation score drop is relative MRR, a different metric. Fixed shapes can aid batching, but modern ragged kernels and changed candidate counts require benchmarking. For a precomputed appended query vector, the extra dot work is FLOPs per candidate and over a thousand candidates. That is approximately of . It excludes producing/normalizing that vector, row maxima, extra token probes, candidate changes and data movement; it is not the percentage of end-to-end latency. These ablations do not prove all single-vector retrieval is worse. The source reports ANCE with a different training/negative recipe. A one-vector footprint is one sixty-eighth of the token payload only at the same width- fp16 format; the width- fp32 payload is smaller by a factor . Do not assign the former ratio to ANCE without specifying its dimensions and precision. A width- fp16 token payload is , but fitting a device/index budget still depends on auxiliary structures and runtime memory. Measure the relevant candidate and final-quality differences rather than apply a universal one-to-two-recall-point cutoff or assume short texts erase every architecture gap.
21.5 Making multi-vector affordable: ColBERTv2 and PLAID
Factor shared identity from contextual detail
The rounded corpus with sixty-eight stored vectors per passage has token vectors. A width- fp16 vector is . Actual filtered/tokenized lengths vary; all following totals condition on this average and format.
- What: Learn a centroid codebook, assign each token vector to a centroid and quantize its residual. The stored centroid identifier is a cluster address, not an exact lexical-token identity.
- Why: If within-cluster residuals have a smaller useful range than raw coordinates, low-bit residual coding can reduce distortion at a given size. This is a distributional advantage to measure, not a guarantee for every domain.
- Limit: Direct coordinate quantization can lose important detail, but it is not mathematically required to fail; error depends on scaling, codebook and retrieval margins. Residual quantization is also lossy.
- Cost: Two bits give four code levels per dimension, with packing and metadata assumptions stated below.
With centroids, a packed identifier needs at least eighteen bits; this example stores it in . A two-bit width- residual uses , so a record is rather than , a payload-only factor . Assuming fp16 centroids, the shared codebook is , approximately of compressed token payload. Scale tables, offsets and other metadata are not included. The source relates this design to centroid/residual quantization and reports little or no measured quality loss in a comparison. Quality neutrality is not guaranteed by the representation identity. Residual drift, clipping, codebook mismatch and reconstruction/normalization policies can change ranks. For unit query rows and document-vector perturbations measured after the scoring pipeline's normalization policy, a useful bound is
If both documents have error at most per vector, an original score gap greater than is sufficient to preserve their order. Smaller gaps need not flip, but are not protected by this bound. This is a deterministic error statement under its norm assumptions, not a benchmark guarantee.
Reuse centroids in the PLAID funnel
- Score the query vectors against the shared centroid table, then probe selected centroid lists and map hits to candidate passages. Candidate generation still reads the required posting metadata; “no residuals” does not mean “no other reads.”
- Apply the configured centroid-pruning rule. Similarity thresholds and probe limits are approximate candidate controls, not automatic exact MaxSim bounds.
- Use centroid identifiers for a cheaper proxy score, such as , and retain configured candidate depths. The proxy omits residual contributions and can reorder documents.
- Reconstruct surviving quantized vectors and compute the full retained-vector score. “Exact” here means scoring that reconstructed representation, not recovering pre-quantization vectors or the exhaustive global ranking. Generic IVF-PQ is not inherently opaque until full reconstruction: asymmetric distance computation can score product-quantization codes with lookup tables, and generic indexes can use coarse centroids and pruning. The source reports PLAID gains from a retrieval-specific centroid-interaction/decompression funnel and optimized kernels. It does not prove that every alternative must decompress all candidates, or that sharing a codebook alone explains a measured speedup.
Worked storage and traffic
Use centroids, two residual bits per dimension, , and two probes per query position. The example funnel retains then passages. For traffic arithmetic, separately stipulate unique candidate passages; that count is not an upper bound derivable from average centroid-list length. All traffic rows below count compressed input payload, not complete memory traffic.
| Configuration | Arithmetic | Result |
|---|---|---|
| Uncompressed float16 | token payload | |
| Centroid plus two-bit residual | token payload, plus codebook | |
| Ordinary decompression after candidate generation | compressed candidate-record reads, conditional on | |
| PLAID centroid interaction plus final decompression | scoped record reads, not full traffic |
The compressed payload plus codebook is , saving against this raw fp16 payload. The size ratio including that codebook is approximately , rather than exactly the per-record factor. The separate width- fp16 payload saves and is paired with a reported one-point MRR operating-point difference; neither comparison proves lossless quality or a causal width/compression trade-off. Across all token-assignment lists, the mean length is token entries. Sixty-four uniformly selected distinct lists would have expected total token hits. Query-selected lists are not uniform, popular lists can be much longer, probes can repeat centroids, and many token hits can map to one passage. An index with per-centroid deduplicated passage postings has another list-size distribution. Thus neither unique passages nor a corpus upper bound follows from that mean. The separately assumed is about of , purely for the worked payload comparison. Under that stipulated , full compressed-record reads are and identifier-only reads . Rereading complete records for sixty-four survivors adds , for total. The ratio is approximately , slightly below nine; holds only before the extra survivor read. Reusing already read identifiers would instead add only residual payload, giving under this format. These are not all-in traffic totals. If both paths additionally read one cold codebook, the corresponding ratio becomes approximately . Centroid scores, posting metadata, code lookup, temporary buffers and reconstructed-vector writes matter too; merely writing the sixty-four fp16 reconstructed passages is . Actual cache reuse and kernels determine reads and writes. Do not infer a ninefold latency improvement from the record-size ratio. The payload reduction lies within the source's reported six-to-tenfold ColBERTv2 size range. The source also reports up to sevenfold GPU and forty-fivefold CPU latency gains for PLAID in particular comparisons. A scoped record-traffic ratio does not establish or decompose those gains. Candidate pruning, cache behavior, batching, codebooks, CPU kernels and reshape/padding overhead all require profiling; their relative effects are not proved by the size arithmetic alone.
Quality, bit width, and codebook limits
Do not assign a training-quality gain to compression. The source reports changing from to with a denoised-distillation recipe using a twenty-two-million-parameter MiniLM teacher and a KL loss over sixty-four-way tuples. That is not a controlled proof that quantization improves relevance. One-bit residuals have two levels per coordinate rather than four, and use per token record. The payload is , or with this codebook, saving versus two-bit records. Halving the bit count does not imply halving numerical error or “precision”; distortion depends on quantizer and scale. Choose bit width from measured retrieval, including out-of-domain behavior. At , centroid-dot work is FLOPs, approximately of the query-encoder proxy. At it becomes FLOPs, approximately of that proxy, before list traversal and scoring. Centroid count, list imbalance and token count create a work/coverage trade-off, not a fixed “few thousand per cell” rule. Instrument gold-passage survival against an exhaustive scoring reference on the same candidate set and also measure the initial candidate-stage loss; testing only survivors hides earlier omissions. Final MRR alone cannot identify the failed stage.
21.6 Hybrid retrieval and Reciprocal Rank Fusion
Why raw score fusion fails
Hybrid retrieval can help when dense and lexical paths have complementary errors, but neither “dense for meaning” nor “BM25 for codes” guarantees a slice win. The source's deployment vignette reports a four-point aggregate NDCG change alongside exact-string regressions; audit the relevant cohorts and candidate coverage. BM25 is not normalized to a global probability scale. For the positive-IDF variant and a fixed finite query, however, its score is bounded: . Calling every fixed-query BM25 score unbounded ignores term-frequency saturation. Unit-vector cosine lies in , while an unnormalized dense dot product has a different range. An uncalibrated sum can be dominated by scale; it is not mathematically impossible to work, but needs explicit weighting and validation. For a list with score range , min-max normalization is . It preserves ordering within that window and is invariant to positive affine score changes, but it is not probability calibration. Specify a constant-list fallback if the range is zero and how absent documents are handled; the worked example assigns missing-list contribution zero. A convex combination then uses :
The same raw score maps to in the first window and in the shorter window. That is a decrease in normalized-score units, or relative to the first value. Window selection and outliers affect these values. Every nonconstant-list maximum becomes one, but other normalized gaps can still differ; it is not true that min-max erases all confidence-margin information. Raw rank summation assigns the same numerical rank difference to positions one/two and sixty-one/sixty-two. That is a design choice rather than a theorem that it must fail. Missing-list penalties and ties are additional choices; reciprocal ranks offer another rank-sensitive weighting.
RRF and the meaning of the rank constant
Here is a truncated ranked list, distinct from its list-count parameter . A document must be in the candidate union to be scored, and tied input scores need a declared rank policy. Within one list, define . Its ratio to a rank-one vote is:
This ratio reaches one half at when that is an available integer rank. The rank constant controls the relative strength of a deep vote versus a top vote; it is not probability calibration or an assumption that different lists are independent. Compare a document at the same rank in all equally weighted lists with a different document at rank one in exactly one list and absent from the others. Only under that equal-rank/solo-hit comparison does the condition become:
For , common equal rank strictly wins and ties the solo top hit. For , common rank one wins and common rank two ties. Unequal-rank agreement can also win: ranks one and one hundred contribute at zero constant. For three-way equal-rank agreement with , ranks through win and rank ties. These are not thresholds for every arbitrary combination of ranks or list weights. At , the within-list top/bottom vote ratio is . At it is , so list-head rank differences are much stronger, but agreement still matters. For , two-way equal-rank agreement ties a solo top hit at rank seven, and the within-list ratio is . These describe truncated list weights, not confidence or the expected benefit of another retriever.
Worked fusion example
Use two lists of depth . Let be sparse rank one only, dense rank one only, ranks four/three and ranks nine/seven. The numerical table below uses explicit tie groups, and the subsequent paragraph fully specifies the raw scores needed for min-max fusion; ranks alone cannot determine that fusion.
| Fusion choice | Final order | ||||
|---|---|---|---|---|---|
| RRF at | |||||
| RRF at | |||||
| Min-max at | |||||
| Min-max at |
At , has and has . Each solo winner receives . The solo winners are tied by the score; any deterministic ordering between them is only a tie-break. At , scores are for and for . Both solo winners receive one. Agreement remains in the formula even though these top single-list hits lead this particular example. To complete the previously underspecified min-max example, stipulate sparse window with raw scores for , and dense window with raw scores for . These are illustrative inputs, not recovered benchmark data. Normalized sparse values are ; dense values are . Missing-list contribution is zero. Combine full-precision values before rounding: the half-and-half score of is , not obtained from prematurely rounded inputs.
Cost and limits of rank fusion
For lists of depth at most , accumulation has arithmetic/hash work and at most distinct documents; a full final sort costs , or use a partial top-result selection. Two depth-hundred lists contribute at most two hundred reciprocal terms, not necessarily two hundred distinct documents. If full retrieval paths take deterministic and , start together and do not contend, their parallel wait is versus serially, before fusion. Query encoding, launch delays, load, network and shared resources can change this. Request percentiles do not equal the maximum of individual percentiles by simple substitution. The source gives as an untuned historical default and suggests windows around fifty to one hundred, not a parameter-free optimum. Tune the constant jointly with depth and list weights on held-out judgments. Increasing depth can alter the fused head, not merely enlarge a rerank pool: at , an existing solo rank-one hit gains if it newly appears at rank in another list. For a concrete head reversal, a document at ranks two/one hundred scores . A rival at rank one only initially scores , but adding its other-list rank gives , overtaking the first document. Suitable remaining list entries can have lower fused scores. The common-rank-sixty-two crossover does not rule out this change. The source reports tuned convex combinations outperforming RRF in an in-domain comparison and sensitivity to constants/depth. A few hundred labeled queries is a tuning-budget heuristic, not a guarantee of statistical sufficiency or generalization. Use independent validation, relevant slices and uncertainty rather than retune on the final test set. RRF uses ranks, so different positive monotone transformations of raw scores leave its result unchanged when ranks/ties are preserved. It discards raw margins: a top sparse score with a large gap and one with a small gap both contribute at . For candidate-union documents with , scores lie in , whose bound ratio is ; documents outside the union have zero. Log the raw fused score for diagnostics if useful, but do not label it a correctness probability. A score threshold or a separate calibrated confidence model requires held-out task-specific validation, not this range alone. Weighted RRF can assign nonnegative list weights . This is another design/tuning choice, not an independence correction by itself:
Choose or learn weights on held-out final ranking/answer quality and important cohorts, with coverage checks; isolated slice recall alone does not identify the best fusion weights. BM25 and SPLADE can be correlated, but measure that correlation and their actual errors rather than assume the learned sparse path is just a duplicate lexical vote. With three lists and , rank is the tie point for a document present at that same rank in all three. A document appearing only in the two lexical lists still has two votes, so its equal-rank tie against one solo dense top hit remains rank , not . Hierarchical family fusion or weights such as can limit the family's total voting budget, but change the algorithm and are not guaranteed quality improvements. Generated-query variants can use the same fusion formula, yet correlated rewrites are not independent evidence. Repeated passages and original/translated copies need deduplication and access checks. If every path retrieves the same unsupported near miss, agreement does not supply the missing fact or certify answer correctness.
Diagrams
Figure 21.1
Diagram description and source
flowchart TD
T["Input token positions"] --> B["Contextual encoder states"]
B --> M["Trained MLM vocabulary-logit head"]
M --> G["Dense signed position-by-vocabulary grid"]
G --> R["ReLU: nonpositive logits become zero"]
R --> L["Log compression: sublinear, not capped"]
L --> S["Pool over token positions"]
S --> D["Nonnegative vocabulary weights"]
D --> P["Literal or expanded active coordinates: postings"]
D --> Z["Zero coordinates: omit postings, not encoder work"]
Figure : In the worked -position, setup, the MLM head produces signed logits. The pretrained head is adapted by retrieval training; absent vocabulary terms can receive positive weights without generating strings. ReLU creates zeros for nonpositive logits, while compresses positive values without bounding them. Sum/max pooling supplies one coordinate per term. Zero final coordinates have no postings, but computing the encoder/head was not free. Vocabulary coordinates offer inspection handles, not a certified faithful explanation.
Figure 21.2
Figure : The derivative comparison is with respect to positive output weights, before penalty multipliers and the encoder chain rule. A squared batch-mean weight penalty is not identically a probability penalty. For the two feasible activation profiles shown, use , , and . The posting proxy is and differs by about times. The former example at mass violated ; its claimed roughly fifty-sixfold gap was not valid under that model. These profiles illustrate a mechanism, not inevitable outcomes of particular penalties.
Figure 21.3
Diagram description and source
flowchart LR
subgraph A["Cross-encoder: joint encoding per pair"]
AQ["Query"] --> AJ["Joint query-document encoder"]
AD["Document"] --> AJ
AJ --> AS["Pair score; no reusable joint document state"]
end
subgraph B["Late interaction: document states reusable"]
BQ["Query"] --> BQE["Query token vectors"]
BD["Offline document encoder"] --> BDE["Stored document token vectors"]
BQE --> BG["Token dots, row maxima, sum"]
BDE --> BG
BG --> BS["MaxSim over available candidates"]
end
subgraph C["Bi-encoder: pooled before interaction"]
CQ["Query"] --> CQE["Query vector"]
CD["Offline document encoder"] --> CDE["Stored document vector"]
CQE --> CP["One inner product per candidate"]
CDE --> CP
end
Figure : At depth , and encoder size , the matched linear encoder proxy gives cross-encoder FLOPs versus for ColBERT query encoding plus token dots and for query encoding plus width- bi-encoder dots. ColBERT token payload is per passage versus for the stated DPR format, a factor . These omit attention-length corrections, reductions, candidate search, memory traffic and other costs. The source's versus timing comparison is reported separately, not predicted by the FLOP ratio.
Figure 21.4
| Panel | Rows and columns | Cells that enter the score | Result |
|---|---|---|---|
| a. Full ColBERT | Query-token rows by document-token columns | One row maximum per query row, then sum | |
| b. [CLS] pooled pair | Token grid replaced by a pooled pair | One pooled-vector dot | ; relative loss |
| c. Mean instead of max | The stated row-mean dot score factorizes | Sum query rows dotted with the document mean; token grid need not be materialized for this scorer | ; relative loss |
| d. No query augmentation | Remove contextualized augmentation rows under the stated length policy | Maxima over remaining processed query rows | ; relative loss |
Figure : The absolute score losses from the reported baseline are for pooled, mean and no-augmentation variants. Their relative losses are . That ordering is conditional on this recipe; it is not a universal or additive causal decomposition. The pure unweighted mean-dot formula factorizes, so it can save scorer storage/work; retaining a token candidate index affects all-in savings. This does not assert the implementation details of an externally unverified benchmark.
Figure 21.5
Diagram description and source
flowchart TD
subgraph A["Lossy token-vector representation"]
V["Original vector"] --> C["Centroid identifier plus quantized residual"]
C --> X["Reconstructed vector; retrieval error must be evaluated"]
end
subgraph B["Centroid-first retrieval funnel"]
Q["Query vectors and shared codebook"] --> G["Probe selected centroid lists and read posting metadata"]
G --> N["Candidate passage union: count depends on selected lists"]
N --> I["Centroid-ID proxy scoring and candidate pruning"]
I --> S["Retained final candidates"]
S --> R["Read residuals and reconstruct retained token vectors"]
R --> T["Full reconstructed-vector MaxSim, then final ranking"]
end
Figure : A width- fp16 token payload uses ; the example compressed record uses a centroid address and residual, totaling , plus a shared codebook. With and two probes per each of query rows, global mean list length is not a bound on candidate passages. Separately assuming candidates and a funnel , identifier-plus-final-record reads are versus full candidate-record reads. This scoped ratio is , excluding codebook and other traffic, not a guaranteed latency gain or exact global ranking.
Figure 21.6
| BM25 list | Dense list | RRF fused at |
|---|---|---|
| Rank : | Rank : | First: , |
| Rank : | Rank : | Second: , |
| Rank : | Rank : | Tied next: , |
| Absent: | Absent: | Same tie: , |
Figure : At , two equal rank- votes tie a solo rank-one vote; common rank strictly wins. At , an individual rank- vote is of a rank-one vote, but cross-list agreement still contributes. The example fused order is at the first constant and at zero. A deterministic ordering inside the solo-hit tie is not a mathematical score difference. Deeper windows can change existing head scores and even reverse the winner.
Whiteboard pack
What to draw
- Draw query/document vocabulary vectors and the sparse dot score. Label BM25's lexical weights versus SPLADE's learned support, without assuming their analyzers coincide.
- Show signed MLM logits becoming nonnegative pooled weights; distinguish head-computation cost from omitted zero postings. Label sublinear, not bounded.
- Draw feasible skewed and balanced probability profiles, each with and . Write and the conditions behind effective-support comparisons.
- Separate learned mean-weight regularization from activation probabilities. Draw constant positive-weight versus load-dependent FLOPS derivatives before their coefficients and encoder chain rule.
- Draw the token grid and one maximum per query row for MaxSim. Add that the pure mean-dot alternative factorizes, while fixed token-ANN probes can miss the global MaxSim winner.
- Draw a centroid address plus a quantized residual. Mark the reconstruction lossy and show candidate/quantization losses separately.
- Draw the PLAID funnel with the separately stipulated -candidate scenario and final reconstructed-vector survivors. Do not turn a mean posting-list size into a maximum.
- Draw rank lists entering . Mark one-based ranks, absence, ties, list depth and weights; agreement is not correctness confidence.
Spoken script
SPLADE keeps an inverted index while learning vocabulary weights, including terms absent from the literal passage. ReLU can create zeros; log compression is not a finite cap. Posting cost depends on the joint query/document activation profiles, not just average nonzeros, and squared mean-weight regularization is a useful proxy rather than exact support accounting. ColBERT precomputes document token vectors and scores local evidence with MaxSim, at a token-storage and candidate-search cost. Candidate coverage and final ranking remain separate. Centroid/residual compression is lossy; PLAID uses cheap proxy stages before scoring retained reconstructed vectors, with stage loss and traffic measured explicitly. RRF combines ranks without requiring raw-score scale matching, but its depth, weights and tie policies matter and its score is not a correctness probability.
Interview traps
1. Why can equally sparse SPLADE models have very different query costs?
Average support fixes , while the posting proxy is . When is proportional to , cost depends on . At document mass , probabilities require , so the former effective-support- example was infeasible. A valid capped Zipf profile has and about times the cost of the stated -effective-support profile. FLOPS regularizes mean learned weights, not binary support directly; measure actual support, overlap, pruning and tail latency.
2. What is late about ColBERT, and when would you not use it?
Document vectors do not depend on the query until late interaction, so they can be precomputed. A cross-encoder instead recomputes a joint state per pair. Choose based on candidate coverage, final ranking quality, memory, serving latency and operational budget. A reranker cannot recover passages missing from its fixed candidate pool; reranking the same thousand does not change , though smaller-cutoff ranking can improve. Token-ANN candidate limits and lossy compression need their own recall checks rather than an assumption that late interaction guarantees global coverage.
3. What do the three ColBERT ablations actually prove?
The reported ablations lose relative for pooling, mean scoring and no augmentation under one recipe. They do not prove a universal architecture ordering or additive causal shares. The pure mean-dot score can aggregate document vectors and factorize, so its efficiency gain is not necessarily zero. The reported ANCE score uses another training recipe and cannot be assigned a width- fp16 footprint without specifying that format. Compare matched inputs, candidate coverage and serving budgets.
4. Why does ColBERTv2 use a centroid plus residual, and why does PLAID keep the centroid stage?
The centroid identifier preserves a codebook address exactly, not a token's semantic identity; its quantized residual reconstructs the vector approximately. That approximation can change ranks, and centroid pruning can discard relevant passages before final scoring. In the separately assumed candidate scenario, scoped record reads change from to , excluding codebook and other traffic. Preserve the funnel only when measured stage survival, final quality and real latency justify it. No arithmetic here proves lossless compression or an all-in ninefold speedup.
5. When does RRF lose to score fusion, and what happens when you add SPLADE to BM25 plus dense retrieval?
RRF is a useful label-free starting point, not an always-winning default. Tuned convex score fusion can win in-domain, but needs defined normalization, missing scores and held-out validation. With three lists at , rank is a tie only for agreement in all three; a hit in just the two lexical lists still ties a solo dense top hit at common rank . Measure correlated errors, and validate family weights or hierarchical fusion rather than assert either guarantees improvement. Keep candidate recall, final quality and calibrated confidence distinct.
Key numbers
| Topic | Number | Meaning or limit |
|---|---|---|
| Opening BM25 service | at | Opening hypothetical service baseline, not derived from FLOPs |
| Opening failure audit | Opening hypothetical failure fraction; define the audit acceptance rule | |
| SPLADE latency incident | scaled recall points; | Hypothetical incident; expanded query support alone does not prove the latency change |
| WordPiece vocabulary | The worked output vocabulary, not a required BM25 analyzer | |
| BERT hidden width | Hidden-state width of the assumed encoder | |
| Example sequence length | positions | Worked MLM sequence length including the declared special-token policy |
| Dense SPLADE logit grid | values; in fp32 | signed logits; activation buffers are not posting payload |
| docT5query expansion | generated queries per passage | Reported expansion configuration; discrete strings are appended |
| BM25 MRR@10 | MRR fraction | Reported BM25 baseline |
| docT5query MRR@10 | MRR fraction | Reported docT5query comparison |
| SPLADE v1 MRR@10 | MRR fraction | Reported SPLADE v1 with its negative recipe |
| SPLADE v2 max-pool MRR@10 | MRR fraction | Reported max-pooling result, not universal across settings |
| Distilled SPLADE v2 MRR@10 | MRR fraction | Reported cross-encoder-distilled SPLADE result |
| Raw-logit example | versus | Raw sums for five logits of twelve versus five logits of one |
| Log-compressed sums | versus | Log compression, not bounded saturation |
| Log-compressed ratio | Raw ratio twelve is reduced, but repeated contributions still add | |
| MS MARCO passages | Sparse worked corpus; do not silently replace it by the rounded multi-vector corpus size | |
| BM25 terms per passage | active terms per passage | BM25 support assumption |
| Posting size | per posting | document identifier plus weight, before other index overhead |
| BM25 postings | postings; | Eight-byte posting payload, not all-in index size |
| BM25 average list | entries | Global mean list length; query-selected lists can differ |
| BM25 query work | MAC/query | Uniform-profile proxy with eight active query dimensions |
| Unregularized positive share | active fraction; expected nonzeros | An average/expectation need not be an integer |
| Unregularized postings | expected postings; | Expected eight-byte payload; not a literal fractional stored posting |
| Unregularized average list | entries | Uniform document-activation assumption |
| Unregularized query work | MAC/query | Hundred-active-dimension uniform-query example |
| Unregularized multiplier | times | Unrounded uniform-profile work ratio versus the eight-term BM25 proxy |
| Regularized SPLADE nonzeros | active dimensions per document | Support budget, not a guarantee from a particular penalty coefficient |
| Regularized SPLADE postings | postings; | Eight-byte learned-sparse payload |
| Regularized average list | entries | Global mean list length, not a maximum |
| Regularized query work | MAC/query | Hundred-term uniform-query proxy, fifty times the stated BM25 proxy |
| Sparse bytes per document | Learned-sparse posting payload per document | |
| Dense bytes per document | One fp32 dense vector per document | |
| Flat dense collection | Flat dense-vector payload, not ANN graph or all-in memory | |
| Sparse storage advantage | Dense/sparse payload ratio for these formats | |
| MLM-head indexing cost | FLOPs | vocabulary projection, excluding the preceding transform |
| BERT-base indexing cost | FLOPs | linear encoder proxy |
| MLM-head overhead | Vocabulary-projection/encoder work ratio; transform adds further work | |
| Dense SPLADE materialization | per document; | All fp32 coordinates materialized; sparse postings avoid this format |
| Audit depth | highest-weight dimensions | Source inspection heuristic; learned weights are not a certified faithful explanation |
| Large-corpus example | chunks | Separate sizing scenario |
| Large dense index | One width-768 fp32 vector per chunk, excluding ANN overhead | |
| Large BM25 index | Forty eight-byte postings per chunk | |
| Large SPLADE index | One hundred sixty eight-byte postings per chunk | |
| Zipf harmonic sum | Finite harmonic sum used in the profile calculation | |
| Squared-reciprocal sum | Finite sum; the infinite limit is slightly larger | |
| Infeasible uncapped activation example | Unconstrained reciprocal-rank profile only: at mass 160 its first activation would exceed one | |
| FLOPS pressure example | Ratio of derivatives at two mean weights, before coefficients/chain rule | |
| FLOPS worked query nonzeros | Separate work-model query support, not the hundred-term uniform example | |
| FLOPS cost numerator | Numerator for the proportional-profile effective-support formula | |
| Capped-profile query cost | MAC/query | Feasible capped Zipf: , |
| Balanced effective support | Feasible balanced profile, active probability on four thousand coordinates | |
| Balanced query cost | MAC/query | About times below the capped profile, not the invalid fifty-sixfold claim |
| Literal query nonzeros | Query-side target; hold the document profile and proportionality assumptions fixed | |
| Reduced query cost | MAC/query | Balanced-profile work falls by under those fixed assumptions |
| Balanced versus BM25 | times | Balanced-profile cost versus the separate uniform BM25 proxy |
| Capped profile versus BM25 proxy | times | Capped-profile cost versus the separate uniform BM25 proxy; not a measured deployment ratio |
| Profile sample | sampled vectors | Source measurement-budget heuristic; report profile/weight uncertainty and query dependence |
| Lambda warm-up | to of training steps | Source warm-up heuristic, not a guarantee against inactive local solutions |
| Lambda ratio default | About times | Source query/document coefficient starting heuristic; scales and objectives matter |
| FLOPS warning run | versus target ; hypothetical -fold p99 overrun | Average support alone does not certify a latency budget |
| Same-count checkpoint example | nonzeros; hypothetical versus | Posting profiles can matter, but effective support alone does not determine tail latency |
| Cross-encoder depth | candidate passages | Rerank depth; declare the candidate source |
| Cross-encoder quality | MRR fraction | Reported cross-encoder result, not a mathematically comparable recipe guarantee |
| Cross-encoder latency | Reported comparison timing, not the matched FLOP proxy | |
| Matched cross-encoder work proxy | FLOPs | Matched proxy ; the former 97-trillion figure was not implied |
| ColBERT query tokens | processed positions | Includes the stated padded/masked query policy |
| ColBERT projection | Projected token-vector width | |
| Average document tokens | Assumed average stored document-token rows | |
| ColBERT query encoder | FLOPs | query-encoder proxy |
| ColBERT MaxSim | FLOPs | token dots, excluding maxima and reductions |
| ColBERT total | FLOPs | Query encoder plus token-dot proxy, excluding candidate search and data movement |
| MaxSim share | Dot share of this proxy; query encoding is percent | |
| FLOP ratio | Matched cross-encoder/ColBERT proxy ratio; not a latency prediction | |
| Measured latency ratio | Reported end-to-end timing ratio for that comparison | |
| FLOPs versus latency caution | Not inferable as a causal factor | The earlier 79-fold assertion mixed an inconsistent FLOP numerator with measured timings |
| ColBERT latency | Reported depth-thousand reranking time | |
| Compute portion | Reported affected compute component in the timing illustration | |
| Data-movement portion | Reported gather/stack/transfer component; not a universal physical floor | |
| ColBERT bytes per passage | Per-passage fp16 token-vector payload | |
| DPR bytes per passage | Per-passage DPR-format payload | |
| Passage storage ratio | Changes both representation granularity and stated format | |
| ColBERT collection | At rounded ; token-vector payload only | |
| DPR collection | Same rounded corpus, width-768 fp32 payload | |
| End-to-end recall | at depth | Reported end-to-end ColBERT candidate recall, not a guarantee from token ANN |
| BM25 ceiling | at depth | Reported BM25 candidate recall; reranking that same set does not change it |
| End-to-end latency | ; | Reported end-to-end/rerank-only timing ratio; different serving paths |
| Local-evidence example | versus ; mean | Max gives a 9.5-times similarity ratio; mean gives times, not probability odds |
| Dimension footprint range | Matched rounded-corpus payloads: width-128 fp32 to width-24 fp16; source footprints round to 286/ | |
| Dimension quality range | MRR fraction | Absolute loss, one scaled point; the source configurations are not a controlled width-only proof |
| Dimension storage ratio | payload factor; relative score loss | The payload factor includes a precision change; reverse quality gain uses another denominator |
| Small-corpus heuristic | Roughly one million chunks | Source affordability heuristic; real budget depends on lengths, precision and all-in overhead |
| Full ColBERT ablation score | MRR fraction | Reported full fixed-recipe baseline |
| [CLS] ablation | ; loss absolute or relative | Pooled-token ablation, not a universal single-vector ceiling |
| Mean ablation | ; loss absolute or relative | The pure mean-dot formula factorizes and may save scorer storage/work |
| No-augmentation ablation | ; loss absolute or relative | Reported no-augmentation ablation under its recipe |
| BM25 ablation floor | MRR fraction | First-stage baseline reported in that ablation comparison |
| Full headroom | Absolute full-model headroom in MRR fraction units | |
| [CLS] headroom | Absolute remaining pooled-model headroom | |
| Headroom surrendered | Fraction of that headroom lost, distinct from relative full-model score loss | |
| Granularity ratio | Ratio of absolute drops with a common denominator, computed before rounding | |
| [CLS] total footprint | Hypothetical one width-128 fp16 vector per passage; retained token candidate index excluded | |
| [CLS] storage freed | Token payload minus that aggregate payload, paired descriptively with a 6.4-scaled-point loss | |
| [CLS] rate | per scaled MRR point | Descriptive payload/quality ratio, not a universal causal efficiency rate |
| Dimension rate | per scaled point | Fixed-fp16 width payload difference, times the preceding descriptive ratio |
| Eight-token no-mask encode | FLOPs | Exactly eight processed positions; eight words plus extra special tokens are different |
| Eight-token MaxSim | FLOPs | Depth-thousand token dots for eight processed query rows |
| No-mask total | FLOPs | One quarter of the matched thirty-two-row proxy, not a guaranteed latency ratio |
| Conditional Amdahl scenario | saved; new time | Conditional scenario: fixed 48-ms portion and a fourfold faster 13-ms portion |
| Wall-clock gain | latency saving | Conditional arithmetic; the 1.719198-percent MRR loss is a different metric |
| Added query vector | FLOPs per candidate; per thousand | Precomputed added query row only; producer cost, candidates and reductions excluded |
| Expansion cost share | Fraction of matched query-plus-dot FLOPs, not of full request latency | |
| ANCE result | MRR fraction | Reported ANCE with a different training recipe; footprint requires its actual format |
| [CLS] versus DPR footprint | Stated DPR format versus hypothetical width-128 fp16 pooled payload | |
| Senior storage budget | budget; width-24 payload | Payload alone does not establish all-in fit or acceptable quality |
| Token embeddings | Rounded passage count times sixty-eight stored vectors | |
| Original token embedding | Width-128 fp16 token payload | |
| Centroid count | Worked codebook count | |
| Centroid identifier | minimum packed bits; stored | Exact codebook address, not exact semantic identity |
| Two-bit residual | Two bits per residual coordinate, four code levels | |
| Compressed embedding | Token record excluding shared codebook and other metadata | |
| Compression ratio | Record-only payload factor; including codebook gives | |
| Codebook | ; of compressed token payload | Shared fp16 codebook, not a universal fraction of all-in memory |
| Compressed collection | token payload; with codebook | Other metadata and serving buffers excluded |
| Reported footprint band | Sixfold to tenfold | Reported ColBERTv2 footprint range; not guaranteed for every format |
| Centroid probes | probes per query row; probe operations | Probe operations need not target distinct or equally sized centroid lists |
| Average centroid list | token entries | Global mean assignment-list length, not the selected-list size |
| Stipulated candidate count | assumed unique passages; of corpus | Separate traffic-scenario input, not a maximum derived from the mean list size |
| PLAID ndocs | ; final | Final full scoring uses reconstructed vectors from retained candidates |
| Ordinary candidate traffic | Candidate compressed-record reads, conditional on U and lengths | |
| Centroid interaction traffic | Candidate identifier reads under that stipulated scenario | |
| Final exact traffic | Complete compressed survivor-record reread, not all final-stage traffic | |
| Scoped PLAID record traffic | ; ratio | Identifier plus survivor-record reads; codebook and other traffic excluded |
| Reported GPU speedup | Up to sevenfold | Reported GPU speedup in the source comparison, not implied by byte ratios |
| Reported CPU speedup | Up to forty-fivefold | Reported CPU speedup, not a universal factor |
| ColBERT quality | MRR fraction | Reported pre-v2 comparison point |
| ColBERTv2 quality | MRR fraction | Reported denoised-distillation recipe, not proof that compression caused the gain |
| MiniLM teacher | parameters | Reported MiniLM cross-encoder teacher |
| Distillation tuple | -way tuples | Reported distillation configuration; normalized score distributions and KL loss |
| One-bit embedding | Four-byte address plus sixteen-byte one-bit residual; two code levels per coordinate | |
| One-bit collection | payload; with codebook | Saves versus two-bit records, not necessarily lossless quality |
| -centroid scan | FLOPs; | Centroid-dot work relative to the query-encoder proxy |
| -centroid scan | FLOPs; | Centroid-dot work alone exceeds that query-encoder proxy |
| Hybrid quality story | scaled NDCG points | Deployment vignette aggregate gain does not preclude exact-string slice regressions |
| Cosine bounds | Unit-vector cosine bound; fixed finite-query positive-IDF BM25 is also bounded, but differently scaled | |
| Min-max depth shift | Same raw ; decrease normalized units or percent relative | |
| Min-max windows | and | Illustrative different normalization windows, not probability scales |
| RRF starting constant | Historical untuned starting point, not a universal optimum | |
| Two-list crossover | ties; wins | Two equal-rank votes versus a solo rank-one hit, at constant sixty |
| equal-rank crossover | ties; common wins | Equal-rank comparator only; unequal ranks one/one hundred also beat a solo top hit |
| Three-list crossover | ties; wins | All-three-list equal-rank agreement, not merely two lexical votes |
| Weight span | Within-list top/bottom vote ratio at depth one hundred and constant sixty | |
| span and crossover | ; two-list tie at | Equal-rank comparator, not a universal threshold for arbitrary rank pairs |
| Worked RRF | Ranks four/three for at | |
| Worked RRF | Ranks nine/seven for at | |
| Worked solo hit | are genuinely tied solo rank-one hits at | |
| Worked , | Ranks four/three for | |
| Worked , | Ranks nine/seven for | |
| Convex alpha values | and | Explicit raw windows/scores and missing-list zeros are needed; ranks alone do not determine these values |
| Fusion work | At most reciprocal contributions | Two depth-hundred lists; distinct-document count may be smaller, sorting is additional |
| Concurrent retrieval | before fusion | Conditional deterministic parallel paths, equal start and no contention; not a percentile identity |
| Serial retrieval | before fusion | Conditional serial arithmetic on the same two timings |
| Typical list windows | to results per list | Source starting heuristic; tune jointly with the constant and weights |
| Deeper-list example | results per list | Can change existing head scores and reverse winners, not merely grow a rerank pool |
| Labeled tuning point | A few hundred judged queries | Source tuning-budget heuristic; adequacy depends on slices, uncertainty and generalization |
| RRF score band | within the candidate union | Two lists, constant sixty, depth one hundred; outside-union scores are zero |
| RRF dynamic range | Ratio of those union-score bounds for that configuration, not a universal cross-query confidence scale | |
| Uncalibrated confidence threshold | is not a correctness probability | Such a threshold can be empirically validated for an operational task; the range alone neither justifies nor universally forbids it |
00-START-HERE · 01-READING-ROUTES · 20_dense_retrieval · 22_reranking