Phase 12: Multimodal AI

LLaVA وتأثير التعليمات البصرية

LLaVA (أبريل 2023) هو أكثر المعماريات متعددة الطرق نسخة على الكوكب. واستبدل Q-Former من BLIP-2 مع MLP من 2 طبقات، واستبدل الانتباه المتقاطع المفتوح من Flamingo مع سلسلة رمزية ساذجة، وتدرب على 158k من المفاتيح البصرية التعليمية التي يولدها GPT-4 من الرسوم المقالة فقط. أي ممارس قام ببناء VLM بين عامي 2023 و 2026 قام ببناء نوع من LLaVA. إضافة LLaVA-1.5 AnyRes. (لافا-نيكست) ارتفعت في القرار LLaVA-OneVision صورة موحدة، صور متعددة، و فيديو في وصفة واحدة. هذه الدروس تقرأ الوصفة وتطبيق المبرمج وتفسير لماذا "البسيط يفوز".

Type: Build

Languages: Python (stdlib, projector + instruction-template builder)

Prerequisites: Phase 12 · 02 (CLIP), Phase 11 (LLM Engineering — instruction tuning)

Time: ~180 minutes

أهداف التعلم

  • بناء مُبْصِر MLP ذو 2 طبقات يقوم بتخطيط إدخالات ملصق ViT (dim 1024) إلى إدخال LLM's dim (dim 4096).
  • اتبع وصفة LLaVA المكونة من مرحلتين: (1) تحديد المبرمج على أزواج 558k من الأسماء، (2) ضبط التعليمات البصرية على 158k من المفاتيح التي تم إنشاؤها من GPT-4.
  • قم ببناء طلب في شكل LLaVA باستخدام حافظ مكان رمز الصورة، طلب النظام، وتحولات المستخدم / المساعد.
  • شرح لماذا انتقلت المجتمع من Q-Former إلى MLP على الرغم من فوز Q-Former في ميزانية رمزية.

المشكلة

ق-Former BLIP-2 (دروس 12.03) ضغط صورة إلى 32 رمزا. نظيفة، فعالة، جيدة للمعايير. ولكن لديها مشاكل اثنتين.

أولاً، يمكن تدريب Q-Former ولكن فقدانه ليس المهمة النهائية. مرحلة 1 تدرب على ITC + ITM + ITG. مرحلة 2 تدرب على فقدان LM. تتعلم الأسئلة بعض التمثيلات الوسطية التي يجب على LLM بعد ذلك فك رموزها. يتم فقدان المعلومات في عنق الزجاجة.

ثانياً، Q-Former يأخذ 188 مليون برميل، وفي مقياس 2023 من LLaVA كان عليك أن تصممها مع ماجستيرك الهدف. تغيير ماجستيرك، إعادة تدريب Q-Former. تغيير مرموز الرؤية، إعادة تدريب. كل مزيج كان مشروع بحث وتطوير منفصل.

كانت إجابة LLaVA محرجة بسهولة: خذ رموز البشطات 576 في ViT، ومرح كل منها من خلال MLP 2 طبقات (1024 → 4096 → 4096لا يوجد عقدة زجاجة، لا مرحلة 1 تدريب على أهداف غريبة، فقط تدريب المعلم على خسارة مباشرة ل.م.

من أين تأتي البيانات؟ المفهوم الثاني لـ LLaVA: استخدام GPT-4 (من نص فقط) لتوليد بيانات التعليمات. إطعام GPT-4 أسطوانة COCO و بيانات مربع الحدود لصور، اطلب منه أن ينتج محادثات وصفيات، وأسئلة التفكير المعقدة. 158k التعليمات-رد فعل يتحول مجانا. لا ملاحظات بشرية.

النتيجة: VLM التي تشغلت على 8 A100s لمدة يوم واحد، وتغلب على فلامينغو على MMMU، ونشرت نقطة تفتيش مفتوحة يمكن للمجتمع تمديد. بحلول أواخر 2023 كان قد ولد 50+ شوكة.

المفهوم

الهندسة المعمارية

LLaVA-1.5 عند 13B:

  • مُشفّر الرؤية: CLIP ViT-L/14 @ 336 (مجمّد خلال المرحلة الأولى، ومُفكّر اختياريًا خلال المرحلة الثانية).
  • المضرب: 2 طبقات MLP مع تفعيل GELU، 1024 → 4096 → 4096. . .
  • ماجستير في العلوم: Vicuna-13B (لاحقاً Llama-3.1-8B).

إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال إرسال

img -> ViT -> 576 patches of dim 1024
patches -> MLP -> 576 tokens of dim 4096
prompt: system + "<image>" placeholder + user question
replace <image> token with the 576 projected tokens
feed the full sequence to the LLM
decode response

الصورة تحتل 576 رمز من سياق LLM. في سياق 2048، وهذا يترك 1472 رمز من النص. في سياق 32k، وهو خطأ التجويب.

المرحلة الأولى: تحديد المضرب

تجميد ViT. تجميد LLM. تدريب فقط 2 طبقات MLP. مجموعة بيانات: 558k أزواج صورة-تسمية (LAION-CC-SBU). الخسارة: نموذج اللغة على التسمية، مشروطة على رموز الصورة المُنقلة.

في عصر واحد في اللحظة 128 يتم ذلك في بضع ساعات. يتعلم المشغل رسم خريطة الفضاء ViT إلى الفضاء LLM. لا وجود للإشراف المحدد للمهمة.

المرحلة الثانية: ضبط التعليمات البصرية

فكّر المُرَاكِب (ما زالَ قابلاً للتدريب). فكّر الـ LLM (عادةً بالكامل، أحياناً LoRA). قم بتدريب على 158 ألف دورة تعليم بصري.

البيانات التعليمية هي الحيلة.

  1. خذ صورة لـ (كوكو)
  2. استخراج وصف النص (5 أسعار بشرية + قائمة مربع حدود).
  3. أرسل إلى GPT-4 مع ثلاث نماذج استشارة:

- المحادثة: "إنشاء حوار ذهابًا وإيابًا بين المستخدم ومساعد حول هذه الصورة".

- وصف مفصل: "أعط وصف غني ومفصل للصورة".

- التفكير المعقد: "أطرح سؤال يتطلب التفكير حول الصورة، ثم أجيب عليه".

  1. تحليل خروج GPT-4 إلى أزواج (التعليمات، الاستجابة).

لا شيء من هذا يلمس الصورة مباشرة فقط وصف النص. GPT-4 تلمس محتوى الصورة المثالي. بعض الضوضاء، ولكن نجح: 158k من المفاتيح كافية لفتح الحوار.

لماذا نسخ المجتمع هذا

  • لا تخسيرات محددة للمرحلة 1 للتحديد
  • المتجهات تتجه في ساعات وليس أيام
  • يمكن تبادل LLM (LLaVA-Llama2 ، LLaVA-Mistral ، LLaVA-Llama3) عن طريق إعادة تدريب المضرب فقط.
  • استخدام خط أنابيب البيانات البصرية-التعليمات GPT-4 ومن الرخيص أن يتم تجديد لسلطات جديدة.

LLaVA-1.5 و LLaVA- NEXT

إضافة LLaVA-1.5 (أكتوبر 2023):

  • بيانات المهام الأكاديمية (VQA، OKVQA، RefCOCO) مزيجة في ضبط التعليمات.
  • أفضل نظام سريع.
  • 2048 → 32k السياق.

إضاف LLaVA-NeXT (يناير 2024):

  • AnyRes: تقسيم صور عالية الوصول إلى شبكة 2x2 أو 1x3 من 336x336 محصول ، بالإضافة إلى صورة صغيرة عالمية منخفضة الوصول. كل محصول يصبح 576 رمزًا ؛ إجمالي حوالي 2880 رمزًا بصريًا لكل صورة. قفزت مهام OCR والخطط.
  • مزيج أفضل من بيانات التعليمات مع ShareGPT4V (مقاطع GPT-4V عالية الجودة).
  • الدرجات القانونية القوية (Mistral-7B، Yi-34B).

LLaVA-OneVision

يتناول الدروس 12.08 OneVision بشكل عميق. النسخة القصيرة: نفس المضرب، ولكن تدرب مع منهج يغطى صورة واحدة، ومتعددة الصور، والفيديو في نموذج واحد مع ميزانية مشتركة للبرمجة المرئية.

المقارنة مع Q-Former

Q-Former (BLIP-2)MLP (LLaVA)
Visual tokens per image32576 (base) or 2880 (AnyRes)
Trainable params188M + LM40M + LM
Stage 1 lossITC+ITM+ITGLM only
LLM drop-inRequires retrainSwap with minimal retrain
Multi-imageAwkwardNatural (concat)
VideoAwkwardNatural (per-frame concat)
Token budgetSmallLarge

فاز MLP على البساطة والمرونة الرمزية. فاز Q-Former على ميزانية الرمزية. بحلول أواخر عام 2023 لم يعد ميزانية الرمزية القيود المفروضة (تزداد سياقات LLM إلى 32k-128k +) وتهيمن على البساطة.

النموذج المطلوب

A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions. USER: <image> Describe this image in detail. ASSISTANT: The image shows ...

<image>هو رمز حافظ مكان. قبل التوضيح، يتم استبداله بـ 576 رمزًا بصريًا (أو 2880 مع AnyRes). يرى Tokenizer تسلسلًا أطول قليلاً مما تم تدريبه عليه، ولكن LLM يتعامل مع المدخل الجديد لأن المرحلة 1 تعلمته.

اقتصاد المعلمات

التقسيم LLaVA-1.5-7B:

  • CLIP ViT-L/14 @ 336: 303M (المرحلة الأولى المجمدة، غالبًا ما تكون المرحلة الثانية غير المجمدة).
  • المُرسل (2x خطي): ~ 22M قابل للتدريب.
  • إلاما-7ب: 7ب.
  • إجمالي: 7.3B المعلمات. يمكن تدريبها خلال المرحلة 2: كامل 7B + 22M المضرب.

تكلفة التدريب للمرحلة الثانية: ~ 20 ساعة على 8xA100. هذا هو الرقم الرئيسي يوم واحد، عقدة واحدة، قابلة للتكاثر. هذا هو السبب في انتشار LLaVA.

استخدمها

code/main.pyتطبيقات:

  1. المُرِّي المُرِّي المُسَطَّح المُسَطَّح المُسَطَّح المُسَطَّح المُسَطَّح المُسَطَّح (dim 16 → 32 → 32 لقياس الألعاب) في Python النقيّ.
  2. خط الأنابيب المُبني على الفور: خط الأنظمة المُبني على الفور + <image>تم استبدالها بـ N الوهم المُتوقع + دور المستخدم + محفظة مكانة لتوليد المساعد.
  3. مرئي لما يبدو عليه كتلة المرئية 576 رمز في سياق LLM (نسبة مئوية من 2k / 32k / 128k سياق استهلك).

أرسله

هذا الدرس يُنتجoutputs/skill-llava-vibes-eval.md. نظراً لمراقبة عائلة LLaVA ، فإنها تشغيل مجموعة من التأثرات العشرية (3 أسطح ، 3 VQA ، 2 التفكير ، 2 رفض) وتبلغ عن بطاقة درجة يمكن قراءتها من قبل الإنسان. ليس مقياسًا مقارنًا ؛ اختبار دخان للتأكد من أن المشغل والإدارة التدريبية يتصلان بشكل جيد.

التمارين

  1. احسب عدد المعايير القابلة للتدريب لمشروع MLP ذي 2 طبقات في 1024 → 4096 → 4096مع الجيلو والتحيز، ما هو الجزء من LLaVA-13B يمثل؟
  1. قم ببناء طلب لـ LLaVA لحالة "رفض" تحتوي الصورة على شخص خاص. اكتب رد المساعد المتوقع. لماذا يجب على LLaVA رفض هذه الصورة الصفرية وما هي البيانات التدريبية التي ستحتاج إلى تعزيز الرفض؟
  1. اقرأ قسم AnyRes من مدونة LLaVA-NeXT. احسب عدد الرموز البصرية لصور 1344x672 في AnyRes. مقارنة مع 576 رموز أساسية في 336x336.
  1. يتم تدريب المضرب LLaVA مرحلة 1 مع فقدان LM على العناوين الرئيسية. ماذا يحدث إذا تخطيت المرحلة 1 وتذهب مباشرة إلى المرحلة 2 (التأقلم التعليمات المرئية) ؟ إشارة إلى التجويب Prismatic VLMs (arXiv:2402.07865) للحصول على الإجابة.
  1. يستخدم LLaVA-Instruct-150k GPT-4 مع أسمائ COCO لتوليد التعليمات. بالنسبة لمجال جديد (أشعة X الطبية، صور الأقمار الصناعية) ، وصف خط الأنابيب البيانية الأربع خطوات لتوليد التعليمات المجالية. ما الذي يمكن أن يذهب خطأ في كل خطوة؟

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

TermWhat people sayWhat it actually means
Projector"MLP bridge"2-layer MLP with GELU mapping ViT dim to LLM dim
Image token"<image> placeholder"Prompt marker replaced by N projected visual tokens before inference
Visual instruction tuning"LLaVA stage 2"Training on GPT-4-generated (image, instruction, response) triplets
Stage 1 alignment"Projector pretraining"Freeze ViT and LLM, train projector with LM loss on captions
AnyRes"Multi-crop tiling"Split high-res image into a tile grid and concatenate each tile's visual tokens
LLaVA-Instruct"GPT-4-generated"158k instruction-response pairs synthesized from COCO captions + GPT-4
Vision encoder freeze"Backbone locked"CLIP weights do not update in stage 1, sometimes not in stage 2 either
ShareGPT4V"Better captions"1M dense captions generated by GPT-4V, used for higher-quality alignment
VQA"Visual question answering"Task of answering a free-form question about an image
Prismatic VLMs"Design-space paper"Karamcheti 2024 ablation systematically testing projector and data choices

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

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.