فاز 19 · درس 4

پرسش‌وپاسخ اسناد چندوجهی با رویکرد تصویرمحور، جداول و نمودارها

نوع
پروژه‌ی پایانی
زمان
حدود 9 دقیقه
زبان‌ها
Python (pipeline), TypeScript (viewer UI)
پیش‌نیاز
فاز 4 (بینایی ماشین)، فاز 5 (پردازش زبان طبیعی)، فاز 7 (ترنسفورمرها)، فاز 11 (مهندسی LLM)، فاز 12 (چندوجهی)، فاز 17 (زیرساخت)
یک صفحه سند دیجیتال همراه با تفکیک گرافیکی شبکه‌ای از تکه‌های تصویر و کادرهای مشخص‌کننده نواحی شواهد روی نمودار و جدول
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم
  3. معماری
  4. ابزارها و فناوری‌ها
  5. پیاده‌سازی از صفر
  6. استفاده از ابزارهای واقعی
  7. خروجی نهایی
  8. تمرین‌ها
  9. اصطلاحات کلیدی
  10. برای مطالعه‌ی بیشتر

استخراج اطلاعات دقیق از اسناد سازمانی مانند گزارش‌های مالی، مقالات علمی و فرم‌های حاوی جداول پیچیده یا نمودار، همواره چالشی جدی برای سامانه‌های مبتنی بر متن بوده است. در رویکردهای سنتی OCR، ساختار بصری سند شامل چیدمان ستون‌ها، گراف‌ها و روابط فضایی میان اجزا به متنی یک‌دست تبدیل شده و بخش بزرگی از زمینه و معنای داده‌ها مخدوش می‌شود.

در سال‌های اخیر، جریان پرسش‌وپاسخ اسناد به سمت روش‌های تصویرمحور (Vision-First) با تکیه بر تعامل متأخر (Late Interaction) تغییر مسیر داده است. مدل‌هایی مانند ColPali و ColQwen به‌جای خواندن متن جداگانه، هر صفحه از سند را به‌عنوان یک تصویر پردازش کرده و امبدینگ‌های چندبرداری از تکه‌های تصویر می‌سازند تا مقایسه‌ی دانه‌ریز با پرامپت ممکن شود.

در این درس یاد می‌گیرید چگونه پایپ‌لاینی بسازید که اسناد پیچیده را بدون وابستگی صرف به OCR ایندکس کند، حجم بردارهای ذخیره‌شده را بهینه سازد و با استفاده از مدل‌های زبان‌تصویر (VLM)، پاسخ‌هایی همراه با کادرهای ارجاع مستقیم روی صفحات سند تولید کند.

مرزهای پرسش‌وپاسخ اسناد در سال 2026 از الگوی «اول OCR، بعد متن» عبور کرده و به سمت تعامل متأخر تصویرمحور (vision-first late interaction) رفته است. مدل‌های ColPali ،ColQwen2.5 و ColQwen3-omni با هر صفحه‌ی PDF مانند یک تصویر برخورد می‌کنند، آن را با تعامل متأخر چندبرداری به امبدینگ تبدیل کرده و به پرامپت امکان می‌دهند مستقیماً به تکه‌ها (patches) توجه کند. این الگو روی گزارش‌های مالی 10-K، مقاله‌های علمی و یادداشت‌های دست‌نویس با اختلاف چشمگیری روش مبتنی بر OCR را پشت سر می‌گذارد. این پایپ‌لاین را به‌صورت سرتاسری روی 10k صفحه بسازید و مقایسه‌ی شانه‌به‌شانه‌ی آن با روش «اول OCR، بعد متن» را منتشر کنید.

فازهای تمرین‌شده: P4 · P5 · P7 · P11 · P12 · P17
زمان: 30 ساعت

صورت مسئله

سازمان‌ها با حجم عظیمی از فایل‌های PDF روبه‌رو هستند که پایپ‌لاین‌های OCR آن‌ها را به هم می‌ریزند: گزارش‌های اسکن‌شده‌ی 10-K با جدول‌های چرخیده، مقاله‌های علمی پر از فرمول، نمودارهایی که فقط به‌صورت تصویر معنادارند و یادداشت‌های دست‌نویس حاشیه‌ی صفحات. نگاه متنی به این اسناد یعنی از دست دادن نیمی از سیگنال‌ها. راهکار سال 2026، بازیابی چندبرداری با تعامل متأخر روی تصاویر خام صفحات است. مدل ColPali (از شرکت Illuin Tech) این مسیر را آغاز کرد؛ مدل‌های ColQwen2.5-v0.2 و ColQwen3-omni نیز دقت را ارتقا دادند. در بنچ‌مارک ViDoRe v3، بازیابی تصویرمحور با اختلاف محسوسی بالاتر از روش «اول OCR، بعد متن» قرار می‌گیرد — و این فاصله در نمودارها، جدول‌ها و دست‌خط‌ها حتی بیشتر می‌شود.

بهای این برتری، فضای ذخیره‌سازی و تاخیر بیشتر است. یک امبدینگ ColQwen حدود 2048 بردار تکه به ازای هر صفحه دارد، نه یک بردار تک‌پولینگ‌شده با بعد 1024. در نتیجه حجم خام ذخیره‌سازی سرسام‌آور می‌شود. روش DocPruner (محصول 2026) امکان 50% هرس کردن را بدون افت دقت ملموس فراهم می‌کند. شما 10k صفحه را ایندکس می‌کنید، معیار nDCG@5 بنچ‌مارک ViDoRe v3 را می‌سنجید، در کمتر از 2 ثانیه پاسخ ارائه می‌دهید و سیستم را مستقیماً با خط مبنای «اول OCR، بعد متن» مقایسه می‌کنید.

مفاهیم

تعامل متأخر یعنی هر توکن پرامپت در برابر تک‌تک توکن‌های تکه‌ها امتیازدهی می‌شود و بیشترین امتیازِ هر توکن پرامپت جمع می‌گردد. به این ترتیب بدون نیاز به یک بردار واحد تجمیع‌شده، به تطبیق دقیق و دانه‌ریز می‌رسید. یک ایندکس چندبرداری (مثل Vespa، قابلیت چندبرداری Qdrant یا AstraDB) امبدینگ‌های هر تکه را ذخیره می‌کند و در زمان بازیابی، عملیات بیشینه‌ی شباهت (MaxSim) را اجرا می‌کند.

بخش پاسخ‌دهنده، یک مدل زبان‌تصویر (VLM) است که پرامپت و k صفحه‌ی برتر بازیابی‌شده را در قالب تصویر دریافت می‌کند و پاسخی همراه با نواحی شواهد (کادرهای محدودکننده یا ارجاع به صفحه) می‌نویسد. مدل‌های Qwen3-VL-30B ،Gemini 2.5 Pro و InternVL3 انتخاب‌های پیشروی سال 2026 هستند. برای فرمول‌ها و نمادهای علمی، یک طرح پشتیبان OCR (مثل Nougat یا dots.ocr) به‌عنوان کانال متنی اختیاری در کنار تصویر ادغام می‌شود.

ارزیابی در قالب یک ماتریس دوبعدی انجام می‌شود. یک محور: نوع محتوا (پاراگراف‌های متنی ساده، جدول‌های متراکم، نمودارهای میله‌ای/خطی، یادداشت‌های دست‌نویس، فرمول‌ها). محور دیگر: روش بازیابی (تعامل متأخر تصویرمحور در برابر «اول OCR، بعد متن» در برابر روش ترکیبی). هر خانه از جدول شامل nDCG@5 و دقت پاسخ است. خروجی اصلی کار، گزارش تحلیلی حاصل از همین ماتریس خواهد بود.

معماری

PDFs -> page renderer (PyMuPDF, 180 DPI)
           |
           v
  ColQwen2.5-v0.2 embed (multi-vector per page, ~2048 patches)
           |
           +------> DocPruner 50% compression
           |
           v
   multi-vector index (Vespa or Qdrant multi-vector)
           |
query ----+----> retrieve top-k pages (MaxSim)
           |
           v
  VLM answerer: Qwen3-VL-30B | Gemini 2.5 Pro | InternVL3
    inputs: query + top-k page images + optional OCR text
           |
           v
  answer with cited page numbers + evidence regions
           |
           v
  Streamlit / Next.js viewer: highlighted boxes on source page

ابزارها و فناوری‌ها

  • رندر کردن صفحات: PyMuPDF (fitz) با کیفیت 180 DPI، استانداردشده به‌صورت عمودی
  • مدل تعامل متأخر: ColQwen2.5-v0.2 یا ColQwen3-omni (تیم vidore در Hugging Face)
  • ایندکس: Vespa با فیلد چندبرداری، قابلیت چندبرداری Qdrant، یا AstraDB با پشتیبانی از MaxSim
  • هرس کردن: استراتژی DocPruner 2026 (حفظ تکه‌های با واریانس بالا، نسبت فشرده‌سازی 50% با کمتر از 0.5% افت دقت)
  • طرح پشتیبان OCR (فرمول‌ها / جدول‌های متراکم): dots.ocr یا Nougat
  • مدل VLM پاسخ‌دهنده: مدل Qwen3-VL-30B به‌صورت خودمیزبان یا Gemini 2.5 Pro میزبانی‌شده؛ InternVL3 به‌عنوان طرح پشتیبان
  • ارزیابی: بنچ‌مارک ViDoRe v3، و M3DocVQA برای استدلال چندصفحه‌ای
  • رابط کاربری نمایش سند: Next.js 15 با لایه‌ی رویی بوم (canvas overlay) برای نمایش نواحی شواهد
تعامل متأخر MAXSIMبیشینه‌ی هر توکن روی تکه‌ها
LATE INTERACTION MAXSIMNo OCR and no pooled vector: the page stays an image, embedded as thousands of patch vectors. Each query token scores against every patch, keeps only its maximum, and the per-token maxima sum into the page score. Tables, charts, and handwriting match directly at the patch level.صفحه pdf به‌صورت شبکه تکه‌هاتوکن‌های پرس‌وجوq: netq: marginq: 2024مجموع بیشینه‌هاامتیاز 1.68
بدون OCR و بدون بردار تجمیعی: صفحه به‌صورت تصویر باقی می‌ماند و در قالب هزاران بردار تکه امبد می‌شود. هر توکن پرس‌وجو در برابر تمام تکه‌ها امتیازدهی می‌شود، فقط بیشینه‌ی خود را نگه می‌دارد، و مجموع این بیشینه‌ها امتیاز صفحه را می‌سازد. جداول، نمودارها و دست‌خط مستقیماً در سطح تکه‌ها تطبیق داده می‌شوند.

پیاده‌سازی از صفر

  1. دریافت داده (Ingest): مجموعه‌ای از 10k صفحه‌ی PDF شامل گزارش‌های مالی 10-K، مقالات علمی و اسناد اسکن‌شده را پیمایش کنید. هر صفحه را با ابعاد 1536x2048 به‌صورت فایل PNG رندر بگیرید. داده‌های {doc_id, page_num, image_path} را ذخیره کنید.

  2. تولید امبدینگ (Embed): مدل ColQwen2.5-v0.2 را روی تصویر هر صفحه اجرا کنید. خروجی حدود 2048 امبدینگ تکه با بعد 128 خواهد بود. الگوریتم DocPruner را اعمال کنید تا نیمی از تکه‌ها با بیشترین سیگنال حفظ شوند. خروجی را در فیلد چندبرداری Vespa یا بخش چندبرداری Qdrant بنویسید.

  3. پرس‌وجو (Query): برای هر پرامپت ورودی، امبدینگ را از طریق بخش پرامپت مدل (امبدینگ‌ها در سطح توکن) بسازید. الگوریتم MaxSim را روی ایندکس اجرا کنید: برای هر توکنِ پرامپت، بیشترین ضرب داخلی روی امبدینگ‌های تکه‌های صفحه را بیابید و آن‌ها را جمع بزنید. سپس k صفحه‌ی برتر را برگردانید.

  4. ترکیب و تولید پاسخ (Synthesize): مدل Qwen3-VL-30B را با پرامپت و تصاویر 5 صفحه‌ی برتر فراخوانی کنید. پرامپت: «فقط با استفاده از صفحات ارائه‌شده پاسخ دهید. هر ادعا را با (doc_id, page) مستند کنید و نام ناحیه (شکل، جدول، پاراگراف) را بیاورید.»

  5. نواحی شواهد (Evidence regions): پاسخ مدل را پس‌پردازش کنید تا نواحی ارجاع‌شده استخراج شوند. اگر مدل VLM کادر محدودکننده خروجی می‌دهد (مدل Qwen3-VL این قابلیت را دارد)، آن‌ها را به‌صورت لایه‌ی رویی در نمایشگر سند رندر کنید.

  6. طرح پشتیبان OCR: برای صفحاتی که فرمول‌های زیادی دارند (تشخیص از طریق هیوریستیک واریانس تصویر)، مدل Nougat یا dots.ocr را اجرا کنید و متن استخراج‌شده را به‌عنوان کانالی مجزا در کنار تصویر بفرستید.

  7. ارزیابی (Eval): بنچ‌مارک ViDoRe v3 (معیار nDCG@5 برای بازیابی) و M3DocVQA (دقت پرسش‌وپاسخ چندصفحه‌ای) را اجرا کنید. همین فرایند را با پایپ‌لاین «اول OCR، بعد متن» روی همین داده‌ها و با همان مدل پاسخ‌دهنده نیز انجام دهید. یک ماتریس مقایسه‌ای از نوع محتوا × رویکرد بازیابی تولید کنید.

  8. رابط کاربری (UI): کار را با یک پیش‌نمونه در Streamlit شروع کنید؛ سپس نمایشگر نهایی را برای محیط عملیاتی با Next.js 15 بسازید تا لایه‌ی رویی شواهد را صفحه به صفحه نشان دهد.

استفاده از ابزارهای واقعی

$ doc-qa ask "what was the 2024 operating margin change for segment EMEA?"
[retrieve]   top-5 pages in 320ms (ColQwen2.5, MaxSim, Vespa)
[synth]      qwen3-vl-30b, 1.4s, cited (form-10k-2024, p. 88) + (..., p. 92)
answer:
  EMEA operating margin moved from 18.2% to 16.8%, a 140bp decline.
  cited: 10-K-2024.pdf p.88 (Table 4, Segment Operating Margin)
         10-K-2024.pdf p.92 (MD&A, Operating Performance)
[viewer]     open with highlighted bounding boxes overlaid on p.88 Table 4

خروجی نهایی

فایل outputs/skill-doc-qa.md خروجی قابل‌تحویل را تشریح می‌کند: یک سیستم چندوجهی پرسش‌وپاسخ اسناد مبتنی بر تعامل متأخر تصویرمحور که روی یک مجموعه‌داده‌ی مشخص تنظیم شده و عملکرد آن در مقایسه با خط مبنای «اول OCR، بعد متن» بر اساس ViDoRe v3 ارزیابی شده است.

وزن معیار شیوه‌ی سنجش
25 دقت ViDoRe v3 / M3DocVQA ارقام بنچ‌مارک در مقایسه با خط مبنای OCR-متن و لیدربورد منتشرشده
20 ارجاع‌دهی مکانی نواحی شواهد درصدی از نواحی مستندشده که واقعاً شامل بخش پاسخ هستند
20 مهندسی تاخیر و ذخیره‌سازی نسبت فشرده‌سازی DocPruner، صدک 95 ایندکس، صدک 95 پاسخ‌دهی
20 استدلال چندصفحه‌ای دقت روی 100 سوال چندصفحه‌ای که به‌صورت دستی برچسب‌گذاری شده‌اند
15 تجربه کاربری بررسی منابع وضوح نمایشگر، دقت لایه‌ی رویی شواهد، ابزارهای مقایسه‌ی شانه‌به‌شانه
100

تمرین‌ها

  1. دو مدل ColQwen2.5-v0.2 و ColQwen3-omni را روی یک مجموعه‌داده‌ی یکسان مقایسه کنید. هر کدام در چه صفحاتی درست و در کجا اشتباه عمل می‌کنند؟ یک برچسب «کلاس محتوا» به ایندکس اضافه کنید تا اسناد بر اساس نوع‌شان مسیریابی شوند.

  2. امبدینگ‌ها را با شدت بالا (75%، 90%) هرس کنید. نقطه‌ی افت ناگهانی فشرده‌سازی را پیدا کنید؛ یعنی جایی که nDCG@5 در ViDoRe به پایین‌تر از خط مبنای OCR سقوط می‌کند.

  3. یک سیستم هیبرید بسازید: پایپ‌لاین «اول OCR، بعد متن» و ColQwen را به‌صورت موازی اجرا کنید، نتایج را با رتبه‌بندی فیوژن متقابل (RRF) ادغام کرده و با یک کراس‌ان‌کودر بازرتبه‌بندی کنید. آیا سیستم هیبرید از اجرای مستقل هر کدام بهتر است؟ بیشترین مزیت آن در کجاست؟

  4. مدل Qwen3-VL-30B را با یک VLM سبک‌تر مثل Qwen2.5-VL-7B جایگزین کنید. نمودار دقت به‌ازای هزینه را بسنجید.

  5. پشتیبانی از یادداشت‌های دست‌نویس را اضافه کنید. اسناد دست‌نویس را رندر کنید، با ColQwen امبدینگ بگیرید و کیفیت بازیابی را اندازه بزنید. خروجی را با پایپ‌لاین مخصوص OCR دست‌خط مقایسه کنید.

اصطلاحات کلیدی

اصطلاح آنچه افراد می‌گویند معنای واقعی آن
تعامل متأخر (Late interaction) «بازیابی به سبک ColPali» توکن‌های پرامپت به‌طور مستقل در برابر تکه‌های صفحه امتیاز می‌گیرند؛ MaxSim نتایج را تجمیع می‌کند
چندبرداری (Multi-vector) «امبدینگ به‌ازای هر تکه» هر سند شامل بردارهای متعددی است، نه یک بردار واحد پولینگ‌شده
بیشینه‌ی شباهت (MaxSim) «امتیازدهی تعامل متأخر» برای هر توکنِ پرامپت، بیشترین شباهت میان بردارهای سند محاسبه شده و جمع زده می‌شود
DocPruner «فشرده‌سازی تکه‌ها» روش هرس کردن سال 2026 که نیمی از تکه‌ها را با کمترین افت دقت نگه می‌دارد
ViDoRe v3 «بنچ‌مارک بازیابی اسناد» استاندارد سال 2026 برای سنجش بازیابی اسناد تصویری
ناحیه‌ی شواهد (Evidence region) «کادر محدودکننده‌ی مستند» یک کادر مستطیلی روی صفحه‌ی مبدأ که بخش پاسخ را مشخص می‌کند
طرح پشتیبان OCR (OCR fallback) «کانال فرمول‌ها» پایپ‌لاین متنی که در صفحات پر از فرمول یا جدول، در کنار تصویر استفاده می‌شود

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسچرا در مرز دانش 2026، روش تعامل متأخر دیداری‌محور به روش OCR و سپس متن روی فایل‌های PDF مالی و مقالات علمی ترجیح داده می‌شود؟
  2. پیش از درسمنظور از تعامل متأخر (late interaction) در بازیابی به سبک ColPali چیست؟
  3. حین درسامبدینگ ColQwen تقریباً چند بردار تکه به ازای هر صفحه تولید می‌کند و این امر چه مشکل ذخیره‌سازی‌ای ایجاد می‌کند؟
  4. حین درسابزار DocPruner در این پایپ‌لاین چه نقشی دارد؟
  5. حین درسچرا هنوز برای برخی صفحات یک کانال متنی OCR اضافه می‌شود؟
  6. پس از درساین پروژه پایانی چه بنچمارکی را برای ارزیابی بازیابی دیداری‌محور هدف قرار می‌دهد؟
  7. پس از درسمنظور شیوه‌نامه‌ی نمره‌دهی از ارجاع‌دهی مکانی به ناحیه‌ی شواهد (evidence-region grounding) چیست؟

سؤالات متداول

تعامل متأخر (Late Interaction) در اسناد تصویری چگونه کار می‌کند؟

در تعامل متأخر به‌جای ساخت یک بردار منفرد برای کل سند، به ازای هر تکه از تصویر صفحه یک بردار ساخته می‌شود؛ سپس هر توکن پرس‌وجو با تمام تکه‌ها مقایسه شده و بیشینه‌ی شباهت‌ها (MaxSim) با هم جمع می‌شوند.

DocPruner چه نقشی در پایپ‌لاین چندبرداری دارد؟

چون هر صفحه نزدیک به 2048 بردار تولید می‌کند، حجم ذخیره‌سازی بسیار بالا می‌رود؛ DocPruner با حفظ تکه‌های پرسیگنال، حجم بردارها را تا 50% کاهش داده و دقت را تقریباً حفظ می‌کند.

طرح پشتیبان OCR در چه مواقعی استفاده می‌شود؟

در صفحاتی که تراکم بالایی از فرمول‌های پیچیده‌ی ریاضی یا جداول بسیار فشرده دارند، خروجی ابزارهایی مانند Nougat یا dots.ocr به‌صورت کانال متنی کمکی در کنار تصویر صفحه قرار می‌گیرد.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.