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

5.12 Đo xem reranker có thực sự giúp không

Reranker là tầng dễ tưởng là có ích nhất, vì bạn nhìn vào top-5 sau khi rerank và thấy nó “trông hợp lý hơn”. Cảm giác đó không phải số đo. Mục này về cách đo tử tế.

Nền tảng metric đã có ở Phần 2 — Metrics; ở đây chỉ nói những gì riêng cho một tầng rerank.

Báo một số duy nhất (“nDCG@5 tăng lên 0,71”) là vô nghĩa vì không ai biết nó tăng từ đâu và trần ở đâu. Tối thiểu phải là bốn dòng:

DòngNghĩaVì sao bắt buộc
recall@k của stage 1trầnKhông có nó thì không biết reranker còn dư địa bao nhiêu (5.4)
nDCG@5 trước rerankmốcĐây là baseline thật, không phải một cấu hình yếu dựng lên cho đẹp
nDCG@5 sau rerankkết quả
latency p95 thêm vàogiá phải trảMột tăng +3% mà thêm 400 ms có thể là lỗ

luôn tách theo lớp truy vấn. Cẩm nang này chia 4 lớp (A lexical / B paraphrase / C multi-hop / D phủ định) vì một con số tổng che mất mọi thứ đáng biết:

LớpKỳ vọng hợp lý với một tầng rerank
A — lexical/exactGần như không tăng. BM25 đã đạt nDCG 0.971 (baseline đã đo). Reranker ở đây chỉ có thể làm hỏng
B — paraphraseChỗ dư địa lớn nhất. nDCG 0.456 là điểm đau thật
C — multi-hopTăng vừa, nhưng cần cả diversity, không chỉ relevance (5.11)
D — phủ định/abstentionCẩn thận: retrieval đã 0.888. Reranker giúp ở đây chủ yếu qua điểm thấp đều → tín hiệu abstention (5.3)

Dòng lớp A đáng nhìn hai lần. Trên các truy vấn mà lexical đã gần hoàn hảo, một reranker chung chung thường kéo xuống: nó ưu tiên đoạn “đọc thấy hợp” hơn đoạn chứa đúng mã lỗi E2003. Nếu bạn chỉ báo số tổng, mức sụt đó bị lớp B che đi.

Bẫy lớn nhất: đo trên thứ model đã học

Phần tiêu đề “Bẫy lớn nhất: đo trên thứ model đã học”

Gần như mọi reranker công khai được huấn luyện trên MS MARCO (5.5). Rất nhiều leaderboard cũng đo trên MS MARCO hoặc các tập của BEIR mà một số model đã thấy trong lúc huấn luyện.

Nghĩa là: điểm cao trên leaderboard không nói gì về dữ liệu của bạn. Nó nói rằng model làm tốt trên tin tức, Wikipedia và Q&A tiếng Anh. Corpus của bạn có thể là tài liệu hỗ trợ nội bộ tiếng Việt, đầy mã lỗi và tên gói sản phẩm.

→ Cách duy nhất đáng tin: golden set của chính bạn. 20–50 truy vấn thật lấy từ log, gán nhãn tay, chia lớp. Cẩm nang này dùng 24 truy vấn — nhỏ, và nó thừa nhận điều đó (Phần 2 — 6. Ý nghĩa thống kê).

Golden set nhỏ: cái gì đo được, cái gì không

Phần tiêu đề “Golden set nhỏ: cái gì đo được, cái gì không”

Với 24 truy vấn, một chênh lệch 2 điểm phần trăm ở nDCG không là tín hiệu. Cách xử lý đúng:

ViệcVới n = 24
So hai reranker khác nhau rõ rệt (Δ > 10%)Đọc được
So hai reranker gần nhau (Δ ≈ 2%)Không đọc được. Cần test thống kê và thường là cần thêm dữ liệu
Tìm truy vấn bị hỏng bởi rerankerRất đọc được — và đây là giá trị lớn nhất của golden set nhỏ
Kết luận “model X tốt hơn model Y nói chung”Không. Chỉ kết luận được trên corpus này

Dòng thứ ba là cách dùng golden set nhỏ đúng nhất: đừng dùng nó để xếp hạng model, dùng nó để tìm hồi quy. Truy vấn nào rerank xong tệ hơn trước? Đọc từng cái một. Ba truy vấn đọc kỹ dạy nhiều hơn một con số trung bình.

Offline (golden set)Online (người dùng thật)
Trả lời được“thứ tự có đúng hơn không”“người ta có dùng được hơn không”
Tốc độphútngày đến tuần
Chi phígần như 0rủi ro sản phẩm
Sai ở đâunhãn của bạn có thể sai/thiên lệchtín hiệu click bị position bias
Dùng đểsàng lọc, chặn hồi quy, chọn kquyết định cuối

Position bias là lý do đừng đọc click log một cách hồn nhiên: người dùng click vào kết quả số 1 nhiều hơn số 5 kể cả khi số 5 tốt hơn, chỉ vì nó ở trên. Một tầng rerank mới sẽ luôn “trông có vẻ tốt hơn” theo CTR ở vị trí đầu. Cách chuẩn để so hai bộ xếp hạng trên lưu lượng thật là interleaving — trộn kết quả của hai hệ vào một danh sách duy nhất rồi xem người dùng chọn của bên nào — vì nó triệt tiêu phần lớn thiên lệch vị trí.

1. Đo recall@k stage 1. → nếu thấp: dừng, sửa retrieval (5.4)
2. Đo nDCG@5 trước rerank. → mốc so sánh
3. Chạy 2–3 reranker ứng viên trên golden set, tách theo lớp.
4. Xem danh sách truy vấn BỊ TỆ HƠN. Đọc tay từng cái.
5. Đo p95 latency ở k thật, trên hạ tầng thật (không phải trên máy bạn).
6. Chốt (model, k, cách cắt) → ghim vào config kèm số đo (5.3).
7. Bật cho 5% lưu lượng, so bằng interleaving hoặc A/B.
8. Ghi lại phân phối điểm hôm bật. Đây là mốc để phát hiện trôi về sau (5.13).

Bước 8 hay bị bỏ, và nó là bước rẻ nhất trong danh sách.

Nên áp dụng vào AI Agent: metric cần đưa lên dashboard không phải “nDCG sau rerank” mà là khoảng cách giữa recall@knDCG@5. Khoảng cách đó co lại nghĩa là reranker đang làm việc; nó rộng ra nghĩa là bạn đang trả tiền cho một tầng vô ích.

Phần 5 — Reranker