از CLIP به BLIP-2 Q-Former به عنوان پل مودالیت
Type: Build
Languages: Python (stdlib, cross-attention + learnable-query demo)
Prerequisites: Phase 12 · 02 (CLIP), Phase 7 (Transformers)
Time: ~180 minutes
اهداف یادگیری
- توضیح دهید که چرا یک گلو قنبری قابل آموزش بین یک کدگر بینایی منجمد و LLM منجمد از تنظیمات کامل در هزینه و ثبات بهتر است.
- یک بلوک توجه متقابل را اجرا کنید که در آن مجموعه ای ثابت از سوالات قابل یادگیری به ویژگی های تصویر خارجی توجه می کند.
- از طریق دو مرحله پیش تمرین BLIP-2 عبور کنید: نمایش (ITC + ITM + ITG) سپس تولید (خسارت LM با کلاهک بازدارنده یخ زده).
- Q-Former را با پروژکتور MLP ساده تر که در LLaVA استفاده می شود مقایسه کنید و استدلال کنید که هر انتخاب برنده است.
مشکل
شما یک ViT منجمد دارید که 256 توکن پچ از dim 1408 در هر تصویر تولید می کند. شما یک LLM منجمد 7B دارید که انتظار گنجاندن توکن های dim 4096 را دارد. پل واضح یک لایه خطی از 1408 تا 4096 کار می کند، اما تغذیه تمام 256 توکن پچ به زمینه LLM هزینه 256 توکن اضافی در هر تصویر است. بیش از یک دسته از 32 تصویر که 8192 توکن مصرف شده توسط روش بصری تنها است.
سوال BLIP-2: آیا می توانید نمایش تصویر 256 توکن را به توکن های بسیار کمتری (بگو 32 توکن) فشرده کنید در حالی که اطلاعات کافی برای LLM برای عنوان، پاسخ به سوالات و استدلال در مورد تصویر حفظ می شود؟ و می توانید این پل را بدون لمس کردن ستون فقرات یخ زده، با نگه داشتن هزینه آموزش در پارامترهای پل آموزش دهید؟
پاسخ: یک Q-Former. 32 متری "سوال" قابل یادگیری که به توکن های پیچ ViT مراجعه می کنند، نتیجه گیری بصری 32 توکن را که LLM مصرف می کند تولید می کند. 188M پارامتر کل. آموزش دیده است با اهداف متناقض، تطابق و تولید قبل از اینکه به LLM دست بزند.
مفهوم
سوالات قابل یادگیری
ترفند اصلی Q-Former: به جای اجازه دادن به توکن های متن LLM به تکه های تصویر، مجموعه جدیدی از 32 متری سوال قابل یادگیری را معرفی کنید Qو اجازه دهید آنها به پیچ های تصویر توجه کنند. سوالات پارامترهای مدل هستند آنها در طول آموزش یاد گرفته شده اند و برای هر تصویر از همان 32 سوال استفاده می شود.
پس از توجه متقابل، هر سوال خلاصه فشرده ای از تصویر را نگه می دارد "تصفیهٔ شی اصلی را توصیف کنید"، "تصفیهٔ پس زمینه را توصیف کنید"، "تعداد شیء ها" و غیره. سوالات به معنای واقعی کلمه در برچسب های معنوی تخصص ندارند؛ آنها هر چیزی را که کدگذاری باعث کاهش از دست دادن در جریان است یاد می گیرند.
معماری
Q-Former یک ترانسفورماتور کوچک (12 لایه، ~ 100M پارام) با دو مسیر است:
- مسیر سوال: 32 ویکتور سوال از طریق خود توجه (در میان خود) جریان می یابد، سپس توجه متقابل بر روی توکن های پچ ViT منجمد، سپس FFN.
- مسیر متن: یک کدگر متن شبیه به BERT خود توجه و وزن FFN را با مسیر جستجو به اشتراک می گذارد. توجه متقاطع برای مسیر متن غیرفعال است.
در زمان آموزش هر دو مسیر اجرا می شود. سوالات و متن از طریق توجه به خود به اشتراک گذاشته می شوند، به این معنی که سوالات می توانند بر روی متن برای وظایف مورد نیاز آن (ITM، ITG) شرایطی قرار دهند. در زمان نتیجه گیری برای تحویل VLM، فقط سوالات از طریق جریان می شوند و 32 توکن بصری به دست می آورند.
آموزش دو مرحله ای
BLIP-2 دو مرحله قبل از تمرینات انجام می دهد:
مرحله اول: یادگیری نمایندگی (بدون مدرک کارشناسی ارشد) سه ضرر:
- ITC (تصاویر-متن متناقض): متناقض سبک CLIP بین توکن های جستجو جمع شده و توکن CLS متن.
- ITM (تلاش تصویر-متن): طبقه بندی کننده دوگانه آیا این جفت تصویر-متن مطابقت دارد؟ سخت منفی-معدن.
- ITG (تولید متن مبتنی بر تصویر): LM علت بر روی متن، به دنبال سوالات است.
فقط قطار هاي "کيو فارمر" و "وي تي" منجمد شده
مرحله 2: یادگیری تولید. یک LLM منجمد (OPT-2.7B یا Flan-T5-XL، و غیره) را وصل کنید. 32 محصول سوال را از طریق یک لایه خطی کوچک به امبدن LLM طراحی کنید. آنها را به پیامک متن آماده کنید. فقط پروژکتور خطی و Q-Former را در LM از دست بدهید.
بعد از مرحله 2، Q-Former + پروژکتور کاملاً آداپتور بصری است. در نتیجه: تصویر → ViT → Q-Former → proj خطی → پیش از متن → LLM منجمد تولید می کند.
اقتصاد پارامتر
BLIP-2 با ViT-g/14 (1.1B، منجمد) + OPT-6.7B (6.7B، منجمد) + Q-Former (188M، آموزش دیده) = 8B کل، 188M آموزش دیده. تنها Q-Former حدود 2.4% از پارامترهای کامل استک است. هزینه آموزش منعکس از این است: روز در چند A100s در مقابل هفته برای پایان به پایان.
کیفیت: BLIP-2 با Flamingo-80B در VQA صفر شات مطابقت دارد و 50 برابر کوچکتر است. پل کار می کند.
InstructBLIP و Q-Former که به آموزش ها آگاه است
InstructBLIP (2023) Q-Former را با ورودی اضافی: متن دستورالعمل خود گسترش می دهد. در زمان توجه متقابل، سوالات اکنون به هر دو تکه تصویر و دستورالعمل دسترسی دارند. سوالات می توانند به جای یادگیری یک خلاصه ثابت، به طور تخصصی به هر دستورالعمل ("تعداد ماشین ها"، "روح روحیه را توصیف کنید") تخصص کنند. شاخص بر روی وظایف انجام شده افزایش می یابد.
مینی جی پی تی ۴ و رویکرد تنها با پروژکتور
MiniGPT-4 Q-Former را حفظ کرد اما فقط پروژکتور خطی خروجی را آموزش داد در حالی که همه چیز دیگر را منجمد کرد. ارزان است، اما هزینه کیفیت است سوالات BLIP-2 بود، نه شما. برای تکرار سریع خوب است، بهترین معماری نیست.
چرا LLaVA ساده تر شد
LLaVA (2023, درس 12.05) جایگزین Q-Former با یک MLP ساده دو لایه ای است که هر توکن پچ ViT را به فضای LLM 576 توکن در هر تصویر برای یک شبکه 24x24 قرار می دهد، همه به LLM تغذیه می شود. فشرده شدن بدتر اما اجازه می دهد تا LLM حضور بیش از پیچ های خام. در آن زمان این بحث برانگیز بود؛ تا اواخر سال 2023 آن غالب بود زیرا داده های آموزش بصری (LLaVA-Instruct-150k) ثابت کرد که MLP می تواند برای حفظ سیگنال کافی آموزش داده شود. تفاوت: زمینه LLaVA سریعتر پر می شود، اما به طور طبیعی به تصویر و ویدیو چندگانه می شود.
تا سال 2026 تقسیم میدان: Q-Former در جایی که بودجه توکن مهم است (ویدیو طولانی، بسیاری از تصاویر) زنده می ماند؛ پروژکتور MLP در جایی که کیفیت خام هر توکن اولویت است، تسلط دارد.
توجه متقابل: فلامینگو، اجداد
فلامینگو (درسی 12.04) پیش از BLIP-2 بود و از همان ایده توجه متقابل استفاده می کرد اما در هر لایه LLM منجمد، نه به عنوان یک پل. BLIP-2 نشان داد که شما می توانید فقط به لایه ورودی فشرده شوید و هنوز هم کار کنید. دوقلوها و Idefics هر دو را ترکیب می کنند: توکن ورودی متقابل و توجه متقابل در بسته برای چند عکس در زمینه.
نسل 2026
- Q-Former: BLIP-2، InstructBLIP، MiniGPT-4 و بیشتر مدل های زبان ویدیویی به دلایل بودجه توکن.
- نمونه گیری مجدد گیرنده: فرقی از فلامینگو (درسی 12.04) ؛ خانواده Idefics، Eagle، OmniMAE.
- پروژکتور MLP: LLaVA، LLaVA-Next، LLaVA-OneVision، کامبریان-1
- بازداشتگاه توجه: ویلا، پالگما
همه این چهار مورد معتبر هستند. سوال مهم این است که آیا شما محدود به بودجه توکن هستید یا کیفیت توکن.
ازش استفاده کن
code/main.pyیک توجه متقابل به سبک Q-Former ایجاد می کند:
- شبیه سازی 256 توکن پچ تصویر (dim 128).
- 32 سوال قابل یادگیری را به صورت یکبار (دیم 128)
- توجه متقابل نقطه-نتج را اجرا کنید (Q از سوالات، K/V از پچ ها).
- پروژه به LLM-dim (512) از طریق یک لایه خطی.
- 32 تا توکن بصري آماده براي مدرک تحصيلي رو باز کن
تمام ریاضیات در پایتون خالص (لپ ها بر روی بردار ها). بازیگری اما شکل درست. ماتریس وزن توجه چاپ شده است تا بتوانید ببینید که هر پرسشی از کدام پیچ گرفته شده است.
-باده
این درس به ما کمک می کندoutputs/skill-modality-bridge-picker.mdبا توجه به یک پیکربندی هدف VLM (تعداد توکن های کدر دید، بودجه زمینه LLM، محدودیت های پیاده سازی، هدف کیفیت) ، آن را توصیه می کند Q-Former vs MLP vs Perceiver resampler با توجیه کوتاه و یک تخمین شمار پارامتر برای هر پل.
تمرینات
- بلاک توجه متقابل را در PyTorch پیاده سازی کنید. بررسی کنید که با 32 سوال و 256 کلید / ارزش، ماتریس وزن توجه 32 x 256 است و هر ردیف پس از softmax به 1 می رسد.
- در مرحله اول BLIP-2 Q-Former سه خروجی را همزمان اجرا می کند: ITC، ITM، ITG. امضای پیش رو برای هر یک را در کد مزخرفی بنویسید. کدام یک نیاز به مسیر کدگذاری متن را فعال می کند؟
- مقایسه تعداد پارامتر: Q-Former (12 لایه، 768 پنهان) در مقابل یک پروژکتور MLP 2 لایه (1408 → 4096، دو لایه). در چه مقیاس LLM هزینه 188M Q-Former در بهره وری آموزش باز می گردد؟
- بخش 3.2 مقاله BLIP-2 (arXiv:2301.12597) را در مورد چگونگی ابتدایی Q-Former بخوانید. توضیح دهید که چرا ابتدایی از پایگاه BERT (نه تصادفی) به سرعت به هم نزدیک می شود.
- برای یک ویدیو ۱۰ دقیقه ای با ۱ FPS که به ۶۰ فریم نمونه شده است، هزینه توکن در هر فریم را در (Q-Former → ۳۲ توکن/ فریم) به مقابل (MLP پروژکتور → ۵۷۶ توکن/ فریم) محاسبه کنید. کدام یک از این توکن ها در پنجره زمینه LLM ۱۲۸k قرار دارد؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| Q-Former | "Querying transformer" | Small transformer with 32 learnable query vectors that cross-attend to frozen ViT features |
| Learnable queries | "Soft prompt for vision" | A fixed set of parameters that serve as the query side of cross-attention; learned per model, shared across all inputs |
| Cross-attention | "Q from here, K/V from there" | Attention where query, key, and value come from different sources; how the queries pull from ViT patches |
| ITC | "Image-text contrastive" | CLIP-style loss applied to Q-Former pooled queries vs text CLS |
| ITM | "Image-text matching" | Binary classifier on hard-negative-mined pairs; forces the queries to discriminate fine-grained mismatches |
| ITG | "Image-grounded text generation" | Causal LM loss where text is generated conditioned on queries; forces queries to encode text-decodable content |
| Two-stage pretraining | "Representation then generative" | Stage 1 trains Q-Former alone (ITC/ITM/ITG); Stage 2 attaches frozen LLM and trains only the projection + Q-Former |
| Frozen backbone | "Do not finetune" | The vision encoder and LLM weights are fixed; only the bridge trains |
| Projection head | "Linear to LLM dim" | Final linear layer mapping Q-Former output to the LLM's embedding dimension |
| Perceiver resampler | "Flamingo's version" | Similar learnable-query cross-attention, used by Flamingo at every layer rather than as a single bridge |
خواندن بیشتر
- Li et al. — BLIP-2 (arXiv:2301.12597) کاغذ اصلی
- Li et al. — BLIP (arXiv:2201.12086) پیشگام با سه گروه ITC/ITM/ITG.
- Li et al. — ALBEF (arXiv:2107.07651) "آلائن قبل از فیوز" اجداد مفهومی مرحله 1 آموزش.
- Dai et al. — InstructBLIP (arXiv:2305.06500) Q-Former که از آموزش آگاهه
- Zhu et al. — MiniGPT-4 (arXiv:2304.10592) رویکرد فقط با پروژکتور
- Jaegle et al. — Perceiver IO (arXiv:2107.14795) معماری عمومی برای یادگیری-پرسش توجه متقابل.
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.