1. Đặt vấn đề
Tài liệu bệnh viện không đứng yên. Quy trình được sửa đổi, biểu mẫu được cập nhật, văn bản pháp luật thay đổi, phác đồ được điều chỉnh, kế hoạch mới được ban hành, tài liệu cũ hết hiệu lực. Nếu chỉ mục RAG không cập nhật, chatbot sẽ trả lời theo tài liệu cũ. Đây là rủi ro nghiêm trọng.
Vì vậy, hệ thống RAG cần có cơ chế cập nhật chỉ mục khi tài liệu thay đổi. Đây là phần vận hành lâu dài, không phải việc làm một lần.
2. Những loại thay đổi tài liệu
Có nhiều loại:
- Thêm tài liệu mới.
- Sửa tài liệu hiện có.
- Thay thế phiên bản mới.
- Hủy tài liệu cũ.
- Đổi quyền truy cập.
- Đổi metadata.
- Đổi link file.
- Đổi trạng thái hiệu lực.
- Tách hoặc gộp tài liệu.
- Chỉnh lỗi nội dung.
Mỗi loại cần cách cập nhật khác nhau.
3. Quy trình cập nhật cơ bản
Khi tài liệu thay đổi:
- Nhận diện tài liệu thay đổi.
- Kiểm tra trạng thái phê duyệt.
- Trích xuất text mới.
- Làm sạch.
- Chia chunk lại.
- Tạo embedding cho chunk mới.
- Cập nhật FAISS.
- Cập nhật metadata.
- Đánh dấu chunk cũ hết hiệu lực hoặc xóa.
- Test truy xuất.
- Ghi log cập nhật.
4. Không đưa bản nháp vào chỉ mục chính thức
Trong quá trình soạn thảo, có nhiều bản nháp. Không nên đưa bản nháp vào RAG chính thức cho toàn viện. Có thể có môi trường thử nghiệm riêng nếu cần.
Chỉ tài liệu đã phê duyệt mới vào kho chính thức.
5. Cập nhật incremental
Không nhất thiết tạo lại toàn bộ index khi chỉ sửa một tài liệu. Có thể cập nhật incremental:
- Xóa vector chunk cũ của tài liệu.
- Thêm vector chunk mới.
- Cập nhật metadata.
Tuy nhiên, FAISS có một số giới hạn tùy loại index. Cần thiết kế từ đầu để hỗ trợ cập nhật.
6. Rebuild toàn bộ index
Trong một số trường hợp nên rebuild toàn bộ:
- Đổi embedding model.
- Đổi phương pháp chunking.
- Metadata schema thay đổi lớn.
- Dữ liệu cũ quá lộn xộn.
- FAISS index bị lệch metadata.
- Cần chuẩn hóa lại toàn bộ kho.
Rebuild toàn bộ cần thời gian và cần chạy ngoài giờ nếu hệ thống đang dùng.
7. Versioning index
Nên quản lý version:
- Index version.
- Ngày tạo.
- Embedding model.
- Số tài liệu.
- Số chunk.
- Pipeline version.
- Metadata schema.
- Người thực hiện.
Nếu index mới lỗi, có thể rollback index cũ.
8. Đồng bộ FAISS và metadata
Đây là điểm quan trọng. FAISS và metadata phải khớp. Nếu vector ID 100 trỏ nhầm metadata của chunk khác, chatbot sẽ hiển thị nguồn sai hoặc trả lời sai.
Cần kiểm tra đồng bộ sau mỗi lần cập nhật.
9. Cập nhật quyền truy cập
Nếu quyền tài liệu thay đổi, có thể không cần tạo embedding lại, nhưng metadata quyền phải cập nhật. Nếu tài liệu chuyển từ công khai sang hạn chế, hệ thống phải áp dụng ngay.
Quyền truy cập là dữ liệu sống, cần đồng bộ với hệ thống người dùng.
10. Cập nhật trạng thái hiệu lực
Khi tài liệu mới thay thế tài liệu cũ:
- Tài liệu mới: active.
- Tài liệu cũ: expired/replaced.
- Metadata ghi tài liệu thay thế.
- Retrieval chỉ dùng bản active cho câu hỏi hiện hành.
- Có thể giữ bản cũ cho truy vấn lịch sử nếu có quyền và có cảnh báo.
11. Kiểm thử sau cập nhật
Sau mỗi đợt cập nhật, cần test:
- Câu hỏi liên quan tài liệu mới.
- Câu hỏi từng trả về tài liệu cũ.
- Biểu mẫu mới có được tìm thấy không?
- Tài liệu hết hiệu lực có bị loại không?
- Quyền truy cập có đúng không?
- Nguồn hiển thị đúng không?
12. Lịch cập nhật
Có thể cập nhật theo:
- Realtime khi tài liệu được duyệt.
- Hằng ngày.
- Hằng tuần.
- Theo đợt ban hành tài liệu.
Với bệnh viện, tài liệu quan trọng nên cập nhật sớm sau khi ban hành. Nhưng cần đảm bảo chỉ tài liệu chính thức mới vào index.
13. Ghi log cập nhật
Cần ghi:
- Tài liệu nào cập nhật.
- Ai cập nhật.
- Thời gian.
- Thao tác.
- Số chunk cũ/xóa/thêm.
- Index version.
- Kết quả test.
- Lỗi nếu có.
Log giúp truy vết khi chatbot trả lời sai.
14. Kết luận
Cập nhật chỉ mục là phần vận hành sống còn của RAG. Tài liệu bệnh viện thay đổi liên tục, nên FAISS index và metadata phải được cập nhật theo. Cần quy trình thêm mới, sửa đổi, hết hiệu lực, phân quyền, versioning, kiểm thử và rollback. Một hệ thống RAG không được cập nhật sẽ nhanh chóng trở thành nguồn trả lời sai. Một hệ thống RAG được cập nhật tốt sẽ trở thành kho tri thức sống của bệnh viện.
- Đăng nhập để gửi ý kiến