Lesson 57 — Intermediate

Reranking

Top-10 chunks mein se 4 sabse best chahiye — toh 10 bhejne se behtar hai pehle 50 candidates nikaal kar unme se 4 chunna. Is lesson mein hum two-stage retrieve-wide-then-rerank pattern, cross-encoder ka kaam, latency ka hisaab, aur kab rerank worth it nahi hai dekhenge.

⏱ 20 min• Intermediate• Baseline RAG from Scratch

Reranking kya hai

Kya hai?

Reranking: retrieval ke baad candidates ko doosre (zyada precise) model se dobara rank karna. Pehli stage recall ke liye wide, doosri stage precision ke liye — "retrieve many, rerank, send the best".

Kab kaam aata hai?

Top-k mein se 4-5 hi context bhejna ho par quality chahiye, ya first-stage ranking thodi noisy ho. Context budget tight ho tab bhi — k badhane se behtar hai chun ke bhejna.

Kahan milta hai?

Dedicated reranking APIs mein, cross-encoder libraries mein, aur RAG frameworks ke node postprocessors mein. Tumhare pipeline mein retrieve aur generate ke beech.

Funda: pehla retriever fast hai par andaza lagata hai (alag-alag embeddings). Reranker dheere hai par query aur document ko ek saath padhta hai — isliye rishta zyada sahi pakadta hai. Recall wide rakho, precision reranker ko de do.

Two stages, do alag kaam: Stage 1 (dense/BM25) ka kaam hai koi bhi relevant candidate chhutne na do — recall. Stage 2 (rerank) ka kaam hai unme se best chunna — precision. Ek hi model se dono nahi hote.

Cross-encoder aur reranking models

import os, numpy as np
from sentence_transformers import CrossEncoder   # example library

reranker = CrossEncoder(os.environ["RERANK_MODEL"])

def rerank(query, cands, top=4):
    pairs = [(query, c["text"]) for c in cands]
    scores = reranker.predict(pairs)          # har candidate pe model chalta hai
    order = np.argsort(-scores)[:top]
    return [cands[i] for i in order]

# usage: cands = hybrid_search(query, k=50); top = rerank(query, cands, 4)
Candidates kam rakho: Reranker har pair pe compute karta hai — 500 candidates = 500 model calls, latency bomb. Ek fixed budget (jaise 20-100) rakho aur usi pe tune karo.

Relevance gained, latency added

import time

def timed(fn, *a, **kw):
    t0 = time.perf_counter()
    out = fn(*a, **kw)
    return out, time.perf_counter() - t0

top, t_search = timed(hybrid_search, query, k=50)
best, t_rr    = timed(rerank, query, top, 4)
print("search", round(t_search, 3), "s | rerank", round(t_rr, 3), "s")
# har stage ka apna budget rakho: retrieval vs rerank alag-alag dikhega
Measure, assume nahi: Rerank "quality badhata hai" ek assumption hai — apne set pe prove karo. Kabhi kabhi first-stage itna achha hai ki rerank ka fark statistically dikh hi nahi, aur latency sabko dikhti hai.

Jab reranking kuch khaas nahi karta

Decision rule: Rerank tab add karo jab (a) first-stage candidates mein sahi chunk aata hai par order noisy hai, aur (b) latency budget hai. Baaki cases pe pehle retrieval sudharo — rerank se weak recall theek nahi hota.

Exercise

Question: Wide retrieve karke best chunks chunne wale two-stage pattern ko kya kehte hain?

Question: Bi-encoder aur cross-encoder mein query aur document kab saath mein padhe jaate hain?

Question: Reranking ka sabse bada trade-off kya add karta hai?

Question: Reranker ke candidates kahan se aate hain — LLM se ya pehle retriever se?

Common mistakes

Desi example: Chef ki final tasting

Kitchen ne 50 dishes bana di (retrieval wide); head chef har ek taste karke 4 final plate ke liye chunta hai (rerank). Chef ka kaam hai precision — par agar saman hi nahi tha toh chef bhi kuch nahi kar sakta:

text
50 candidates (retrieval, tez, wide recall)
   -> chef taste (cross-encoder, dheere, precise)
   -> 4 final plates (context) -> table (LLM)

budget: chef 500 plates taste nahi kar sakta - fixed rakho
Interview angle — yahan se sawaal aate hain
  • Q: Bi-encoder vs cross-encoder? — Bi: alag-alag encode, precompute, fast. Cross: saath mein padhta hai, accurate, per-query compute.
  • Q: Two-stage retrieval kyun? — Wide recall tez retriever se, precision slow accurate reranker se; dono apne strength pe.
  • Q: Rerank ki cost kaise control karte ho? — Candidates fixed budget mein, per-stage latency measure, live product pe sensitive.
  • Q: Kab rerank skip karo? — Chhota/homogeneous corpus, weak first-stage, exact-ID heavy queries, ya zero latency budget.
Lesson complete?

Reranking clear — ab context ko bina k badhaye behtar bana sakte ho. Agla lesson — Query Transformation & RAG-Fusion — mein dekhenge user ke sawaal ko retrieval-friendly kaise banate hain.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course