Đánh giá chất lượng chatbot RAG: dùng thử Ragas, DeepEval và promptfoo
Sau bài hướng dẫn xây bộ eval của haibackend, mình thử luôn 3 công cụ mã nguồn mở phổ biến để đánh giá chatbot RAG tiếng Việt của team. Chia sẻ cảm nhận để ai đang chọn tham khảo. BỐI CẢNH THỬ NGHIỆM - Chatbot hỏi đáp quy chế nội bộ, khoảng 300 tài liệu. - Bộ test 120 câu hỏi có đáp án mẫu do phòng nhân sự viết. - Mục tiêu: biết chatbot sai ở bước tìm tài liệu hay ở bước viết câu trả lời. 1. RAGAS Công cụ chuyên cho RAG, có sẵn các chỉ số: - Faithfulness: câu trả lời có bám vào tài liệu tìm được không (phát hiện bịa). - Answer relevancy: câu trả lời có đúng trọng tâm câu hỏi không. - Context precision / context recall: bước tìm kiếm có lấy đúng và đủ tài liệu không. Ưu điểm: tách bạch được lỗi tìm kiếm và lỗi viết câu trả lời, đúng thứ mình cần. Nhược điểm: các chỉ số dùng LLM để chấm nên tốn token; prompt chấm mặc định bằng tiếng Anh, với tiếng Việt mình phải kiểm tra lại một phần bằng tay. Phù hợp: phân tích sâu pipeline RAG. 2. DEEPEVAL Viết test giống unit test trong Python (chạy được với pytest), có nhiều chỉ số dựng sẵn và cho phép tự định nghĩa tiêu chí chấm bằng lời. Ưu điểm: dev thấy rất quen tay, dễ đưa vào CI. Tiêu chí tự định nghĩa hữu ích cho các yêu cầu riêng như "phải ghi số điều khoản khi trích dẫn quy chế". Nhược điểm: nhiều tuỳ chọn, cần thời gian đọc tài liệu để dùng đúng. Phù hợp: team đã có văn hoá viết test. 3. PROMPTFOO Khai báo bộ test bằng file YAML: danh sách câu hỏi, các điều kiện kiểm tra (chứa từ khoá, đúng định dạng JSON, LLM chấm theo tiêu chí...), chạy và xem bảng so sánh. Ưu điểm: so sánh nhiều prompt hoặc nhiều model cạnh nhau rất trực quan; có chế độ red teaming. Nhược điểm: phân tích riêng chất lượng bước tìm kiếm không chuyên sâu bằng Ragas. Phù hợp: thử nghiệm prompt, chọn model, chạy kiểm tra nhanh trong CI. KẾT QUẢ THỰC TẾ CỦA TEAM MÌNH - Ragas cho thấy 70% câu trả lời sai đến từ bước tìm kiếm (context recall thấp), không phải do model. Sửa cách chia đoạn và thêm tìm kiếm từ khoá xong, tỉ lệ đúng tăng rõ. - Hiện team dùng promptfoo trong CI để chặn thay đổi prompt làm giảm chất lượng, còn Ragas chạy định kỳ mỗi tuần để phân tích sâu. LƯU Ý CHUNG - Công cụ nào dùng LLM chấm điểm thì cũng phải chấm tay một mẫu nhỏ để kiểm tra giám khảo trước khi tin con số. - Đặt cố định model chấm và phiên bản prompt chấm, đổi giám khảo là điểm số thay đổi theo. - Bộ câu hỏi test quan trọng hơn công cụ. Câu hỏi lấy từ người dùng thật luôn giá trị hơn câu tự nghĩ ra. Mọi người đang dùng công cụ nào để đánh giá RAG? Có ai đã chỉnh prompt chấm sang tiếng Việt chưa?