ट्रांसफ्यूजनः एक ट्रांसफार्मर में ऑटोरेग्रेसिव टेक्स्ट + डिफ्यूजन इमेज
Type: Build
Languages: Python (stdlib, two-loss trainer on MNIST-scale toy)
Prerequisites: Phase 12 · 11 (Chameleon), Phase 8 (Generative AI)
Time: ~180 minutes
सीखने के लक्ष्य
- एक रीढ़ की हड्डी पर दो हानि (टेक्स्ट टोकन पर एनटीपी, छवि पैच पर प्रसार एमएसई) चलाने वाला एक ट्रांसफार्मर वायर करें।
- समझाएं कि छवि पैचों के पार द्वि-दिशात्मक ध्यान और पाठ टोकन पर कारण संबंधी ध्यान क्यों सही मास्क विकल्प है।
- गणना, गुणवत्ता और कोड जटिलता पर ट्रांसफ्यूशन-शैली (अंतरवर्ती छवियां, विसारण हानि) की तुलना चमेलन-शैली (विशिष्ट छवियां, एनटीपी) से करें।
- MMDiT के योगदान का नाम देंः प्रत्येक ब्लॉक पर मोडलिटी-विशिष्ट वजन, शेष प्रवाह पर संयुक्त ध्यान।
समस्या
डिस्कट बनाम निरंतर छवि टोकन बहस LLM से पुरानी है। निरंतर प्रतिनिधित्व (कच्चे पिक्सेल, VAE लटेंट) विवरण को संरक्षित करते हैं। डिस्कट टोकन (VQ सूचकांक) ट्रांसफार्मर के मूल शब्दावली के अनुरूप होते हैं लेकिन क्वांटिज़ेशन चरण में विवरण खो देते हैं।
Chameleon / Emu3 अलग चला गयाः एक हानि, एक वास्तुकला, लेकिन छवि निष्ठा टोकनराइज़र गुणवत्ता द्वारा सीमित।
विसारण मॉडल निरंतर रहेः असाधारण छवि गुणवत्ता, लेकिन एलएलएम से एक अलग मॉडल, जटिल शोर-अनुसूची इंजीनियरिंग, और पाठ उत्पादन के साथ कोई स्वच्छ एकीकरण नहीं।
ट्रांसफ्यूजन पूछता हैः क्या हम दोनों कर सकते हैं? चित्रों को निरंतर रखें, अभी भी एक मॉडल को प्रशिक्षित करें, एक ग्रेडिएंट चरण में सिलाई दो नुकसान का उपयोग करें।
अवधारणा
दो हानि वास्तुकला
एक एकल डिकोडर-केवल ट्रांसफार्मर एक अनुक्रम को संसाधित करता है जिसमें शामिल हैंः
- पाठ टोकन (विशिष्ट, BPE शब्दावली से) ।
- छवि पैच (अंतरकालिक, 16x16 पिक्सेल ब्लॉक जो रैखिक एम्बेडिंग के माध्यम से छिपे हुए डिम में प्रोजेक्ट किए जाते हैं एक वीआईटी एन्कोडर के इनपुट के समान) ।
<image>और</image>टैग जो निरंतर पैचों के रहने वाले स्थान को चिह्नित करते हैं।
आगे का पास एक बार चलता है। हानि प्रति टोकन दो सिरों में से एक चुनता हैः
- पाठ टोकन के लिएः वाक्यांश-लॉजिट सिर पर मानक क्रॉस-एंट्रोपी।
- छवि पैच के लिएः निरंतर पैच पर विसारण हानि प्रत्येक पैच में जोड़ा गया शोर का अनुमान लगाएं।
ग्रेडिएंट साझा ट्रांसफार्मर शरीर के माध्यम से बहता है. दोनों नुकसान साझा वजन एक साथ सुधार.
ध्यान मास्कः कारण पाठ + द्विदिश छवि
पाठ टोकन कारण होना चाहिए आप पाठ टोकन को भविष्य के पाठ पर ध्यान देने या शिक्षक को ब्रेक लगाने नहीं दे सकते। छवि पैच, हालांकि, एक स्नैपशॉट का प्रतिनिधित्व करते हैं; उन्हें एक ही छवि ब्लॉक के भीतर एक दूसरे को द्वि-दिशात्मक रूप से ध्यान देना चाहिए।
मास्कः
M[i, j] = 1 if:
(i is text and j is text and j <= i) # causal for text
OR (i is image and j is image and same_image_block(i, j)) # bidirectional within image
OR (i is text and j is image and j < i_image_end) # text attends to previous images
OR (i is image and j is text and j < i_image_start) # image attends to preceding textप्रशिक्षण और निष्कर्ष पर ब्लॉक-त्रिकोणात्मक मुखौटा के रूप में लागू किया जाता है।
ट्रांसफार्मर के अंदर विसारण हानि
विसारण हानि मानक हैः एक छवि पैच में शोर जोड़ें, मॉडल से शोर (या स्वच्छ पैच, समान रूप से) की भविष्यवाणी करने के लिए कहें। ट्रांसफ्यूजन के संस्करण में प्रवाह मिलान का उपयोग किया जाता है शोर से साफ करने के लिए गति क्षेत्र की भविष्यवाणी करें।
प्रशिक्षण के दौरानः
- प्रत्येक छवि पैच x0 के लिए, एक यादृच्छिक समय चरण t का नमूना लें।
- नमूना शोर ε, गणना xt = (1-t) x0 + t ε (प्रवाह मिलान के लिए रैखिक अंतराल) ।
- ट्रांसफार्मर v_theta(xt, t) का अनुमान लगाता है; हानि = MSE(v_theta(xt, t), ε - x0).
- पाठ के साथ बैकपॉप्स उसी क्रम से NTP हानि।
निष्कर्ष पर, पीढ़ी हैः
- पाठ टोकनः मानक ऑटोरेग्रेसिव नमूनाकरण।
- छवि पैचः पूर्व पाठ टोकन पर संचालित विसारण नमूना लूप (10-30 चरण विशिष्ट) ।
MMDiT: स्थिर विसारण 3 का संस्करण
स्टेबल डिफ्यूजन 3 (एसर एट अल, मार्च 2024) ने ट्रांसफ्यूजन के लगभग उसी समय MMDiT (मल्टीमोडल डिफ्यूजन ट्रांसफार्मर) को जहाज दिया। वास्तुकला भाई बहन हैं।
MMDiT के मुख्य अंतरः
- प्रत्येक ट्रांसफार्मर ब्लॉक में पाठ टोकन बनाम छवि पैच के लिए अलग Q, K, V और MLP वजन होते हैं। ध्यान संयुक्त (क्रॉस-मोडालिटी) है; बाकी सब कुछ मोडलिटी-विशिष्ट है।
- एक विशिष्ट प्रवाह-अनुरूपता संस्करण ज्ञात नमूनाकरण और DDPM की तुलना में सरल गणित के साथ।
- स्केल. एमएमडीटी एसडी3 (2बी और 8बी पैरा वैरिएंट) की रीढ़ है। ट्रांसफ्यूजन के पेपर स्केल 7बी तक।
दोनों एक ही मूल विचार पर अभिसरण करते हैंः एक ट्रांसफार्मर पाठ पर एनटीपी चलाता है और निरंतर छवि प्रतिनिधित्व पर प्रसार करता है।
यह चमेलन शैली से बेहतर क्यों है
छवि निर्माण पर निरंतर प्रसार और विवश एनटीपी के बीच गुणवत्ता अंतर मापने योग्य है।
- 7B परम पर, FID पर एक ही आकार के चमेलन शैली मॉडल से 3-5 अंक से अधिक है।
- कोई टोकनराइज़र प्रशिक्षण की आवश्यकता नहीं है छवि एन्कोडर सरल है (छिपे हुए के लिए रैखिक प्रक्षेपण, एक वीआईटी के इनपुट परत के समान) ।
- इन्फेरेंस ऑटोरेग्रेसिव इमेज टोकन के विपरीत छवि पैच डीनोइज़िंग को समानांतर कर सकता है।
नकारात्मक पक्षः ट्रांसफ्यूजन एक दोहरे नुकसान वाला मॉडल है, जिससे प्रशिक्षण गतिशीलता मुश्किल हो जाती है। हानि वजन को समायोजित करने की आवश्यकता होती है। एनटीपी और विसार के बीच अनुसूची असंगतता एक सिर को हावी कर सकती है।
जो नीचे धारा में बैठता है
Janus-Pro (Lection 12.15) Transfusion के विचार को परिष्कृत करता है। ट्रांसफ्यूजन के लिए डिस्कॉपर को समझने और उत्पन्न करने के लिए दृष्टि एन्कोडर को एक के लिए SigLIP, दूसरे के लिए VQ के साथ-साथ ट्रांसफार्मर बॉडी को साझा करता है। शो-ओ (Lection 12.14) डिस्कट-डिफ्यूजन (मास्कड भविष्यवाणी) के लिए विसार को स्वैप करता है। ट्रांसफ्यूजन के बाद एकीकृत-जनरेशन परिवार तेजी से शाखाओं।
2026 उत्पादन VLMs जो छवियों को उत्सर्जित करते हैं Gemini 3 Pro, GPT-5, क्लाउड ओपस 4.7 के छवि उत्पादन पथ लगभग निश्चित रूप से इस परिवार के कुछ वंशज का उपयोग करते हैं। विवरण मालिकाना हैं।
इसका प्रयोग करें
code/main.pyएक छोटी सी MNIST की तरह समस्या पर एक खिलौना ट्रांसफ्यूजन का निर्माण करता हैः
- पाठ कैप्शन एक अंक (0-9) का वर्णन करने वाले छोटे पूर्णांक अनुक्रम हैं।
- चित्र 4x4 बाइट्स के ग्रिड हैं।
- एक जोड़ी साझा वजन वाली रैखिक प्रक्षेपण ट्रांसफार्मर स्टैंड-इन के रूप में कार्य करती है; पाठ पर एनटीपी हानि, शोरदार पैच पर एमएसई हानि।
- प्रशिक्षण लूप दो नुकसान बारी बारी, ध्यान मास्क स्पष्ट है।
- पीढ़ी एक आगे के पास में एक पाठ कैप्शन और एक 4x4 छवि उत्पन्न करती है।
ट्रांसफार्मर एक खिलौना है. दो-लॉस प्लंपिंग, ध्यान मास्क निर्माण, और निष्कर्ष लूप असली कलाकृतियों हैं।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-two-loss-trainer-designer.md. एक नए मल्टीमोडल प्रशिक्षण कार्य (पाठ + छवि, पाठ + ऑडियो, पाठ + वीडियो) को देखते हुए, यह दो-हानि शेड्यूल (हानि वजन, मुखौटा आकार, साझा बनाम मोडलिटी-विशिष्ट ब्लॉक) डिजाइन करता है और कार्यान्वयन जोखिमों को दर्शाता है।
व्यायाम
- ट्रांसफ्यूजन-शैली के मॉडल में 70% टेक्स्ट टोकन और 30% छवि पैच होते हैं। छवि विसारण हानि परिमाण में पाठ एनटीपी हानि का ~ 10 गुना है। इनका संतुलन किस नुकसान वजन से होता है?
- अनुक्रम के लिए ब्लॉक-त्रिकोण मुखौटा लागू करेंः
[T, T, <image>, P, P, P, P, </image>, T]प्रत्येक प्रविष्टि को 0 या 1 अंकित करें।
- MMDiT में मोडलिटी-विशिष्ट QKV वजन है। यह ट्रांसफ्यूजन के पूर्ण-साझा ट्रांसफार्मर के खिलाफ किस पैरामीटर की गिनती ओवरहेड जोड़ता है? 7B पैरामीटर पर, क्या यह इसके लायक है?
- पीढ़ीः एक पाठ प्रम्प्ट दिया गया है, मॉडल 50 टोकन के लिए एनटीपी चलाता है, फिर हिट करता है
<image>, फिर 256 पैच पर प्रसार चलाता है 20 denoise कदम पर. कुल कितने आगे पास?
- एसडी3 पेपर सेक्शन 3 पढ़ें। सुधारित प्रवाह का वर्णन करें और यह डीडीपीएम की तुलना में कम निष्कर्ष चरणों में क्यों समाहित होता है।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Two-loss training | "NTP + diffusion" | A single transformer optimizes both cross-entropy on text tokens and MSE on continuous image patches in the same gradient step |
| Flow matching | "Rectified flow" | Diffusion variant that predicts a velocity field from noise to clean data; simpler math than DDPM |
| MMDiT | "Multimodal DiT" | Stable Diffusion 3's architecture: joint attention, modality-specific MLPs and norms |
| Block-triangular mask | "Causal text + bidirectional image" | Attention mask that is causal across text but bidirectional within image regions |
| Continuous image representation | "No VQ" | Image patches as real-valued vectors, not integer codebook indices |
| Velocity prediction | "v-parameterization" | Network output is the velocity field between noise and data, not the noise itself |
आगे पढ़ना
- Zhou et al. — Transfusion (arXiv:2408.11039)
- Esser et al. — Stable Diffusion 3 / MMDiT (arXiv:2403.03206)
- Peebles & Xie — DiT (arXiv:2212.09748)
- Zhao et al. — MonoFormer (arXiv:2409.16280)
- Xie et al. — Show-o (arXiv:2408.12528)
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.