Phase 12: Multimodal AI

(كولبالي) و (راغ) الوثيقة الأصلية للرؤية

يقوم RAG التقليدي بتحليل الملفات PDF إلى نص، وتقسيمها إلى قطع، وتضمنها إلى قطع، وتخزين المتجهات. كل خطوة تفقد الإشارة: OCR يسقط بيانات الرسم البياني، كسر الجزء الصفوف الجدولية، إضافة نص تجاهل الأرقام. طرح كولبالي (فايسيه وآخرون ، يوليو 2024) السؤال الأسهل: لماذا استخراج النص على الإطلاق؟ تضمين صورة الصفحة مباشرة عبر PaliGemma، واستخدام التفاعل المتأخر على النمط ColBERT لاسترداد، والاحتفاظ بجميع التخطيط والأرقام والخطوط، وصيغة إشارة الوثيقة تحمل. مقاييس نشرت: 20-40% دقة أفضل من نهاية إلى نهاية من النص-RAG على الوثائق الغنية بالبصر. كولكوين2، كولسمول، و VisRAG تمدد النمط. هذه الدروس تقرأ أطروحة الرؤية الأصلية RAG وبناء مؤشر صغير مثل ColPali.

Type: Build

Languages: Python (stdlib, multi-vector indexer + MaxSim scorer)

Prerequisites: Phase 11 (LLM Engineering — RAG basics), Phase 12 · 05 (LLaVA)

Time: ~180 minutes

أهداف التعلم

  • شرح الفرق بين استرداد المرموزين الثنائيين (متجه واحد لكل وثيقة) والاسترداد المتأخر للتفاعل (العديد من المتجهات لكل وثيقة).
  • وصف عملية ColBERT MaxSim وكيف ColPali يعملها من رموز نص إلى تصفيح الصورة.
  • قم ببناء مؤشر صغير مثل ColPali: الصفحة → إدخال اللمسات الخاصة بك → MaxSim على إدخال المطلوبات → الصفحات العليا.
  • مقارنة مولد ColPali + Qwen2.5VL مقابل النص-RAG + GPT-4 على صورت استخدام الفواتير / التقارير المالية.

المشكلة

يرمي النص-RAG على الملفات الفيديوية معظم الوثيقة. عادة ما يكون نمو الإيرادات في الربع الثالث من التقرير المالي في الرسم البياني؛ وتوجد نتائج تقرير طبي في صور ملصقة؛ ويحتوي كتلة توقيع عقد قانوني على حقيقة تخطيط، وليس حقيقة نصية.

خط الأنابيب النصية-RAG:

  1. PDF → نص عبر OCR / pdftotext.
  2. النص → 300-500 قطعة رمزية.
  3. شيك → إضافة ثنائية المشفير (متجه واحد).
  4. استفسار المستخدم → إضافة → تشابه كوسين → قطع top-k.
  5. الاختبارات + السؤال → ماجستير في العلوم

خمسة خطوات خسارة، الرسوم البيانية غير المسجلة، الجداول مكسورة إلى قطع، التخطيط متعدد الأعمدة مسطحة، وتختفي الملحقات الرقمية.

حل ColPali: تخطي OCR ، تضمين صورة الصفحة مباشرة. استخدم التفاعل المتأخر على النمط ColBERT لاسترداد حتى يتمكن النموذج من الاحتفاظ بمصطلحات حبة دقيقة في وقت الاستفسار.

المفهوم

كولبرت (2020)

كولبرت (Khattab & Zaharia, arXiv:2004.12832) هو طريقة لاسترداد النص. بدلا من متجه واحد لكل وثيقة، فإنه ينتج متجه واحد لكل رمز. في وقت الاستفسار:

  • تتلقى رموز الاستفسار إضافة خاصة بها (مجهرات N_q).
  • تتلقى رموز الوثائق تضمينات (متجهات N_d ، عادة ما يتم تخزينها).
  • النتيجة = مجموع على رموز الاستفسار من أقصى على رموز الوثائق من تشابه الكوسين: Σ_i max_j cos(q_i, d_j).

هذه عملية ماكس سيم كل رمز استفسار "تختار" أفضل رمز وثيقة مطابقة. النتيجة النهائية هي المبلغ.

المزايا: التذكر القوي، يتعامل مع التعريفات على مستوى المصطلحات. السلبيات: ن_د المتجهات لكل وثيقة، التخزين مكلف.

(كولبالي)

كولبالي (فايس وزملاءه، arXiv:2407.01449) يطبق نمط كولبرت على الصور.

  • يتم ترميز كل صفحة بواسطة PaliGemma (لغة ViT +) إلى إدخالات اللمسات: ن_ب متجهات لكل صفحة.
  • يتم ترميز كل استفسار مستخدم (نص) في إضافة رمز الاستفسار: ن_ق المتجهات.
  • النتيجة = Σ_i max_j cos(q_i, p_j) ، أي، MaxSim على استفسار-نص-الرموز والصفحة-الصورة-المصطلحات.
  • استعاد الصفحات الأولى من الـ "ك" حسب النتيجة الإجمالية

في وقت استهلاك الوثائق: تضمين كل صفحة مع PaliGemma، تخزين جميع إدخالات المكافآت. في وقت الاستفسار: تضمين رموز الاستفسار، حساب MaxSim ضد جميع إدخالات الصفحة المخزنة، عودة صفحة top-k.

المزايا: نهاية إلى نهاية تفوق النص-RAG بنسبة 20-40٪ على الوثائق الغنية بصريا. كل متجه إصطحاف يلتقط التخطيط المحلي والمحتوى.

السلبيات: N_p المفاتيح × 4 بايت العائمة × D-dim متجهات لكل صفحة = التخزين ينمو بسرعة. تخفيف من قبل PQ / OPQ كمية.

كولكوين2 و كولسمول

كولكوين2 (إيللين-تيك، 2024-2025) تبادل بالي جيما بـ كيوين2-فيل. أفضل مرموزة قاعدة، أفضل استرداد.

ColSmol هو التغير على نطاق أصغر للاستخدام المحلي / الحافة. يعمل جهاز ColSmol Retriever عند ~ 1B المعلمات على GPU المستهلك.

(فيسر)

ويزراج (يو وآخرين، arXiv:2410.10594) هو نوع مختلف: بدلا من ماكس سيم على اللصوص، تجمع كل صفحة في متجه واحد مع VLM ثم استرداد ثنائي المشفير.

التنازل عن الجودة مقابل التكلفة: كولبالي للجودة، و VisRAG للقياس.

M3DocRAG

M3DocRAG (Cho et al., arXiv:2411.04952) يوسع الاسترداد المتعدد المودات إلى التفكير المتعدد الوثائق متعدد الصفحات. يسترد الصفحات عبر المستندات، ويؤلف سياقًا متعدد الصفحات لـ VLM.

فيدور مقياس

مقياس المرجعي المرافق لـ ColPali. تقييم استعادة الوثائق المرئية. تتضمن المهام التقارير المالية والأوراق العلمية والوثائق الإدارية والسجلات الطبية واليدويات. المقياس: nDCG@5.

تسجل ColPali-v1 ~ 80% nDCG@5 على ViDoRe؛ نص-RAG على نفس الوثائق تسجل ~ 50-60%.

خط أنابيب RAG من نهاية إلى نهاية

لـ (RAG) الراية:

  1. إدخال: PDF → صور الصفحة → تشفير PaliGemma → تخزين جميع إدخالات المكافأة.
  2. استفسار: نص المستخدم → إضافة رمز الاستفسار → ماكس سيم ضد جميع الصفحات المفهومة → الصفحات العليا.
  3. توليد: صور الصفحة العليا + استفسار → VLM (Qwen2.5-VL أو كلود) → الإجابة.

لا توجد أوكر في أي مكان، الأرقام والخطط والخطوط، التخطيط كلها تدفق في الإجابة.

حسابات التخزين

تقرير مالي من 50 صفحة مع 729 إصلاحات لكل صفحة و 128 إضافة:

  • ColPali: 50 729 128 * 4 بايت = ~ 18 MB خام، ~ 4 MB بعد PQ.
  • النص-RAG: 50 قطعة 768-dim 4 بايت = ~ 150 كيلو بيت.

كولبالي هو ~ 30x أكثر تخزين لكل وثيقة. على مقياس، OPQ / PQ يقلله إلى ~ 5-10x، عادة ما يتحمل.

عندما نص-RAG لا يزال يفوز

  • وثائق نصية نقية بدون إشارة ترتيب (مقالات ويكي، سجلات الدردشة). Text-RAG أبسط وأقله التخزين.
  • أرشيفات مليوني صفحة حيث التخزين يهيمن على التكلفة
  • متطلبات تنظيمية صارمة تتطلب نص OCR قابل الاستخراج إلى جانب الاستخراج.

بالنسبة لكل شيء آخر في عام 2026 تقارير مالية ورقائق علمية، عقود قانونية، سجلات طبية، وثائق UX رؤية-أصل RAG يفوز.

استخدمها

code/main.py:

  • رمزية اللمسات اللعبة: تقوم بتخريط "صفحة" (شبكة صغيرة من متجهات الميزات) إلى مجموعة من إضافة اللمسات.
  • مستحق النقاط ماكس سيم: يحسب النقاط على النمط كولبيرت بين مجموعة إضافة رمز الاستفسار ومجموعة إصلاحات الصفحة.
  • فهرس 5 صفحات لعبة، يدير 3 استفسارات، يعود أعلى-ك مع نقاط.

أرسله

هذا الدرس يُنتجoutputs/skill-vision-rag-designer.mdفي حالة وجود مشروع وثيقة-RAG، يختار ColPali / ColQwen2 / VisRAG / text-RAG ويزيد حجم التخزين.

التمارين

  1. تقرير سنوي يبلغ 200 صفحة في 729 ملصق لكل صفحة، إيمب 128 درجة، 4 بايتات تعبئة. حساب التخزين الخام وتخزين PQ مضغوطة (8x).
  1. ماكس سيم = Σ_i max_j cos(q_i, p_j) ما الذي يحتوي عليه هذا المجموع الذي لا يحتوي عليه المتوسط البسيط؟
  1. فهرس ColPali الصفحات كمجموعات من الإصلاحات. ما التغييرات إذا قمنا بدلاً من ذلك فهرس على مستوى الكلمات (كما يفعل ColBERT) ؟ التداولات؟
  1. تصميم خط الأنابيب من نهاية إلى نهاية لمجموعة من صفحة 1M مع ميزانية تأخر 500ms لكل استفسار. اختر ColQwen2 / VisRAG وتبرير.
  1. اقرأ M3DocRAG (arXiv:2411.04952). وصف نمط الاهتمام متعدد الصفحات وكيف يختلف عن استرداد ColPali من صفحة واحدة.

الشروط الرئيسية

TermWhat people sayWhat it actually means
Late interaction"ColBERT-style"Retrieval using per-token or per-patch embeddings + MaxSim, not a single doc vector
MaxSim"Max-over-patches"For each query token, pick the highest-similarity document token; sum across query
Bi-encoder"Single-vector"One vector per document; faster but loses granularity
Multi-vector"Many-vectors-per-doc"Store N_p vectors per document / page; storage cost grows but recall improves
Patch embedding"Page feature"One vector per image patch from a VLM encoder, cached per page
ViDoRe"Vision doc bench"ColPali's benchmark suite for visual document retrieval
PQ quantization"Product quantization"Compression that maintains vector similarity while shrinking storage ~8x

المزيد من القراءة

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.