Bỏ qua để đến nội dung
Search & RAG

Tầng 3 — Reranking: món có ROI cao nhất

Đây là bản tóm tắt một trang. Bản đầy đủ — cơ chế, ba họ model, bản đồ model 2026, toán latency và chi phí, cách đo, các chế độ hỏng — là Phần 5 — Reranker (15 mục).

Bi-encoder phải nén toàn bộ tài liệu vào một vector trước khi biết câu hỏi là gì. Cross-encoder đọc (query, doc) cùng lúc, mọi token của query attend được vào mọi token của doc. Nó có thể trả lời “đoạn này có trả lời chính xác câu này không” thay vì “đoạn này có cùng chủ đề không”.

Stage 1 (bi-encoder + ANN): 1M docs → top-100. ~5–20 ms
Stage 2 (cross-encoder): 100 docs → top-5. 100 forward pass

Nếu cross-encoder mất 3 ms/cặp → 300 ms nếu tuần tự, ~30 ms nếu batch trên GPU. Đó là cái giá, và thường là đáng.

Trần không thể vượt: recall@k của stage 1

Phần tiêu đề “Trần không thể vượt: recall@k của stage 1”

Reranker không thể xếp lại thứ nó chưa được lấy về. Nếu recall@100 của stage 1 là 0.7 thì nDCG cuối cùng bị chặn trên bởi 0.7, dù reranker hoàn hảo.

Thứ tự chẩn đoán bắt buộc: đo recall@k của stage 1 trước. Nếu thấp thì tiền phải đổ vào retrieval (tokenizer, hybrid, chunking), không phải vào reranker. Đây là lỗi phân bổ nguồn lực phổ biến nhất trong các hệ RAG.

LoạiCách hoạt độngChi phíGhi chú
Cross-encoder1 forward pass cho mỗi (q,d), xuất 1 điểmthấp nhất trong bamặc định nên dùng
Late interaction (ColBERT)lưu vector cho từng token, điểm = Σ max cosineindex phồng 10–100×rất mạnh, đắt bộ nhớ
LLM rerankerhỏi LLM “đoạn nào liên quan nhất”đắt nhất, chậm nhấtlinh hoạt nhất; dùng được logprob của token “yes” làm điểm

LLM reranker có ba biến thể: pointwise (chấm từng doc — song song hoá được), pairwise (so từng cặp — chính xác hơn, O(n²)), listwise (đưa cả danh sách, yêu cầu xuất thứ tự — hiệu quả token tốt nhất, nhưng bị lost-in-the-middle).

Nên áp dụng vào AI Agent: một model rẻ như claude-haiku-4-5 ($1/$5 per MTok) đã đủ rẻ để làm pointwise reranker. Nhưng hãy đo nó cạnh một cross-encoder chuyên dụng — thường cross-encoder thắng cả về chất lượng lẫn latency lẫn giá.

Top-5 nói cùng một điều là lãng phí context window. Maximal Marginal Relevance:

MMR=argmaxd[λsim(q,d)(1λ)maxdSsim(d,d)]\mathrm{MMR} = \arg\max_{d} \left[\, \lambda \cdot \mathrm{sim}(q,d) - (1-\lambda) \cdot \max_{d' \in S} \mathrm{sim}(d,d') \,\right]

với S là tập tài liệu đã chọn. Quan trọng với multi-hop (lớp C) — ở đó bạn cần các tài liệu khác nhau, không phải 5 phiên bản của cùng một tài liệu.

Phần 4 — Lý thuyết