نماذج موحدة للتسريب والتشويق المختلف
Type: Learn
Languages: Python (stdlib, masked-discrete-diffusion sampler)
Prerequisites: Phase 12 · 13 (Transfusion)
Time: ~120 minutes
أهداف التعلم
- شرح التوزيع المختلف المخفي: الجدول الزمني الذي يُخفي الرموز بشكل متساوٍ ثم يطلب من المحول استعادتها.
- مقارنة تشخيص الصورة المتوازية (Show-o، MaskGIT) لتشخيص الصورة ذات التراجعة (Chameleon، Emu3) على السرعة والجودة.
- أسمائهم ثلاث مهام تقوم بها شو-او في نقطة تفتيش واحدة: T2I، VQA، إدراج الصور.
- اختر جدول تخفيض (مخفض، خطي، قص) واعتبر عن تأثيره على جودة العينة.
المشكلة
يعمل تدريب الخسائر الثنائية للانضمام ولكن لديه ديناميكية أكثر صعوبة فقدان الانتشار المستمر يعيش على نطاق عددي مختلف عن فقدان NTP المفصل. توازن أوزان الخسائر هو بحث مفاصيل. الهندسة المعمارية فعالة ولكن معقدة.
إجابة شو-او: إبقاء كلا الطرق منفصلة (مثل تشاميلون) ، ولكن توليد الصور بالتوازي عن طريق انتشار منفصل مخفي بدلاً من تسلسل. يصبح هدف التدريب توقعات رمز مخفي واحدة تعاملت توقعات رمز التالي بشكل طبيعي.
المفهوم
التوزيع المختلفة المغطاة (MaskGIT)
خدعة Chang et al. (2022) MaskGIT الأصلية هي رائعة. تبدأ من صورة مغطاة بالكامل (كل رمز هو خاص <MASK>id). في كل خطوة، توقع جميع الرموز المخفية بالتوازي، ثم الحفاظ على أعلى K التنبؤات الأكثر ثقة وإعادة قناع الباقي. بعد ~ 8-16 تكرار، يتم ملء جميع الرموز. يتم ضبط جدول عدد الرموز التي يجب فكها في كل خطوة جدولات كوزين تعمل بشكل جيد.
التدريب بسيط: عينة نسبة التخفيض بشكل متساوي من [0, 1] ، وتطبيقها على رموز VQ الصورة ، تدريب المحول لاسترداد تلك التي تُخفي. بالضبط ما فعله BERT للنص ، مقياسًا لتوليد الصورة.
عرض: محول واحد، قناع هجين
يضع "ماسك جيت" داخل محول نموذج لغة السببية.
- علامات النص: السببية (القانون القياسي).
- رموز الصورة: دوجهة كاملة داخل كتلة الصورة (حيث يمكن للرموز المخفية رؤية كل رموز الصورة الأخرى أثناء التنبؤ).
- النص إلى الصورة: النص يتابع الصور السابقة، الصورة يتابع النص السابق.
التدريب البديل بين:
- NTP القياسي على تسلسلات النص.
- عينات T2I: نص → صورة مع رموز الصورة المخفية، فقدان التنبؤ مع رموز المخفية.
- عينات VQA: صورة → نص مع رموز نصية مخفية (في الواقع مجرد NTP).
الخسارة الموحدة هي التقاطع بين النشاطات<MASK>الوهم، والذي يغطي كل من النص NTP (الوهم الأخير فقط "مغطوس") والتصوير مخفي-الانتشار (مجموعة فرعية عشوائية مخفي).
أخذ العينات الموازية
يُولد Show-o صورة في ~ 16 خطوة بدلاً من ~ 1000 (مُتراجعة ذاتية لكل رمز) أو ~ 20 (توزيع). في كل خطوة، توقع جميع الرموز المخفية بالتوازي؛ قم بتثبيت top-K الثقة؛ كرر.
مقارنة:
- الكاميلون / Emu3 (مراجعة الذاتية على الرموز): N_tokens forward passs، عادةً 1024-4096 لكل صورة.
- الغسالة (الانتشار المستمر): ~ 20 خطوة، كل خطوة تمر مع محول كامل.
- عرض (توزيع متخفي): ~ 16 خطوة، كل خطوة تمر محول كامل.
شو-او أسرع من تشاميلون في نماذج على نطاق مماثل ، وتتطابق تقريبًا مع عدد خطوات الغاز مع أقل تكلفة خطوة واحدة (الخطوات الفكرية المختلفة مقابل فقدان MSE المستمر).
المهام في نقطة تفتيش واحدة
يدعم Show-o أربعة مهام عند الاستنتاج ، يتم اختيارها عن طريق النموذج السريع:
- توليد النص: إنتاج نص قياسي للصورة التراجعة.
- الصورة داخل، الرسائل النصية خارج.
- T2I: رسالة نصية، صورة خارجية عبر التوزيع المختلفة المخفية.
- التلوين: صورة مع بعض الرموز المخفية، ملء.
القدرة على التلوين تأتي مجانا من تدريب التنبؤ المخفي. غطاء منطقة من شبكة VQ- Token، تغذية الباقي بالإضافة إلى طلب نص، التنبؤ بالتوقعات المخفي.
جدول الاختفاء
جدول عدد الرموز التي يجب أن تُفكّر في كل خطوة يشكّل الجودة.
mask_ratio(t) = cos(pi * t / (2 * T)) # t = 0..Tفي الخطوة 0 ، جميع الرموز مخفية (النسبة 1.0) ، في الخطوة T ، لا يوجد أحد مخفية. تركز الكوزين الجسيم على النسب المتوسطة حيث يكون التنبؤ أكثر معلوماتًا. تعمل جداول خطية أيضًا ولكن تتحسن بشكل أسرع.
أظهري
عرض-o2 (2025 متابعة، arXiv 2506.15564) مقياسات عرض-o: قاعدة LLM أكبر، أفضل tokenizer، جدول أقنعة تحسن. نفس النمط المعماري.
حيث يجلس شو-او
في تصنيف عام 2026:
- رموز متواضعة + NTP: الكاميليون، Emu3.
- رموز متواصلة + انتشار مخفي: Show-o، MaskGIT، LlamaGen، Muse. أخذ العينات بالتوازي، لا يزال خاسيا من خلال tokenizer.
- التوسع المستمر: نقل الدم، MMDiT، DiT. أعلى جودة، تدريب أكثر تعقيدًا.
- متواصل + تناغم التدفق في VLM: JanusFlow، InternVL-U. أحدث.
اختيار حسب المهمة: عرض عندما تريد T2I + إعادة الطلاء + VQA في نموذج واحد مفتوح بسرعة معقولة؛ نقل عندما تكون الجودة أساسية ويمكنك تحمل خسارة المياه.
استخدمها
code/main.pyيحاكي أخذ العينات من خلال عرض:
- شبكة ألعاب من 16 رمزا VQ.
- "تحول" مزيف يتنبأ بالتسجيلات بناء على طلب و الرموز المفتوحة حالياً
- الاختبار الموازي المُقنع على 8 خطوات مع جدول التخطيط.
- يطبخ الحالات المتوسطة (تطور نمط القناع) والرموز النهائية.
إشغله، شاهد القناع يذوب خطوة بخطوة.
أرسله
هذا الدرس يُنتجoutputs/skill-unified-gen-model-picker.md. بالنظر إلى منتج يحتاج إلى فهم (VQA، التسجيل) والإنتاج (T2I، التلوين) مع قيود الوزن المفتوحة، تختار بين عائلة شو-او، عائلة Transfusion/MMDiT، وعائلة Emu3 / Chameleon مع تعادلات ملموسة.
التمارين
- عينات التوزيع المختلفة المخفية في 16 خطوة. لماذا لا 1؟ ما الذي يكسر إذا كشفت كل شيء في الخطوة 0؟
- التلوين مجاني مع انتشار مخفي. اقترح حالة استخدام للمنتج (حقيقية أو افتراضية) حيث تلوين Show-o يفوق نموذج متخصص.
- جدول الكوزين مقابل جدول خطي: تتبع عدد الرموز المفتوحة في كل خطوة لت =8. أي من هذه الرموز أكثر توازنًا؟
- صورة 512x512 عرض-o هي 1024 رمز. عند الكلمة K = 16384 ، ينبعث النموذج 1024 log2(16384) = 14,336 بت (~ 1.75 كيب) من البيانات. إنتاج Diffusion مستقر 512 512 * 24 بت = 6,291,456 بت (~ 768 كيب) من البيكسل الخام. ما هو نسبة الضغط وما هي الجودة التي يشتريها؟
- قراءة LlamaGen (arXiv:2406.06525). كيف يختلف نموذج الصورة السريعة ذات الشروط الفصلية لـ LlamaGen عن نهج Show-o المغطوس؟
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Masked discrete diffusion | "MaskGIT-style" | Training to predict masked tokens; at inference, iteratively unmask the most-confident predictions |
| Cosine schedule | "Unmask schedule" | Decay of mask ratio over inference steps; concentrates confidence growth at mid-range |
| Parallel decoding | "All tokens at once" | Every step predicts the full sequence of masked tokens in one forward pass, then commits top-K |
| Hybrid attention | "Causal + bidirectional" | Mask that is causal over text tokens and bidirectional within image blocks |
| Inpainting | "Fill-in generation" | Condition on an image with some tokens masked, predict the missing ones; free from the training objective |
| Commitment rate | "Top-K per step" | How many tokens are declared "done" per iteration; controls inference vs quality trade-off |
المزيد من القراءة
- Xie et al. — Show-o (arXiv:2408.12528)
- Show-o2 (arXiv:2506.15564)
- Chang et al. — MaskGIT (arXiv:2202.04200)
- Sun et al. — LlamaGen (arXiv:2406.06525)
- Chang et al. — Muse (arXiv:2301.00704)
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.