فاز 4 · درس 25

آشنایی با مدل‌های زبانی-دیداری: معماری ViT-MLP-LLM

نوع
مفهومی و کاربردی
زمان
حدود 75 دقیقه
زبان‌ها
Python
طرح شماتیک سه‌بخشی شامل یک شبکه مربعی، یک پل اتصالی باریک و یک ساختار لایه‌ای متوالی
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم کلیدی
  4. معماری ViT-MLP-LLM
  5. سازوکار DeepStack
  6. سه مرحله‌ی آموزش
  7. مقایسه‌ی خانواده‌ی مدل‌ها (اوایل سال 2026)
  8. ایجنت‌های دیداری
  9. قابلیت‌های ایجنتی و نسخه‌های مختلف RoPE
  10. مسئله‌ی هم‌ترازی
  11. فاین‌تیونینگ با LoRA و QLoRA
  12. استدلال فضایی هنوز ضعیف است
  13. ساخت گام‌به‌گام
  14. مرحله‌ی 1: ساخت پروجکتور
  15. مرحله‌ی 2: سرهم‌بندی سراسری ViT-MLP-LLM
  16. مرحله‌ی 3: محاسبه‌ی CMER
  17. مرحله‌ی 4: کلاسیفایر تجربی VLM (قابل اجرا)
  18. کاربرد در محیط واقعی
  19. آماده‌سازی برای استقرار
  20. تمرین‌ها
  21. اصطلاحات کلیدی
  22. برای مطالعه‌ی بیشتر

مدل‌های تصویرمحور سنتی مانند CLIP برای سنجش شباهت تصویر و متن عالی هستند، اما توانایی استدلال زبانی یا پاسخ به پرسش‌های جزئی درباره‌ی یک تصویر را ندارند. مدل‌های زبانی-دیداری (Vision-Language Models یا VLMها) با اتصال یک انکودر بینایی به یک مدل زبانی بزرگ، امکان درک محتوا و تولید پاسخ متنی را فراهم کرده‌اند و نقشی محوری در توسعه‌ی دستیارهای هوشمند ایفا می‌کنند.

در این درس معماری استاندارد ViT-MLP-LLM را بررسی می‌کنیم؛ ساختاری که در تمام مدل‌های مطرح مانند Qwen3-VL و LLaVA به کار رفته است. با شناخت این الگو یاد می‌گیرید که چگونه پروجکتور توکن‌های تصویر را به فضای زبانی می‌برد، چه مراحلی در آموزش این مدل‌ها طی می‌شود و چگونه با سنجه‌هایی مثل CMER جلوی توهم بین‌وجهی مدل را در محیط واقعی بگیرید.

برای اجرای عملی و تست مدل‌های متن‌باز این حوزه، مدل‌های کم‌پارامتر را می‌توان به‌صورت محلی روی سیستم شخصی اجرا کرد. با این حال، استفاده از APIهای ابری ارائه‌دهندگان خارجی با کارت‌های بانکی ایرانی میسر نیست و تهیه یا اجاره‌ی کارت‌های گرافیک قدرتمند خارجی برای فاین‌تیونینگ نیز هزینه‌ی ارزی قابل‌توجهی دارد؛ از این رو تکیه بر مدل‌های سبک یا روش‌های LoRA و اجرای محلی رویکردی منطقی‌تر به شمار می‌آید.

یک انکودر بینایی، تصویر را به توکن تبدیل می‌کند. یک پروجکتور MLP این توکن‌ها را به فضای امبدینگ مدل زبانی تصویر می‌کند (Projection). بقیه‌ی کارها را مدل زبانی انجام می‌دهد. این الگو — یعنی ViT-MLP-LLM — ساختار پایه‌ی تمام VLMهای پروداکشن در سال 2026 است.

اهداف یادگیری

  • ساختار معماری ViT-MLP-LLM را بیان کنید و نقش هر یک از سه مؤلفه‌ی آن را توضیح دهید.
  • مدل‌های Qwen3-VL، InternVL3.5، LLaVA-Next و GLM-4.6V را از نظر تعداد پارامتر، طول کانتکست و عملکرد در بنچمارک‌ها با هم مقایسه کنید.
  • مفهوم DeepStack را توضیح دهید: چرا استفاده از ویژگی‌های چندسطحی ViT، هم‌ترازی بین تصویر و زبان را بهتر از اتکا به ویژگی تک‌لایه‌ی آخر تقویت می‌کند.
  • توهم (Hallucination) مدل‌های VLM را در محیط پروداکشن با نرخ خطای بین‌وجهی (Cross-Modal Error Rate یا CMER) اندازه بگیرید و بر اساس این سیگنال اقدام کنید.

صورت مسئله

مدل CLIP (فاز 4، درس 18) یک فضای امبدینگ مشترک برای تصاویر و متن فراهم می‌کند؛ این فضا برای دسته‌بندی زیروشات (Zero-shot) و بازیابی اطلاعات کافی است. اما CLIP نمی‌تواند به پرسش «چند ماشین قرمز در این تصویر است؟» پاسخ دهد؛ چون متن تولید نمی‌کند و فقط شباهت‌ها را می‌سنجد.

مدل‌های زبانی-دیداری (Vision-Language Models یا VLMها) — مانند Qwen3-VL، InternVL3.5، LLaVA-Next و GLM-4.6V — یک انکودر تصویر از خانواده‌ی CLIP را به یک مدل زبانی کامل متصل می‌کنند. مدل، تصویر و پرسش را می‌بیند و پاسخ را تولید می‌کند. در سال 2026، VLMهای متن‌باز در بنچمارک‌های چندوجهی (مانند MMMU، MMBench، DocVQA، ChartQA، MathVista و OSWorld) با رقبایی مثل GPT-5 و Gemini-2.5-Pro رقابت می‌کنند یا حتی آن‌ها را شکست می‌دهند.

ترکیب این سه بخش (ViT، پروجکتور، LLM) یک استاندارد است. تفاوت مدل‌ها صرفاً به نوع ViT، نوع پروجکتور، مدل زبانی پایه، داده‌های آموزشی و دستورالعمل هم‌ترازی بازمی‌گردد. وقتی این الگو را درک کنید، تعویض هر مؤلفه با دیگری صرفاً کاری مکانیکی خواهد بود.

مفاهیم کلیدی

معماری ViT-MLP-LLM

تصویر(H x W x 3)انکودر بینایی(ViT, CLIP-L,SigLIP, DINOv3)توکن‌های تصویر(N, d_vit)پروژکتور(MLP دو تا 4 لایهیا Q-former)توکن‌های تصویردر فضای LLM(N, d_llm)پرامپت متنیتوکنایزر LLMتوکن‌های متن(M, d_llm)ادغام متناوبیا اتصال (Concat)مدل زبانی دکودر(Qwen3, LLaMA, etc.)پاسخ متنی
  1. انکودر بینایی (Vision encoder): یک ViT از پیش آموزش‌دیده (مثل CLIP-L/14، SigLIP، DINOv3 یا یک نسخه‌ی فاین‌تیون‌شده) که توکن‌های وصله‌ای (Patch tokens) تولید می‌کند.
  2. پروجکتور (Projector): ماژول کوچکی (یک MLP با 2 تا 4 لایه، یا یک Q-former) که توکن‌های تصویر را به بعد امبدینگ LLM تصویر می‌کند. بخش اعظم فاین‌تیونینگ روی همین بخش انجام می‌گیرد.
  3. مدل زبانی (LLM): یک مدل زبانی فقط-دیکودر (مانند Qwen3، Llama، Mistral، GLM یا InternLM) که توکن‌های تصویر و متن را به صورت متوالی می‌خواند و متن تولید می‌کند.

روی کاغذ هر سه قطعه قابل آموزش هستند. اما در عمل، انکودر تصویر و مدل زبانی را عمدتاً دست‌نخورده (فریز) نگه می‌دارند و تنها پروجکتور را آموزش می‌دهند؛ ترفندی که با هزینه‌ای ناچیز، سیگنالی در مقیاس چند میلیارد پارامتر فراهم می‌کند.

سازوکار DeepStack

در پروجکشن معمولی، فقط از آخرین لایه‌ی ViT استفاده می‌شود. اما DeepStack (که در Qwen3-VL به کار رفته) از چندین عمق مختلف ViT ویژگی‌ها را نمونه‌برداری کرده و روی هم قرار می‌دهد (Stack). لایه‌های عمیق‌تر حامل معنای سطح بالا (Semantics) هستند؛ لایه‌های سطحی‌تر جزئیات دقیق مکانی و بافت‌ها را منتقل می‌کنند. ارسال هر دو دسته به LLM، فاصله‌ی بین «تصویر حاوی چیست» (معنا) و «دقیقاً کجاست» (مکان‌یابی فضایی) را پر می‌کند.

سه مرحله‌ی آموزش

مدل‌های مدرن VLM در سه مرحله آموزش می‌بینند:

  1. هم‌ترازی (Alignment): مدل‌های ViT و LLM فریز می‌شوند و فقط پروجکتور روی جفت‌های تصویر-کپشن آموزش می‌بیند. این کار به پروجکتور یاد می‌دهد که فضای بصری را به فضای زبان تصویر کند.
  2. پیش‌آموزش (Pre-training): قفل همه‌ی وزن‌ها باز می‌شود. کل سیستم روی دیتاست‌های عظیم حاوی متن و تصویر درهم‌تنیده (بیش از 500M جفت داده) آموزش می‌بیند تا دانش بصری مدل ساخته شود.
  3. تنظیم دستورالعمل‌ها (Instruction tuning): مدل روی سه‌گانه‌های گزینش‌شده‌ی (تصویر، پرسش، پاسخ) فاین‌تیون می‌شود. این مرحله رفتار گفتگو و قالب تسک‌ها را آموزش می‌دهد و همان چیزی است که یک «مدل زبانِ آگاه به تصویر» را به یک دستیار کاربردی تبدیل می‌کند.

بیشتر فاین‌تیون‌های مبتنی بر LoRA با یک دیتاست برچسب‌خورده‌ی جمع‌وجور، مستقیماً مرحله‌ی 3 را هدف می‌گیرند.

مقایسه‌ی خانواده‌ی مدل‌ها (اوایل سال 2026)

مدل پارامترها انکودر بینایی LLM کانتکست نقاط قوت
Qwen3-VL-235B-A22B (MoE) 235B (22B فعال) ViT اختصاصی + DeepStack Qwen3 256K پیشتاز کلی (SOTA)، ایجنت رابط کاربری (GUI)
Qwen3-VL-30B-A3B (MoE) 30B (3B فعال) ViT اختصاصی + DeepStack Qwen3 256K گزینه‌ی سبک‌ترِ MoE
Qwen3-VL-8B (متراکم) 8B ViT اختصاصی Qwen3 128K انتخاب پیش‌فرض متراکم برای پروداکشن
InternVL3.5-38B 38B InternViT-6B Qwen3 + GPT-OSS 128K عملکرد قوی در MMBench و MMVet
InternVL3.5-241B-A28B 241B (28B فعال) InternViT-6B Qwen3 128K رقابتی با GPT-4o
LLaVA-Next 72B 72B SigLIP Llama-3 32K باز، فاین‌تیونینگ آسان
GLM-4.6V حدود 70B اختصاصی GLM 64K متن‌باز، فوق‌العاده در OCR
MiniCPM-V-2.6 8B SigLIP MiniCPM 32K سازگار با محیط‌های لبه (Edge)

ایجنت‌های دیداری

مدل Qwen3-VL-235B در OSWorld — بنچمارکی برای ایجنت‌های دیداری که با رابط‌های گرافیکی (دسکتاپ، موبایل و وب) کار می‌کنند — به برترین عملکرد جهانی رسیده است. این مدل اسکرین‌شات را می‌بیند، رابط کاربری را درک می‌کند و اکشن‌ها را صادر می‌کند (کلیک، تایپ، اسکرول). این قابلیت در ترکیب با ابزارها، چرخه‌ی انجام کارهای متداول دسکتاپ را می‌بندد. اکثر دموهای «کامپیوترهای مجهز به هوش مصنوعی» در سال 2026 در لایه‌ی زیرین دقیقاً با همین سازوکار اجرا می‌شوند.

قابلیت‌های ایجنتی و نسخه‌های مختلف RoPE

مدل‌های VLM برای کار با ویدیو باید بدانند یک فریم دقیقاً چه زمانی رخ داده است. مدل Qwen3-VL از روش T-RoPE (امبدینگ دورانی موقعیت زمانی) فراتر رفته و به هم‌ترازی زمانی متنی (Text-based time alignment) رسیده است؛ یعنی توکن‌های متنی صریح برچسب زمان به‌طور مستقیم لابه‌لای فریم‌های ویدیو قرار می‌گیرند. مدل ساختاری مانند «<timestamp 00:32> فریم، پرامپت» را مشاهده می‌کند و می‌تواند روابط زمانی را تحلیل کند.

مسئله‌ی هم‌ترازی

حدود 12% از جفت‌های تصویر-متن در یک دیتاست جمع‌آوری‌شده از وب، حاوی توضیحاتی هستند که اصلاً در تصویر وجود ندارند. مدلی که با این داده‌ها آموزش ببیند، ناخواسته یاد می‌گیرد توهم بزند — اشیاء خیالی بسازد، اعداد را اشتباه بخواند و روابط ناموجود خلق کند. در محیط پروداکشن، این اصلی‌ترین حالت شکست است.

تیم Skywork.ai برای پایش این مسئله، سنجه‌ی نرخ خطای بین‌وجهی (Cross-Modal Error Rate یا CMER) را معرفی کرد:

CMER = fraction of outputs where the text confidence is high but the image-text similarity (via a CLIP-family checker) is low

اگر CMER بالا باشد، یعنی مدل با قطعیت زیاد درباره‌ی چیزهایی حرف می‌زند که هیچ پایه‌ای در تصویر ندارند. رصد CMER و در نظر گرفتن آن به‌عنوان یکی از KPIهای پروداکشن، نرخ توهم را در استقرار آن‌ها حدود 35% کاهش داد. ترفند اصلی «اصلاح مدل» نیست، بلکه «هدایت خروجی‌های با CMER بالا به صف بازبینی انسانی» است.

فاین‌تیونینگ با LoRA و QLoRA

فاین‌تیونینگ کامل یک مدل 70B برای اکثر تیم‌ها شدنی نیست. با اعمال LoRA (رتبه‌ی 16 تا 64) روی لایه‌های اتنشن و پروجکتور، یا استفاده از QLoRA با وزن‌های پایه‌ی 4 بیتی، کل فرایند روی یک کارت A100 یا H100 جا می‌شود. هزینه‌ی کار: بین 5,000 تا 50,000 نمونه، 100 تا 5,000 دلار هزینه‌ی محاسباتی، و 2 تا 10 ساعت زمان آموزش.

استدلال فضایی هنوز ضعیف است

مدل‌های فعلی VLM در بنچمارک‌های استدلال فضایی (بالا-پایین، چپ-راست، شمارش، فاصله) امتیاز 50 تا 60 درصد می‌گیرند. اگر سناریوی شما به این بستگی دارد که «کدام شیء روی دیگری قرار گرفته»، باید به‌شدت آن را اعتبارسنجی کنید؛ عملکرد مدل‌های جنریک VLM در این بخش پایین‌تر از انسان است. جایگزین‌های بهتر از VLM برای تسک‌های صرفاً فضایی: یک مدل تخصصی تخمین اسکلت/نقاط کلیدی (Pose/Keypoint estimator)، یک مدل تخمین عمق، یا یک مدل تشخیص شیء (Detection) که هندسه‌ی کادرهای مرزی (Bounding boxes) آن پس‌پردازش شود.

مدل VLM · ساختار ViT-MLP-LLMورود توکن‌های تصویر به جریان متن
VLM · ViT-MLP-LLMEvery production VLM is the same three parts. A ViT slices the image into patches and encodes each one; a small MLP projects those patch embeddings into the LLM token space; the decoder then reads image tokens and text tokens as one interleaved sequence, so "how many red cars?" is answered by ordinary next-token prediction. Swapping the ViT, the projector, or the LLM is mechanical once the pattern is in place.ساختار ViT-MLP-LLM: ورود تصویر به LLM در قالب توکنپچ‌هاپروجکتور ViT + MLPمتن: «چند ماشین قرمز؟»howmanyredcarsتوکن‌های تصویردیکودر LLMپاسخ: «3»one interleaved sequence: [img][img][img][img][how][many][red][cars] -> next-token prediction
تمام VLMهای عملیاتی از همین سه بخش تشکیل شده‌اند: یک ViT تصویر را به پچ‌ها برش داده و کدگذاری می‌کند؛ یک MLP کوچک این امبدینگ‌های پچ را به فضای توکن LLM تصویر می‌کند؛ سپس دیکودر توکن‌های تصویر و متن را در قالب یک توالی ترکیبی واحد می‌خواند، بنابراین به سوال «چند ماشین قرمز وجود دارد؟» با همان پیش‌بینی ساده‌ی توکن بعدی پاسخ داده می‌شود. با پیاده‌سازی این الگو، جایگزینی ViT، پروجکتور یا LLM فرآیندی کاملاً مکانیکی و سرراست است.

ساخت گام‌به‌گام

مرحله‌ی 1: ساخت پروجکتور

بخشی که بیشتر از همه آن را آموزش خواهید داد. یک MLP با 2 تا 4 لایه و تابع فعال‌ساز GELU:

import torch
import torch.nn as nn


class Projector(nn.Module):
    def __init__(self, vit_dim=768, llm_dim=4096, hidden=4096):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(vit_dim, hidden),
            nn.GELU(),
            nn.Linear(hidden, llm_dim),
        )

    def forward(self, x):
        return self.net(x)

ورودی یک تنسور توکن با ابعاد (N_patches, d_vit) و خروجی (N_patches, d_llm) است. مدل زبانی با هر ردیف خروجی دقیقاً مثل یک توکن معمولی رفتار می‌کند.

مرحله‌ی 2: سرهم‌بندی سراسری ViT-MLP-LLM

اسکلت گذر رو به جلو (Forward pass) برای یک VLM حداقلی. کدهای واقعی از transformers استفاده می‌کنند؛ این صرفاً ساختار مفهومی کار است:

class MinimalVLM(nn.Module):
    def __init__(self, vit, projector, llm, image_token_id):
        super().__init__()
        self.vit = vit
        self.projector = projector
        self.llm = llm
        self.image_token_id = image_token_id  # placeholder token in text prompt

    def forward(self, image, input_ids, attention_mask):
        # 1. ویژگی‌های بصری
        vision_tokens = self.vit(image)                     # (B, N_patches, d_vit)
        vision_embeds = self.projector(vision_tokens)       # (B, N_patches, d_llm)

        # 2. امبدینگ‌های متن
        text_embeds = self.llm.get_input_embeddings()(input_ids)  # (B, M, d_llm)

        # 3. جایگزینی توکن‌های نگهدارنده‌ی تصویر با امبدینگ‌های بصری
        merged = self._merge(text_embeds, vision_embeds, input_ids)

        # 4. اجرای LLM
        return self.llm(inputs_embeds=merged, attention_mask=attention_mask)

    def _merge(self, text_embeds, vision_embeds, input_ids):
        out = text_embeds.clone()
        expected = vision_embeds.size(1)
        for b in range(input_ids.size(0)):
            positions = (input_ids[b] == self.image_token_id).nonzero(as_tuple=True)[0]
            if len(positions) != expected:
                raise ValueError(
                    f"batch item {b} has {len(positions)} image tokens but vision_embeds has {expected} patches."
                    " Every sample in the batch must be pre-padded to the same number of image placeholder tokens.")
            out[b, positions] = vision_embeds[b]
        return out

توکن نگه‌دارنده‌ی <image> در متن، با امبدینگ‌های واقعی تصویر جایگزین می‌شود؛ همان الگویی که در LLaVA، Qwen-VL و InternVL به کار رفته است.

مرحله‌ی 3: محاسبه‌ی CMER

یک بررسی سبک در زمان اجرا (Runtime):

import torch.nn.functional as F


def cross_modal_error_rate(image_emb, text_emb, text_confidence, sim_threshold=0.25, conf_threshold=0.8):
    """
    image_emb, text_emb: embeddings of image and generated text (normalised internally)
    text_confidence:     mean per-token probability in [0, 1]
    Returns:             fraction of high-confidence outputs with low image-text alignment
    """
    image_emb = F.normalize(image_emb, dim=-1)
    text_emb = F.normalize(text_emb, dim=-1)
    sim = (image_emb * text_emb).sum(dim=-1)        # cosine similarity
    high_conf_low_sim = (text_confidence > conf_threshold) & (sim < sim_threshold)
    return high_conf_low_sim.float().mean().item()

به CMER به چشم یک KPI پروداکشن نگاه کنید. آن را به تفکیک اندپوینت، نوع پرامپت و مشتری مانیتور کنید. بالا رفتن CMER نشان می‌دهد که مدل روی توزیع خاصی از ورودی‌ها در حال توهم زدن است.

مرحله‌ی 4: کلاسیفایر تجربی VLM (قابل اجرا)

این بخش نشان می‌دهد پروجکتور چگونه آموزش می‌بیند. «ویژگی‌های ساختگی ViT» وارد سیستم می‌شوند؛ و یک توکن کوچکِ شبیه به LLM کلاس را پیش‌بینی می‌کند:

class ToyVLM(nn.Module):
    def __init__(self, vit_dim=32, llm_dim=64, num_classes=5):
        super().__init__()
        self.projector = Projector(vit_dim, llm_dim, hidden=64)
        self.head = nn.Linear(llm_dim, num_classes)

    def forward(self, vision_tokens):
        projected = self.projector(vision_tokens)
        pooled = projected.mean(dim=1)
        return self.head(pooled)

می‌توانید این شبکه را روی جفت‌های ساختگی (ویژگی، کلاس) در کمتر از 200 گام فیت کنید؛ این تمرین برای اثبات کارکرد الگوی پروجکتور کافی است.

کاربرد در محیط واقعی

در سال 2026، تیم‌های پروداکشن به سه روش از VLMها استفاده می‌کنند:

  • استفاده از APIهای ابری: مثل OpenAI Vision، Anthropic Claude Vision و Google Gemini Vision. زیرساخت صفر، اما همراه با ریسک وابستگی به سرویس‌دهنده.
  • میزبانی متن‌باز (Self-host): اجرای Qwen3-VL یا InternVL3.5 از طریق transformers و vllm. کنترل کامل، اما با زحمت اولیه‌ی بیشتر.
  • فاین‌تیونینگ روی دامنه‌ی اختصاصی: لود کردن Qwen2.5-VL-7B یا LLaVA-1.6-7B، اعمال LoRA روی 5k تا 50k نمونه‌ی سفارشی، و سرو مدل با vllm یا TGI.
from transformers import AutoProcessor, AutoModelForVision2Seq
import torch
from PIL import Image

model_id = "Qwen/Qwen3-VL-8B-Instruct"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")

messages = [{
    "role": "user",
    "content": [
        {"type": "image", "image": Image.open("plot.png")},
        {"type": "text", "text": "What does this chart show?"},
    ],
}]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to("cuda")
generated = model.generate(**inputs, max_new_tokens=256)
answer = processor.decode(generated[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)

تابع apply_chat_template فرایند توکنایز کردن نگه‌دارنده‌ی <image> را مدیریت می‌کند و merge آن در داخل خود مدل انجام می‌شود.

آماده‌سازی برای استقرار

خروجی‌های این درس:

  • outputs/prompt-vlm-selector.md — مدلی برای انتخاب بین Qwen3-VL / InternVL3.5 / LLaVA-Next یا API بر اساس دقت، تاخیر، طول کانتکست و بودجه.
  • outputs/skill-cmer-monitor.md — تولید کد لازم برای تجهیز اندپوینت پروداکشن VLM به سنجه‌ی نرخ خطای بین‌وجهی، داشبوردهای اختصاصی هر اندپوینت و آستانه‌های هشدار.

تمرین‌ها

  1. (ساده) سه پرامپت («این چیست؟»، «اشیاء را بشمار» و «صحنه را توصیف کن») را با یک VLM متن‌باز روی پنج تصویر اجرا کنید. هر پاسخ را دستی با برچسب‌های درست / تا حدی درست / همراه با توهم نمره‌دهی کنید. یک نرخ اولیه شبیه به CMER برای آن محاسبه کنید.
  2. (متوسط) مدل Qwen2.5-VL-3B یا LLaVA-1.6-7B را با LoRA (رتبه‌ی 16) روی 500 تصویر حوزه‌ی هدف همراه با کپشن‌ها فاین‌تیون کنید. دقت آن را در حالت زیروشات با مدل فاین‌تیون‌شده در بنچمارکی شبیه MMBench مقایسه کنید.
  3. (پیشرفته) انکودر تصویر مدل را بردارید و DINOv3 را به جای گزینه‌ی پیش‌فرض SigLIP/CLIP بگذارید. فقط پروجکتور را دوباره آموزش دهید (در حالی که LLM و DINOv3 فریز هستند). بسنجید که آیا تسک‌های پیش‌بینی متراکم (شمارش، استدلال فضایی) بهتر شده‌اند یا خیر.

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

اصطلاح اصطلاح رایج معنای فنی دقیق
ViT-MLP-LLM «الگوی VLM» انکودر بینایی + پروجکتور + مدل زبانی؛ معماری تمام VLMهای سال 2026
پروجکتور (Projector) «پل ارتباطی» یک MLP با 2 تا 4 لایه (یا Q-former) که توکن‌های بینایی را به فضای امبدینگ LLM تصویر می‌کند
DeepStack «ترفند لایه‌ای Qwen3-VL» انباشتن ویژگی‌های سطوح مختلف ViT روی هم، به جای استفاده از تک‌لایه‌ی آخر
توکن تصویر (Image token) «نگه‌دارنده‌ی <image>» توکن ویژه‌ای در جریان متن که با امبدینگ‌های تصویرشده‌ی بینایی جایگزین می‌شود
CMER «شاخص توهم» نرخ خطای بین‌وجهی؛ زمانی بالا می‌رود که اطمینان متن بالاست اما شباهت تصویر و متن پایین است
ایجنت دیداری (Visual agent) «VLM کلیک‌کننده» VLMای که رابط‌های کاربری (OSWorld، موبایل، وب) را از طریق فراخوانی ابزارها مدیریت می‌کند
کیو-فورمر (Q-former) «پل توکن با تعداد ثابت» پروجکتوری با ساختار BLIP-2 که تعداد ثابتی توکن پرس‌وجوی دیداری تولید می‌کند
هم‌ترازی / پیش‌آموزش / تنظیم دستورالعمل‌ها «مراحل سه‌گانه» پایپ‌لاین استاندارد آموزش VLM

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسدر الگوی VLM مبتنی بر ViT-MLP-LLM، هنگام هم‌ترازسازی معمولاً کدام جزء آموزش داده شده و بقیه فریز باقی می‌مانند؟
  2. پیش از درسمکانیزم DeepStack (به‌کاررفته در Qwen3-VL) چه کاری انجام می‌دهد؟
  3. پس از درسیک VLM در محیط عملیاتی با اطمینان متنی بالایی تولید خروجی می‌کند، اما اشیایی را توصیف می‌کند که در تصویر نیستند. کدام معیار این نقص را اندازه‌گیری می‌کند؟
  4. پس از درسچرا VLMهای امروزی به‌جای استفاده از ResNet سوپروایزدِ ImageNet به عنوان ستون فقرات، از SigLIP یا انکودرهای بصری سفارشی استفاده می‌کنند؟
  5. پس از درسمدل Qwen3-VL-235B-A22B بالاترین امتیازات را در OSWorld کسب کرده است. OSWorld چیست و این نتیجه چه معنایی دارد؟

سؤالات متداول

چرا مدل CLIP به‌تنهایی برای پاسخ به پرسش درباره‌ی تصاویر کافی نیست؟

مدل CLIP فقط یک فضای امبدینگ مشترک برای محاسبه‌ی شباهت تصویر و متن دارد و به دلیل نداشتن دیکودر زبانی، قادر به استدلال یا تولید متن پاسخ نیست.

وظیفه‌ی بخش پروجکتور (Projector) در معماری ViT-MLP-LLM چیست؟

پروجکتور یک MLP چندلایه (یا Q-former) است که وظیفه دارد توکن‌های خروجی انکودر بینایی را به بعد امبدینگ مدل زبانی تصویر (Project) کند.

مفهوم DeepStack در مدل Qwen3-VL چیست و چه مزیتی دارد؟

به جای استفاده‌ی صرف از لایه‌ی آخر ViT، ویژگی‌های چند لایه و عمق مختلف را انباشته می‌کند تا جزئیات مکانی لایه‌های سطحی و مفاهیم معنایی لایه‌های عمیق هم‌زمان به مدل زبانی منتقل شوند.

سنجه‌ی CMER در مدل‌های VLM چه کاربردی دارد؟

نرخ خطای بین‌وجهی (CMER) بررسی می‌کند که مدل کلماتی با احتمال بالا ولی بدون پشتیبانی محتوایی در تصویر تولید نکند؛ از این سنجه برای شناسایی توهم و ارسال خروجی‌ها به بازبینی انسانی استفاده می‌شود.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.