LangChain: Blog
92

Thủ thuật

Hướng dẫn triển khai RAG đa phương thức với Multi-Vector Retriever của LangChain

(giờ Việt Nam)

Tóm tắt AI

LangChain giới thiệu Multi-Vector Retriever, cho phép tối ưu hóa RAG trên dữ liệu hỗn hợp gồm bảng biểu, văn bản và hình ảnh, giúp nhà phát triển xây dựng hệ thống truy xuất thông minh hơn.

Bản dịch AI

Multi-Vector Retriever for RAG on tables, text, and images

Tóm tắt

Khả năng trả lời câu hỏi liền mạch trên nhiều loại dữ liệu đa dạng (hình ảnh, văn bản, bảng biểu) là một trong những "chén thánh" của RAG. Chúng tôi ra mắt ba cuốn cẩm nang (cookbook) mới giới thiệu về multi-vector retriever dành cho RAG trên các tài liệu chứa hỗn hợp nhiều loại nội dung. Những cuốn cẩm nang này cũng trình bày một vài ý tưởng về việc kết hợp các mô hình multimodal LLM với multi-vector retriever để mở khóa khả năng RAG trên hình ảnh.

Bối cảnh

Các LLM có thể tiếp nhận thông tin mới theo ít nhất hai cách: (1) cập nhật trọng số (ví dụ: fine-tuning) và (2) RAG (retrieval augmented generation - tạo lập có tăng cường truy xuất), phương pháp truyền ngữ cảnh liên quan vào LLM thông qua prompt. RAG đặc biệt hứa hẹn trong việc truy xuất thông tin thực tế vì nó kết hợp khả năng suy luận của LLM với nội dung từ các nguồn dữ liệu bên ngoài, điều này đặc biệt mạnh mẽ đối với dữ liệu doanh nghiệp.

Các cách cải thiện RAG

Một số kỹ thuật để cải thiện RAG đã được phát triển:

Ý tưởng

Ví dụ

Nguồn

RAG cơ bản

Truy xuất Top K trên các đoạn tài liệu đã được nhúng (embedded), trả về các đoạn tài liệu cho cửa sổ ngữ cảnh của LLM

LangChain vectorstores, các mô hình embedding

Embedding tóm tắt

Truy xuất Top K trên các bản tóm tắt tài liệu đã được nhúng, nhưng trả về toàn bộ tài liệu cho cửa sổ ngữ cảnh của LLM

LangChain Multi Vector Retriever

Chia cửa sổ (Windowing)

Truy xuất Top K trên các đoạn hoặc câu đã được nhúng, nhưng trả về cửa sổ mở rộng hoặc toàn bộ tài liệu

LangChain Parent Document Retriever

Lọc theo metadata

Truy xuất Top K với các đoạn được lọc theo metadata

Self-query retriever

Fine-tune các embedding cho RAG

Fine-tune mô hình embedding trên dữ liệu của bạn

Hướng dẫn fine-tuning của LangChain

RAG 2 giai đoạn

Giai đoạn đầu tìm kiếm từ khóa, theo sau là giai đoạn hai truy xuất Top K theo ngữ nghĩa

Cohere re-rank

Áp dụng RAG cho các loại dữ liệu đa dạng

Tuy nhiên, RAG trên các tài liệu chứa dữ liệu bán cấu trúc (các bảng có cấu trúc cùng văn bản phi cấu trúc) và đa phương thức (hình ảnh) vẫn là một thách thức. Với sự xuất hiện của nhiều mô hình đa phương thức (multimodal), giờ đây chúng ta cần xem xét các chiến lược thống nhất để kích hoạt RAG trên các phương thức và dữ liệu bán cấu trúc khác nhau.

Multi-Vector Retriever

Quay lại tháng 8, chúng tôi đã phát hành multi-vector retriever. Nó sử dụng một ý tưởng đơn giản nhưng mạnh mẽ cho RAG: tách biệt các tài liệu mà chúng ta muốn sử dụng để tổng hợp câu trả lời khỏi tài liệu tham chiếu mà chúng ta muốn sử dụng cho việc truy xuất. Ví dụ đơn giản, chúng ta có thể tạo một bản tóm tắt của một tài liệu dài dòng được tối ưu hóa cho tìm kiếm tương đồng dựa trên vector, nhưng vẫn truyền toàn bộ tài liệu vào LLM để đảm bảo không mất ngữ cảnh trong quá trình tổng hợp câu trả lời. Tại đây, chúng tôi cho thấy cách tiếp cận này hữu ích vượt xa văn bản thuần túy và có thể áp dụng chung cho cả bảng biểu hoặc hình ảnh để hỗ trợ RAG.

Tải tài liệu (Document Loading)

Tất nhiên, để kích hoạt cách tiếp cận này, trước tiên chúng ta cần khả năng phân tách một tài liệu thành các loại thành phần khác nhau. Unstructured là một công cụ ELT tuyệt vời rất phù hợp cho việc này vì nó có thể trích xuất các phần tử (bảng, hình ảnh, văn bản) từ nhiều loại tệp tin.

Ví dụ, Unstructured sẽ phân tách các tệp PDF bằng cách trước tiên loại bỏ tất cả các khối hình ảnh được nhúng. Sau đó, nó sẽ sử dụng một mô hình bố cục (YOLOX) để lấy các khung bao (cho bảng biểu) cũng như các tiêu đề, vốn là các tiểu mục tiềm năng của tài liệu (ví dụ: Giới thiệu, v.v.). Sau đó, nó sẽ thực hiện xử lý hậu kỳ để tổng hợp văn bản nằm dưới mỗi tiêu đề và thực hiện chia nhỏ thêm thành các khối văn bản để xử lý hạ nguồn dựa trên các cờ (flag) cụ thể của người dùng (ví dụ: kích thước khối tối thiểu, v.v.).

Dữ liệu bán cấu trúc

Sự kết hợp giữa phân tích tệp Unstructured và multi-vector retriever có thể hỗ trợ RAG trên dữ liệu bán cấu trúc, vốn là một thách thức đối với các chiến lược chia nhỏ (chunking) ngây thơ có thể làm vỡ các bảng. Chúng tôi tạo ra các bản tóm tắt của các phần tử bảng, điều này phù hợp hơn với việc truy xuất ngôn ngữ tự nhiên. Nếu một bản tóm tắt bảng được truy xuất thông qua sự tương đồng về ngữ nghĩa với câu hỏi của người dùng, bảng gốc sẽ được truyền đến LLM để tổng hợp câu trả lời như đã mô tả ở trên. Xem cuốn cẩm nang và sơ đồ dưới đây:

Dữ liệu đa phương thức (Multi-Modal Data)

LangChainRAGĐa phương thứcTruy xuất dữ liệuAI kỹ thuật
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LangChain: Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.