Phase 12: Multimodal AI

الاهتمام المتقاطع مع فلامينغو والبوابات لشركات VLM القليلة

فلامينغو (DeepMind) (2022) فعل شيئين قبل أي شخص آخر. أظهرت أن نموذج واحد يمكن أن يعالج تسلسلات متداخلة بشكل تعسفي من الصور والفيديوهات والنص. وأظهرت أن VLMs يمكن أن تتعلم في السياق إعطاء عرض بضع لقطات مع ثلاثة مثال (الصورة، عنوان) أزواج والنموذج أسعار صورة جديدة دون أي خطوة تراجع. الآلية: طبقات التأمل المتقاطع المفتوحة، مدخّلة بين الطبقات الحالية للمدرسة التدريبية المجمدة، مع بوابة tanh تعلمت تبدأ من الصفر بحيث يتم الحفاظ على قدرة النص في المدرسة التدريبية عند البدء. هذه الدروس تمشي في فلامينغو Perceiver resampler و مدخلة معبرة الاهتمام الهندسة المعمارية أسلاف إدخالات التوأم المتداخلة و اليدفيكس2 الوهم البصري.

Type: Learn

Languages: Python (stdlib, gated cross-attention + Perceiver resampler demo)

Prerequisites: Phase 12 · 03 (BLIP-2 Q-Former)

Time: ~120 minutes

أهداف التعلم

  • شرح كيفية الحفاظ على قدرة الدرجة الأولى على النص في المعلمات المتجمدة عند البدء عبر tanh(gate) = 0.
  • المشي من خلال إعادة العينة المفترس: N تصفيح الصورة → K ثابتة "مضبوطة" استفسارات عن طريق الانتباه المتقاطع.
  • وصف كيفية تعامل فلامينغو بعلامات الصور والنص المتداخلة مع التخفيض العوجي الذي يحترم وضع الصورة.
  • إعادة إنتاج هيكل استقالة متعددة الطرق بضع لقطات (3 مثال على عنوان الصورة ثم صورة استفسار).

المشكلة

بليب-2 يطعم 32 رمزاً بصرياً في طبقة المدخلات الخاصة بالشركة المجمدة. يعمل لصور واحدة لكل طلب ولكن ماذا لو أردت إطعام * العديد من الصور المتداخلة مع النص، مثل "هنا الصورة A، تحت عنوانها؛ هنا الصورة B، تحت عنوانها؛ الآن هنا الصورة C، تحت عنوانها"؟ يجب أن يتعامل الاهتمام الذاتي لجامعة الجامعة مع رموز الصورة ورسمات النص في تيار واحد، ويسأل عن المواقف التي يمكن أن تلتحق بأي صور يصبح مزعجًا.

رد فلامينغو: لا تغير تدفق المدخلات في ماجستير العلوم على الإطلاق. إدراج طبقات إضافية من الاهتمام المتبادل بين كتلة الجامعة القائمة. الـ"توكينات النصية" لا تزال تتدفق عبر الـ"مدرسة العليا" من خلال الاهتمام الذاتي السببي كما هو الحال دائماً بين كل بضع كتلة LLM، توكنات النص أيضا تصل إلى ميزات الصورة عبر طبقة مغلقة جديدة. البوابة (تبدأ إلى الصفر) تعني في الخطوة الصفر الطبقات الجديدة هي لا عمليات يتصرف النموذج تماما مثل LLM المتدربة مسبقا. مع تقدم التدريب يفتح البوابة ويتم تدفق المعلومات البصرية

الإجابة على السؤال الثاني: كيف تتعامل مع عدد متغير من الصور (0, 1 أو العديد) لكل عرض؟ إعادة العينة Perceiver وحدة صغيرة للتصوير المتقاطع التي تأخذ أي عدد من المفاتيح التي لديك وتنتج عددًا ثابتًا من الرموز البصرية الخفية. ترى طبقة التصوير المتقاطع نفس الشكل بغض النظر عن عدد الصور الموجودة في عرض.

المفهوم

الـ " LLM " المجمد

فلامينغو يبدأ مع التجميد Chinchilla 70B LLM. جميع الوزن 70B غير متأثرة. النص القائم الانتباه الذاتي و FFN تعمل بشكل طبيعي.

إعادة أخذ العينات من جهاز الاستشعار

لكل صورة في المشاركة، ينتج ViT ن علامات اللصوص. يحتوي resampler Perceiver على K ثابتة latences يمكن التعلم (Flamingo يستخدم K = 64). كل بلوك resampler هو خطوتين فرعية:

  1. الاهتمام المتقاطع: الـ K المتخفية تتواجد فوق رموز N المزيفات (Q من الـ Latents، K/V من المزيفات).
  2. الاهتمام الذاتي + FFN داخل الاختفاء.

بعد 6 كتلة إعادة العينة ، تكون الخروج K = 64 رموز بصرية من dim 1024, بغض النظر عن عدد المفاتيح التي أنتجتها ViT. صورة 224x224 (196 معصية) وصورة 480x480 (900 معصية) تخرج كرموز 64 معصية.

بالنسبة إلى الفيديو، يتم تطبيق الاختبار التجاري بشكل زمني: تنتج ملصقات كل إطار 64 متخفية، وتسمح التشفير الموضعي الزمني للنموذج بتمييز t=0 عن t=N. يصبح الفيديو الكامل رموزًا بصرية T * 64.

الاهتمام المتقاطع

بين كل طبقة M من LLM المجمدة (Flamingo يستخدم M=4) ، إدراج كتلة جديدة مغلقة للاهتمام المتقاطع:

x_after_llm_block = llm_block(x_before)
cross = cross_attn(x_after, resampler_output)
gated = tanh(alpha) * cross + x_after
x_before_next_block = gated
  • alphaهو مقياس قابل للتعلم يبدأ إلى الصفر.
  • tanh(0) = 0، لذلك في init الفرع المغطاة يساهم في الصفر.
  • كـalphaإذا ابتعدت عن الصفر، فإن مساهمة الانتباه المتقاطع تنمو بسلاسة.
  • يعني الاتصال المتبقية أنه حتى البوابة المفتوحة بالكامل لا تغطي تمثيل النص في الـ LLM؛ فإنه يضيف فقط معلومات بصرية في الأعلى.

هذا هو واحد أهم خيار التصميم في فلامينغو: التكييف البصري هو إضافي، مغلق، و صفر عند البدء. فلامينغو في الخطوة 0 هو Chinchilla 70B المثالي على المدخلات النصية فقط.

الاهتمام المتقاطع المخفي للمدخولات المتداخلة

في عرض مثل "<صورة A> عنوان A <صورة B> عنوان B <صورة C> ؟" ، يجب أن يرى كل رمز نص فقط الصور التي جاءت قبله في التسلسل. قناع الانتباه المتقاطع يفرض: رمز نصي في الموقف tيشارك فقط في رموز إعادة تقييم الصور التي يحتوي على مؤشر الصور i < i_tأينi_tهو الصورة الأخيرة قبل الموقفt"يرى فقط الصورة السابقة الأخيرة" أو "يرى كل الصور السابقة" هي خيارات صالحة؛ فلامينغو اختار الأول.

تعلم القليل من اللقطات في السياق

إنّ إشارة " فلامينغو " تبدو مثل:

<image1> A photo of a cat. <image2> A photo of a dog. <image3> A photo of a

يرى النموذج نمط الانتهاء ويخرج "الطائر" (أو أي صورة3 تظهر). لا خطوات تراجعية. القدرة على تعلم LLM في السياق المجمد يحمل من خلال الانتباه المتقاطع المغطاة.

بيانات التدريب

تدرب فلامينغو على ثلاث مجموعات بيانات:

  1. MultiModal MassiveWeb (M3W): 43 مليون صفحة ويب مع الصور والنص المتداخلين، وإعادة بناء ترتيب القراءة.
  2. أزواج الصورة والنص (ALIGN + LTIP): 4.4B أزواج.
  3. أزواج الفيديو-النص (VTP): 27 مليون شريط فيديو قصير.

OBELICS (2023) هو إعادة إنتاج مفتوحة للكوربس الويب المتداخل ، الذي تدرب عليه Idefics ، Idefics2 وأكثر نماذج "Flamingo-like" مفتوحة.

OpenFlamingo و Otter

OpenFlamingo (2023) هو التكاثر المفتوح. الهندسة المعمارية متطابقة (مُسَمِّلُ المُستقبل + إشراك متقاطع مغلق على LLaMA أو MPT المجمد). نقاط التفتيش في 3B، 4B، 9B. تتأخر الجودة في Flamingo بسبب قاعدة LLM أصغر وعدم وجود بيانات أقل.

Otter (2023) يبني على OpenFlamingo مع ضبط التعليمات على MIMIC-IT (مجموعة بيانات من التعليمات متعددة الطرق) ، مما يظهر إطار العمل التقاطعي المضمن للتعليمات التالية أيضًا.

النسل

  • Idefics / Idefics2 / Idefics3: سلسلة التأثير المتقاطع المفتوحة في Hugging Face ، أبسط تدريجياً (سقطت Idefics2 العينة الجديدة لصالح رموز المزج المباشر مع التجميع التكيفي).
  • الانتقال من فلامينغو إلى كاميليون: بحلول عام 2024 انتقلت العديد من الفرق إلى الاندماج المبكر (درس 12.11) ؛ لا يزال الانتباه المتقاطع المفتوح في نمط فلامينغو في الإنتاج حيث يتطلب تجميد العظم الفقري.
  • إدخال التوأم المتداخل: يرث مفهوميا مرونة فلامينغو المتداخلة في الشكل، على الرغم من أن الآلية الدقيقة هي ملكية.

مقارنة مع BLIP-2

BLIP-2Flamingo
Visual bridgeQ-Former once at inputGated cross-attention at every M layers
Visual tokens32 per image64 per image per cross-attn layer
Frozen LLMYesYes
Few-shot in-contextWeakStrong — the paper's centerpiece
Interleaved inputsNo native supportYes, the design target
Training data130M pairs1.3B pairs + 43M interleaved pages
Parameter count188M trained~10B trained (cross-attn layers)
ComputeDays on 8 A100sWeeks on thousands of TPUv4

اختر BLIP-2 للفحص الفوري للوحة واحدة على ميزانية. اختر Flamingo/Idefics2 للاستعراض المتداخل، القليل من اللقطات، أو متعددة الصور.

استخدمها

code/main.pyيظهر:

  1. إعادة تقييمات المراقب على 36 رمزة إصلاح مزيفة مع 8 خطوات لاختباري (انتباه متقاطع Python النقي).
  2. خطوة معلقة من خلال الاهتمام المتبادلalpha = 0→ الخروج يساوي المدخل (LLM غير متغير) ، ثم alpha = 2.0→ مساهمة بصرية مختلطة
  3. صانع قناع متداخلة ينتج قناع الإنتباه 2D لسلسلة "(الصورة 1) (النص 1) (الصورة 2) (النص 2)".

أرسله

هذا الدرس يُنتجoutputs/skill-gated-bridge-diagnostic.md. بالنظر إلى تشكيل VLM المفتوح (مثالا Y / N ، تردد التقاطع ، نظام البوابة) ، فإنه يحدد عناصر سلسلة Flamingo ويوضح استراتيجية التجميد. مفيد لإزالة أسباب تدهور أداء النص الدقيق (الرد: أصبح البوابة واسعة جدا بسرعة كبيرة).

التمارين

  1. حساب معدل المعلمات البصرية في فلامينغو-9B: 9B LLM + 1.4B طبقات الاهتمام المتقاطع المغطاة + 64M resampler. ما هو جزء من مجموع المعلمات المدربة؟
  1. تنفيذ بقايا مغلقةy = tanh(alpha) * cross + xفي بيتورش. أظهر تجربيا ذلك معalpha=0،y==xبالضبط في بداية.
  1. اقرأ قسم OpenFlamingo 3.2 (arXiv:2308.01390) حول كيفية التعامل مع صور متعددة في مجموعة عندما يكون لكل عرض عدد صور مختلف. وصف استراتيجية التشبيه.
  1. لماذا يسمح قناع الانتباه المتقاطع في فلامينغو بتسجيل رمز نصي فقط الصورة السابقة الأخيرة بدلا من جميع الصور السابقة؟ اقرأ ورقة فلامينغو القسم 2.4 وشرح التنازل.
  1. في سياق القليل من الصور: قم ببناء عرض مع 4 أمثلة من "صورة → لون الكائن الرئيسي" لفرقة فلامينغو الجديدة. وصف نمط الدقة المتوقع كما تختلف عدد الأمثلة من 0 إلى 8.

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

TermWhat people sayWhat it actually means
Perceiver resampler"Fixed-latent cross-attention"Module that produces K fixed tokens from a variable number of input patches
Gated cross-attention"Tanh-gated bridge"Residual layer y = tanh(alpha)*cross + x, learnable alpha, init 0
Interleaved input"Mixed sequence"Prompt format with images and text mixed freely in reading order
Frozen LLM"No LLM gradients"The text LLM's weights do not update; only resampler + cross-attn layers train
Few-shot"In-context examples"Give a few (image, answer) pairs in the prompt; model generalizes without finetuning
OBELICS"Interleaved web corpus"Open dataset of 141M web pages with images and text in reading order
Chinchilla"70B frozen base"Flamingo's frozen text LLM, from DeepMind's Chinchilla paper
Gate schedule"How alpha moves"The rate at which the cross-attention gate opens during training
Cross-attn frequency"Every M layers"How often a gated cross-attention block is inserted; Flamingo uses M=4
OpenFlamingo"Open reproduction"MosaicML/LAION open checkpoint at 3-9B; architecture-identical to Flamingo

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

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.