در توسعهی سیستمهای هوش مصنوعی چندمدالیته، همواره میان دو مسیر چالش وجود داشته است: مدلهای خودبازگشتی مثل Chameleon که استنتاج بسیار کندی دارند، و مدلهای ترکیبی پیوسته مانند Transfusion که آموزش آنها بهدلیل تفاوت مقیاس عددیِ توابع زیان، به تنظیمات پیچیدهی هایپرپارامترها وابسته است. مدل Show-o مسیر سومی را باز میکند که هر دو مدالیته را گسسته نگه میدارد، اما سرعت تولید تصویر را بهشکل چشمگیری افزایش میدهد.
این مدل با الهام از MaskGIT، به جای تولید توکنبهتوکن، از دیفیوژن گسستهی ماسکشده استفاده میکند و تصویر را تنها در حدود 16 مرحله موازی میسازد. به این ترتیب، وظایف متنوعی مثل درک بصری (VQA)، تولید متنبهتصویر و اینپینتینگ درون یک ترنسفورمر واحد و با یک تابع زیان یکپارچه پیادهسازی میشوند.
آشنایی با این معماری به مهندسان دید عمیقی میدهد تا هنگام انتخاب زیرساخت برای محصولات هوش مصنوعی وزنباز، توازن دقیقی میان کیفیت خروجی، سرعت استنتاج و هزینهی منابع پردازشی برقرار کنند.
ترنسفیوژن (Transfusion) بازنماییهای پیوسته و گسسته را با هم ترکیب میکند. در مقابل، مدل Show-o (شی و همکاران، اوت 2024) مسیر متفاوتی را در پیش میگیرد: توکنهای متن از پیشبینی توکن بعدی (Next-Token Prediction یا NTP) علی استفاده میکنند و توکنهای تصویر بر پایهی دیفیوژن گسستهی ماسکشده (masked discrete diffusion) و با الهام از MaskGIT تولید میشوند. هر دو مدالیته درون یک ترنسفورمر (Transformer) واحد با ماسک اتنشن (attention) ترکیبی مینشینند. حاصل این طراحی، یکپارچهسازی وظایف VQA، متنبهتصویر (T2I)، اینپینتینگ (inpainting) و تولید چندمدالیتهای روی یک بکبون (backbone)، یک توکنایزر برای هر مدالیته و یک فرمولاسیون واحد برای تابع زیان (توسعهی پیشبینی توکن بعدی به پیشبینی ماسکشده) است. در این درس معماری Show-o را بررسی میکنیم؛ اینکه چرا دیفیوژن گسستهی ماسکشده روشی موازی و چندمرحلهای برای تولید سریع تصویر است، و چه تفاوتهایی با Transfusion و Emu3 دارد.
اهداف یادگیری
- تشریح دیفیوژن گسستهی ماسکشده: برنامهی زمانبندی (schedule) که توکنها را بهطور یکنواخت ماسک میکند و سپس از ترنسفورمر میخواهد آنها را بازیابی کند.
- مقایسهی رمزگشایی موازی تصویر (Show-o, MaskGIT) با رمزگشایی خودبازگشتی تصویر (Chameleon, Emu3) از نظر سرعت و کیفیت.
- نام بردن از چهار وظیفهای که Show-o در یک چکپوینت (checkpoint) پشتیبانی میکند: تولید متن، VQA، متنبهتصویر و اینپینتینگ تصویر.
- انتخاب یک برنامهی زمانبندی ماسکگذاری (کسینوسی، خطی، بریدهشده) و تحلیل اثر آن بر کیفیت نمونههای تولیدی.
صورت مسئله
آموزش Transfusion با دو تابع زیان بهخوبی جواب میدهد، اما دینامیک پیچیدهتری دارد؛ مقیاس عددی تابع زیان دیفیوژن پیوسته با تابع زیان گسستهی NTP همخوان نیست. متعادلکردن وزن این دو تابع زیان نیازمند جستوجوی هایپرپارامترهاست. بنابراین معماری آن در عین کارآمدی، پیچیده است.
پاسخ Show-o به این چالش سرراست است: هر دو مدالیته را مانند Chameleon گسسته نگه دارید، اما تصاویر را بهجای تولید ترتیبی، بهصورت موازی و از طریق دیفیوژن گسستهی ماسکشده بسازید. در این حالت، هدف آموزشی به یک پیشبینی توکن ماسکشدهی واحد تبدیل میشود که پیشبینی توکن بعدی را بهشکلی طبیعی تعمیم میدهد.
مفاهیم کلیدی
دیفیوژن گسستهی ماسکشده (MaskGIT)
ترفند اصلی چانگ و همکاران (Chang et al.، 2022) در MaskGIT بسیار هوشمندانه است. کار را از یک تصویر کاملاً ماسکشده شروع میکنید (همهی توکنها شناسهی اختصاصی <MASK> دارند). در هر مرحله، تمام توکنهای ماسکشده را بهطور موازی پیشبینی میکنید، سپس K پیشبینی با بالاترین درجهی اطمینان را نگه میدارید و باقی را دوباره ماسک میکنید. پس از حدود 8 تا 16 تکرار، همهی توکنها پر میشوند. برنامهی زمانبندیِ تعداد توکنهایی که در هر مرحله از حالت ماسک خارج میشوند تنظیمشدنی است و زمانبندیهای کسینوسی عملکرد بسیار خوبی دارند.
آموزش مدل ساده است: یک نسبت ماسکگذاری را بهطور یکنواخت از بازهی [0, 1] نمونهبرداری کنید، آن را روی توکنهای VQ تصویر اعمال کنید، و به ترنسفورمر یاد دهید توکنهای ماسکشده را بازیابی کند. این دقیقاً همان کاری است که BERT برای متن انجام داد، منتها در مقیاس تولید تصویر.
ساختار Show-o: یک ترنسفورمر، ماسک ترکیبی
مدل Show-o رویکرد MaskGIT را درون یک ترنسفورمر بر پایهی مدل زبانی علی پیاده میکند. ساختار ماسک اتنشن به این صورت است:
- توکنهای متنی: علی (مشابه LLMهای استاندارد).
- توکنهای تصویر: کاملاً دوطرفه (bidirectional) درون بلوک تصویر (تا توکنهای ماسکشده در حین پیشبینی بتوانند همهی توکنهای دیگر تصویر را ببینند).
- متنبهتصویر: متن به تصاویر پیشین (prior) اتنشن میدهد، و تصویر به متن پیشین.
آموزش مدل بهصورت متناوب بین این سه حالت جابهجا میشود:
- آموزش استاندارد NTP روی توالیهای متنی.
- نمونههای متنبهتصویر (T2I): متن به تصویر، با توکنهای تصویر ماسکشده و تابع زیان پیشبینی توکنهای ماسکشده.
- نمونههای VQA: تصویر به متن، با توکنهای متنی ماسکشده (که در عمل همان NTP است).
تابع زیان یکپارچهی مدل، آنتروپی متقاطع (Cross-Entropy) روی توکنهای <MASK> است که هم NTP متن (که در آن فقط آخرین توکن «ماسک» شده است) و هم دیفیوژن ماسکشدهی تصویر (که زیرمجموعهای تصادفی از آن ماسک میشود) را پوشش میدهد.
نمونهبرداری موازی
مدل Show-o یک تصویر را بهجای حدود 1000 مرحله (حالت خودبازگشتی توکنبهتوکن) یا حدود 20 مرحله (دیفیوژن پیوسته)، در حدود 16 مرحله تولید میکند. در هر گام، همهی توکنهای ماسکشده را بهصورت موازی پیشبینی کنید؛ K توکن با بیشترین اطمینان را commit کنید؛ و این چرخه را تکرار نمایید.
مقایسه کنید:
- مدلهای Chameleon / Emu3 (خودبازگشتی روی توکنها): به تعداد N_tokens گذر رو به جلو (forward pass) نیاز دارند که معمولاً 1024 تا 4096 بار برای هر تصویر است.
- مدل Transfusion (دیفیوژن پیوسته): حدود 20 مرحله که هر کدام یک گذر کامل ترنسفورمر است.
- مدل Show-o (دیفیوژن گسستهی ماسکشده): حدود 16 مرحله که هر کدام یک گذر کامل ترنسفورمر است.
مدل Show-o در مقیاسهای مشابه از Chameleon سریعتر است و از نظر تعداد مراحل تقریباً با Transfusion برابری میکند، در حالی که هزینهی هر مرحلهی آن کمتر است (لاجیتهای واژگان گسسته در مقایسه با تابع زیان MSE پیوسته).
چند وظیفه در یک چکپوینت
مدل Show-o در زمان استنتاج بر اساس قالب پرامپت (prompt) ورودی، از چهار وظیفه پشتیبانی میکند:
- تولید متن: خروجی متنی استاندارد و خودبازگشتی.
- وظیفهی VQA: ورودی تصویر، خروجی متن.
- متنبهتصویر: ورودی متن، خروجی تصویر از طریق دیفیوژن گسستهی ماسکشده.
- اینپینتینگ: ورودی تصویری با چند توکن ماسکشده، و پر کردن بخشهای خالی در خروجی.
قابلیت اینپینتینگ بدون هیچ هزینهی اضافی، مستقیماً از هدف آموزشی پیشبینی ماسکشده حاصل میشود. کافی است بخشی از شبکهی توکنهای VQ را ماسک کنید، بقیهی توکنها را همراه با پرامپت متنی به مدل بدهید و توکنهای ماسکشده را پیشبینی کنید.
برنامهی زمانبندی ماسکگذاری
برنامهی زمانبندیِ خروج توکنها از حالت ماسک در هر مرحله، کیفیت نهایی خروجی را تعیین میکند. تیم Show-o زمانبندی کسینوسی را پیشنهاد میدهد:
در گام 0، همهی توکنها ماسک هستند (نسبت 1.0). در گام ، هیچ توکنی ماسک نیست. تابع کسینوسی بیشترین وزن مراحل را روی نسبتهای میانرده میگذارد؛ درست همانجایی که پیشبینی بیشترین بار اطلاعاتی را دارد. زمانبندیهای خطی هم کار میکنند، اما رشد کیفیت در آنها زودتر متوقف میشود.
مدل Show-o2
مدل Show-o2 (نسخهی ارتقایافته در سال 2025، arXiv 2506.15564) مقیاس Show-o را بالا میبرد: پایهی LLM بزرگتر، توکنایزر بهتر و زمانبندی ماسک اصلاحشده، اما با همان الگوی معماری.
جایگاه Show-o در نقشه مدلها
در ردهبندی معماریهای سال 2026:
- توکنهای گسسته + NTP: مدلهای Chameleon و Emu3. پیادهسازی ساده اما استنتاج کند.
- توکنهای گسسته + دیفیوژن ماسکشده: مدلهای Show-o، MaskGIT، LlamaGen و Muse. نمونهبرداری موازی، ولی همچنان همراه با اتلاف کیفیت ناشی از توکنایزر.
- بازنمایی پیوسته + دیفیوژن: مدلهای Transfusion، MMDiT و DiT. بالاترین کیفیت، اما فرایند آموزش پیچیدهتر.
- بازنمایی پیوسته + تطبیق جریان (Flow Matching) در یک VLM: مدلهای JanusFlow و InternVL-U؛ جدیدترین رویکردها.
معیار انتخاب بر اساس کاربرد: اگر در یک مدل وزنباز و با سرعتی معقول به ترکیب T2I، اینپینتینگ و VQA نیاز دارید، Show-o بهترین گزینه است. اگر کیفیت تصویر اولویت اول شماست و میتوانید از پس پیچیدگیهای آموزش با دو تابع زیان برآیید، Transfusion را انتخاب کنید.
استفاده در عمل
فایل code/main.py نمونهبرداری Show-o را شبیهسازی میکند:
- یک شبکهی آزمایشی شامل 16 توکن VQ.
- یک «ترنسفورمر» ساختگی (mock) که لاجیتها را بر اساس پرامپت و توکنهای ناماسک فعلی پیشبینی میکند.
- نمونهبرداری موازی ماسکشده طی 8 مرحله با زمانبندی کسینوسی.
- نمایش وضعیتهای میانی (روند تغییر الگوی ماسک) و خروجی نهایی توکنها.
کد را اجرا کنید و محو شدن مرحلهبهمرحلهی ماسک را ببینید.
خروجی کاربردی
خروجی این درس فایل outputs/skill-unified-gen-model-picker.md است. این راهنما به شما کمک میکند تا برای محصولی که با محدودیت مدلهای وزنباز، همزمان به درک تصویر (VQA، کپشننویسی) و تولید تصویر (T2I، اینپینتینگ) نیاز دارد، با تحلیل دقیق موازنهها بین خانوادهی Show-o، خانوادهی Transfusion/MMDiT و خانوادهی Emu3 / Chameleon دست به انتخاب بزنید.
تمرینها
-
دیفیوژن گسستهی ماسکشده نمونهبرداری را در حدود 16 مرحله انجام میدهد. چرا در 1 مرحله انجام نمیشود؟ اگر در همان گام 0 همهی توکنها را از ماسک خارج کنید چه مشکلی پیش میآید؟
-
قابلیت اینپینتینگ بهرایگان در دیفیوژن ماسکشده در دسترس است. یک سناریوی محصول واقعی یا فرضی پیشنهاد دهید که در آن قابلیت اینپینتینگ Show-o یک مدل تخصصی اینپینتینگ را شکست دهد.
-
زمانبندی کسینوسی در برابر زمانبندی خطی: تعداد توکنهای ناماسک در هر مرحله را برای T=8 محاسبه کنید. کدام زمانبندی تعادل بهتری دارد؟
-
یک تصویر 512x512 در Show-o شامل 1024 توکن است. با اندازهی واژگان ، مدل معادل بیت (حدود 1.75 KiB) داده تولید میکند. مدل Stable Diffusion معادل 51251224 بیت = 6,291,456 بیت (حدود 768 KiB) پیکسل خام تولید میکند. نسبت فشردهسازی چقدر است و این فشردهسازی چه هزینهای از نظر کیفی به همراه دارد؟
-
مقالهی LlamaGen (arXiv:2406.06525) را بخوانید. مدل تصویر خودبازگشتیِ مشروط به کلاس در LlamaGen چه تفاوتی با رویکرد ماسکشدهی Show-o دارد؟
اصطلاحات کلیدی
| اصطلاح | اصطلاح رایج | معنای دقیق فنی |
|---|---|---|
| دیفیوژن گسستهی ماسکشده (Masked discrete diffusion) | «به سبک MaskGIT» | آموزش مدل برای پیشبینی توکنهای ماسکشده؛ در زمان استنتاج، پیشبینیهای با بالاترین اطمینان بهصورت تکرارشونده از حالت ماسک خارج میشوند |
| زمانبندی کسینوسی (Cosine schedule) | «برنامهی خروج از ماسک» | افت نسبت ماسک طی مراحل استنتاج؛ رشد اطمینان را در مراحل میانی متمرکز میکند |
| رمزگشایی موازی (Parallel decoding) | «تولید همهی توکنها با هم» | پیشبینی کل توالی توکنهای ماسکشده در هر مرحله تنها با یک گذر رو به جلو، و سپس commit کردن K توکن برتر |
| اتنشن ترکیبی (Hybrid attention) | «ترکیب علی و دوطرفه» | ماسکی که روی توکنهای متنی، علی (causal) و درون بلوکهای تصویری بهصورت دوطرفه عمل میکند |
| اینپینتینگ (Inpainting) | «تولید برای پر کردن جای خالی» | شرطیسازی روی تصویری که بخشی از توکنهایش ماسک شده و پیشبینی توکنهای مفقود؛ قابلیتی که بدون هزینهی اضافی از هدف آموزشی به دست میآید |
| نرخ تثبیت (Commitment rate) | «تعداد K توکن برتر در هر مرحله» | تعداد توکنهایی که در هر تکرار وضعیت قطعی پیدا میکنند؛ عاملی که موازنهی سرعت استنتاج و کیفیت خروجی را کنترل میکند |
