چیتشیت
خانوادههای VLM متنباز: LLaVA، Qwen-VL و InternVL
Open VLM Families: LLaVA, Qwen-VL, InternVL
مقایسهی شانه به شانهی LLaVA، LLaVA-OneVision، Qwen-VL و InternVL3: اتصالدهنده، تفکیکپذیری، ویدیو، توکنها و آموزش.
فهرست مطالب
مقایسهی شانه به شانهی خانوادهها
مقایسه| عامل | LLaVA-NeXT | LLaVA-OneVision | خانوادهی Qwen-VL | InternVL3 |
|---|---|---|---|---|
| تصویر به 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 در AnyRes | 6000 تا 9000 به ازای هر نمونه، متعادل | مقیاسپذیر با ورودی | 256، 576 یا +2048 از طریق ViR |
| آموزش | همترازی، سپس دستورالعمل | مراحل SI، OV و TT | Qwen3-VL: مراحل بر OCR، ارجاعدهی مکانی و ایجنتها تمرکز دارند | یک مرحله پیشآموزش، سپس دستورالعمل |
| تعویض LLM | آموزش مجدد تصویرساز | آموزش مجدد تصویرساز | آموزش مجدد تطبیقدهنده | بعداً امکانپذیر نیست |
گذر رو به جلو در LLaVA
معماریتبارشناسی Qwen-VL
گامبهگام- Qwen-VL (2023)تفکیکپذیری 448، جعبههای ارجاعدهی مکانی به صورت متن، Q-Former با 256 پرسمان (query).
- Qwen2-VL (2024)M-RoPE، تفکیکپذیری پویای بومی، تصویرساز MLP.
- Qwen2.5-VL (2025)نرخ فریم پویا، M-RoPE با زمان مطلق، اتنشن پنجرهای در ViT.
- ایجنتهای Qwen2.5-VLفراخوانیهای ابزار با فرمت JSON. بهبود ScreenSpot از 55٪ به 84٪.
- 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 فریز شده است، اما به جزئیات نیاز دارید.
کد نمونه به تفکیک درس
کار و کد| وظیفه | کد |
|---|---|
| تصویرسازی پچهای ViT | MLPProjector(PATCH_DIM, HIDDEN_DIM, LLM_DIM) |
| ساخت پرامپت LLaVA | build_llava_prompt(system, user, 576) |
| بستهبندی یک دستهی ترکیبی | pack_batch(images, patch) |
| ماسک متراکم بلوکی-قطری | build_dense_mask(pack) |
| هزینهی توکن AnyRes | anyres_cost(img, tile=336, thumb=336) |
| هزینهی تغییر اندازه به مربع | square_cost(img, side=336, patch=14) |
| برنامهریزی ویدیوی OneVision | plan_video(budget) |
| میانگین توکنهای ViR | vir_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 توکن.
دستورالعملهای آموزش
مقایسه| گام | LLaVA | OneVision | InternVL3 |
|---|---|---|---|
| اول | فقط آموزش 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, thumb | 336 | 576 توکن به ازای هر کاشی در پچ 14 |
`square_cost` side | 336 | ثابت، 576 توکن به ازای هر تصویر |
LLaVA prompt image_tokens | 576 | جایگزین نگهدارندهی مکان تصویر میشود |
`MRoPEConfig` base | 10000.0 | پایهی فرکانس RoPE در هر باند |
Qwen2-VL video sampling | 1-2 FPS | پذیرش هر تعداد فریم |
OneVision toy planner budget | 4096 | توکنهای بصری به ازای هر نمونه در کد درس |
Dynamic-FPS demo budget | 32768 | 81 توکن به ازای هر فریم پس از استخرسازی 3 برابری |
`dvd_throughput` llm_tokens | 128 | توکنهای خروجی به ازای هر درخواست |
عیبیابی
عیبیابیمتن لهشده، از دست رفتن برچسب نمودارها
- علت
- تغییر اندازهی مربعی به 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 میلیونی، حدود دو برابر نرخ پردازش بیشتر به ازای هر نود فراهم میکند.