بسیاری از توسعهدهندگان هنگام ساخت پایپلاینهای RAG سنتی روی اسناد فارسی و انگلیسی، با مشکل افت کیفیت ناشی از تبدیل فایلهای PDF مواجه میشوند. ابزارهای OCR معمولاً نمودارها را نادیده میگیرند، سطر و ستون جداول را به هم میریزند و ساختار بصری صفحه را کاملاً تخریب میکنند. این چالش در اسنادی مانند صورتهای مالی، قراردادها و کاتالوگها بازدهی مدل نهایی را به شدت کاهش میدهد.
مدل ColPali با حذف کامل مرحلهی OCR، رویکرد متفاوتی را ارائه میدهد: نمایهسازی مستقیم تصاویر صفحات با مدلهای بینایی-زبانی مانند PaliGemma و بازیابی دقیق آنها با مکانیزم تعامل متأخر (Late Interaction). این شیوه تمام جزئیات ظاهری، چیدمان و تصاویر سند را حفظ میکند و دقت بازیابی را روی اسناد بصری به طور چشمگیری بالا میبرد.
اگرچه مدلهای پیشرفتهی این حوزه برای آموزش و پردازش سنگین به GPUهای قدرتمند نیاز دارند که دسترسی به آنها معمولاً هزینهبر و چالشبرانگیز است، اما مدلهای سبکتر این خانواده مانند ColSmol امکان اجرا و آزمایش روی سختافزارهای مصرفی و محلی را نیز فراهم میکنند.
در RAG سنتی، ابتدا فایلهای PDF به متن تبدیل، سپس قطعهبندی (chunking) و در نهایت امبد میشوند تا در قالب بردار ذخیره گردند. در تکتک این مراحل، بخشی از سیگنال از دست میرود: ابزارهای OCR دادههای نمودارها را جا میاندازند، قطعهبندی متن ردیفهای جدولها را میشکند و امبدینگهای متنی تصاویر را کاملاً نادیده میگیرند. مدل ColPali (فیس و همکاران، ژوئیه 2024) پرسش سادهتری مطرح کرد: اصلاً چرا متن را استخراج کنیم؟ تصویر صفحه را مستقیماً با PaliGemma امبد کنید، برای بازیابی از تعامل متأخر (late interaction) به سبک ColBERT بهره ببرید و تمام سیگنالهای صفحه مثل چیدمان، تصاویر، فونتها و قالببندی سند را حفظ کنید. بنچمارکهای منتشرشده نشان میدهند که دقت سرتاسری این رویکرد در اسناد غنی از محتوای بصری، 20 تا 40 درصد بهتر از text-RAG است. سپس مدلهای ColQwen2 ،ColSmol و VisRAG همین الگو را توسعه دادند. در این درس، تز RAG بر پایهی تصویر (vision-native RAG) را بررسی میکنیم و یک نمایهساز کوچک شبیه ColPali میسازیم.
اهداف یادگیری
- توضیح تفاوت بین بازیابی با بایانکودر (یک بردار به ازای هر سند) و بازیابی با تعامل متأخر (چندین بردار به ازای هر سند).
- تشریح عملیات MaxSim در ColBERT و نحوهی تعمیم آن در ColPali از توکنهای متنی به تکههای تصویر (image patches).
- ساخت یک نمایهساز کوچک شبیه به ColPali: تبدیل صفحه ← امبدینگ تکهها ← محاسبهی MaxSim روی امبدینگ عبارتهای پرسش ← استخراج k صفحهی برتر.
- مقایسهی ترکیب ColPali + تولیدکنندهی Qwen2.5-VL در برابر text-RAG + GPT-4 برای سناریوی فاکتورها و گزارشهای مالی.
صورت مسئله
رویکرد text-RAG روی فایلهای PDF بخش اعظمی از سند را دور میریزد. رشد درآمد سهماههی سوم در یک گزارش مالی معمولاً داخل یک نمودار است؛ یافتههای یک گزارش پزشکی در تصاویر حاشیهنویسیشده قرار دارد؛ و امضای انتهای یک قرارداد حقوقی وابستهبه چیدمان ظاهری صفحه است، نه متنی صرف.
پایپلاین text-RAG:
- تبدیل PDF ← متن از طریق OCR یا pdftotext.
- تبدیل متن ← قطعات 300 تا 500 توکنی.
- تبدیل هر قطعه ← امبدینگ بایانکودر (یک بردار).
- پرسش کاربر ← امبدینگ ← شباهت کسینوسی ← k قطعهی برتر.
- ارسال قطعات + پرسش ← LLM.
پنج مرحله همراه با افت اطلاعات: نمودارها ثبت نمیشوند، جدولها در میان قطعات میشکنند، ساختارهای چندستونی تخت و یکپارچه میشوند و حاشیهنویسیهای شکلها ناپدید میگردند.
راهحل ColPali: بیخیال OCR شوید و مستقیماً تصویر صفحه را امبد کنید. از تعامل متأخر به سبک ColBERT برای بازیابی استفاده کنید تا مدل بتواند هنگام پرسش، روی تکههای ریز و دقیق تصویر تمرکز کند.
مفاهیم کلیدی
مدل ColBERT (سال 2020)
روش ColBERT (خطاب و زاهریا، arXiv:2004.12832) روشی برای بازیابی متن است. بهجای یک بردار برای کل سند، به ازای هر توکن یک بردار تولید میکند. هنگام پرسش:
- توکنهای پرسش، امبدینگهای اختصاصی خود را دریافت میکنند (بردارهای ).
- توکنهای سند امبدینگ میگیرند (بردارهای که معمولاً کش میشوند).
- امتیاز = مجموعِ بیشینهی شباهت کسینوسی توکنهای سند برای هر توکن پرسش: .
این همان عملیات MaxSim است. هر توکن پرسش، بهترین توکن همتا در سند را «انتخاب» میکند و امتیاز نهایی حاصل جمع آنهاست.
مزایا: بازخوانی (recall) قوی و مدیریت معناشناسی در سطح کلمات. معایب: تولید بردار به ازای هر سند که ذخیرهسازی را بسیار پرهزینه میکند.
مدل ColPali
مدل ColPali (فیس و همکاران، arXiv:2407.01449) الگوی ColBERT را روی تصاویر پیاده میکند.
- هر صفحه توسط PaliGemma (ترکیبی از ViT + مدل زبانی) به امبدینگ تکهها تبدیل میشود: بردار به ازای هر صفحه.
- هر پرسش کاربر (متن) به امبدینگهای توکنهای پرسش انکود میشود: بردار.
- امتیاز = ؛ یعنی MaxSim روی توکنهای متنی پرسش و تکههای تصویری صفحه.
- بازیابی k صفحهی برتر بر اساس امتیاز کل.
در مرحلهی ورود اسناد (ingestion): تمام صفحات را با PaliGemma امبد و امبدینگ همهی تکهها را ذخیره کنید. هنگام پرسش: توکنهای پرسش را امبد کنید، MaxSim را در برابر تمام امبدینگهای ذخیرهشدهی صفحات بسنجید و k صفحهی برتر را برگردانید.
مزایا: در اسنادی با محتوای بصری غنی، از نظر دقت سرتاسری 20 تا 40 درصد text-RAG را شکست میدهد. بردار هر تکه، چیدمان و محتوای موضعی را ثبت میکند.
معایب: تکه × اعداد اعشاری 4 بایتی × بردار با بُعد به ازای هر صفحه = حجم ذخیرهسازی خیلی سریع رشد میکند. البته با کوانتیزهسازی PQ یا OPQ مهارشدنی است.
مدلهای ColQwen2 و ColSmol
مدل ColQwen2 (توسعهیافته در illuin-tech، سالهای 2024–2025) انکودر PaliGemma را با Qwen2-VL جایگزین میکند. انکودر پایهی بهتر، بازیابی بهتری ارائه میدهد.
مدل ColSmol نسخهای جمعوجورتر برای کاربردهای محلی و لبه (edge) است. یک بازیاب ColSmol با حدود 1B پارامتر بهراحتی روی GPUهای مصرفی معمولی اجرا میشود.
مدل VisRAG
مدل VisRAG (یو و همکاران، arXiv:2410.10594) مسیر متفاوتی را میرود: بهجای MaxSim روی تکهها، با یک VLM تمام صفحه را درون یک بردار ادغام (pooling) میکند و سپس بازیابی بایانکودر را انجام میدهد. نمایهسازی سریعتر + ذخیرهسازی کمتر، اما بازخوانی ضعیفتر.
موازنهی کیفیت در برابر هزینه: ColPali برای کیفیت، VisRAG برای مقیاسهای بسیار بزرگ.
مدل M3DocRAG
مدل M3DocRAG (چو و همکاران، arXiv:2411.04952) بازیابی چندوجهی را به استدلال میان چندین صفحه و چندین سند گسترش میدهد. صفحات را از میان چند سند مختلف بازیابی میکند و زمینهای چندصفحهای برای VLM میسازد.
بنچمارک ViDoRe
بنچمارک همراه ColPali برای ارزیابی بازیابی اسناد بصری (Visual Document Retrieval Evaluation). این بنچمارک شامل گزارشهای مالی، مقالههای علمی، اسناد اداری، پروندههای پزشکی و راهنماهاست. معیار ارزیابی: nDCG@5.
مدل ColPali-v1 در ViDoRe به امتیاز nDCG@5 حدود 80 درصد میرسد؛ درحالیکه text-RAG روی همین اسناد امتیاز 50 تا 60 درصد کسب میکند.
پایپلاین سرتاسری RAG
برای یک RAG بر پایهی تصویر:
- ورود اسناد (Ingest): تبدیل PDF ← تصاویر صفحات ← انکود با PaliGemma ← ذخیرهی امبدینگ تمام تکهها.
- پرسش (Query): متن کاربر ← امبدینگ توکنهای پرسش ← محاسبهی MaxSim در برابر تمام صفحات نمایهشده ← k صفحهی برتر.
- تولید پاسخ (Generate): تصاویر k صفحهی برتر + پرسش ← مدل VLM (مثل Qwen2.5-VL یا Claude) ← پاسخ نهایی.
هیچ نیازی به OCR در هیچ کجای مسیر نیست. شکلها، نمودارها، فونتها و چیدمان مستقیماً به پاسخ نهایی هدایت میشوند.
محاسبات فضای ذخیرهسازی
یک گزارش مالی 50 صفحهای با 729 تکه در هر صفحه و امبدینگهای 128 بُعدی:
- در ColPali: ضرب 50 * 729 * 128 * 4 بایت = حدود 18 MB خام، و حدود 2.3 MB پس از فشردهسازی 8 برابری با PQ.
- در Text-RAG: ضرب 50 قطعه * بُعد 768 * 4 بایت = حدود 150 kB.
حجم ذخیرهسازی خام ColPali به ازای هر سند حدود 120 برابر بیشتر است. در مقیاس بزرگ، فشردهسازی 8 برابری با OPQ یا PQ این عدد را به حدود 15 برابر میرساند که معمولاً قابلتحمل است.
شرایطی که text-RAG هنوز برنده است
- اسناد صرفاً متنی بدون هیچ سیگنال چیدمانی (مقالههای ویکیپدیا، لاگهای چت). در این موارد text-RAG سادهتر و از نظر ذخیرهسازی ارزانتر است.
- آرشیوهای چندمیلیون صفحهای که در آنها هزینهی ذخیرهسازی حرف اول را میزند.
- الزامات قانونی سختگیرانهای که خواستار متن استخراجشدهی OCR در کنار بازیابی هستند.
برای بقیهی اسناد در سال 2026 — از جمله گزارشهای مالی، مقالههای علمی، قراردادهای حقوقی، پروندههای پزشکی و مستندات تجربه کاربری (UX) — سیستمهای RAG بر پایهی تصویر برندهاند.
پیادهسازی عملی
فایل code/main.py:
- انکودر آزمایشی تکهها: نگاشت یک «صفحه» (شبکهی کوچکی از بردارهای ویژگی) به آرایهای از امبدینگ تکهها.
- امتیازدهی MaxSim: محاسبهی امتیاز به سبک ColBERT بین مجموعهی امبدینگهای توکن پرسش و مجموعهی تکههای صفحه.
- نمایهسازی 5 صفحهی آزمایشی، اجرای 3 پرسش و بازگرداندن k مورد برتر بههمراه امتیازها.
تحویل نهایی
این درس خروجی outputs/skill-vision-rag-designer.md را تولید میکند. این سند با دریافت هر پروژهی document-RAG، گزینهی مناسب را از میان ColPali / ColQwen2 / VisRAG / text-RAG انتخاب کرده و حجم ذخیرهسازی را تخمین میزند.
تمرینها
-
یک گزارش سالانهی 200 صفحهای با 729 تکه در هر صفحه، امبدینگهای 128 بُعدی و دادههای اعشاری 4 بایتی داریم. حجم ذخیرهسازی خام و حجم فشردهشده با PQ (با ضریب 8x) را محاسبه کنید.
-
رابطهی MaxSim بهصورت است. این مجموع چه چیزی را ثبت میکند که یک میانگین سادهی شباهت از ثبت آن ناتوان است؟
-
مدل ColPali صفحات را بهشکل مجموعهای از تکهها نمایه میکند. اگر بهجای آن، نمایه را در سطح کلمه بسازیم (همانطور که ColBERT انجام میدهد)، چه چیزی تغییر میکند؟ نقاط قوت و ضعف آن چیست؟
-
پایپلاین سرتاسری را برای یک مجموعهی 1 میلیون صفحهای با سقف تاخیر (latency budget) معادل 500ms برای هر پرسش طراحی کنید. بین ColQwen2 و VisRAG یکی را انتخاب کرده و دلیل آن را توجیه کنید.
-
مقالهی M3DocRAG (arXiv:2411.04952) را بخوانید. الگوی اتنشن چندصفحهای را شرح دهید و بگویید چه تفاوتی با بازیابی تکصفحهای ColPali دارد.
اصطلاحات کلیدی
| اصطلاح | در گفتوگوها | تعریف دقیق مهندسی |
|---|---|---|
| تعامل متأخر (Late interaction) | «به سبک ColBERT» | بازیابی با استفاده از امبدینگ به ازای هر توکن یا هر تکه + MaxSim، نه یک بردار برای سند |
| بیشینهی شباهت (MaxSim) | «بیشینهی روی تکهها» | انتخاب شبیهترین توکن سند به ازای هر توکن پرسش، و جمع بستن مقادیر در طول پرسش |
| بایانکودر (Bi-encoder) | «تکبرداری» | یک بردار به ازای هر سند؛ سریعتر است اما جزئیات دقیق سند از دست میرود |
| چندبرداری (Multi-vector) | «چندین بردار برای هر سند» | ذخیرهی بردار به ازای هر سند / صفحه؛ هزینهی ذخیرهسازی بالاتر میرود اما بازخوانی بهتر میشود |
| امبدینگ تکهها (Patch embedding) | «ویژگی صفحه» | یک بردار به ازای هر تکهی تصویر خروجی از انکودر VLM، که برای هر صفحه کش میشود |
| ویدوره (ViDoRe) | «بنچمارک اسناد بصری» | مجموعهی بنچمارک ColPali برای ارزیابی بازیابی اسناد بصری |
| کوانتیزهسازی با PQ (PQ quantization) | «کوانتیزهسازی ضربی» | فشردهسازی بردارها که با کاهش حدوداً 8 برابری حجم داده، شباهت بردارها را حفظ میکند |
