RAG là cách bắt mô hình trả lời dựa trên tài liệu của bạn thay vì dựa vào trí nhớ mơ hồ từ lúc huấn luyện. Kiến trúc cơ bản nghe đơn giản đến mức dễ coi thường — chỉ bốn bước — nhưng mỗi bước có một chỗ hỏng riêng, và phần lớn hệ thống RAG cho kết quả kém đều hỏng ở những chỗ rất cụ thể chứ không phải ở ý tưởng chung.
Bốn bước và cạm bẫy tương ứng
1. Cắt tài liệu. Cắt theo số ký tự cố định là sai lầm phổ biến nhất và tai hại nhất — nó xé câu làm đôi, tách một bảng khỏi tiêu đề của bảng, cắt một đoạn mã ở giữa. Kết quả là các mẩu vô nghĩa được đưa vào tìm kiếm. Nên cắt theo ranh giới ngữ nghĩa: đề mục, đoạn văn, mục danh sách. Và luôn đính kèm ngữ cảnh cha — ít nhất là tiêu đề tài liệu và chuỗi đề mục dẫn tới mẩu đó — để một mẩu tách ra vẫn tự nói được nó thuộc về đâu.
2. Nhúng thành vector. Các mô hình nhúng đa ngữ xử lý tiếng Việt không đồng đều nhau — cái tốt cho tiếng Anh chưa chắc tốt cho tiếng Việt. Nên đo thật trên chính dữ liệu của mình chứ đừng tin bảng xếp hạng chung, vốn thường đo trên tiếng Anh.
3. Tìm kiếm. Đây là khâu quyết định nhất, và cũng là nơi trực giác hay sai. Chỉ dùng tìm kiếm vector sẽ thua ở đúng những thứ quan trọng: tên riêng, mã lỗi, mã sản phẩm — những chuỗi mà ý nghĩa nằm ở việc khớp chính xác chứ không ở sự gần nghĩa. Kết hợp tìm kiếm từ khoá với tìm kiếm vector rồi hợp nhất thứ hạng gần như luôn tốt hơn một mình vector.
4. Sinh câu trả lời. Nghịch lý: nhồi quá nhiều đoạn vào lại làm câu trả lời tệ đi, vì mô hình bị loãng chú ý giữa những đoạn không liên quan. Cách tốt hơn là lấy về nhiều — chẳng hạn 20 đoạn — rồi dùng một mô hình xếp hạng lại để chọn ra 4 đoạn thật sự tốt nhất trước khi đưa vào sinh.
Cửa sổ ngữ cảnh dài có xoá sổ RAG không
Câu hỏi này được đặt ra mỗi khi cửa sổ ngữ cảnh lớn thêm, và câu trả lời là không, vì ba lý do thực dụng. Nhồi cả kho tài liệu vào mỗi câu hỏi thì tốn tiền theo từng lượt gọi — bạn trả cho toàn bộ kho ở mỗi câu hỏi dù chỉ cần một đoạn. Độ trễ tăng theo lượng ngữ cảnh, nên câu trả lời chậm dần. Và như đã biết, chất lượng chú ý vào thông tin nằm giữa một khối văn bản dài vẫn kém hơn khi thông tin đó được đưa vào một cách chọn lọc. Ngữ cảnh dài giúp RAG dễ thở hơn — bạn được phép đưa vào nhiều đoạn hơn mà không phải chắt lọc gắt gao — chứ không thay thế nó.
Đo cái gì
Hầu hết các đội chỉ đánh giá câu trả lời cuối cùng, và đó là lý do họ mắc kẹt khi nó sai mà không biết sửa ở đâu. Hãy tách bài toán làm hai chỉ số riêng: khâu tìm kiếm có lấy được đoạn chứa đáp án không, và khâu sinh có dùng đúng đoạn đó không. Gần như lần nào chỉ số đầu — khâu tìm kiếm — cũng hoá ra là chỗ tệ hơn. Biết mình hỏng ở khâu nào là điều kiện tối thiểu để sửa đúng chỗ, thay vì loay hoay chỉnh lời nhắc trong khi vấn đề thật nằm ở khâu cắt tài liệu.
Thảo luận