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

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ỗiTriệu chứngĐo bằngSửa ở
Retrieval errortài liệu đúng không có trong contextrecall@k, nDCG@kTầng 0–6
Generation errortài liệu đúng CÓ trong context, câu trả lời vẫn saifaithfulness, groundednessTầ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.

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ả”
  1. 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ứ.
  2. 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”.
  3. 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.
  4. 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.
MetricĐo gìCách đo
Faithfulness / groundednessmọi khẳng định có căn cứ trong context?LLM-as-judge trên từng khẳng định
Answer correctnesscâu trả lời có đúng không?so với đáp án tham chiếu
Context precisionbao nhiêu context được dùng thật?LLM đánh dấu chunk có đóng góp
Abstention accuracycó 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.

Phần 4 — Lý thuyết