← Back to modules

Retrievers & Re-ranking — Advanced

ColBERT/SPLADE internals, DPR/RocketQA training, hard-negative denoising, cross-encoder distillation, RRF tuning, LLM rerankers, lost-in-the-middle, and IR metrics.

Hard50 questions

Sample questions

1

On the retrieval cost/accuracy spectrum, how do bi-encoder, ColBERT, and cross-encoder compare per query-document pair?

  • All three cost the same; only accuracy differs
  • Bi-encoder: dot product; ColBERT: MaxSim; cross-encoder: full forward pass
  • Cross-encoder is cheapest; bi-encoder is most expensive
  • ColBERT runs a forward pass per pair, like a cross-encoder

Why

A bi-encoder compares two pooled vectors (one dot product), ColBERT does token-level MaxSim over precomputed vectors (moderate), and a cross-encoder runs a joint forward pass per pair (most expensive, most accurate). The other options invert or flatten this ordering.

2

ColBERTv2 makes late interaction storage-efficient. What is its main compression idea?

  • Storing token vectors as residuals to nearby cluster centroids
  • Pooling all token vectors into a single mean vector
  • Dropping every token vector except the first
  • Converting the vectors into BM25 term weights

Why

ColBERTv2 clusters token embeddings and stores each as a centroid id plus a quantized residual, drastically shrinking the multi-vector index while keeping late-interaction quality. It doesn't mean-pool (that would lose late interaction), keep only one token, or become BM25.

3

SPLADE derives sparse term weights from a transformer. Where do the per-term scores come from?

  • From the document's raw term counts, like BM25
  • From cosine similarity between two dense vectors
  • From the masked-language-model output logits over the vocabulary
  • From the document's creation timestamp

Why

SPLADE reuses the MLM head: it aggregates the model's vocabulary logits (with a log-saturation and ReLU) into a sparse weight per term, including expansion terms. It is not raw counts, dense cosine, or timestamps.

4

SPLADE adds a FLOPS (sparsity) regularizer during training. Why is it necessary?

  • To increase the embedding dimensionality over time
  • To force the model to output dense vectors
  • To translate expansion terms into other languages
  • To keep postings lists sparse for fast lookup

Why

Without a sparsity penalty the learned term weights would be dense, defeating the inverted-index efficiency SPLADE aims for; the FLOPS regularizer pushes most weights to zero. It doesn't change dimensionality, force density, or translate terms.

5

RocketQA improved dense retrieval training with 'cross-batch negatives'. What does that mean?

  • Reusing negatives across GPUs to enlarge the pool
  • Removing all negatives to speed up training
  • Using only the single hardest negative per query
  • Sampling negatives from a different language corpus

Why

Cross-batch negatives gather in-batch negatives from all GPUs (and steps), giving each query far more negatives than a single device's batch — a stronger contrastive signal. It's not negative removal, single-negative, or cross-lingual sampling.

Free account

Take the full module

These are the first few of 50 questions. A free account opens the rest as a scored drill.

  • Every question in this module
  • Instant feedback and supporting reading
  • Your score and progress, saved

Free · your email is used for progress only.