0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Kỹ Thuật Tăng Cường Truy Vấn (RAG) Nâng Cao

Đăng vào 2 tuần trước

• 7 phút đọc

Giới thiệu

Kỹ thuật Tăng cường Truy vấn (Retrieval-Augmented Generation - RAG) đã trở thành nền tảng cho việc xây dựng các ứng dụng AI mạnh mẽ, kết hợp giữa các mô hình ngôn ngữ và kiến thức thực tế. Mặc dù phương pháp RAG cơ bản hoạt động tốt, nhưng nó vẫn có những hạn chế. Đây là lý do mà các kỹ thuật RAG nâng cao ra đời, cải thiện hiệu suất, độ chính xác và tính khả dụng ở mỗi bước từ lập chỉ mục đến truy vấn và sinh nội dung.

Tại sao cần vượt qua RAG cơ bản?

Phương pháp RAG cơ bản chia tài liệu thành các khối nhỏ, nhúng các khối đó và sau đó truy vấn các khối gần nhất với yêu cầu. Mặc dù đơn giản và hiệu quả cho các tập dữ liệu nhỏ, phương pháp này gặp khó khăn khi:

  • Số lượng tài liệu hoặc khối tăng lớn, gây ra độ trễ và tắc nghẽn hiệu suất.
  • Tài liệu lớn và phức tạp, khiến việc truy vấn khối liên quan trở nên khó khăn.
  • Tất cả các khối được xử lý như nhau, bỏ qua cấu trúc hoặc phân cấp nội dung tài liệu.

RAG nâng cao điều chỉnh và tối ưu hóa nhiều bước trong quy trình, từ tiền xử lý đến truy vấn và sinh nội dung, nhằm giải quyết những vấn đề này.

Cấu trúc Dữ liệu Trước khi Truy vấn

Để tăng tốc và cải thiện tìm kiếm, các bước trước khi truy vấn tập trung vào lập chỉ mục và truy vấn tốt hơn:

Gán Siêu Dữ liệu

Gán siêu dữ liệu ngắn gọn và có ý nghĩa cho các khối (ví dụ: tác giả, ngày, loại tài liệu) giúp lọc tinh vi và nâng cao độ liên quan.

Lập Chỉ mục Phân cấp

Thay vì xử lý các khối một cách phẳng, chúng ta tận dụng cấu trúc tài liệu. Bắt đầu bằng cách nhúng các tóm tắt ở các đoạn cao cấp như chương, sau đó đi sâu vào các phần và đoạn cụ thể. Các yêu cầu sẽ khớp với các tóm tắt trước, sau đó mới xuống các khối chi tiết.

Tóm tắt & Map-Reduce

Đối với các tài liệu rất lớn hoặc dày đặc, bạn có thể tạo tóm tắt cho các khối và kết hợp chúng từng bước. Điều này làm giảm tiếng ồn và giúp vượt qua giới hạn token trong quá trình nhúng và sinh nội dung.

Bằng cách tôn trọng các phân cấp tài liệu, RAG nâng cao nắm bắt tốt hơn ngữ cảnh và cải thiện độ chính xác, nhưng cần cẩn thận với chi phí lập chỉ mục và độ trễ tăng thêm.

Tìm kiếm Tương tự với Câu hỏi Giả thuyết và HyDE

Hai mẹo tiên tiến tiếp theo giúp cải thiện việc truy vấn:

Câu hỏi Giả thuyết

Tạo ra các câu hỏi giả tạo cho mỗi khối để nắm bắt các yêu cầu của người dùng. Những câu hỏi này được nhúng thay vì khối thực tế, cải thiện sự khớp nối giữa các yêu cầu và các khối tài liệu.

Nhúng Tài liệu Giả thuyết (HyDE)

Đối với một câu hỏi của người dùng, tạo ra nhiều câu trả lời giả thuyết và nhúng chúng. Sau đó, tìm các khối gần gũi về mặt ngữ nghĩa với những câu trả lời đã tạo, tăng cường khả năng nhớ, đặc biệt trong các lĩnh vực chuyên biệt.

HyDE, đặc biệt có thể bù đắp cho sự không khớp của miền, nơi mà các mô hình nhúng có thể không tổng quát chính xác.

Tăng cường Ngữ cảnh

Các khối nhỏ hơn cải thiện độ chính xác của tìm kiếm nhưng có nguy cơ mất đi ngữ cảnh quan trọng cho việc sinh nội dung. Các kỹ thuật để cân bằng điều này bao gồm:

Truy vấn Cửa sổ Câu

Nhúng và tìm kiếm các câu riêng lẻ, sau đó mở rộng các câu đã chọn với hàng xóm, khôi phục ngữ cảnh hữu ích cho mô hình ngôn ngữ.

Truy vấn Tài liệu Cha mẹ

Truy vấn các khối liên quan nhưng cũng cung cấp ngữ cảnh của toàn bộ tài liệu cha mẹ nếu nhiều khối đến từ cùng một nguồn.

Các phương pháp này làm phong phú thêm đầu vào, giúp LLM sinh ra các câu trả lời mạch lạc và sâu sắc hơn.

Biến đổi Yêu cầu

Một số yêu cầu quá phức tạp hoặc dài dòng. Các hệ thống nâng cao:

  • Chia nhỏ các yêu cầu phức tạp thành các yêu cầu con nhỏ hơn.
  • Sử dụng nhắc lại để tổng quát hóa các yêu cầu quá cụ thể.
  • Áp dụng viết lại và mở rộng yêu cầu để thêm các thuật ngữ và làm rõ ý định của người dùng.
  • Sử dụng LLM để tạo ra nhiều biến thể yêu cầu cho việc khớp tốt hơn.

Biến đổi yêu cầu thông minh làm tinh chỉnh kết quả và tăng cường khả năng nhớ tài liệu liên quan.

Tìm kiếm Lai

Tìm kiếm vector xuất sắc trong việc nắm bắt ý nghĩa ngữ nghĩa nhưng gặp khó khăn với các khớp chính xác cho các thuật ngữ quan trọng như tên thương hiệu hoặc thuật ngữ chuyên ngành.

Tìm kiếm lai kết hợp:

  • Các thuật toán tìm kiếm từ khóa thưa như BM25
  • Các nhúng vector dày đặc từ các mô hình transformer

Cả hai điểm số được trọng số để tối ưu hóa độ liên quan, đạt được sự cân bằng giữa độ chính xác và độ bao phủ.

Định tuyến Yêu cầu

Các hệ thống phức tạp có thể cần:

  • Tìm kiếm nhiều nguồn dữ liệu (CSDL vector, SQL, kho lưu trữ độc quyền)
  • Xử lý các phương thức hỗn hợp như hình ảnh, văn bản, âm thanh

Định tuyến yêu cầu sử dụng một bộ định tuyến, có thể dựa trên quy tắc hoặc được hỗ trợ bởi LLM, để hướng dẫn các yêu cầu đến một hoặc nhiều backend truy vấn phù hợp. Điều này giúp tránh lãng phí tính toán và tăng tốc thời gian phản hồi.

Sau khi Truy vấn: Tái xếp hạng và Nén Ngữ cảnh

Sau khi truy vấn các khối hàng đầu, việc đơn giản cho tất cả vào một LLM không phải là lý tưởng:

Tái xếp hạng

Sử dụng các mô hình thứ cấp để sắp xếp lại các khối theo độ liên quan, giảm thiểu hiện tượng ảo tưởng. Các kỹ thuật bao gồm cross-encoders, multi-vector rerankers và thậm chí là các LLM đã được tinh chỉnh.

Nén Ngữ cảnh

Lọc thông tin dư thừa hoặc có giá trị thấp trước khi sinh, tiết kiệm việc sử dụng token và cải thiện chất lượng đầu ra.

Tối ưu hóa Phản hồi và Tích hợp Bộ nhớ

Việc sinh ra các câu trả lời tuyệt vời thường cần đến lý luận nhiều bước và nhận thức về bộ nhớ:

  • Tinh chỉnh lặp đi lặp lại sử dụng nhiều cuộc gọi LLM qua các khối để cải thiện câu trả lời.
  • Tóm tắt phân cấp kết hợp các tóm tắt cấp khối thành một câu trả lời cuối mạch lạc.
  • Nhúng và nén lịch sử trò chuyện giúp duy trì ngữ cảnh trong các cuộc trò chuyện dài nhiều lượt.

Truy vấn Thích ứng và Đệ quy

Các yêu cầu thực tế không phải lúc nào cũng đơn giản. Các phương pháp RAG nâng cao có thể:

  • Sử dụng truy vấn lặp lại để liên tục tinh chỉnh kết quả dựa trên các câu trả lời đã sinh ra.
  • Áp dụng truy vấn đệ quy kết hợp với nhắc nhở chuỗi tư duy để chia nhỏ các yêu cầu thành các bước con, cải thiện độ chính xác.
  • Cho phép các hệ thống thích ứng nơi mà LLM quyết định khi nào và cái gì cần truy vấn một cách động.

Kết luận: Tổng hợp Tất cả

Các kỹ thuật RAG nâng cao tổng hợp quy trình RAG cơ bản thành một hệ thống tinh vi, hiệu suất cao có khả năng:

  • Xử lý các tập hợp dữ liệu lớn, phức tạp và phân cấp
  • Cải thiện độ liên quan và khả năng nhớ của việc truy vấn với các nhúng và xử lý yêu cầu thông minh hơn
  • Cung cấp ngữ cảnh phong phú cho các LLM tiên tiến để sinh ra các câu trả lời chính xác và có cơ sở
  • Mở rộng hiệu quả trên nhiều trường hợp sử dụng và miền khác nhau

Bằng cách đầu tư vào những cải tiến này, lập chỉ mục phân cấp, các câu hỏi giả thuyết, tìm kiếm lai, tái xếp hạng, định tuyến yêu cầu và nhiều hơn nữa, các lập trình viên có thể mở khóa toàn bộ tiềm năng của RAG để xây dựng các trợ lý AI mạnh mẽ, cơ sở tri thức và công cụ tìm kiếm.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào