Tầng 8 — Context assembly & chống hallucination
Retrieval xong không có nghĩa là xong. Đây là tầng mà điểm đau “agent bịa” thực sự nằm ở đó — không phải ở retrieval.
Tách hai loại lỗi — điều kiện tiên quyết
Phần tiêu đề “Tách hai loại lỗi — điều kiện tiên quyết”| Lỗi | Triệu chứng | Đo bằng | Sửa ở |
|---|---|---|---|
| Retrieval error | tài liệu đúng không có trong context | recall@k, nDCG@k | Tầng 0–6 |
| Generation error | tài liệu đúng CÓ trong context, câu trả lời vẫn sai | faithfulness, groundedness | Tầng 8 |
Đo được ở lab: lớp D (phủ định) đạt nDCG 0.888 — retrieval lấy đúng tài liệu.
Nhưng lớp D gồm các câu mà đáp án đúng là “không hỗ trợ” (Bitcoin, SDK Go, OTP qua
SMS). Model đọc d006 (“không hỗ trợ tiền mã hoá”) rồi vẫn trả lời “có” là lỗi
generation, và mọi nỗ lực tối ưu retrieval sẽ không chạm tới nó.
Gộp hai loại lỗi này là lý do phổ biến nhất khiến người ta tối ưu mãi mà hệ không lên. Phải có hai bộ metric riêng.
Ordering: lost-in-the-middle là thật
Phần tiêu đề “Ordering: lost-in-the-middle là thật”Model chú ý đầu và cuối context hơn phần giữa. Hệ quả thực tiễn: sau khi rerank, đừng đưa vào prompt theo thứ tự điểm giảm dần. Đặt tài liệu quan trọng nhất ở đầu và cuối, dồn phần ít quan trọng vào giữa.
Chống hallucination — bốn cơ chế, theo thứ tự hiệu quả
Phần tiêu đề “Chống hallucination — bốn cơ chế, theo thứ tự hiệu quả”- Bắt buộc trích dẫn. Yêu cầu mỗi khẳng định gắn với một chunk id. Vừa để người dùng kiểm tra, vừa tạo áp lực grounding lên model. Nếu model không trích được thì nó không có căn cứ.
- Cho phép từ chối (abstention). Prompt phải nói rõ: “nếu context không chứa câu trả lời, hãy nói không tìm thấy”. Không có đường thoát này thì model buộc phải bịa. Đây là chỗ nhiều hệ thất bại vì prompt chỉ nói “hãy trả lời dựa trên context”.
- Xử lý phủ định tường minh. Với các câu “có hỗ trợ X không”, nói rõ trong prompt rằng không tìm thấy X trong tài liệu là bằng chứng cho câu trả lời “không”, chứ không phải lý do để suy đoán.
- Verification pass. Một lượt gọi thứ hai: “mỗi khẳng định sau có được hỗ trợ bởi context không?” Đắt, nhưng là lưới an toàn cho nội dung có rủi ro cao.
Metrics cho tầng này
Phần tiêu đề “Metrics cho tầng này”| Metric | Đo gì | Cách đo |
|---|---|---|
| Faithfulness / groundedness | mọi khẳng định có căn cứ trong context? | LLM-as-judge trên từng khẳng định |
| Answer correctness | câu trả lời có đúng không? | so với đáp án tham chiếu |
| Context precision | bao nhiêu context được dùng thật? | LLM đánh dấu chunk có đóng góp |
| Abstention accuracy | có từ chối đúng lúc không? | cần các case không trả lời được trong golden set |
Cảnh báo về LLM-as-judge: nó thiên vị câu dài, thiên vị output của chính họ model, và không ổn định giữa các lần chạy. Cách giảm thiểu: rubric rõ ràng, chấm nhị phân thay vì thang điểm, chạy nhiều lần lấy đa số, và hiệu chuẩn với một tập nhỏ do người chấm tay. Không có bước hiệu chuẩn thì bạn đang tối ưu theo một thước đo chưa biết đúng sai.