Phase 12: Multimodal AI

शो-ओ और डिस्कट-डिफ्यूजन यूनिफाइड मॉडल

रक्त प्रत्यारोपण निरंतर और विवश प्रतिनिधित्वों को मिलाता है। शो-ओ (Xie et al., अगस्त 2024) दूसरी तरफ जाता हैः पाठ टोकन कारण-पुनर्दर्शक टोकन भविष्यवाणी का उपयोग करते हैं, छवि टोकन मास्कजीआईटी की भावना में छिपे हुए विवश प्रसार का उपयोग करते हैं। दोनों एक हाइब्रिड ध्यान मास्क के साथ एक ट्रांसफार्मर के अंदर बैठते हैं। परिणाम एक रीढ़ की हड्डी पर VQA, पाठ-से-छवि, इनपेंटिंग और मिश्रित-मोडालिटी पीढ़ी को एक एकीकृत करता है, प्रति मोडलिटी एक टोकनराइज़र, एक हानि सूत्र (निम्न टोकन को मास्क भविष्यवाणी तक विस्तारित किया गया है) । यह सबक शो-ओ डिजाइन पर चलता है क्यों मास्क डिस्क्रिट फैलाव एक समानांतर, कुछ चरणों छवि जनरेटर है और ट्रांसफ्यूजन और ईएमयू3 के विपरीत है।

Type: Learn

Languages: Python (stdlib, masked-discrete-diffusion sampler)

Prerequisites: Phase 12 · 13 (Transfusion)

Time: ~120 minutes

सीखने के लक्ष्य

  • मास्क डिस्क्रिट फैलाव की व्याख्या करेंः जो तालिका टोकन को समान रूप से मास्क करती है, वह ट्रांसफार्मर को उन्हें पुनर्प्राप्त करने के लिए कहती है।
  • गति और गुणवत्ता पर समानांतर छवि डिकोडिंग (शो-ओ, मास्कजीआईटी) की तुलना ऑटोरेग्रेसिव छवि डिकोडिंग (चमेलियन, ईएमयू3) से करें।
  • एक चेक-पॉइंट में शो-ओ द्वारा किए जाने वाले तीन कार्यों का नाम बताइएः टी2आई, वीक्यूए, छवि इनपेंटिंग।
  • एक मास्किंग शेड्यूल चुनें (कोसिन, रैखिक, ट्रंक) और नमूना गुणवत्ता पर इसके प्रभाव के बारे में तर्क दें।

समस्या

ट्रांसफ्यूजन के दो-हानि प्रशिक्षण काम करता है लेकिन इसमें अधिक जटिल गतिशीलता है निरंतर विसारण हानि अलग एनटीपी हानि से अलग संख्यात्मक पैमाने पर रहती है। संतुलन हानि भार एक हाइपरपरमैटर खोज है। वास्तुकला प्रभावी है लेकिन जटिल है।

शो-ओ का जवाबः दोनों मोडलिटीज को अलगाव (जैसे चमेलेन) रखें, लेकिन अनुक्रमिक रूप से के बजाय मास्क अलगाव प्रसार के माध्यम से समानांतर में छवियां उत्पन्न करें। प्रशिक्षण उद्देश्य एक एकल मास्क टोकन-पूर्वानुमान बन जाता है जो स्वाभाविक रूप से अगले टोकन-पूर्वानुमान को सामान्य बनाता है।

अवधारणा

मुखौटा विवश विसारण (MaskGIT)

मूल Chang et al. (2022) MaskGIT ट्रिक सुरुचिपूर्ण है। पूरी तरह से मास्क की गई छवि से शुरू करें (प्रत्येक टोकन विशेष है <MASK>id) प्रत्येक चरण में, सभी मास्क टोकन समानांतर में भविष्यवाणी करें, फिर शीर्ष-के सबसे आश्वस्त भविष्यवाणियों को बनाए रखें और शेष को फिर से मास्क करें। ~ 8-16 पुनरावृत्ति के बाद, सभी टोकन भर दिए जाते हैं। प्रत्येक चरण में कितने टोकन को अनमास्क करने के लिए अनुसूची को ट्यून किया जाता है कोसिन अनुसूची अच्छी तरह से काम करती है।

प्रशिक्षण सरल हैः [0, 1] से एक समान रूप से एक मास्किंग अनुपात का नमूना लें, इसे छवि के वीक्यू टोकन पर लागू करें, ट्रांसफार्मर को मास्क वाले को पुनर्प्राप्त करने के लिए प्रशिक्षित करें।

शो-ओः एक ट्रांसफार्मर, हाइब्रिड मास्क

शो-ओ मास्कजीआईटी को एक कारण-भाषा मॉडल ट्रांसफार्मर के अंदर रखता है। ध्यान मास्क हैः

  • पाठ टोकनः कारण (मानक LLM)
  • छवि टोकनः छवि ब्लॉक के भीतर पूर्ण द्वि-दिशात्मक (इसलिए मुखौटा टोकन भविष्यवाणी के दौरान प्रत्येक अन्य छवि टोकन देख सकते हैं) ।
  • पाठ-से-छविः पाठ पूर्व छवि का पालन करता है, छवि पूर्व पाठ का पालन करती है।

प्रशिक्षण के बीच प्रतिस्थापनः

  1. पाठ अनुक्रमों पर मानक एनटीपी।
  2. T2I नमूनेः पाठ → छवि छिपे हुए छवि टोकन के साथ, छिपे हुए टोकन-पूर्वानुमान हानि।
  3. VQA नमूनेः छवि → पाठ छिपे हुए पाठ टोकन (वास्तव में केवल NTP) के साथ।

एक एकीकृत हानि क्रॉस-एंट्रोपी पर है <MASK>टोकन, जो पाठ NTP (केवल अंतिम टोकन "मास्कर्ड" है) और छवि मास्क-विभाजन (संदिग्ध उपसमूह मास्क है) दोनों को कवर करता है।

समानांतर नमूनाकरण

Show-o ~ 1000 (प्रति टोकन स्व-निष्क्रिय) या ~ 20 (प्रसार) के बजाय ~ 16 चरणों में एक छवि उत्पन्न करता है। प्रत्येक चरण में, सभी छिपे टोकनों की समानांतर भविष्यवाणी करें; शीर्ष-के को आश्वस्त करें; दोहराएं।

तुलना करें:

  • Chameleon / Emu3 (टोकन पर ऑटोरेगेसिव): N_tokens forward passes, typically 1024-4096 per image.
  • ट्रांसफ्यूजन (अंतरवर्ती फैलाव): ~ 20 कदम, प्रत्येक एक पूर्ण ट्रांसफार्मर पास।
  • शो-ओ (मास्किंग डिस्क्रिट डिफ्यूजन): ~16 कदम, प्रत्येक एक पूर्ण ट्रांसफार्मर पास।

शो-ओ समान पैमाने पर मॉडल पर चमेलन की तुलना में तेज़ है, लगभग प्रति चरण लागत (विशिष्ट वाक्यांश लॉजिट बनाम निरंतर एमएसई हानि) के साथ ट्रांसफ्यूजन चरण संख्या के साथ मेल खाता है।

एक चेकपोस्ट में कार्य

शो-ओ अनुमान के लिए चार कार्यों का समर्थन करता है, शीघ्र प्रारूप द्वारा चुना गया हैः

  • पाठ उत्पादनः मानक ऑटोरेग्रेसिव पाठ आउटपुट।
  • वीक्यूए: छवि में, पाठ बाहर.
  • टी2आई: पाठ में, मुखौटा विवश प्रसार के माध्यम से छवि बाहर।
  • पेंटिंगः कुछ टोकनों के साथ छवि, भरें।

पेंटिंग क्षमता मास्क-पूर्वावलोकन प्रशिक्षण से मुफ्त में आता है। VQ-token ग्रिड के एक क्षेत्र को मास्क करें, बाकी को फ़ीड करें प्लस एक पाठ संकेत, मास्क टोकन की भविष्यवाणी करें।

मुखौटा लगाने का समय सारिणी

प्रत्येक चरण में कितने टोकन का अनावरण करना है, इसकी गुणवत्ता निर्धारित होती है। शो-ओ कोसिना की सिफारिश करता हैः

mask_ratio(t) = cos(pi * t / (2 * T))   # t = 0..T

चरण 0 में, सभी टोकन छिपे हुए हैं (अनुपात 1.0) । चरण T में, कोई भी छिपा हुआ नहीं है। कॉसीन मध्यम श्रेणी के अनुपात पर द्रव्यमान केंद्रित करता है जहां भविष्यवाणी सबसे अधिक जानकारीपूर्ण है। रैखिक कार्यक्रम भी काम करते हैं लेकिन उच्च गति से।

शो-ओ2

शो-ओ2 (2025 अनुवर्ती, arXiv 2506.15564) पैमाने शो-ओः बड़ा एलएलएम आधार, बेहतर टोकनराइज़र, बेहतर मास्क शेड्यूल। एक ही वास्तुशिल्प पैटर्न।

जहां शो-ओ बैठता है

2026 में वर्गीकरणः

  • विवश टोकन + एनटीपीः चमेलन, ईएमयू 3। सरल लेकिन धीमा निष्कर्ष।
  • विवश टोकन + मास्क विसारणः शो-ओ, मास्कजीआईटी, लैमाजेन, म्यूज़। समानांतर नमूनाकरण, अभी भी टोकनराइज़र द्वारा खोया जाता है।
  • निरंतर + विसारण: रक्त प्रत्यारोपण, एमएमडीटी, डीटी उच्चतम गुणवत्ता, अधिक जटिल प्रशिक्षण।
  • VLM में निरंतर + प्रवाह मिलानः JanusFlow, InternVL-U. नवीनतम।

कार्य के अनुसार चुनेंः जब आप एक खुले मॉडल में उचित गति के साथ T2I + इनपेंटिंग + VQA चाहते हैं तो दिखाएं; जब गुणवत्ता सर्वोच्च है और आप दो-हानि पाइपलाइन का भुगतान कर सकते हैं।

इसका प्रयोग करें

code/main.pyशो-ओ नमूनाकरण का अनुकरण करता हैः

  • 16 वीक्यू टोकन के साथ खिलौना ग्रिड।
  • एक नकली "ट्रांसफार्मर" जो एक संकेत और वर्तमान में अनमास्क किए गए टोकन के आधार पर लॉगिंग का अनुमान लगाता है।
  • समानांतर मास्क नमूनाकरण 8 चरणों के साथ कॉसिन समय सारिणी के साथ।
  • मध्यवर्ती अवस्थाओं (मास्क पैटर्न विकास) और अंतिम टोकन प्रिंट करता है।

इसे चलाओ, मास्क को कदम से कदम ढीला करते हुए देखो।

इसे भेजें

यह सबक हमें फल देता हैoutputs/skill-unified-gen-model-picker.md. एक ऐसे उत्पाद को देखते हुए जिसे समझ (वीक्यूए, कैप्शन) और जनरेशन (टी2आई, इनपेंटिंग) दोनों की आवश्यकता है, जिसमें खुले वजन की सीमा है, शो-ओ परिवार, ट्रांसफ्यूजन/एमएमडीटी परिवार और ईएमयू3/चमेलियन परिवार के बीच ठोस व्यापार-बदला के साथ चयन करें।

व्यायाम

  1. 16 चरणों में छिपा हुआ विघटन नमूना। 1 क्यों नहीं? क्या टूटता है यदि आप चरण 0 पर सब कुछ का मुखौटा खोलने?
  1. मास्क फैलाव के साथ पेंटिंग मुक्त है। एक उत्पाद उपयोग मामले (वास्तविक या परिकल्पना) का प्रस्ताव करें जहां शो-ओ के पेंटिंग एक विशेषज्ञ मॉडल से बेहतर है।
  1. कॉसीन शेड्यूल बनाम रैखिक शेड्यूलः T=8 के लिए प्रत्येक चरण में अनमास्क्ड टोकन की संख्या का पता लगाएं। कौन सा अधिक संतुलित है?
  1. एक 512x512 शो-ओ छवि 1024 टोकन है। वाक्यांश K = 16384 पर, मॉडल 1024 log2(16384) = 14,336 बिट्स (~ 1.75 KiB) डेटा उत्सर्जित करता है। स्थिर विसार आउटपुट 512512*24 बिट्स = 6,291,456 बिट्स (~ 768 KiB) कच्चे पिक्सल का है। संपीड़न अनुपात क्या है और यह किस गुणवत्ता को खरीदता है?
  1. LlamaGen (arXiv:2406.06525) पढ़ें। LlamaGen का वर्ग-सशर्त ऑटोरेग्रेसिव छवि मॉडल शो-ओ के मास्क दृष्टिकोण से कैसे अलग है?

प्रमुख शर्तें

TermWhat people sayWhat 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

आगे पढ़ना

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.