فاز 12 · درس 12

مدل Emu3: پیش‌بینی توکن بعدی برای تولید تصویر و ویدیو

نوع
مفهومی
زمان
حدود 120 دقیقه
زبان‌ها
Python (stdlib, 3D video tokenizer math + autoregressive sampler skeleton)
پیش‌نیاز
فاز 12 · درس 11 (Chameleon)
یک ترنسفورمر تک‌شاخه که رشته‌ای از مکعب‌های رنگی شفاف و فیلم‌های نگاتیو ویدیویی را به‌صورت توکن‌های یکپارچه پردازش می‌کند
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم کلیدی
  4. توکنایزر Emu3
  5. آموزش با یک تابع زیان واحد
  6. هدایت بدون طبقه‌بند و دما
  7. سه نقش، یک مدل
  8. بنچمارک‌ها
  9. هزینه‌ی محاسباتی
  10. چرا این موضوع اهمیت دارد؟
  11. استفاده از ابزارهای واقعی
  12. خروجی این درس
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

سال‌ها باور غالب در دنیای هوش مصنوعی این بود که تولید تصویر باکیفیت بدون مدل‌های دیفیوژن (Diffusion Models) ممکن نیست و مدل‌های اتورگرسیو دچار انباشت خطا می‌شوند. مدل Emu3 با اتکا به یک توکنایزر قدرتمند و افزایش مقیاس نشان داد که یک ترنسفورمر استاندارد با همان هدف ساده‌ی «پیش‌بینی توکن بعدی» می‌تواند خروجی‌هایی هم‌تراز یا حتی بهتر از Stable Diffusion XL تولید کند و هم‌زمان وظایف بینایی و ادراک تصویر را هم انجام دهد.

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

اگر قصد تست یا اجرای محلی مدل‌های چندوجهی بزرگ را دارید، توجه داشته باشید که تهیه‌ی کارت‌های گرافیک قدرتمند یا اجاره‌ی سرورهای GPU خارجی به دلیل محدودیت‌های پرداخت ارزی و دسترسی چالش‌برانگیز است؛ بنابراین شناخت دقیق تعداد توکن‌ها و هزینه‌ی محاسباتی قبل از پیاده‌سازی این مدل‌ها ضروری است.

مدل Emu3 از مؤسسه‌ی BAAI (وانگ و همکاران، سپتامبر 2024) همان دستاورد سال 2024 بود که باید به مناقشه‌ی میان مدل‌های دیفیوژن و اتورگرسیو پایان می‌داد. یک ترنسفورمر فقط-دیکودر تکی با معماری مشابه Llama، که صرفاً با هدف پیش‌بینی توکن بعدی (Next-Token Prediction) روی واژگان یکپارچه‌ای از متن، توکن‌های تصویر VQ و توکن‌های ویدیوی 3D VQ آموزش دیده است؛ مدلی که در تولید تصویر SDXL را و در درک تصویر LLaVA-1.6 را پشت سر می‌گذارد. خبری از تابع زیان CLIP نیست. اسکژولر (Scheduler) دیفیوژن هم در کار نیست. هدایت بدون طبقه‌بند (Classifier-Free Guidance یا CFG) در زمان استنتاج برای ارتقای کیفیت به کار می‌رود، اما هدف اصلی آموزش همان پیش‌بینی توکن بعدی با وادارسازی معلم (Teacher forcing) است. این مقاله در Nature منتشر شد. در این درس ایده‌ی اصلی Emu3 را بررسی می‌کنیم؛ این‌که چرا یک توکنایزر بهتر همراه با افزایش مقیاس تمام چیزی است که نیاز دارید، و تفاوت‌های آن با رویکردهای دیفیوژن را می‌سنجیم.

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

  • توضیح دهید چرا رویکرد Emu3 با تک تابع زیان پیش‌بینی توکن بعدی جواب می‌دهد؛ آن هم با وجود این فرض دیرینه که کیفیت تصویر حتماً نیازمند دیفیوژن است.
  • توکنایزر ویدیویی سه‌بعدی را توصیف کنید: کتاب کد (Codebook) مکانی-زمانی VQ چه ساختاری دارد و چرا پچ‌ها در طول زمان امتداد می‌یابند.
  • مدل Emu3 را با Stable Diffusion XL بر اساس (توان محاسباتی آموزش، هزینه‌ی استنتاج، سقف کیفیت) مقایسه کنید.
  • سه نقشی را نام ببرید که همین مدل Emu3 ایفا می‌کند: Emu3-Gen (تولید تصویر)، Emu3-Chat (ادراک و بینایی)، Emu3-Stage2 (تولید ویدیو).

صورت مسئله

باور عمومی تا سال 2024 این بود: تولید تصویر به مدل دیفیوژن (Diffusion Model) نیاز دارد. استدلال این بود که توکن‌های گسسته‌ی تصویر، اطلاعات بسیار زیادی را از دست می‌دهند و بازسازی جزئیات ناممکن می‌شود؛ علاوه بر این، نمونه‌گیری اتورگرسیو در طول هزاران توکن خطای انباشته تولید می‌کند. مدل‌های Stable Diffusion، DALL-E 3، Imagen و Midjourney همگی به شکلی از دیفیوژن استفاده می‌کنند. مدل Chameleon (درس 12.11) این ادعا را در مقیاس کوچک تا حدی رد کرد، اما از نظر کیفیت به گرد پای SDXL نرسید.

مدل Emu3 دقیقاً به سراغ همین ادعا رفت و آن را به چالش کشید. ادعای آن‌ها این بود: توکنایزر بصری بهتر + مقیاس کافی + تابع زیان پیش‌بینی توکن بعدی = تولید تصویری بهتر از دیفیوژن، آن هم درون همان مدلی که ادراک بصری را هم انجام می‌دهد.

این شرط‌بندی زمان انتشار مقاله بسیار بحث‌برانگیز بود. دو سال بعد، خانواده‌ی مدل‌های یکپارچه‌ی تولید متن‌باز (Emu3، Show-o، Janus-Pro، Transfusion) به مسیر پیش‌فرض پژوهش‌ها تبدیل شده‌اند؛ مدل‌های پیشروی عملیاتی نیز ظاهراً از نسخه‌ای از همین رویکرد استفاده می‌کنند.

مفاهیم کلیدی

توکنایزر Emu3

بخش کلیدی کار، توکنایزر بصری است. Emu3 یک توکنایزر سفارشی از دسته‌ی IBQ (کوانتایزر گلوگاه معکوس یا Inverse Bottleneck Quantizer، از خانواده‌ی SBER-MoVQGAN) با کاهش وضوح 8x8 به ازای هر توکن آموزش می‌دهد. با این حساب، یک تصویر 512x512 تبدیل به 64x64 = 4096 توکن با کتاب کد به اندازه‌ی 32768 می‌شود.

این مقدار از توکنایزر Chameleon با 1024 توکن برای تصویر 512x512 و K=8192 در هر دو بعد بزرگ‌تر است: چهار برابر توکن بیشتر و یک کتاب کد با ظرفیت چهار برابری. این ظرفیت اضافه، کیفیت بازسازی بهتری فراهم می‌کند. معیار اصلی این برتری: مقدار PSNR بازسازی برابر با 30.5 dB است که شانه‌به‌شانه‌ی فضای نهان (Latent Space) پیوسته‌ی Stable Diffusion با 32 dB رقابت می‌کند.

برای ویدیو: یک توکنایزر 3D VQ یک پچ مکانی-زمانی (4 فریم در 8x8 پیکسل) را به یک عدد صحیح کدگذاری می‌کند. یک کلیپ 4 ثانیه‌ای با نرخ 8 فریم بر ثانیه، 32 فریم دارد؛ در وضوح 256x256 با کاهش 8 برابری مکانی و 4 برابری زمانی، تعداد توکن‌ها برابر است با: (256/8) * (256/8) * (32/4) = 32 * 32 * 8 = 8,192 توکن.

کیفیت توکنایزر، سقف عملکرد مدل را تعیین می‌کند. بخش مهمی از دستاورد Emu3 در این جمله خلاصه می‌شود: «ما یک توکنایزر فوق‌العاده خوب آموزش دادیم.»

آموزش با یک تابع زیان واحد

مدل Emu3 فقط از یک هدف استفاده می‌کند: پیش‌بینی توکن بعدی روی واژگان مشترکی میان توکن‌های متنی، توکن‌های دو‌بعدی تصویر و توکن‌های سه‌بعدی ویدیو. برای متوازن ساختن سهم داده‌ها در زمان آموزش، وزن‌ها در ضرایب ویژه‌ی هر مدالیته ضرب می‌شوند، اما تابع زیان دقیقاً یکسان است.

آموزش روی ترکیبی از این داده‌ها انجام می‌گیرد:

  • تولید تصویر: <text caption> <image> image_tokens </image>
  • ادراک تصویر: <image> image_tokens </image> <question> text_tokens
  • تولید ویدیو: <text caption> <video> video_tokens </video>
  • ادراک ویدیو: مشابه تولید ویدیو.
  • صرفاً متنی: پیش‌بینی توکن بعدی استاندارد.

مدل از توزیع داده‌ها یاد می‌گیرد که چه زمانی باید توکن تصویر تولید کند و چه زمانی توکن متن. توانایی تولید تصویر زمانی شکل می‌گیرد که مدل یاد می‌گیرد بعد از تگ <image>، توکن‌های تصویر را پیش‌بینی کند.

هدایت بدون طبقه‌بند و دما

تولید اتورگرسیو تصویر با اعمال هدایت بدون طبقه‌بند در زمان استنتاج جهش کیفی چشمگیری پیدا می‌کند. Emu3 هم از این روش بهره می‌برد: تولید توکن دو بار انجام می‌شود؛ یک‌بار با پرامپت کامل و یک‌بار با پرامپت خالی، سپس لاجیت‌ها (Logits) با ضریب هدایت (معمولاً بین 3.0 تا 7.0) با هم ترکیب می‌شوند. این دقیقاً همان ترفند CFG در مدل‌های دیفیوژن است که به فضای اتورگرسیو منتقل شده است.

دما (Temperature) نقشی تعیین‌کننده دارد: اگر خیلی بالا باشد نویز و اعوجاج می‌سازد؛ اگر خیلی پایین باشد دچار فروپاشی مُد (Mode collapse) می‌شود. دمای پیشنهادی Emu3 برای ادراک و بینایی 1.0 و برای تولید تصویر 0.8 است.

سه نقش، یک مدل

مدل Emu3 در قالب سه رابط برنامه‌نویسی با کارکردهای مجزا عرضه می‌شود، اما وزن‌های پایه‌ی همه‌ی آن‌ها یکی است:

  • Emu3-Gen: تولید تصویر. ورودی متن، خروجی توکن‌های تصویر.
  • Emu3-Chat: پرسش‌وپاسخ تصویری (VQA) و شرح تصویر. ورودی تصویر (توکن‌ها)، خروجی متن.
  • Emu3-Stage2: تولید ویدیو و پرسش‌وپاسخ ویدیویی. ورودی متن یا ویدیو، خروجی متن یا ویدیو.

هیچ سر (Head) تخصصی ویژه‌ای برای کارها وجود ندارد؛ تفاوت فقط در قالب پرامپت (Prompt template) است و چک‌پوینت (Checkpoint) کاملاً یکسان باقی می‌ماند.

بنچمارک‌ها

بر اساس مقاله‌ی Emu3 (سپتامبر 2024):

  • تولید تصویر: در معیار MJHQ-30K FID مدل SDXL را شکست می‌دهد (5.4 در برابر 5.6)، در GenEval مجموع نتایج برابر است (0.54 در برابر 0.55 که از نظر آماری هم‌سطح است)، و در ارزیابی ترکیبی Deep-Eval عملکردی هم‌رده دارد.
  • ادراک تصویر: در VQAv2 با امتیاز 75.1 در برابر 81.8 و در MMMU با امتیاز 31.6 در برابر 35.1 پایین‌تر از LLaVA-1.6 قرار می‌گیرد، اما آن را در SEED-Bench، OCRBench و ChartQA شکست می‌دهد.
  • تولید ویدیو: کیفیت یک کلیپ 4 ثانیه‌ای با معیارهای FVD قابل رقابت با مدل‌های عمومی هم‌دوره‌ی Sora است.

شاید این اعداد همیشه در صدر نباشند — Emu3 در یک تست کمی عقب می‌ماند و در تستی دیگر جلو می‌افتد — اما ادعای این‌که «پیش‌بینی توکن بعدی تمام چیزی است که نیاز دارید» در تمامی مدالیته‌ها کاملاً قابل دفاع است.

هزینه‌ی محاسباتی

مدل Emu3 دارای 8 میلیارد پارامتر است. مقاله مجموع ساعت‌های مصرفی GPU را منتشر نکرده است؛ برای درک مقیاس، پیش‌آموزش Llama-2-7B حدود 184 هزار ساعت پردازنده A100 مصرف کرد که معادل تقریباً 21 سال پردازشی یک GPU است. مدل‌های دیفیوژن مانند Stable Diffusion 3 با بودجه‌های محاسباتی مشابهی آموزش می‌بینند، اما به انکودرهای متنی جداگانه و پایپ‌لاین‌های پیچیده‌تری نیاز دارند.

در زمان استنتاج، تولید هر تصویر در Emu3 کندتر از SDXL است: تولید 4096 توکن تصویر با سرعت 30 توکن بر ثانیه، به معنای حدود 2 دقیقه زمان برای یک تصویر 512x512 است؛ در حالی که SDXL تصویر را در 2 تا 5 ثانیه تحویل می‌دهد. دیکودینگ حدسی (Speculative Decoding) و بهینه‌سازی کَش KV این فاصله را کمتر می‌کنند اما از بین نمی‌برند. تولید اتورگرسیو تصویر پردازش سنگینی می‌طلبد و این موازنه‌ی همیشگی میان این دو روش است.

چرا این موضوع اهمیت دارد؟

دستاورد عمیق Emu3 ماهیتی مفهومی دارد. اگر پیش‌بینی توکن بعدی بتواند در تولید تصویر به پای دیفیوژن برسد، مسیر مدل‌های یکپارچه (یک تابع زیان، یک بک‌بون (Backbone)، هر مدالیته‌ای) کاملاً دست‌یافتنی است. مدل‌های آینده دیگر نیازی به انکودرهای متنی جداگانه، اسکژولرهای دیفیوژن مجزا و VAEهای گوناگون ندارند. فقط یک ترنسفورمر، یک توکنایزر برای هر مدالیته و افزایش مقیاس کافی است.

پروژه‌های Show-o، Janus-Pro و InternVL-U همگی روی همین فرضیه بنا شده‌اند یا آن را به چالش می‌کشند. آزمایشگاه‌های چینی (مانند BAAI و DeepSeek) تا سال 2025 با سرعتی به‌مراتب بیشتر از رقبای آمریکایی در این مسیر مقاله منتشر کرده‌اند.

تولید توکن بعدی در EMU3یک سر، سه مدالیته
EMU3 NEXT-TOKEN GENERATIONEmu3 trains a single Llama-style decoder with next-token prediction over one shared vocabulary in which text, VQ image tokens, and 3D video tokens are all just entries. No diffusion schedule, no CLIP loss, no second objective. The same sweep of the same head writes a sentence, an image, or a video clip, which is why one model can be Emu3-Chat and Emu3-Gen at once.یک دکودر، یک واژگان، یک loss: پیش‌بینی توکن بعدیمتنتوکن‌های تصویرتوکن‌های ویدئو
مدل Emu3 یک دکودر واحد به سبک Llama را با پیش‌بینی توکن بعدی روی یک واژگان مشترک آموزش می‌دهد که در آن متن، توکن‌های تصویر VQ و توکن‌های ویدئوی سه‌بعدی همگی ورودی‌های ساده‌ای هستند. بدون برنامه انتشار (diffusion schedule)، بدون loss مدل CLIP و بدون هیچ هدف ثانویه‌ای. همان پیمایش یک سر، یک جمله، تصویر یا کلیپ ویدئویی را تولید می‌کند؛ به همین دلیل است که یک مدل می‌تواند هم‌زمان Emu3-Chat و Emu3-Gen باشد.

استفاده از ابزارهای واقعی

فایل code/main.py دو بخش ساده را می‌سازد:

  • یک محاسبه‌گر تعداد توکن برای مقایسه‌ی توکنایزرهای 2D VQ و 3D VQ: با دریافت مشخصات (رزولوشن، پچ، طول کلیپ، فریم بر ثانیه)، تعداد توکن‌های تصویر و ویدیو را محاسبه می‌کند.
  • یک نمونه‌گیر (Sampler) اتورگرسیو توکن‌های تصویر همراه با هدایت بدون طبقه‌بند و تنظیم دما.

پیاده‌سازی CFG در اینجا کاملاً با دستورالعمل Emu3 همخوانی دارد: ترکیب لاجیت‌های شرطی و غیرشرطی با یک ضریب هدایت.

خروجی این درس

این درس فایل outputs/skill-token-gen-cost-analyzer.md را تولید می‌کند. با ارائه‌ی مشخصات محصول مورد نظر (تصویر یا ویدیو، رزولوشن هدف، سطح کیفی، سقف تاخیر (Latency budget))، این ابزار تعداد توکن‌ها و هزینه‌ی استنتاج را محاسبه کرده و بین خانواده‌ی Emu3 یا دیفیوژن گزینه‌ی مناسب را پیشنهاد می‌دهد.

تمرین‌ها

  1. مدل Emu3 با کاهش 8x8 به ازای هر تصویر 512x512، تعداد 4096 توکن تولید می‌کند. مقدار معادل را برای ابعاد 1024x1024 و 2048x2048 محاسبه کنید. تاخیر استنتاج چه تغییری خواهد کرد؟

  2. بخش 3.3 مقاله‌ی Emu3 درباره‌ی توکنایزر ویدیو را بخوانید. شکل پچ 3D VQ را شرح دهید و بگویید چرا به جای یک فریم تکی، در 4 فریم در 8x8 پیکسل گسترده شده است.

  3. ضریب هدایت بدون طبقه‌بند 5.0 در مقایسه با 3.0 چه اثری بر خروجی بصری دارد؟ محاسبات ریاضی آن را در code/main.py بررسی و دنبال کنید.

  4. فلاپس (FLOPs) آموزش مدل Emu3 با 8 میلیارد پارامتر را با فرض پردازش 300 میلیارد توکن محاسبه کرده و با Stable Diffusion 3 مقایسه کنید. هزینه‌ی آموزش کدام‌یک بیشتر بوده است؟

  5. مدل Emu3 در معیار FID از SDXL بهتر عمل می‌کند، اما در VQAv2 پشت سر مدل‌های بینایی-زبانی تخصصی قرار می‌گیرد. توضیح دهید چرا رویکرد تابع زیان یکپارچه در بنچمارک‌های مختلف، نقاط قوت متفاوتی در برابر مدل‌های تخصصی از خود نشان می‌دهد.

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

اصطلاح چیزی که بقیه می‌گویند معنای واقعی آن
Next-token prediction «پیش‌بینی توکن بعدی» یا «NTP» تابع زیان اتورگرسیو استاندارد: پیش‌بینی توکن بعدی بر اساس توکن‌های قبلی؛ وقتی داده‌ها توکنایز شوند روی هر مدالیته‌ای کار می‌کند
IBQ tokenizer «کوانتایزر گلوگاه معکوس» کلاسی از VQ-VAE با کتاب کدهای بزرگ‌تر (بیش از 32768) و کیفیت بازسازی بهتر در مقایسه با مدل Chameleon
3D VQ «کوانتایزر مکانی-زمانی» کتاب کدی که با (زمان، سطر، ستون) ایندکس‌گذاری می‌شود؛ هر توکن 4 فریم در 8x8 پیکسل را پوشش می‌دهد
Classifier-free guidance «هدایت بدون طبقه‌بند» یا «CFG» ترکیب لاجیت‌های شرطی و غیرشرطی با ضریب وزنی گاما؛ بهبود کیفیت تصویر در زمان استنتاج
Unified vocabulary «واژگان یکپارچه» یا «توکن‌های مشترک» متن، تصویر و ویدیو همگی از یک فضای عددی صحیح مشترک استفاده می‌کنند؛ مدل پیش‌بینی می‌کند که کدام مدالیته باید در ادامه بیاید
MJHQ-30K «بنچمارک تولید تصویر» بنچمارکی برای سنجش کیفیت در سطح Midjourney با 30 هزار پرامپت؛ مدل Emu3 در این تست امتیاز FID خود را گزارش می‌کند

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

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

مدل Emu3 چگونه بدون دیفیوژن تصاویری باکیفیت تولید می‌کند؟

با استفاده از یک توکنایزر بصری قوی (کلاس IBQ) با تفکیک‌پذیری 8x8، واژگان بزرگ 32768 توکنی و آموزش یکپارچه با تابع زیان پیش‌بینی توکن بعدی به همراه هدایت بدون طبقه‌بند (CFG) در استنتاج.

تفاوت اصلی سرعت استنتاج بین Emu3 و SDXL چیست؟

تولید تصویر در Emu3 به شکل اتورگرسیو توکن به توکن انجام می‌شود (4096 توکن برای ابعاد 512x512) و حدود 2 دقیقه زمان می‌برد، در حالی که SDXL در 2 تا 5 ثانیه تصویر را می‌سازد.

توکنایزر 3D VQ در Emu3 چگونه ویدیوها را فشرده می‌کند؟

این توکنایزر هر پچ مکانی-زمانی شامل 4 فریم در ابعاد 8x8 پیکسل را به یک عدد صحیح (توکن) تبدیل کرده و تعداد توکن‌های ویدیو را به شکل مؤثری کاهش می‌دهد.

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

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