Tôi đã thêm một lớp xác thực vào RAG cục bộ của mình để phát hiện ảo giác
Tôi xây dựng một trợ lý nghiên cứu cục bộ bằng Ollama. Nó chạy trên các bài báo của chính tôi. Không có dữ liệu nào rời khỏi máy tính của tôi.
Tôi muốn ngăn chặn tình trạng ảo giác. Một công cụ trích dẫn sai con số nhưng lại tỏ ra chắc chắn là điều rất nguy hiểm.
Tôi đã thêm một lớp xác thực. Nó hoạt động qua ba bước:
- Chia câu trả lời thành các khẳng định nhỏ.
- Sử dụng một LLM để kiểm tra từng khẳng định so với nguồn.
- Đánh dấu các khẳng định mà nguồn không hỗ trợ.
Kết quả đã dạy cho tôi một bài học đắt giá. Tôi đã sai về chính dữ liệu của mình tới hai lần.
Đầu tiên, mô hình đưa ra một con số có thật nhưng lại sử dụng sai ngữ cảnh. Nó trích dẫn chỉ số AUROC là 0,804 cho một tập kiểm tra (test set) không hề tồn tại. Con số đó là thật. Ngữ cảnh là giả. Bộ xác thực của tôi đã cho qua vì các chữ số khớp nhau.
Thứ hai, mô hình lấy một con số từ phần khác của bài báo. Nó gán giá trị đó cho sai thí nghiệm.
Dưới đây là những gì tôi học được từ việc thử nghiệm điều này:
Việc xác thực chỉ bắt được các giá trị vắng mặt. Nếu một con số hoàn toàn không có trong văn bản, bộ xác thực sẽ phát hiện ra. Nếu con số đó là thật nhưng lại gắn với sai sự thật, nó thường sẽ thất bại.
Các "trọng tài" cùng một mô hình sẽ có điểm mù. Nếu cùng một mô hình vừa viết câu trả lời vừa đánh giá câu trả lời đó, nó sẽ tự phê duyệt các lỗi sai của chính mình. Sử dụng một mô hình khác để đánh giá sẽ giúp phát hiện các con số bị gán sai.
Một cảnh báo (flag) không phải lúc nào cũng có nghĩa là nói dối. Một cảnh báo có thể mang ba ý nghĩa:
- Một sự ảo giác thực sự.
- Một lỗi truy xuất (retrieval error) khi không tìm thấy nguồn.
- Một sự thật đúng đắn nhưng không nằm trong văn bản được truy xuất. Khi bạn thấy một cảnh báo, hãy thử truy xuất lại dữ liệu thay vì chỉ đơn giản là xóa bỏ khẳng định đó.
- Bạn cần có ground truth. Bạn không thể đo lường sự ảo giác nếu không biết câu trả lời thực sự. Tôi đã suýt công bố hai phát hiện sai lầm về chính công trình của mình. Một thao tác tìm kiếm đơn giản trong các tệp tin của tôi đã khắc phục được cả hai lỗi.
Lời khuyên thực tế cho hệ thống RAG của bạn:
- Sử dụng một mô hình khác để đánh giá thay vì mô hình đã đưa ra câu trả lời.
- Tập trung vào việc cải thiện khả năng truy xuất. Hầu hết các "ảo giác" thực chất chỉ là lỗi truy xuất.
- Hãy coi các cảnh báo là một gợi ý để tìm hiểu sâu hơn, chứ không chỉ là dấu hiệu của lỗi.
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi