چیت‌شیت

خانواده‌های VLM متن‌باز: LLaVA، Qwen-VL و InternVL

Open VLM Families: LLaVA, Qwen-VL, InternVL

مقایسه‌ی شانه به شانه‌ی LLaVA، LLaVA-OneVision، Qwen-VL و InternVL3: اتصال‌دهنده، تفکیک‌پذیری، ویدیو، توکن‌ها و آموزش.

  • ۱۲ بخش
  • ۵ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه‌ی شانه به شانه‌ی خانواده‌ها
  2. گذر رو به جلو در LLaVA
  3. تبارشناسی Qwen-VL
  4. کاربرد هر خانواده
  5. کد نمونه به تفکیک درس
  6. ‏M-RoPE، نرخ فریم پویا، فراخوانی ابزار
  7. محاسبات توکن
  8. دستورالعمل‌های آموزش
  9. پیش‌فرض‌ها در درس‌ها
  10. عیب‌یابی
  11. کوته‌نوشت‌ها
  12. پرسش‌ها

مقایسه‌ی شانه به شانه‌ی خانواده‌ها

مقایسه
عاملLLaVA-NeXTLLaVA-OneVisionخانواده‌ی Qwen-VLInternVL3
تصویر به LLM‏MLP دو لایه، GELUهمان تصویرساز MLP‏Qwen2-VL: ‏MLP دو لایه روی پچ‌های ادغام‌شدهبومی، بدون مرحله‌ی هم‌ترازی
دستورالعمل ساختپسینی (Post-hoc) روی یک LLM متنیپسینی (Post-hoc) روی یک LLM متنیپسینی (Post-hoc) روی یک LLM متنیپیش‌آموزش چندوجهی بومی
تفکیک‌پذیری بالا‏AnyRes: 336 کاشی به اضافه‌ی تصویر بندانگشتی‏AnyRes-9 یا AnyRes-4، 384 کاشی‏Qwen2-VL: هر H و W بخش‌پذیر بر 28‏ViR گزینه‌ی کم، متوسط یا زیاد را انتخاب می‌کند
ویدیوالحاق فریم به فریم32 فریم، هر کدام 196 توکننرخ فریم پویا، M-RoPE با زمان مطلق5٪ ویدیو-متن در پیش‌آموزش
توکن‌های بصری576 پایه، 2880 در AnyRes6000 تا 9000 به ازای هر نمونه، متعادلمقیاس‌پذیر با ورودی256، 576 یا +2048 از طریق ViR
آموزشهم‌ترازی، سپس دستورالعملمراحل SI، OV و TT‏Qwen3-VL: مراحل بر OCR، ارجاع‌دهی مکانی و ایجنت‌ها تمرکز دارندیک مرحله پیش‌آموزش، سپس دستورالعمل
تعویض LLMآموزش مجدد تصویرسازآموزش مجدد تصویرسازآموزش مجدد تطبیق‌دهندهبعداً امکان‌پذیر نیست

گذر رو به جلو در LLaVA

معماری
پچ‌ها576 توکندنباله‌ی کاملتصویر336x336CLIP ViT-L/14 @ 336576 پچ، با بُعد 1024‏MLP دو لایه1024 → 4096 → 4096، GELUپرامپت‏system + <image> + userجایگزینی <image>576 توکن تصویرشدهLLM‏Vicuna-13B، بعداً Llama-3.1-8B

تبارشناسی Qwen-VL

گام‌به‌گام
  1. Qwen-VL (2023)تفکیک‌پذیری 448، جعبه‌های ارجاع‌دهی مکانی به صورت متن، Q-Former با 256 پرسمان (query).
  2. Qwen2-VL (2024)‏M-RoPE، تفکیک‌پذیری پویای بومی، تصویرساز MLP.
  3. Qwen2.5-VL (2025)نرخ فریم پویا، M-RoPE با زمان مطلق، اتنشن پنجره‌ای در ViT.
  4. ایجنت‌های Qwen2.5-VLفراخوانی‌های ابزار با فرمت JSON. بهبود ScreenSpot از 55٪ به 84٪.
  5. Qwen3-VL (2025)پایه‌ی Qwen3، حالت تفکر (thinking mode)، داده‌های بیشتر OCR. ساختار ViT و M-RoPE دست‌نخورده باقی می‌ماند.

کاربرد هر خانواده

نکته‌ها
  • LLaVA: وقتی به یک دستورالعمل ارزان و بازتولیدپذیر نیاز دارید. مرحله‌ی 2 حدود 20 ساعت روی 8xA100 طول می‌کشد.
  • LLaVA-OneVision: یک مدل برای تک‌تصویر، چندتصویر و ویدیو با هزینه‌ای قابل‌پیش‌بینی خدمت‌رسانی می‌کند.
  • Qwen2.5-VL: ویدیو با برچسب زمانی، ایجنت‌های رابط کاربری با خروجی JSON، و سقف‌های min_pixels و max_pixels.
  • InternVL3: مهارت‌های متنی نباید افت کنند و هزینه‌ی پیش‌آموزش بومی قابل پرداخت است.
  • دستورالعمل پسینی (Post-hoc): می‌خواهید بعداً یک LLM جدید جایگزین کنید. برای بیشتر پروژه‌ها ارزان‌تر تمام می‌شود.
  • کاشی‌کاری AnyRes: انکودر روی 336x336 فریز شده است، اما به جزئیات نیاز دارید.

کد نمونه به تفکیک درس

کار و کد
وظیفهکد
تصویرسازی پچ‌های ViTMLPProjector(PATCH_DIM, HIDDEN_DIM, LLM_DIM)
ساخت پرامپت LLaVAbuild_llava_prompt(system, user, 576)
بسته‌بندی یک دسته‌ی ترکیبیpack_batch(images, patch)
ماسک متراکم بلوکی-قطریbuild_dense_mask(pack)
هزینه‌ی توکن AnyResanyres_cost(img, tile=336, thumb=336)
هزینه‌ی تغییر اندازه به مربعsquare_cost(img, side=336, patch=14)
برنامه‌ریزی ویدیوی OneVisionplan_video(budget)
میانگین توکن‌های ViRvir_sim(tiers)

‏M-RoPE، نرخ فریم پویا، فراخوانی ابزار

کد
python
cfg = MRoPEConfig(hidden=48, temporal_dim=16, height_dim=16, width_dim=16)
mrope_angles(cfg, 0, 5, 7)  # پچ تصویر: t=0،‏ h=row،‏ w=col
mrope_angles(cfg, 3, 5, 7)  # فریم ویدیویی t=3
mrope_rotate(cfg, vec, 3, 5, 7) # rotates each band by its axis
plan = VideoPlan(duration_s=600.0, tokens_per_frame=81,
                 budget=32768, motion="low")
plan.fps()                  # اولین کاندید <= fps_max
plan.frame_times()          # یک برچسب زمانی به ازای هر فریم
plan.total_tokens()         # تعداد فریم‌ها ضرب در tokens_per_frame
parse_tool_call(raw)        # ‏json.loads، سپس برش از { تا }

محاسبات توکن

مفهوم‌ها
LLaVA پایه
576 توکن به ازای هر تصویر. در بستر متنی 2048، تعداد 1472 توکن برای متن باقی می‌ماند.
AnyRes 2x2
‏4 * 576 + 576 = 2880 توکن بصری.
AnyRes 4x4
یک تصویر 1344x1344 حدود 9216 + 576، یعنی تقریباً 9800 توکن می‌دهد.
Qwen2-VL بومی
اندازه‌ی 1120x672 منجر به 40x24 پچِ ادغام‌شده، معادل 960 توکن می‌شود.
تصویر OneVision
روش AnyRes-9 با ادغام 2x2، معادل 9 * 182 + 182 = 1820 توکن.
ویدیوی OneVision
32 فریم با ادغام 2x2، معادل 32 * 196 = 6272 توکن.
سقف نرخ فریم پویا
$fps_{max} = B / (T \cdot \text{tokens per frame})$
ویدیوی Qwen2.5-VL
60 ثانیه در نرخ 4 فریم بر ثانیه با 81 توکن در هر فریم برابر است با 19440 توکن.

دستورالعمل‌های آموزش

مقایسه
گامLLaVAOneVisionInternVL3
اولفقط آموزش MLP، 558 هزار شرح تصویر‏SI: تک‌تصویر، AnyResپیش‌آموزش بومی
دوم‏MLP + LLM، 158 هزار نوبت گفت‌وگوی GPT-4‏OV: ترکیب 0.5 / 0.3 / 0.2تنظیم با دستورالعمل
سومندارد‏TT: ترکیب وظایف هدفندارد
فریز‏ViT و LLM در مرحله‌ی 1بدون بازنشانی وزن‌هابدون مرحله‌ی فریز
داده‌ها‏LAION-CC-SBU و LLaVA-Instructداده‌های LLaVA-NeXT به اضافه‌ی داده‌های اختصاصی‏40/35/20/5 متن، بین‌متنی، شرح تصویر، ویدیو

پیش‌فرض‌ها در درس‌ها

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
`anyres_cost` tile, thumb336576 توکن به ازای هر کاشی در پچ 14
`square_cost` side336ثابت، 576 توکن به ازای هر تصویر
LLaVA prompt image_tokens576جایگزین نگهدارنده‌ی مکان تصویر می‌شود
`MRoPEConfig` base10000.0پایه‌ی فرکانس RoPE در هر باند
Qwen2-VL video sampling1-2 FPSپذیرش هر تعداد فریم
OneVision toy planner budget4096توکن‌های بصری به ازای هر نمونه در کد درس
Dynamic-FPS demo budget3276881 توکن به ازای هر فریم پس از استخرسازی 3 برابری
`dvd_throughput` llm_tokens128توکن‌های خروجی به ازای هر درخواست

عیب‌یابی

عیب‌یابی
  • متن له‌شده، از دست رفتن برچسب نمودارها

    علت
    تغییر اندازه‌ی مربعی به 336
    راه‌حل
    نسبت ابعاد بومی با سقف حداکثر پیکسل
  • تصویر بزرگ کل بستر متنی را پر می‌کند

    علت
    ‏AnyRes 4x4 حدود 9800 توکن است
    راه‌حل
    بسته‌بندی بومی یا M-RoPE، بدون سربار کاشی‌کاری
  • اعمال اتنشن پچ‌ها روی تصاویر دیگر

    علت
    نبود ماسک بلوکی-قطری
    راه‌حل
    ایجاد ماسک از آفست‌های تجمعی، یا استفاده از مسیر cu_seqlens
  • مهارت‌های ضعیف پردازش تصویر پس از آموزش

    علت
    ترتیبِ اولویت با ویدیو یا چندتصویری
    راه‌حل
    آموزش به ترتیب SI، سپس OV و در نهایت TT
  • افت 5 تا 10 امتیازی در GSM8K

    علت
    بدهی هم‌ترازی پسینی (Post-hoc)
    راه‌حل
    پیش‌آموزش بومی با حداقل 40٪ کف متنی
  • اتمام دامنه‌ی فرکانسی در ویدیوی طولانی

    علت
    مقیاس موقعیت ثابت
    راه‌حل
    مقیاس‌بندی MRoPE-v2 متناسب با حداکثر اندازه‌ی ورودی

کوته‌نوشت‌ها

اصطلاح‌ها
M-RoPE
روپ چندوجهی (Multimodal RoPE). باندهای زمان، ارتفاع و عرض در بُعد پنهان.
V2PE
کدگذاری موقعیت بصری متغیر. تفکیک باند یادگیری‌شده به ازای هر وجه.
NaFlex
حالت انعطاف‌پذیر بومی در SigLIP 2. یک چک‌پوینت برای 256، 729 یا 1024 توکن خدمت‌رسانی می‌کند.
ViR
مسیریاب تفکیک‌پذیری بصری. انتخاب حداقل تفکیک‌پذیری پیش از انکود.
DvD
استقرار تفکیک‌شده‌ی بینایی-زبان. قرارگیری انکودر و LLM روی GPUهای مجزا.
SI, OV, TT
مراحل OneVision. تک‌تصویر، ترکیب OneVision، و انتقال وظیفه.

پرسش‌ها

پرسش و پاسخ
چرا MLP بر Q-Former پیروز شد؟
فقط با تابع زیان (loss) مدل زبان کار می‌کند و تعویض LLM آسان است. با رشد بستر متنی به 32k تا +128k، هزینه‌ی 576 توکن بسیار کم شد.
بودجه‌ی OneVision یا Qwen2.5-VL؟
مدل OneVision بودجه را ثابت نگه می‌دارد و استخرسازی را مقیاس‌بندی می‌کند. بودجه‌ی Qwen2.5-VL همراه با ورودی مقیاس می‌گیرد.
چرا M-RoPE به جدول موقعیت نیاز ندارد؟
هر توکن بر اساس موقعیت (t, h, w) خود دوران می‌یابد. تصاویر از t = 0 استفاده می‌کنند.
چرا همیشه پیش‌آموزش بومی انجام ندهیم؟
هزینه‌ی محاسباتی آن مانند یک LLM متنی است. داده‌های بین‌متنی کمیاب هستند. امکان تغییر LLM در آینده وجود ندارد.
DvD چه مزیتی دارد؟
برای یک LLM هشت‌میلیاردی (8B) با انکودر 400 میلیونی، حدود دو برابر نرخ پردازش بیشتر به ازای هر نود فراهم می‌کند.