Phase 12: Multimodal AI

LLaVA و تنظیم دستورالعمل های بصری

LLaVA (اپریل 2023) ، کپی شده ترین معماری چند راه در جهان است. این دستگاه Q-Former BLIP-2 را با یک MLP دو لایه جایگزین کرد، توجه متقاطع بند Flamingo را با یک زنجیره رمزنگاری ساده جایگزین کرد و در 158k چرخش آموزش بصری که توسط GPT-4 از عنوانات متن تولید می شود آموزش یافت. هر تمرین کننده ای که بین سال های 2023 تا 2026 یک VLM ساخته است، نوع LLaVA را ساخته است. LLaVA-1.5 AnyRes اضافه شد LLaVA-Next وضوحش رو بالا برد 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 دو لایه ای بسازید که نقش ورودی های پیچ ViT (dim 1024) را به یک LLM از اندروید اندروید (dim 4096) نقشه برداری کند.
  • دستور دو مرحله ای LLaVA را اجرا کنید: (1) تعادل پروژکتور در جفت های 558k، (2) تنظیم دستورالعمل بصری در 158k GPT-4 تولید شده.
  • یک پرامپت در قالب LLaVA را با جای گیرنده توکن تصویر، پرامپت سیستم و نوبت کاربر/مساعد بسازید.
  • توضیح بده که چرا جامعه از Q-Former به MLP رفت با وجود پیروزی Q-Former در بودجه.

مشکل

Q-Former BLIP-2 (درسی 12.03) یک تصویر را به 32 توکن فشرده می کند. تمیز، کارآمد، برای معیارها خوب است. اما دو مشکل دارد.

اول، Q-Former قابل آموزش است اما از دست دادن آن وظیفه نهایی نیست. مرحله 1 آموزش ITC + ITM + ITG. مرحله 2 آموزش LM از دست دادن. سوالات برخی از نمایندگی های میانگین را یاد می گیرند که LLM سپس باید رمزگذاری کند. اطلاعات در گلو بطری گم می شوند.

دوم، Q-Former 188 میلیون پارام را می گیرد، و در مقیاس LLaVA 2023 شما مجبورید آن را با LLM هدف خود طراحی کنید. LLM را تغییر دهید، Q-Former را آموزش دهید. کدگر دید را تغییر دهید، آموزش مجدد دهید. هر ترکیب یک پروژه تحقیق و توسعه جداگانه بود.

پاسخ LLaVA به سادگی اش خجالت آور بود: ۵۷۶ توکن پچ ViT را بگیرید، هر یک از آنها را از طریق یک MLP دو لایه (1024 → 4096 → 4096، و تمام 576 تا رو به دنباله ورودي LLM انداختن بدون گلو بطن مرحله اول آموزش در مورد اهداف عجیب

اطلاعات از کجا می آید؟ بینش دوم LLaVA: استفاده از GPT-4 (تنها متن) برای تولید داده های دستورالعمل. GPT-4 را با عنوان COCO و داده های جعبه مرزی برای یک تصویر تغذیه کنید، از آن بخواهید تا مکالمه، توضیحات و سوالات استدلال پیچیده تولید کند. 158k دستورالعمل-پاسخ رایگان می چرخد. هیچ یادداشت انسانی.

نتیجه: یک VLM که برای یک روز با 8 A100 اجرا شد، فلامینگو را در MMMU شکست داد و یک نقطه باز کنترل را که جامعه می تواند گسترش دهد، ارسال کرد. تا اواخر سال 2023 این 50 فورک تولید کرده بود.

مفهوم

معماری

LLaVA-1.5 در 13B:

  • کدگر بینایی: CLIP ViT-L/14 @ 336 (در مرحله 1 یخ زده شده، در مرحله 2 هم یخ زده نشده)
  • پروژکتور: 2 لایه MLP با فعال کردن GELU، 1024 → 4096 → 4096. .
  • LLM: ویکونا 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، این یک خطای گردآوری است.

مرحله اول: تعادل پروژکتور

Freeze ViT. Freeze LLM. فقط MLP دو لایه را تمرین کنید. مجموعه داده: 558k جفت تصویر-تکتیون (LAION-CC-SBU). از دست دادن: مدل سازی زبان بر روی تکتیون، مشروط بر روی توکن های تصویر پیش بینی شده.

در یک دوره ی واحد در دسته 128 این کار در چند ساعت انجام می شود. پروژکتور یاد می گیرد فضای ViT را به فضای LLM نقشه برداری کند. هیچ نظارت خاص وظیفه ای نیست.

مرحله دوم: تنظیم دستورالعمل های بصری

پروژکتور را از یخ زدایی (هم اکنون قابل آموزش است) ، LLM را از یخ زدایی (معمولا به طور کامل، گاهی اوقات LoRA) ، آموزش در 158k چرخش آموزش بصری.

داده های دستورالعمل این ترفند است. لیو و همکارانش آن را توسط:

  1. عکس COCO رو بگیر
  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 با کیفیت بالا)
  • پایه قوی تر LLM (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>Tokenizer یک ردیف کمی طولانی تر از آنچه که آموزش داده شده است را می بیند، اما LLM ورودی جدید را به دلیل مرحله 1 آموزش داده است.

اقتصاد پارامتر

تجزیه LLaVA-1.5-7B:

  • CLIP ViT-L/14 @ 336: 303M (مرحله ی منجمد ۱، اغلب مرحله ی منجمد ۲).
  • پروژکتور (2x خطی): ~ 22M قابل تمرین.
  • لاما ۷ بی: ۷ بی
  • کل: 7.3B پارام. در مرحله 2: پروژکتور کامل 7B + 22M قابل آموزش است.

هزینه آموزش مرحله 2: ~ 20 ساعت در 8xA100. این شماره کلیدی است یک روز، یک گره، قابل بازتولید. به همین دلیل LLaVA گسترش می یابد.

ازش استفاده کن

code/main.pyابزار:

  1. پروژکتور MLP دو لایه (dim 16 → 32 → 32 برای مقیاس بازی) در پایتون خالص.
  2. خط خط تولید سریع: سیستم سریع + <image>با N توکن های پیش بینی شده + نوبت کاربر + جای گیرنده تولید دستیار جایگزین می شود.
  3. یک تصویربرداری برای اینکه بلوک بصری 576 توکن در زمینه LLM چگونه به نظر می رسد ( درصد 2k / 32k / 128k زمینه مصرف شده).

-باده

این درس به ما کمک می کندoutputs/skill-llava-vibes-eval.md. با توجه به یک نقطه بازرسی خانواده LLaVA، این یک مجموعه 10 پرامپت ویبز-eval را اجرا می کند (3 زیرنویس، 3 VQA، 2 استدلال، 2 انکار) و یک کارت نمره قابل خواندن توسط انسان را گزارش می دهد.

تمرینات

  1. شمارش پارامتر قابل آموزش برای پروژکتور MLP دو لایه را در 1024 → 4096 → 4096با GELU و تعصب، چه شکافي از LLaVA-13B است؟
  1. ایجاد یک پیام LLaVA برای یک مورد "رفض" تصویر حاوی یک فرد خصوصی است. پاسخ دستیار انتظار می رود را بنویسید. چرا LLaVA باید این شات صفر را رد کند و چه داده های آموزشی برای تقویت این رد مورد نیاز است؟
  1. بخش AnyRes را در وبلاگ LLaVA-NeXT بخوانید. تعداد توکن های بصری را برای یک تصویر 1344x672 در AnyRes محاسبه کنید. با توکن های پایه 576 در 336x336 مقایسه کنید.
  1. پروژکتور مرحله 1 LLaVA با از دست دادن LM در عنوانات آموزش دیده است. چه اتفاقی می افتد اگر مرحله 1 را رد کنید و مستقیماً به مرحله 2 (تنظیم دستورالعمل های بصری) بروید؟ برای پاسخ به این سوال، از Ablation VLMs Prismatic (arXiv:2402.07865) یاد بگیرید.
  1. LLaVA-Instruct-150k از GPT-4 با عنوانات COCO برای تولید دستورالعمل استفاده می کند. برای یک دامنه جدید (شعاع ایکس پزشکی، تصاویر ماهواره ای) ، لوله داده چهار مرحله ای را برای تولید دستورالعمل دامنه توصیف کنید. چه چیزی می تواند در هر مرحله اشتباه شود؟

اصطلاحات کلیدی

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.