الاهتمام المتقاطع مع فلامينغو والبوابات لشركات VLM القليلة
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 هو خطوتين فرعية:
- الاهتمام المتقاطع: الـ K المتخفية تتواجد فوق رموز N المزيفات (Q من الـ Latents، K/V من المزيفات).
- الاهتمام الذاتي + 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 = gatedalphaهو مقياس قابل للتعلم يبدأ إلى الصفر.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 في السياق المجمد يحمل من خلال الانتباه المتقاطع المغطاة.
بيانات التدريب
تدرب فلامينغو على ثلاث مجموعات بيانات:
- MultiModal MassiveWeb (M3W): 43 مليون صفحة ويب مع الصور والنص المتداخلين، وإعادة بناء ترتيب القراءة.
- أزواج الصورة والنص (ALIGN + LTIP): 4.4B أزواج.
- أزواج الفيديو-النص (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-2 | Flamingo | |
|---|---|---|
| Visual bridge | Q-Former once at input | Gated cross-attention at every M layers |
| Visual tokens | 32 per image | 64 per image per cross-attn layer |
| Frozen LLM | Yes | Yes |
| Few-shot in-context | Weak | Strong — the paper's centerpiece |
| Interleaved inputs | No native support | Yes, the design target |
| Training data | 130M pairs | 1.3B pairs + 43M interleaved pages |
| Parameter count | 188M trained | ~10B trained (cross-attn layers) |
| Compute | Days on 8 A100s | Weeks on thousands of TPUv4 |
اختر BLIP-2 للفحص الفوري للوحة واحدة على ميزانية. اختر Flamingo/Idefics2 للاستعراض المتداخل، القليل من اللقطات، أو متعددة الصور.
استخدمها
code/main.pyيظهر:
- إعادة تقييمات المراقب على 36 رمزة إصلاح مزيفة مع 8 خطوات لاختباري (انتباه متقاطع Python النقي).
- خطوة معلقة من خلال الاهتمام المتبادل
alpha = 0→ الخروج يساوي المدخل (LLM غير متغير) ، ثمalpha = 2.0→ مساهمة بصرية مختلطة - صانع قناع متداخلة ينتج قناع الإنتباه 2D لسلسلة "(الصورة 1) (النص 1) (الصورة 2) (النص 2)".
أرسله
هذا الدرس يُنتجoutputs/skill-gated-bridge-diagnostic.md. بالنظر إلى تشكيل VLM المفتوح (مثالا Y / N ، تردد التقاطع ، نظام البوابة) ، فإنه يحدد عناصر سلسلة Flamingo ويوضح استراتيجية التجميد. مفيد لإزالة أسباب تدهور أداء النص الدقيق (الرد: أصبح البوابة واسعة جدا بسرعة كبيرة).
التمارين
- حساب معدل المعلمات البصرية في فلامينغو-9B: 9B LLM + 1.4B طبقات الاهتمام المتقاطع المغطاة + 64M resampler. ما هو جزء من مجموع المعلمات المدربة؟
- تنفيذ بقايا مغلقة
y = tanh(alpha) * cross + xفي بيتورش. أظهر تجربيا ذلك معalpha=0،y==xبالضبط في بداية.
- اقرأ قسم OpenFlamingo 3.2 (arXiv:2308.01390) حول كيفية التعامل مع صور متعددة في مجموعة عندما يكون لكل عرض عدد صور مختلف. وصف استراتيجية التشبيه.
- لماذا يسمح قناع الانتباه المتقاطع في فلامينغو بتسجيل رمز نصي فقط الصورة السابقة الأخيرة بدلا من جميع الصور السابقة؟ اقرأ ورقة فلامينغو القسم 2.4 وشرح التنازل.
- في سياق القليل من الصور: قم ببناء عرض مع 4 أمثلة من "صورة → لون الكائن الرئيسي" لفرقة فلامينغو الجديدة. وصف نمط الدقة المتوقع كما تختلف عدد الأمثلة من 0 إلى 8.
الشروط الرئيسية
| Term | What people say | What 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 |
المزيد من القراءة
- Alayrac et al. — Flamingo (arXiv:2204.14198)الورقة الأصلية
- Awadalla et al. — OpenFlamingo (arXiv:2308.01390)التكاثر المفتوح
- Laurençon et al. — OBELICS (arXiv:2306.16527) الجهاز الواسط المتداخل.
- Jaegle et al. — Perceiver IO (arXiv:2107.14795)-المعماريات العامة للمستقبل
- Li et al. — Otter (arXiv:2305.03726)نَسْل فلامينغو المُحَلَّقَةَ بإرشاداتِ.
- Laurençon et al. — Idefics2 (arXiv:2405.02246) تبسيط حديث لمنهج فلامينغو.
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.