RAG Đa Phương Thức: Khám Phá Sức Mạnh AI Với Dữ Liệu Đa Dạng (Chữ, Ảnh, Bảng)
Lê Lân
0
Xây Dựng Ứng Dụng RAG Đa Phương Thức với Mô Hình Embedding Multimodal và LLM
Mở Đầu
Trong bối cảnh dữ liệu trực tuyến ngày càng phong phú với đa dạng định dạng như text, hình ảnh, âm thanh và video, các ứng dụng trí tuệ nhân tạo dựa trên mô hình ngôn ngữ lớn (LLM) truyền thống chủ yếu xử lý dữ liệu text. Tuy nhiên, với sự phát triển của các LLM đa phương thức như Gemini và GPT-4o, cùng với các mô hình embedding đa phương thức từ Voyage AI và Cohere, giờ đây chúng ta có thể khai thác tiềm năng toàn diện từ các loại dữ liệu phức hợp này.
Trong bài viết này, chúng ta sẽ cùng khám phá khái niệm multimodality trong AI, cách xử lý dữ liệu đa phương thức cho hệ thống truy xuất thông tin (RAG), so sánh các mô hình embedding đa phương thức tiêu biểu và hướng dẫn xây dựng một ứng dụng RAG đa phương thức sử dụng MongoDB Atlas Vector Search, mô hình embedding voyage-multimodal-3 của Voyage AI và LLM Gemini 2.0 Flash của Google.
1. Multimodality là gì?
1.1 Định nghĩa Multimodality trong AI
Multimodality đề cập đến khả năng của các mô hình học máy trong việc xử lý, hiểu và tạo ra dữ liệu từ nhiều loại phương thức khác nhau như văn bản, hình ảnh, âm thanh, video, v.v. Các mô hình embedding đa phương thức ánh xạ dạng dữ liệu khác nhau vào cùng không gian véc tơ đa chiều để có thể xử lý đồng nhất.
1.2 Các loại mô hình liên quan
Multimodal embedding models: Nhận input từ nhiều định dạng khác nhau (text, hình ảnh ...) và biến đổi thành embeddings trong cùng không gian vector.
Multimodal LLMs: Không chỉ nhận đa dạng dữ liệu đầu vào mà còn có thể tạo ra các loại dữ liệu đầu ra khác nhau (ví dụ: text mô tả hình ảnh).
Lưu ý quan trọng: Không phải mô hình nào cũng hỗ trợ tất cả các phương thức dữ liệu. Người dùng cần kiểm tra kỹ các thông số kỹ thuật của mô hình để lựa chọn phù hợp.
2. Thách thức của Multimodality trong RAG
2.1 Quy trình RAG truyền thống cho dữ liệu text
Tài liệu lớn được chia nhỏ thành các đoạn text nhỏ.
Mỗi đoạn được nhúng vào véc tơ nhờ mô hình embedding text.
Các đoạn và embedding được lưu trữ trong cơ sở dữ liệu véc tơ (vector database).
Với truy vấn người dùng, embedding của truy vấn được tạo và tìm các đoạn tương quan thông qua tìm kiếm véc tơ.
Kết quả và truy vấn được gửi vào LLM để tạo đáp án.
2.2 Giới hạn với tài liệu đa phương thức
Cách tiếp cận trên không thể áp dụng trực tiếp với dữ liệu đa phương thức chứa hình ảnh, bảng biểu, video... Việc tách từng yếu tố không phải text ra nhúng riêng biệt đòi hỏi pipeline phân tích phức tạp và sử dụng mô hình embedding chuyên biệt để duy trì ngữ cảnh liên quan giữa các phương thức.
3. So sánh mô hình embedding đa phương thức: CLIP và VLM
3.1 Mô hình CLIP
CLIP xử lý text và hình ảnh bằng hai mạng độc lập.
Yêu cầu tách riêng hình ảnh và text khỏi tài liệu, làm pipeline phức tạp.
Gây ra hiện tượng "modality gap": Các vector trong cùng phương thức có thể gần nhau hơn vector các phương thức khác có quan hệ.
3.2 Mô hình dựa trên Vision Language Models (VLMs)
Sử dụng một encoder duy nhất (transformer) đồng thời cho cả text và hình ảnh.
Tạo ra embeddings thống nhất, duy trì liên kết ngữ cảnh giữa các phương thức.
Giảm thiểu modality gap.
Hỗ trợ trực tiếp xử lý các tài liệu phức hợp như PDF, ảnh chụp, tài liệu có bảng biểu, hình ảnh chú thích...
Mô hình VLM giúp đơn giản hóa pipeline xử lý đa phương thức và tăng hiệu quả truy xuất thông tin đa dạng hơn so với mô hình CLIP truyền thống.
4. Xây dựng ứng dụng RAG đa phương thức với MongoDB, Voyage AI và Gemini
4.1 Kiến trúc tổng quan
Từ tài liệu PDF nhiều trang (có văn bản, hình ảnh, bảng biểu), chuyển từng trang thành ảnh chụp (screenshot).
Lưu ảnh thô vào Blob Storage (Google Cloud Storage).
Dùng mô hình embedding đa phương thức (voyage-multimodal-3) để tạo embedding cho ảnh và lưu metadata, embedding vào MongoDB.
Tìm kiếm véc tơ dựa trên embedding của truy vấn người dùng để tìm các ảnh trang liên quan.
Truy xuất ảnh từ Blob Storage và chuyển vào mô hình LLM đa phương thức Gemini 2.0 Flash để tạo câu trả lời.
Tạo tài khoản MongoDB Atlas và lấy connection string.
Lấy API key từ Voyage AI.
Lấy API key của Gemini qua Google AI Studio.
Thiết lập Application Default Credentials cho Google Cloud Storage.
Bước 3: Tải và đọc PDF
Dùng requests và PyMuPDF để tải PDF tài liệu (ví dụ: paper Deepseek-R1) và mở tài liệu dạng in-memory.
Bước 4: Chuyển từng trang PDF thành ảnh, lưu vào GCS và lưu thông tin metadata vào MongoDB
Sử dụng phương pháp get_pixmap của PyMuPDF.
Định dạng ảnh PNG, lưu thô lên Google Cloud Storage.
Lưu metadata (khóa ảnh, kích thước) và dữ liệu ảnh (cho bước nhúng embedding phía sau) vào danh sách tài liệu.
Bước 5: Tạo embedding hai mô hình và thêm vào tài liệu
Sử dụng API của Voyage AI để lấy embedding voyage-multimodal-3.
Sử dụng mô hình CLIP (clip-ViT-B-32) qua thư viện sentence-transformers.
Tạo embedding cho ảnh PNG của mỗi trang.
Loại bỏ dữ liệu ảnh nhúng thô để tránh lưu trữ lớn trong MongoDB.
Bước 6: Đưa tài liệu có embedding vào MongoDB
Kết nối tới MongoDB cluster.
Xóa dữ liệu cũ trong collection.
Thêm batch tài liệu đã nhúng embedding.
Ví dụ một tài liệu mẫu trong MongoDB:
Field
Mô tả
_id
Mã tài liệu tự tạo của MongoDB
gcs_key
Khóa tham chiếu tài nguyên ảnh trên GCS
width
,
height
Kích thước ảnh
voyage_embedding
Embedding véc tơ (1024 chiều) từ Voyage AI
clip_embedding
Embedding véc tơ (512 chiều) từ CLIP
Bước 7: Tạo index vector để tìm kiếm hiệu quả
Tạo index tên vector_index cho hai trường embedding, chọn độ tương đồng cosine.
Đảm bảo MongoDB có thể tìm kiếm nhanh trên các véc tơ embedding.
Bước 8: Thực hiện truy vấn vector và lấy kết quả
Nhúng truy vấn văn bản người dùng qua mô hình embedding tương ứng (voyage hoặc clip).
Thực hiện truy vấn tìm kiếm véc tơ trên MongoDB.
Lấy top 5 kết quả có độ tương đồng cao.
Lấy dữ liệu ảnh từ GCS dựa trên gcs_key trả về.
(Tùy chọn) Hiển thị kết quả ảnh.
Bước 9: Xây dựng ứng dụng RAG hoàn chỉnh sử dụng LLM Gemini
Sử dụng SDK Google GenAI để gọi LLM Gemini 2.0 Flash.
Kết hợp truy vấn người dùng, ảnh screenshot làm ngữ cảnh.
Tạo đầu ra trả lời dựa trên dữ liệu đa phương thức.
Bước 10: Đánh giá hiệu năng truy xuất và sinh câu trả lời
Tạo tập câu hỏi, đáp án và trang PDF liên quan từ tài liệu Deepseek.
Đánh giá chất lượng truy xuất với các tiêu chuẩn như:
Mean Reciprocal Rank (MRR)
Mean Recall tại K
Đánh giá chất lượng sinh bằng phương pháp "LLM-as-a-judge" sử dụng lại Gemini 2.0 Flash để so sánh độ khớp với đáp án chuẩn (thang điểm 1-5).
Mô hình
MRR Text
MRR Figure
Recall@5 Text
Recall@5 Figure
Điểm sinh câu trả lời
voyage-multimodal-3
Cao hơn
Cao hơn
Tốt hơn
Xuất sắc
Cao hơn
clip-ViT-B-32
Thấp hơn
Thấp hơn
Kém hơn
Thấp hơn
Thấp hơn
Với bộ dữ liệu phức hợp, mô hình VLM-based voyage-multimodal-3 thể hiện khả năng xử lý đồng thời cả text và hình ảnh tốt hơn, giúp tăng chất lượng truy xuất và sinh câu trả lời.
Kết Luận
Multimodality là bước phát triển quan trọng trong lĩnh vực AI, mở rộng khả năng của các ứng dụng từ xử lý đơn thuần văn bản sang cả các dạng dữ liệu phong phú khác như hình ảnh, âm thanh, video. Bài viết đã giới thiệu cơ bản về khái niệm multimodality, 2 kiến trúc embedding phổ biến CLIP và VLM để xử lý dữ liệu đa phương thức, cũng như quy trình xây dựng và đánh giá một ứng dụng Retrieval-Augmented Generation (RAG) thực tế xử lý tài liệu đa phương thức.