Trong thế giới của Mô Hình Ngôn Ngữ Lớn, việc tối ưu hóa khả năng tiếp cận thông tin là một thách thức quan trọng. Rewrite-Retrieve-Read ra đời như một giải pháp mang tính đột phá, thay thế phương pháp truyền thống Retrieve-Then-Read, giúp cải thiện hiệu suất truy xuất thông tin của LLM.
Hạn Chế Của Retrieve-Then-Read
Phương pháp dùng NLP truyền thống (còn gọi là Retrieve-Then-Read) dựa vào việc tìm kiếm và cung cấp thông tin từ các kho dữ liệu bên ngoài trước khi LLM xử lý và đưa ra kết quả. Tuy nhiên, phương pháp này gặp một số vấn đề:
- Khoảng cách giữa truy vấn và tri thức cần thiết: Truy vấn gốc từ người dùng có thể không rõ ràng hoặc không đủ chi tiết, dẫn đến kết quả tìm kiếm không chính xác.
- LLM "hộp đen": Trong nhiều trường hợp, chúng ta chỉ có thể truy cập LLM qua API mà không thể điều chỉnh mô hình bên trong, gây khó khăn trong việc tối ưu hóa truy xuất.
- Thông tin lỗi thời hoặc không chính xác: Dữ liệu mà LLM sử dụng có thể đã lỗi thời, trong khi nhu cầu truy xuất thông tin mới liên tục thay đổi.
Ví dụ, 1 câu query như sau: "What 2000 movie does the song "All Star" appear in?" có thể không cho ra kết quả truy vấn nào phù hợp.
Trong khi đó, nếu biến đổi câu query thành "2000 movie "All Star" song" sẽ trả về kết quả truy vấn chính xác hơn.
Rewrite-Retrieve-Read - Giải Pháp Linh Hoạt
Rewrite-Retrieve-Read giải quyết các vấn đề trên bằng cách thêm một bước trung gian – viết lại truy vấn (Rewrite) – giúp tối ưu hóa quá trình tìm kiếm trước khi truy xuất và đọc dữ liệu (Hình 1):
- Bước 1: Rewrite – LLM hoặc một mô hình nhỏ hơn sẽ điều chỉnh truy vấn đầu vào để phù hợp hơn với nhu cầu tìm kiếm thực tế.
- Bước 2: Retrieve – Truy vấn đã tối ưu sẽ được sử dụng để tìm kiếm thông tin qua công cụ tìm kiếm web như Bing hoặc một hệ thống truy xuất dữ liệu chuyên biệt.
- Bước 3: Read – LLM đọc dữ liệu đã tìm kiếm, kết hợp với truy vấn ban đầu để đưa ra kết quả chính xác hơn.
Hình 1. Nhóm nghiên cứu đề xuất 3 bước giải quyết bài toán gồm Rewrite, Retrieve và Read
Cụ thể hơn, nhóm nghiên cứu đã đề xuất hai phương án để cải thiện quá trình viết lại truy vấn (Xem hình 2). Phương án đầu tiên (b) sử dụng một LLM thuần túy, trong đó mô hình LLM được yêu cầu tự động viết lại truy vấn đầu vào thông qua cơ chế nhắc (prompting). Cách tiếp cận này tận dụng khả năng suy luận mạnh mẽ của LLM để tinh chỉnh truy vấn, tuy nhiên, nó phụ thuộc nhiều vào chất lượng của lời nhắc và không có cơ chế tối ưu hóa truy vấn một cách có hệ thống. Phương án thứ hai (c) sử dụng mô hình T5 như một mô hình sequence-to-sequence, trong đó truy vấn ban đầu được biến đổi thành một phiên bản tối ưu hơn thông qua quá trình huấn luyện có giám sát và học tăng cường. Mô hình này được tinh chỉnh để học cách viết lại truy vấn sao cho phù hợp nhất với quá trình truy xuất thông tin, giúp cải thiện độ chính xác và hiệu suất tìm kiếm so với cách tiếp cận chỉ dựa vào LLM thuần túy.
Hình 2: 2 phương pháp đề xuất của nhóm tác giả
Một mô hình nhỏ hơn (ví dụ: T5-large) được huấn luyện để viết lại truy vấn dựa trên phản hồi từ LLM. Quá trình này bao gồm:
- Huấn luyện ban đầu (warm-up): Sử dụng dữ liệu truy vấn được tạo từ LLM để huấn luyện mô hình viết lại.
- Học tăng cường (reinforcement learning - RL): Điều chỉnh mô hình viết lại dựa trên phản hồi thực tế từ LLM để tối ưu hóa truy xuất.
Nghiên cứu đã thử nghiệm Rewrite-Retrieve-Read trên các bài toán hỏi đáp mở (open-domain QA) và trắc nghiệm nhiều lựa chọn (multiple-choice QA), sử dụng các bộ dữ liệu như HotpotQA, AmbigNQ, PopQA, MMLU. Kết quả cho thấy:
- Cải thiện đáng kể độ chính xác: Việc viết lại truy vấn giúp tăng tỷ lệ tìm kiếm trúng thông tin quan trọng (hit ratio) và cải thiện điểm số chính xác (EM, F1).
- Hiệu suất tốt hơn trên các câu hỏi phức tạp: Đặc biệt hiệu quả với câu hỏi yêu cầu nhiều bước suy luận hoặc cần thông tin cụ thể hơn.
- Giảm phụ thuộc vào mô hình LLM lớn: Một mô hình nhỏ có thể đảm nhận việc viết lại truy vấn, giảm tải cho LLM chính mà vẫn đạt hiệu quả cao.
Hạn Chế Của Phương Pháp Rewrite-Retrieve-Read:
Nếu hệ thống quá phụ thuộc vào bước viết lại truy vấn, một truy vấn được viết lại không tốt có thể gây ảnh hưởng lớn đến chất lượng thông tin được tìm kiếm. Giả sử người dùng hỏi "Cách chữa bệnh đau nửa đầu hiệu quả nhất hiện nay là gì?", nếu mô hình viết lại truy vấn chỉ giữ lại từ khóa "cách chữa đau nửa đầu", nó có thể không lấy được những bài viết mới nhất cập nhật về các phương pháp tiên tiến hoặc những nghiên cứu khoa học mới nhất.
Không phải lúc nào mô hình viết lại truy vấn cũng tạo ra truy vấn chính xác nhất. Trong một số trường hợp, nó có thể làm mất đi ý nghĩa quan trọng hoặc gây hiểu nhầm trong quá trình tìm kiếm. Ví dụ: Nếu người dùng đặt câu hỏi "Ai là tác giả của cuốn sách 'Sapiens' và 'Homo Deus'?", một mô hình viết lại truy vấn có thể tách câu này thành hai truy vấn riêng biệt "Tác giả của 'Sapiens' là ai?" và "Tác giả của 'Homo Deus' là ai?". Trong trường hợp này, mô hình có thể bỏ qua sự liên kết giữa hai cuốn sách, mặc dù chúng đều do Yuval Noah Harari viết.
Tham khảo:
- Xinbei Ma, Yeyun Gong, Pengcheng He, Hai Zhao, and Nan Duan. 2023. Query Rewriting in Retrieval-Augmented Large Language Models. In Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, pages 5303–5315, Singapore. Association for Computational Linguistics.
- https://fanpu.io/summaries/2024-09-22-query-rewriting-for-retrieval-augmented-large-language-models/
- rewrite_retrieve_read | 🦜️🔗 LangChain