- Truy xuất lai (hybrid retrieval), còn gọi là truy xuất hợp nhất (fusion retrieval) hoặc truy xuất đa kênh, là phương pháp sử dụng đồng thời nhiều cách truy xuất thông tin khác nhau, sau đó gộp kết quả lại để đạt được kết quả truy xuất cuối cùng. Điều này giúp tận dụng ưu điểm và bù đắp nhược điểm của từng phương pháp, từ đó nâng cao độ chính xác và hiệu quả truy xuất.
- Quy trình truy xuất lai gồm các bước: tạo truy vấn (có thể đơn giản hoặc phức tạp), thực hiện tìm kiếm song song trên nhiều nguồn dữ liệu/chiều khác nhau, loại bỏ các kết quả trùng lặp và xếp hạng lại kết quả theo độ liên quan.
- Để xây dựng hệ thống truy xuất lai, bài viết sử dụng framework ứng dụng LLM LlamaIndex, mô hình ngôn ngữ lớn mã nguồn mở mới nhất Llama3 của Meta và công cụ tìm kiếm mã nguồn mở ElasticSearch. Tích hợp Llama3 vào LlamaIndex bằng lớp OpenAILike. Tích hợp ElasticSearch để lưu trữ vector của tài liệu và hỗ trợ tìm kiếm.
- Bên cạnh mô hình ngôn ngữ, truy xuất RAG còn cần mô hình Embedding để vector hóa và mô hình Rerank để sắp xếp lại kết quả truy xuất. Các mô hình này được triển khai cục bộ bằng công cụ TEI.
- Có 2 phương pháp truy xuất chính được sử dụng: tìm kiếm toàn văn (full-text search) dựa trên từ khóa và tìm kiếm vector (vector search) dựa trên độ tương đồng. ElasticSearch hỗ trợ cả 2 phương pháp này. Tìm kiếm vector gồm 2 chiến lược Dense và Sparse tùy theo mật độ của vector.
- Để thực hiện truy xuất lai, sử dụng phương thức của lớp ElasticSearch trong LlamaIndex với tham số hybrid=True. Tuy nhiên do phiên bản miễn phí của ElasticSearch không hỗ trợ sẵn tính năng này, cần tự cài đặt thuật toán sắp xếp RRF (Reciprocal Rank Fusion).
- Xây dựng lớp FusionRetriever kế thừa từ lớp BaseRetriever, nhận đầu vào là danh sách các truy vấn con. Gọi đồng thời các truy vấn này, sau đó dùng hàm fuse_results để gộp kết quả lại theo điểm RRF. Cuối cùng dùng mô hình Rerank để sắp xếp lại các kết quả theo độ liên quan.
- Kết quả truy xuất lai cho thấy điểm số RRF khá thấp, không phản ánh tốt độ liên quan thực tế. Vì vậy cần dùng thêm mô hình Rerank để đánh giá lại các kết quả. Sau khi sắp xếp lại bằng Rerank, điểm số đã cao hơn và phù hợp hơn.
📌 Bài viết đã hướng dẫn rất chi tiết các bước xây dựng một hệ thống truy xuất lai hiệu quả cho ứng dụng RAG, bao gồm: tích hợp các thành phần như mô hình ngôn ngữ lớn Llama3, công cụ tìm kiếm ElasticSearch, framework LlamaIndex; sử dụng đồng thời nhiều phương pháp truy xuất khác nhau như tìm kiếm toàn văn và tìm kiếm vector; tự cài đặt thuật toán sắp xếp và gộp kết quả RRF; sử dụng mô hình Rerank để sắp xếp lại kết quả cuối cùng theo độ liên quan. Nhờ đó có thể cải thiện đáng kể độ chính xác và hiệu năng của hệ thống truy xuất thông tin, đáp ứng tốt hơn nhu cầu của các ứng dụng AI tạo sinh.
https://generativeai.pub/advanced-rag-retrieval-strategies-hybrid-retrieval-997d39659720