MODULE 05 / LESSON 43

Multimodal RAG — ساخت RAG با متن، تصویر، PDF، اسلاید و داده‌های چندرسانه‌ای

تا اینجا RAGهایی که بررسی کردیم عمدتاً بر پایه Text بودند: Document | ↓ Embedding | ↓ Vector Database | ↓ LLM اما در دنیای واقعی اطلاعات فقط متن نیست. مثلاً: PDFهای شرکتی فایل‌های PowerPoint تصاویر نمودارها اسکرین‌شات‌ها فایل‌های…

نویسنده: محمد ابوطالبی۱۱۰۰ واژهماژول ۵: Productionشامل افزودهٔ پژوهشی ۲۰۲۶

تا اینجا RAGهایی که بررسی کردیم عمدتاً بر پایه Text بودند:

Document
   |
   ↓
Embedding
   |
   ↓
Vector Database
   |
   ↓
LLM

اما در دنیای واقعی اطلاعات فقط متن نیست.

مثلاً:

  • PDFهای شرکتی
  • فایل‌های PowerPoint
  • تصاویر
  • نمودارها
  • اسکرین‌شات‌ها
  • فایل‌های صوتی و ویدئو

همگی می‌توانند اطلاعات مهم داشته باشند.

اینجا وارد مفهوم:

Multimodal RAG

می‌شویم.


Multimodal یعنی چه؟

یک مدل Multimodal می‌تواند چند نوع داده را بفهمد:

Text
Image
Audio
Video

رایج‌ترین ترکیب:

Text + Image

یک سیستم Multimodal RAG:

می‌تواند:

ورودی بگیرد:

متن + تصویر

جستجو کند در:

متن + تصویر

و خروجی بدهد:

پاسخ متنی

معماری کلی Multimodal RAG

معماری شبیه RAG معمولی است:

                 User

                  |
                  ↓

          Multimodal Query

                  |
                  ↓

        Multimodal Embedding Model

                  |
                  ↓

          Vector Database

                  |
                  ↓

        Retrieved Text + Images

                  |
                  ↓

        Vision Language Model

                  |
                  ↓

              Answer

تغییر اول: Multimodal Embedding Model

در RAG معمولی:

یک Embedding Model فقط متن را تبدیل می‌کند:

مثلاً:

"dog"

     ↓

[0.12,0.44,0.91....]

اما Multimodal Embedding:

می‌تواند:

متن:

dog

و تصویر:

🐕 تصویر سگ

را در یک فضای مشترک قرار دهد.


یعنی:

Text:
"dog"

Vector:
[0.23,0.44,0.87]


Image:
Dog picture

Vector:
[0.25,0.42,0.86]

پس:

فاصله کم است.

چون معنی یکی است.


مثال جالب

Knowledge Base:

Image:
عکس یک درخت


Text:
"Tree species in forest"

کاربر:

عکسی شبیه این درخت پیدا کن

سیستم:

Image Query

↓

Embedding

↓

Vector Search

↓

Text + Image Results


Retrieval در Multimodal RAG

فرآیند تقریباً همان است:

  1. همه داده‌ها Embed می‌شوند.

مثلاً:

PDF page
Image
Text
Chart

↓

Vector Database


  1. Query کاربر Embed می‌شود.

مثلاً:

"What does this diagram show?"

یا:

(Image Upload)

  1. نزدیک‌ترین Vectorها پیدا می‌شوند.

تغییر دوم: Language Vision Model

LLM معمولی:

فقط Text می‌بیند.

مثلاً:

Input:

"The dog is brown"

Vision Language Model:

می‌بیند:

Text

+

Image

مثلاً:

ورودی:

[Image of X-Ray]

Explain this image

مدل:

تصویر را تحلیل می‌کند.


Image چگونه وارد Transformer می‌شود؟

LLM فقط Token می‌فهمد.

پس تصویر باید Tokenize شود.


برای متن:

Hello world

تبدیل:

Token1
Token2

برای تصویر:

تصویر به Patch تقسیم می‌شود.

مثلاً:

+----+----+
| P1 | P2 |
+----+----+
| P3 | P4 |
+----+----+

هر Patch:

یک Token می‌شود.


مثلاً:

تصویر کوچک:

100 tokens

تصویر با کیفیت بالا:

1000 tokens

بعد:

هم متن و هم تصویر:

به Transformer می‌روند.


PDF و Slide در Multimodal RAG

یکی از کاربردهای مهم:

PDF.

چرا؟

چون PDF فقط متن نیست.

داخلش:

  • متن
  • جدول
  • نمودار
  • تصویر
  • فرمول

وجود دارد.


مشکل:

یک صفحه PDF:

مثلاً:

Page 10

ممکن است شامل:

Title
Paragraph
Chart
Image
Caption

باشد.

یک Vector نمی‌تواند همه را خوب نمایش دهد.


Chunking برای تصویر

در Text:

داشتیم:

Paragraph Chunk

در Image:

نیاز داریم:

Image Chunk

روش قدیمی:

تشخیص اجزای PDF:

Detect:

Text area
Chart area
Image area

اما:

مشکل:

خطاپذیر است.


روش جدید: PDF RAG

صفحه PDF را Grid می‌کنیم.

مثلاً:

+----+----+
| A1 | A2 |
+----+----+
| B1 | B2 |
+----+----+

هر قسمت:

یک Vector می‌شود.

مثلاً:

قبلاً:

1 page = 1 vector

بعد:

1 page = 1000 vectors

مزیت:

اطلاعات دقیق‌تر حفظ می‌شود.


ارتباط با ColBERT

PDF RAG شبیه ایده ColBERT است.

چون:

به جای:

Document → One Vector

داریم:

Document

↓

Many Vectors

مثلاً:

هر بخش صفحه:

یک Vector.

Query:

هر قسمت Query:

بهترین Match خودش را پیدا می‌کند.


مشکل اصلی Multimodal RAG

تعداد Vector زیاد

مثلاً:

Text RAG:

1 Million documents

=
1 Million vectors

PDF RAG:

1 Million pages

×

1000 patches

=

1 Billion vectors

پس نیاز داریم:

  • Quantization
  • Efficient Vector DB
  • ANN
  • Storage Optimization

کاربردهای واقعی Multimodal RAG

1. تحلیل اسناد

مثلاً:

شرکت بیمه:

PDF قرارداد
+
تصاویر
+
جداول

سؤال:

شرایط خسارت چیست؟

2. پزشکی

MRI Image

+

Medical Records

3. مهندسی

CAD Drawing

+
Manual PDF

+
Specifications

4. شرکت‌ها

PowerPoint Slides

+
Internal Docs

تفاوت RAG معمولی و Multimodal RAG

ویژگی Text RAG Multimodal RAG
ورودی متن متن + تصویر
Embedding Text Model Multimodal Model
Database Vector DB Multimodal Vector DB
LLM Text LLM Vision Language Model
PDF استخراج متن تصویر + متن
هزینه کمتر بیشتر
پیچیدگی پایین بالا

مدل‌های مورد استفاده

معمولاً:

Vision Language Models

مثل:

  • GPT-4 Vision
  • Gemini Vision
  • Claude Vision
  • LLaVA
  • Qwen-VL

Multimodal Embedding

مثل:

  • CLIP-based models
  • مدل‌های جدید چندوجهی Embedding

معماری Production پیشنهادی

یک سیستم حرفه‌ای:

                 User

                  |
                  ↓

          Query Understanding

                  |
                  ↓

      Multimodal Embedding Model

                  |
                  ↓

          Vector Database

                  |
                  ↓

          Hybrid Retrieval

                  |
                  ↓

             Reranker

                  |
                  ↓

       Vision Language Model

                  |
                  ↓

              Answer + Citation

خلاصه نهایی

Multimodal RAG یعنی:

RAG فقط روی متن کار نمی‌کند؛ بلکه می‌تواند دانش موجود در تصاویر، PDFها، نمودارها و اسناد پیچیده را نیز بازیابی و استفاده کند.

سه تغییر اصلی لازم است:

1. Embedding چندوجهی

Text + Image
       ↓
Same Vector Space

2. Vector Database مناسب

Store multimodal vectors

3. Vision Language Model

Understand retrieved images + text

مهم‌ترین چالش‌ها:

  • حجم عظیم Vectorها
  • هزینه پردازش
  • Chunking تصاویر
  • مدیریت PDFهای پیچیده

اما مسیر آینده RAG به سمت سیستم‌هایی است که فقط «متن» نمی‌خوانند؛ بلکه کل دانش سازمان شامل تصویر، سند، نمودار و ویدئو را درک می‌کنند.