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

1.9 "Tốt" nghĩa là gì

Không có bước này thì mọi cải tiến chỉ là cảm giác. Bốn thước đo, giải thích bằng ẩn dụ lưới đánh cá: bạn kéo lưới lên, trong hồ có một số con cá bạn cần.

Thước đoCâu hỏi nó trả lờiẨn dụ
recall@kTrong k kết quả, có đủ thứ cần không?Bao nhiêu phần cá cần đã vào lưới?
precision@kTrong k kết quả, bao nhiêu phần là hữu ích?Trong lưới, bao nhiêu phần là cá, bao nhiêu là rác?
MRRKết quả đúng đầu tiên ở vị trí nào?Con cá đầu tiên nằm ở đâu trong lưới?
nDCG@kThứ tự tốt đến đâu, có tính mức độ liên quan?Cá to có nằm trên cá nhỏ không?

Tính thật. Giả sử có 2 tài liệu liên quan: d2 rất liên quan (điểm 2), d1 liên quan vừa (điểm 1). Hệ trả về: [d1, d3, d2, d5, d4].

recall@5 = lấy được 2/2 tài liệu liên quan = 1.000
precision@5 = 2 hữu ích trong 5 kết quả = 0.400
MRR = kết quả liên quan đầu tiên ở vị trí 1 = 1.000
nDCG@5: gain = 2^điểm − 1 -> d1 điểm 1 -> gain 1, d2 điểm 2 -> gain 3
DCG = 1/log2(2) + 0 + 3/log2(4) + 0 + 0 = 1 + 1.5 = 2.5000
IDCG = thứ tự lý tưởng (d2 trước d1): 3/log2(2) + 1/log2(3) = 3 + 0.6309 = 3.6309
nDCG = 2.5 / 3.6309 = 0.6885

Hãy dừng ở kết quả này một chút, vì nó là bài học quan trọng nhất của mục 1.9:

recall@5 = 1.000 nhưng nDCG@5 = 0.689. Cùng một danh sách kết quả. Recall nói “lấy được hết rồi, hoàn hảo”. nDCG nói “nhưng anh xếp sai thứ tự”. Tài liệu quan trọng nhất (d2) bị đặt ở vị trí 3, dưới một tài liệu vô ích (d3).

Vì sao khác nhau: recall mù thứ tự, nó chỉ hỏi có/không. nDCG chia cho log2(vị trí+1) nên vị trí càng sau càng bị chiết khấu. Với RAG thì thứ tự rất quan trọng, vì bạn chỉ nhét được 5 chunk vào prompt, không phải 50.

→ Đó là lý do nDCG là thước chính trong tài liệu này, và vì sao chỉ nhìn recall là cách tự lừa mình phổ biến nhất.

Phần 1 — Nhập môn