Cách thiết lập bài kiểm tra

Tác giả đã xây dựng một hệ thống tạo phản hồi tăng cường truy xuất (RAG) nhỏ dựa trên hai tài liệu quy tắc thanh toán và thực hiện hai bước kiểm tra:

  • Kiểm tra độ phủ (Recall test) – liệu trang chính xác có xuất hiện trong top 5 kết quả đầu tiên không? Kết quả: 60%.
  • Kiểm tra câu trả lời (Answer test) – liệu câu trả lời cuối cùng do bộ tạo (generator) đưa ra có chính xác không? Kết quả: 90%.

Khoảng cách 40% có vẻ là điều không tưởng. Nếu bộ truy xuất (retriever) bỏ lỡ trang đúng 4 trên 10 lần, làm thế nào mà mô hình vẫn có thể trả lời đúng 9 trên 10 lần?

Những nỗ lực đầu tiên nhằm "sửa lỗi" bộ truy xuất

Nhà phát triển đã thử hai mẹo phổ biến:

  • Tìm kiếm hỗn hợp (Hybrid search) – kết hợp các tín hiệu lexical và vector. Độ phủ (Recall) vẫn không đổi.
  • Bộ xếp hạng lại (Reranker) – sắp xếp lại thứ tự của 5 trang đã truy xuất được. Độ phủ tăng lên 70% nhưng vẫn tụt hậu xa so với độ chính xác của câu trả lời là 90%.

Cả hai công cụ này chỉ sắp xếp lại những gì đã được truy xuất; chúng không thể "biến ra" một trang chưa từng xuất hiện trong tập ứng viên (candidate set). Vấn đề nằm ở chỗ khác.

Lỗi nằm ở chỉ số đo lường, không phải ở mô hình

Thay vì đánh giá sự thành công dựa trên nhãn trang, tác giả đã kiểm tra các sự thật (facts) thực tế trong các đoạn văn bản (chunks) được truy xuất. Trong 3 trên 4 trường hợp "bỏ lỡ", sự thật chính xác vẫn hiện diện, nhưng nó nằm ở một trang khác với trang mà kịch bản kiểm tra mong đợi. Việc đánh giá đã trừng phạt bộ truy xuất vì đã tìm thấy câu trả lời đúng trên một trang không được dự tính trước.

Khi chuyển đổi chỉ số sang câu hỏi "liệu có bất kỳ đoạn văn bản được truy xuất nào chứa sự thật cần thiết không?", độ phủ đã nhảy vọt lên 90%, khớp với độ chính xác của câu trả lời. Bộ truy xuất đã hoạt động tốt; chỉ có khung đánh giá là không hiệu quả.

Tại sao độ phủ (recall) truyền thống có thể gây hiểu lầm

  • Gán nhãn ở cấp độ trang tạo ra những thất bại ảo. Một sự thật duy nhất có thể xuất hiện trên nhiều trang. Việc chỉ gắn thẻ một trang là ground truth (sự thật chuẩn) sẽ coi tất cả các kết quả đúng khác là lỗi.
  • Tập dữ liệu nhỏ làm khuếch đại hiệu ứng này. Với ít tài liệu, một trang bị gán nhãn sai có thể làm thay đổi đáng kể độ phủ trong khi độ chính xác của câu trả lời vẫn ổn định.
  • Nhiễu embedding che lấp các sự thật. Vector tính điểm cho toàn bộ trang; các văn bản pháp lý hoặc kỹ thuật xung quanh làm loãng tín hiệu liên quan của câu mục tiêu, đẩy trang đó xuống thấp hơn trong bảng xếp hạng mặc dù sự thật vẫn hiện diện.

Những bài học thực tế cho những người làm RAG

  • Phân biệt giữa lỗi xếp hạng và lỗi truy xuất. Reranker chỉ khắc phục được lỗi xếp hạng; nếu đoạn văn bản đúng không bao giờ nằm trong tập ứng viên, việc sắp xếp lại sẽ không có tác dụng gì.
  • Gán nhãn dữ liệu kiểm tra ở cấp độ sự thật. Hãy liên kết mỗi truy vấn với thông tin cụ thể mà nó cần, thay vì chỉ liên kết với một mã định danh tài liệu duy nhất.
  • Đừng tin tưởng vào các bộ tiêu chuẩn (benchmarks) quy mô lớn khi áp dụng cho các tập dữ liệu nhỏ. Các tập dữ liệu nhỏ, chuyên biệt theo lĩnh vực có đặc tính hoạt động khác biệt, và các điểm số recall chung chung có thể gây đánh lạc hướng.
  • Chú ý đến độ chi tiết (granularity) của embedding. Một đoạn văn bản (chunk) kích thước bằng một trang chứa rất nhiều từ, và các văn bản pháp lý xung quanh có thể làm giảm thứ hạng của sự thật mà bạn đang quan tâm.

Điểm mấu chốt: một điểm số độ chính xác câu trả lời cao có thể tồn tại song song với một con số recall truyền thống thấp khi việc đánh giá không đồng nhất với nhiệm vụ. Việc sửa đổi chỉ số đo lường, chứ không phải mô hình, sẽ giúp tiết kiệm thời gian, giảm các cảnh báo giả và mang lại các triển khai RAG đáng tin cậy hơn.