TỔNG QUAN
Mục tiêu
- Phát triển hệ thống RAG có khả năng xử lý dữ liệu đa phương thức (văn bản và hình ảnh).
- Tích hợp các mô hình tiên tiến để trích xuất đặc trưng và kết hợp thông tin từ các nguồn dữ liệu khác nhau [2], [3], [4], [5].
- Đánh giá hiệu suất hệ thống thông qua các chỉ số như Precision@k, Recall@k, MRR và độ trung thực ngữ nghĩa.
Retrieval-Augmented Generation (RAG) và Multimodal RAG
– Retrieval-Augmented Generation (RAG) là kiến trúc kết hợp giữa tìm kiếm thông tin (retrieval) và mô hình sinh (generation), trong đó hệ thống trước tiên truy xuất các tài liệu liên quan từ một kho dữ liệu và sau đó sử dụng mô hình ngôn ngữ lớn (LLM) để sinh câu trả lời dựa trên các tài liệu đó [11]. Kiến trúc này khắc phục điểm yếu của LLM trong việc ghi nhớ kiến thức chính xác và cập nhật.

• Sơ đồ trên mô tả quy trình cơ bản của một hệ thống RAG. Ở phía bên trái là phần xử lý dữ liệu đầu vào: dữ liệu văn bản được chia thành các đoạn nhỏ (chunks), sau đó được chuyển thành vector nhúng thông qua mô hình GPT4AllEmbeddings. Các vector này được lập chỉ mục bằng FAISS để hỗ trợ truy vấn hiệu quả.
• Ở phía bên phải, khi người dùng nhập một câu hỏi dạng văn bản, hệ thống sẽ dùng các vector này để truy xuất những đoạn văn bản liên quan nhất. Các đoạn này được kết hợp vào prompt đầu vào và gửi đến mô hình ngôn ngữ Vinallama 2.7B [5], từ đó sinh ra câu trả lời cuối cùng.
– Multimodal RAG mở rộng kiến trúc RAG bằng cách tích hợp thêm các loại dữ liệu không phải văn bản, như hình ảnh hoặc âm thanh. Điều này cho phép hệ thống xử lý các truy vấn phức tạp có chứa hình ảnh và trả lời bằng cách kết hợp thông tin từ cả hình ảnh và văn bản. Mô hình này thường sử dụng các bộ mã hóa hình ảnh (như CLIP [3], BLIP [2]) và kết hợp embedding để thực hiện truy xuất cũng như sinh phản hồi giàu ngữ nghĩa.
Tập dữ liệu (WIT Dataset)
– Tập dữ liệu: Wikipedia-based Image Text (WIT)
WIT (Wikipedia-based Image Text) là một tập dữ liệu đa phương thức và đa ngôn ngữ quy mô lớn, được xây dựng từ Wikipedia và Wikimedia Commons. Tập dữ 3 liệu gồm hơn 37,6 triệu cặp ảnh-văn bản với 11,5 triệu ảnh duy nhất, được trích xuất từ hơn 108 ngôn ngữ khác nhau trên Wikipedia.
– Đặc điểm nổi bật:
+ Tập dữ liệu đa ngôn ngữ đầu tiên với hơn 100 ngôn ngữ, trong đó có 53 ngôn ngữ có hơn 100.000 cặp ảnh-văn bản.
+ Bao gồm các loại văn bản: ref. text, alt text, attribution, và văn bản ngữ cảnh từ bài viết.
+ Cung cấp metadata ngữ cảnh ở cấp độ trang, ví dụ như tiêu đề trang, mô tả đoạn, mô tả bài viết, v.v.
+ Các ảnh đi kèm đều được lấy từ bài viết thật và chú thích bởi người đóng góp Wikipedia, mang tính chân thực cao.
– Các tập con sử dụng:

Kiến trúc hệ thống
Hệ thống Multimodal Retrieval-Augmented Generation (RAG) được thiết kế theo kiến trúc pipeline mô-đun, kết hợp với LangChain [6] để điều phối luồng truy vấn – truy xuất – sinh câu trả lời, giúp tích hợp hiệu quả các thành phần xử lý văn bản, hình ảnh và sinh ngôn ngữ.
Sơ đồ tổng quát

Hệ thống được thiết kế theo kiến trúc pipeline đa pha gồm hai giai đoạn chính: Xây dựng cơ sở dữ liệu và truy vấn sinh câu trả lời. Dưới đây là mô tả chi tiết các bước xử lý:
– Giai đoạn 1 – Xây dựng cơ sở dữ liệu
+ Tiền xử lý dữ liệu văn bản và ảnh (từ WIT Dataset), loại bỏ mẫu lỗi, sinh caption cho ảnh bằng mô hình BLIP [2].
+ Mã hóa văn bản (caption, question, answer) bằng BKAi Bi-Encoder [4] và ảnh bằng CLIP [3] để trích xuất đặc trưng.
+ Kết hợp hai loại embedding bằng Attention-based Fusion Layer để tạo vector thống nhất
+ Lưu vector vào chỉ mục FAISS [7] và TF-IDF [8] cho truy vấn nhanh và chính xác.
– Giai đoạn 2 – Truy vấn và sinh câu trả lời
+ Đầu vào từ người dùng
+ Người dùng cung cấp ảnh và câu hỏi.
+ Ảnh được sinh caption và mã hóa, văn bản truy vấn cũng được mã hóa → kết hợp thành vector truy vấn.
+ Truy vấn FAISS [7] và TF-IDF [8] để lấy top-k kết quả liên quan
+ Quá trình truy vấn, xây dựng prompt và gọi mô hình sinh câu trả lời được điều phối bởi LangChain [6], sử dụng các thành phần như RetrievalQA [6], ConversationalRetrievalChain, và PromptTemplate [6].
Các thành phần chính
- Dữ liệu đầu vào: sử dụng tập WIT [1], [10] (Wikipedia-based Image Text Dataset).
- Text Encoder: mã hóa văn bản bằng BKAi Bi-Encoder [4] cho tiếng Việt.
- Image Encoder: mã hóa ảnh bằng mô hình CLIP [3] của OpenAI.
- Fusion Layer: sử dụng Multi-Head Attention + FFNN để kết hợp ảnh và văn bản thành unified embedding.
- Tìm kiếm và chỉ mục: dùng FAISS [7] cho truy vấn ngữ nghĩa, TF-IDF [8] cho truy vấn từ khóa (hybrid retrieval).
- Sinh câu trả lời: sử dụng Vinallama 2.7B Chat để sinh câu trả lời dựa trên prompt chứa ảnh + văn bản liên quan.
- LangChain Framework: được sử dụng để xây dựng chuỗi xử lý từ truy vấn đầu vào → truy xuất thông tin → xây dựng prompt → sinh câu trả lời.
LangChain [6] giúp quản lý các tác vụ như:- Truy xuất kết hợp (FAISS + TF-IDF).
- Biến đổi và nối prompt tự động với PromptTemplate [6].
- Tích hợp mô hình sinh ngôn ngữ (Vinallama 2.7B Chat) bằng LLMChain
hoặc ConversationalRetrievalChain.
Kết luận và hướng phát triển
Kết luận
– Hệ thống Multimodal RAG đã được triển khai thành công, cho phép xử lý và kết hợp thông tin từ cả văn bản và hình ảnh để trả lời câu hỏi một cách chính xác và hiệu quả. Việc tích hợp các mô hình tiên tiến như BLIP [2], CLIP [3], mô hình Attention Fusion, và LLM (Large Language Model) như VinaLLaMA giúp cải thiện đáng kể chất lượng truy hồi và khả năng tạo sinh câu trả lời.
– Ngoài ra, mặc dù mô hình Attention Fusion hiện tại không được fine-tune thêm mà chỉ sử dụng dưới dạng inference, kết quả vẫn cho thấy hiệu suất tốt trong việc trích xuất và kết hợp đa modal, minh chứng cho tiềm năng của kiến trúc này khi áp dụng vào các bài toán thực tế.
Hướng phát triển
– Tối ưu hóa Attention Fusion
+ Fine-tune AttentionFusionModel: Hiện tại mô hình attention được chạy ở chế độ eval, chưa được huấn luyện lại. Trong thời gian tới có thể sẽ thực hiện fine-tuning mô hình này lại trên tập dữ liệu để mô hình học tốt hơn, hiểu và kết hợp tốt hơn các thông tin hình ảnh và văn bản.
+ Kết hợp nhiều lớp attention: Hiện mô hình sử dụng một lớp Multi-Head Attention. Có thể mở rộng bằng cách áp dụng thêm kiến trúc nhiều tầng như Transformer Encoder hoặc tương tự các mô hình như Flamingo hoặc BLIP-2 để cải thiện độ chính xác kết hợp giữa ảnh và văn bản.
+ So sánh các kiến trúc: đánh giá hiệu suất giữa mô hình hiện tại (đơn tầng) và mô hình mới (nhiều tầng) để phân tích ưu và nhược điểm về tốc độ, độ chính xác và khả năng tổng quát.
– Nâng cấp mô hình sinh câu trả lời (LLM)
+ Hiện hệ thống đang sử dụng mô hình Vinallama-2.7b-chat cho việc sinh câu trả lời. Tuy nhiên, có thể thử thay thế bằng các mô hình đã được huấn luyện tốt hơn cho ảnh, văn bản như MiniGPT-4, LLaVA, ViLT,… để cải thiện khả năng sinh câu trả lời, đặc biệt khi cần phân tích nội dung hình ảnh.
+ Fire-tune LLM cho QA tiếng Việt: Dữ liệu hiện tại chủ yếu là tiếng Anh hoặc ngôn ngữ khác. Có thể thu thập tập dữ liệu tiếng Việt đa phương thức để tinh chỉnh lại mô hình, giúp nâng cao độ chính xác khi truy vấn bằng tiếng Việt.
– Nâng cấp hệ thống truy vấn và tìm kiếm
+ Tăng cường khả năng truy xuất ngữ nghĩa: Ngoài FAISS và TF-IDF, có thể tích hợp thêm dense retriever như ColBERT hoặc DPR để cải thiện khả năng hiểu ngữ cảnh của truy vấn và kết quả.
+ Tìm hiểu và sử dụng cross-encoder để sắp xếp lại thứ hạng kết quả sau tkhi truy xuất top k bằng FAISS, giúp tăng độ chính xác cuối cùng.
+ Tìm kiếm các dạng indexing nâng cao hơn trong FAISS để tăng tốc độ tìm kiếm trên tập dữ liệu lớn hơn. – Mở rộng tập dữ liệu và đa dạng nguồn ảnh
+ Tích hợp nhiều nguồn ảnh hơn: dữ liệu hiện tại chỉ lấy từ WIT. Có thể bổ sung ảnh từ các tập như COCO, hoặc ảnh từ báo chí/diễn đàn chuyên ngành để tăng tính ứng dụng thực tế.
– Đánh giá hệ thống kỹ lưỡng và định lượng hơn
+ Tạo bộ benchmark đánh giá truy vấn đa phương tiện: Thiết kế tập dữ liệu chứa ảnh, câu hỏi, context và ground-truth câu trả lời để đánh giá chính xác hơn Precision@k, MRR, và Semantic Faithfulness.
+ So sánh với các baseline mô hình RAG khác.
+ Phân loại các câu hỏi để có thể dễ dàng tìm hiểu điểm mạnh và hạn chế của hệ thống.
– Triển khai thực tế và giao diện người dùng
+ Để hệ thống dễ tiếp cận hơn với người dùng, dự kiến sẽ xây dựng một giao diện web đơn giản bằng Gradio hoặc Streamlit. Giao diện này cho phép người dùng tải ảnh lên và đặt câu hỏi để nhận được câu trả lời trực tiếp.
+ Tích hợp hệ thống vào chatbot sử dụng LangChain:gói toàn bộ pipeline hiện tại (xử lý ảnh, trích xuất ngữ nghĩa, sinh caption, truy xuất context và sinh câu trả lời…) vào một chatbot tương tác, sử dụng LangChain để tổ chức workflow. Có thể áp dụng vào các ứng dụng như chatbot tư vấn từ hình ảnh sản phẩm, sách giáo khoa điện tử, hình ảnh y tế, lịch sử,…


