Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "HI.AI Members" các nội dung bạn quan tâm.

Bài 9. Truy xuất tài liệu liên quan

1. Đặt vấn đề

Truy xuất tài liệu là trái tim của RAG. Nếu truy xuất đúng, model có cơ hội trả lời đúng. Nếu truy xuất sai, model sẽ nhận nguồn sai và có thể trả lời sai. Trong bệnh viện, truy xuất sai có thể dẫn đến dùng nhầm quy trình, nhầm biểu mẫu, nhầm văn bản pháp luật hoặc nhầm phiên bản tài liệu.

Vì vậy, truy xuất không chỉ là “lấy top 5 vector gần nhất”. Cần thiết kế truy xuất theo ngữ nghĩa, từ khóa, metadata, quyền truy cập, hiệu lực tài liệu và mức độ phù hợp với câu hỏi.

2. Truy xuất bằng vector search

Vector search là bước cơ bản. Hệ thống:

  1. Tạo embedding cho câu hỏi.
  2. Đưa vector câu hỏi vào FAISS.
  3. FAISS trả về các chunk gần nhất.
  4. Hệ thống lấy metadata và nội dung chunk.

Vector search giúp tìm theo ý nghĩa, không chỉ từ khóa.

3. Top-k là gì?

Top-k là số lượng chunk lấy ra từ FAISS. Ví dụ top-5 là lấy 5 chunk gần nhất. Nếu k quá thấp, có thể bỏ sót tài liệu đúng. Nếu k quá cao, đưa nhiều tài liệu nhiễu vào prompt.

Có thể bắt đầu:

  • Top 5 cho câu hỏi đơn giản.
  • Top 10–20 trước reranker.
  • Chọn 3–5 chunk cuối để đưa vào prompt.

Cần test thực tế.

4. Lọc quyền truy cập

Sau khi FAISS trả kết quả, cần lọc theo quyền người dùng. Ví dụ, nếu người dùng thuộc khoa A, không được đưa chunk nội bộ khoa B vào prompt nếu không có quyền.

Nguyên tắc: không đưa tài liệu vượt quyền vào prompt.

5. Lọc tài liệu còn hiệu lực

Nếu có nhiều phiên bản, cần ưu tiên bản mới nhất. Có thể:

  • Chỉ lấy tài liệu status = active.
  • Loại tài liệu expired.
  • Ưu tiên version cao.
  • Nếu tài liệu cũ được dùng cho lịch sử, phải ghi rõ.

Trong bệnh viện, lọc hiệu lực là yêu cầu rất quan trọng.

6. Hybrid search

Vector search không đủ trong nhiều trường hợp. Ví dụ người dùng hỏi:

  • “BM.QLCL.03”
  • “Thông tư 35”
  • “Quyết định 6858”
  • “Phiếu báo cáo sự cố”
  • “C5.1”

Các truy vấn này cần keyword search. Vì vậy, nên kết hợp:

  • Vector search.
  • Keyword search.
  • Metadata search.
  • Exact match theo mã tài liệu/biểu mẫu.

Hybrid search giúp tăng độ chính xác.

7. Reranking

Reranker nhận danh sách chunk ứng viên và chấm lại mức độ liên quan. Nó hữu ích khi nhiều chunk gần giống nhau.

Quy trình:

  1. FAISS lấy top 20.
  2. Lọc quyền và hiệu lực.
  3. Reranker chấm điểm.
  4. Chọn top 3–5.
  5. Đưa vào prompt.

Reranker giúp cải thiện chất lượng nhưng làm chậm hệ thống. Cần dùng có chọn lọc.

8. Truy xuất theo intent

Không phải câu hỏi nào cũng giống nhau. API trung gian nên xác định intent:

  • Tìm biểu mẫu.
  • Hỏi quy trình.
  • Hỏi pháp luật.
  • Hỏi phác đồ.
  • Hỏi khái niệm.
  • Yêu cầu viết văn bản.
  • Yêu cầu tóm tắt tài liệu cụ thể.

Mỗi intent có cách truy xuất khác nhau. Ví dụ, tìm biểu mẫu cần ưu tiên metadata loại “biểu mẫu”; hỏi quy trình cần ưu tiên tài liệu loại “quy trình”.

9. Truy xuất nhiều bước

Một số câu hỏi phức tạp cần truy xuất nhiều bước. Ví dụ:

“Căn cứ vào tiêu chí chất lượng và quy trình báo cáo sự cố, hãy tạo bảng kiểm giám sát báo cáo sự cố tại khoa lâm sàng.”

Hệ thống cần tìm cả tiêu chí chất lượng và quy trình báo cáo sự cố, không chỉ một tài liệu.

10. Khi không có tài liệu phù hợp

Nếu điểm liên quan thấp hoặc không có tài liệu đủ phù hợp, chatbot phải nói không tìm thấy căn cứ. Không nên ép model trả lời.

Câu trả lời nên là:

“Hiện chưa tìm thấy tài liệu nội bộ phù hợp để trả lời chắc chắn. Anh/chị có thể cung cấp thêm tên quy trình, lĩnh vực hoặc tài liệu nguồn.”

11. Kết luận

Truy xuất tài liệu liên quan là bước quyết định chất lượng RAG. Trong bệnh viện, cần kết hợp vector search, keyword search, metadata filter, phân quyền, hiệu lực, intent và có thể reranking. Mục tiêu không phải lấy nhiều tài liệu nhất, mà là lấy đúng tài liệu nhất, đúng quyền, đúng phiên bản và đủ căn cứ để Ollama sinh câu trả lời an toàn.