Janus-Pro: एकीकृत बहुआयामी मॉडल के लिए डिकोप्ल्ड एन्कोडर
Type: Build
Languages: Python (stdlib, dual-encoder routing + shared-body signal)
Prerequisites: Phase 12 · 13 (Transfusion), Phase 12 · 14 (Show-o)
Time: ~120 minutes
सीखने के लक्ष्य
- समझाएं कि एक साझा एन्कोडर समझ या उत्पादन की गुणवत्ता को क्यों कम करता है।
- Janus-Pro के रूटिंग का वर्णन करेंः समझ के लिए इनपुट पक्ष पर SigLIP सुविधाएँ, इनपुट और आउटपुट दोनों पर वीक्यू टोकन जनरेशन के लिए।
- डेटा-मिशिंग स्केलिंग का पता लगाएं जो Janus-Pro को सफल बनाता है जहां Janus नहीं करता था।
- डिकोप्ल्ड (जैनस-प्रो), कूपेड-कंटीन्यू (ट्रांसफ्यूजन) और कूपेड-डिस्क्रिट (शो-ओ) वास्तुकला की तुलना करें।
समस्या
एकीकृत मॉडल समझ और पीढ़ी के माध्यम से एक ट्रांसफार्मर शरीर साझा करते हैं। पिछले प्रयासों (चमेलियन, शो-ओ, ट्रांसफ्यूजन) सभी दोनों दिशाओं के लिए एक दृश्य टोकनाइज़र का उपयोग करते हैं। टोकनाइज़र एक समझौता हैः
- पुनर्निर्माण (जनरेशन) के लिए अनुकूलितः VQ-VAE बारीक-कटकी पिक्सेल विवरण को कैप्चर करता है लेकिन कमजोर अर्थपूर्ण सहसंबंध वाले टोकन का उत्पादन करता है।
- अर्थशास्त्र के लिए अनुकूलित (समझ): सिगलिप एम्बेडेड "कैट" टोकन के पास "कैट" छवियों को समूह करता है लेकिन अच्छा पुनर्निर्माण की अनुमति नहीं देता है।
शो-ओ और ट्रांसफ्यूजन एक दिशा पर एक दृश्यमान गुणवत्ता कर के साथ इसके लिए भुगतान करते हैं।
अवधारणा
विघटित दृश्य एन्कोडिंग
Janus-Pro की वास्तुकला दो एन्कोडर को अलग करती हैः
- मार्ग को समझना. इनपुट छवि → सिगलिप-एसओ400 मीटर → 2-परत एमएलपी → ट्रांसफार्मर बॉडी।
- उत्पादन पथ. इनपुट छवि (यदि मौजूदा छवि पर कंडीशनिंग) → वीक्यू टोकनाइज़र → टोकन आईडी → ट्रांसफार्मर बॉडी।
- आउटपुट जनरेशन. ट्रांसफार्मर → वीक्यू डिकोडर → पिक्सल द्वारा भविष्यवाणी की गई छवि टोकन।
शरीर के ऊपर और नीचे की ओर सब कुछ कार्य-विशिष्ट है।
इनपुट शीघ्र प्रारूप द्वारा स्पष्ट हैं: a <understand>सिगलिप के माध्यम से मार्गों को टैग करें; <generate>या VQ के माध्यम से मार्ग. या मार्ग कार्य से अप्रत्यक्ष है.
यह काम क्यों करता है
हानि को समझने के लिए सिगलिप सुविधाएँ प्राप्त होती हैं, जिसे सीएलआईपी-शैली पूर्व प्रशिक्षण ने अर्थिक समानता के लिए ट्यून किया है। मॉडल के धारणा बेंचमार्क शो-ओ / ट्रांसफ्यूजन की तुलना में बेहतर होते हैं क्योंकि इनपुट सुविधाएं कार्य के लिए बेहतर होती हैं।
पीढ़ी हानि VQ टोकन प्राप्त करता है, जिसे एक टोकनराइज़र ने पुनर्निर्माण के लिए ट्यून किया है। शो-ओ के दौरान छवि गुणवत्ता में सुधार होता है क्योंकि VQ कोड पिक्सेल में साफ ढंग से वापस आते हैं।
साझा ट्रांसफार्मर बॉडी दो इनपुट वितरण (SigLIP और VQ) देखता है और दोनों के साथ काम करना सीखता है। दावाः पर्याप्त डेटा + पर्याप्त मापदंड, शरीर स्विचिंग को अवशोषित करता है।
डेटा स्केलिंग Janus बनाम Janus-Pro
जैनस (मूल, arXiv 2410.13848) ने डिकाउपिंग पेश की लेकिन छोटे पैमाने पर (1.3B पैरामीटर, सीमित डेटा) । जैनस-प्रो (arXiv 2501.17811) ने स्केल कियाः
- 7B पैराम्स (vs 1.3B) ।
- चरण 1 (संरेखण) के लिए 90M छवि-पाठ जोड़े 72M से ऊपर।
- चरण 2 (एकिकृत) के लिए 72M 26M से ऊपर।
- चरण 3 के लिए 200k छवि-जन निर्देश नमूने जोड़े गए।
परिणामः जेनस-प्रो-7बी MMMU पर LLaVA (60.3 बनाम ~58) से मेल खाता है और GenEval (0.80 बनाम 0.67) पर DALL-E 3 से हराता है। एक खुला मॉडल, एकीकृत स्पेक्ट्रम के दोनों किनारों पर प्रतिस्पर्धी।
JanusFlow सुधारित प्रवाह संस्करण
JanusFlow (arXiv 2411.07975) VQ पीढ़ी पथ को एक सुधारित-प्रवाह पीढ़ी पथ (अंतर) के लिए बदल देता है। विभाजन सिगलिप-फॉर-अंडरस्टैंड + सुधारित-प्रवाह-फॉर-प्रजनन बन जाता है। गुणवत्ता छतें आगे बढ़ जाती हैं। वास्तुकला डिकोप्ल्ड-एन्कोडर-शेयर-बॉडी बनी रहती है।
साझा शरीर का कार्य
ट्रांसफार्मर बॉडी एक एकीकृत अनुक्रम को संसाधित करता है लेकिन दो इनपुट वितरण के साथ। इसका कार्य हैः
- समझने के लिएः सिगलिप सुविधाओं + पाठ टोकन का उपभोग करें → ऑटोरेग्रेसिव रूप से पाठ जारी करें।
- उत्पादन के लिएः पाठ टोकन + (वैकल्पिक छवि VQ टोकन) का उपभोग करें → ऑटोरेग्रेसिव रूप से छवि VQ टोकन emit करें।
शरीर में प्रति ब्लॉक कोई विशिष्ट मोडलिटी वजन नहीं है. यह पाठ शैली के ट्रांसफार्मर है आप Qwen या Llama के अंदर खोजने की उम्मीद करेंगे, प्लस दो इनपुट एडाप्टर.
दिलचस्प बात यह है कि इसका मतलब है कि Janus-Pro का शरीर एक पूर्व-शिक्षित LLM से शुरू किया जा सकता है। Janus-Pro DeepSeek-MoE-7B से शुरू करता है। यह विकल्प मायने रखता हैः LLM तर्क क्षमता में योगदान देता है कि शुद्ध-से-नकली एकीकृत मॉडल तक पहुंचने के लिए संघर्ष करते हैं।
इंटरवीएल-यू की तुलना में
इंटरवीएल-यू (पाठ 12.10) 2026 के अनुवर्ती है। इसमें निम्नलिखित शामिल हैंः
- मूल मल्टीमोडल प्री-ट्रेनिंग (InternVL3 रीढ़ की हड्डी)
- डिस्कॉल्ड-एकोडर रूटिंग (SigLIP में, VQ + विसारण बाहर) ।
- एकीकृत समझ + पीढ़ी + संपादन।
इंटरवीएल-यू ने जेनुस-प्रो के वास्तुशिल्प विकल्प को एक बड़े फ्रेमवर्क में शामिल किया। डिकोप्ल्ड-एन्कोडर विचार अब पैमाने पर एकीकृत मॉडल के लिए डिफ़ॉल्ट है।
सीमाएँ
डिकूपल्ड एन्कोडर वास्तुकला जटिलता जोड़ते हैं। प्रशिक्षित करने के लिए दो टोकन, बनाए रखने के लिए दो इनपुट पथ, विफलता मोड के दो सेट। जिन उत्पादों के लिए पीढ़ी की आवश्यकता नहीं है, जेनस-प्रो अत्यधिक इंजीनियर है।
उन उत्पादों के लिए जिन्हें समझ की आवश्यकता नहीं है, Janus- Pro अत्यधिक योग्य है एक स्थिर विसारण 3 / प्रवाह मॉडल चुनें।
उन उत्पादों के लिए जो दोनों की आवश्यकता है, Janus-Pro अब संदर्भ खुला वास्तुकला है।
इसका प्रयोग करें
code/main.pyJanus-Pro रूटिंग अनुकरण करता हैः
- दो नकली एन्कोडरः सिगलिप-जैसे (256-आयामी अर्थिक वेक्टर उत्पन्न करता है) और वीक्यू-जैसे (पूरे संख्या कोड उत्पन्न करता है) ।
- एक शीघ्र राउटर जो एक कार्य टैग के आधार पर एन्कोडर चुनता है।
- एक साझा निकाय (स्टैंड-इन) जो टोकन अनुक्रमों को संसाधित करता है, चाहे वह किस एन्कोडर द्वारा उत्पन्न किया गया हो।
- चरण 1 (अनुरेखण) से चरण 3 (निर्देश ट्यून) के लिए एक स्विच वेटेड-सैम्पल शेड्यूल।
3 उदाहरणों के लिए मार्गबद्ध पथ प्रिंट करेंः छवि QA, T2I, छवि संपादन।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-decoupled-encoder-picker.md. एक ऐसे उत्पाद को देखते हुए जो एक एकीकृत पीढ़ी + सीमा-श की गुणवत्ता पर समझ चाहता है, यह एक ठोस डेटा-स्केल सिफारिश के साथ Janus-Pro, JanusFlow, या InternVL-U का चयन करता है।
व्यायाम
- जेनस-प्रो-7बी ने जेनेवल पर डेल-ई 3 को हराया। समझाएं कि 7बी ओपन मॉडल पीढ़ी पर एक फ्रंटियर प्रपोट्रेट मॉडल से क्यों मेल खा सकता है लेकिन समझ पर नहीं।
- एक राउटर फ़ंक्शन को लागू करेंः दिए गए शीघ्र पाठ को, के रूप में वर्गीकृत करें
understandयाgenerateआप "वर्णन और फिर स्केच" जैसे अस्पष्ट संकेतों से कैसे निपटते हैं?
- JanusFlow VQ पथ को सही प्रवाह से बदल देता है। ट्रांसफार्मर बॉडी अब क्या आउटपुट करता है, और नुकसान में क्या परिवर्तन होता है?
- एक चौथा कार्य प्रस्तावित करें जिसे जेनस-प्रो आर्किटेक्चर एक और डिकोप्ल्ड एन्कोडर के साथ संभाल सकता है। उदाहरणः छवि खंडन (डीआईएनओ-शैली), गहराई (मिडाएस-शैली) ।
- डेटा स्केलिंग पर Janus-Pro धारा 4.2 पढ़ें। T2I गुणवत्ता वृद्धि बनाम Janus में कौन सा डेटा चरण सबसे अधिक योगदान देता है?
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Decoupled encoding | "Two visual encoders" | Separate tokenizer or encoder per direction: semantic for understanding, reconstruction for generation |
| Shared body | "One transformer" | Single transformer processes either encoder's output; no modality-specific weights |
| SigLIP for understanding | "Semantic features" | CLIP-family vision tower providing rich conceptual features but poor reconstruction |
| VQ for generation | "Reconstruction codes" | Vector-quantized tokens that decode cleanly back to pixels |
| JanusFlow | "Rectified-flow variant" | Janus-Pro with a continuous flow-matching generation head instead of VQ |
| Routing tag | "Task tag" | Prompt marker (<understand> / <generate>) that picks the input encoder |
आगे पढ़ना
- Wu et al. — Janus (arXiv:2410.13848)
- Chen et al. — Janus-Pro (arXiv:2501.17811)
- Ma et al. — JanusFlow (arXiv:2411.07975)
- InternVL-U (arXiv:2603.09877)
- Dong et al. — DreamLLM (arXiv:2309.11499)
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.