Bạn đã biết gì về kỹ thuật biến đổi truy vấn (Query Transformation) trong RAG?
Ở những bài viết trước, mình đã giới thiệu sơ lược về Retrieval Augmented Generation (RAG) - một phương pháp mạnh mẽ để giảm thiểu hiện tượng hallucination khi sử dụng các mô hình ngôn ngữ (LLM) trong việc truy xuất và cung cấp thông tin.
RAG không chỉ giúp mở rộng kiến thức cho các mô hình ngôn ngữ bằng cách sử dụng thông tin từ các nguồn bên ngoài có độ tin cậy cao như Wikipedia và các tài liệu chuyên ngành, mà còn tập trung vào việc tối ưu hóa quá trình truy xuất thông tin - yếu tố then chốt để đảm bảo độ chính xác và liên quan của nội dung được đưa vào mô hình.
Tuy nhiên, quá trình truy xuất thông tin không phải lúc nào cũng dễ dàng, chúng ta luôn gặp phải một số vấn đề như:
- Giới hạn về độ dài ngữ cảnh, chi phí và độ trễ khiến không thể đưa toàn bộ tài liệu vào mô hình.
- Hiện tượng "lost in the middle", tức là mô hình gặp khó khăn trong việc sử dụng thông tin nằm ở giữa của một đoạn văn dài.
Mối Quan Hệ Giữa Độ Chính Xác Của Mô Hình và Vị Trí của Thông Tin
Để cải thiện độ chính xác của RAG, mình sẽ giới thiệu một số kỹ thuật biến đổi truy vấn (query transformation) sau đây:
1. Rewrite-Retrieve-Read
Kỹ thuật này sử dụng LLM để viết lại truy vấn của người dùng, nhằm biến đổi các câu hỏi không tối ưu thành những truy vấn phù hợp hơn với việc tìm kiếm thông tin trong cơ sở dữ liệu. Điều này rất hữu ích khi người dùng chỉ nhập từ khóa đơn lẻ hoặc trình bày câu hỏi một cách không rõ ràng.
Tham khảo cách triển khai: Link
2. Multi Query Retrieval
Kỹ thuật này sử dụng phương pháp chia để trị (divide-and-conquer) để phân tích câu hỏi phức tạp thành các câu hỏi phụ đơn giản hơn. Hệ thống sẽ thu thập các câu trả lời từ các câu hỏi phụ và tổng hợp chúng thành một đáp án cuối cùng.
Ngoài ra, LLM cũng có thể tạo ra nhiều truy vấn tìm kiếm từ một câu hỏi đầu vào, cho phép thu thập thông tin từ nhiều góc độ khác nhau.
Tham khảo cách triển khai: Link
3. RAG-Fusion
Kỹ thuật RAG-Fusion xây dựng trên nền tảng của Multi Query Retrieval, bao gồm các bước như tạo truy vấn mới, tìm kiếm bằng vector, áp dụng thuật toán Reciprocal Rank Fusion để xếp hạng lại tài liệu và tạo ra kết quả cuối cùng dựa trên danh sách đã được xếp hạng.
Tham khảo cách triển khai: Link
4. HyDE (Hypothetical Document Embeddings)
HyDE là kỹ thuật sử dụng embedding để truy xuất tài liệu mà không cần dữ liệu huấn luyện thực tế. Nó bao gồm việc tạo ra một câu trả lời giả định từ LLM để phục vụ cho truy vấn, từ đó tạo ra embedding vector để tìm kiếm thông tin liên quan.
Tham khảo cách triển khai: Link
5. Multi-Step Query Transformation
Kỹ thuật này cho phép mô hình ngôn ngữ tự đặt ra và trả lời các câu hỏi bổ sung trước khi đi đến câu trả lời chính. Điều này giúp mô hình kết hợp các thông tin mà nó đã biết, từ đó cung cấp một trả lời chính xác hơn.
Tham khảo cách triển khai: Link
Kết Luận
Trong bài viết này, mình đã trình bày một số kỹ thuật biến đổi truy vấn (query transformation) nhằm nâng cao hiệu quả của Retrieval Augmented Generation. Hy vọng những thông tin này sẽ giúp ích cho các bạn trong quá trình ứng dụng RAG cho các bài toán thực tế. Hẹn gặp lại các bạn trong các bài viết tiếp theo!