Phase 12: Multimodal AI

चमेलन और आर्य फ्यूजन टोकन-केवल मल्टीमोडल मॉडल

हमने अब तक जो भी VLM देखा है, उसमें चित्र और पाठ अलग-अलग हैं। दृश्य टोकन एक दृष्टि एन्कोडर से आते हैं, एक प्रोजेक्टर में बहते हैं, फिर LLM के अंदर पाठ से मिलते हैं। दृष्टि और पाठ की शब्दावली कभी भी ओवरलैप नहीं होती है। चमेलन (मेटा, मई 2024) ने पूछाः क्या होगा अगर वे करते? एक VQ-VAE को प्रशिक्षित करें जो एक छवि को साझा शब्दावली से अलग टोकन के अनुक्रम में बदल देता है। प्रत्येक बहुआयामी दस्तावेज अब एक अनुक्रम है पाठ टोकन और छवि टोकन एक दूसरे के साथ, एक एकल ऑटोरेग्रेसिव हानि। साइड इफेक्टः मॉडल एक एकल निष्कर्ष कॉल में मिश्रित-मोडालिटी आउटपुट आदान-प्रदान पाठ और छवि टोकन उत्पन्न कर सकता है। यह पाठ प्रारंभिक विलय थीसिस पढ़ता है और अंत से अंत तक खिलौना संस्करण बनाता है।

Type: Build

Languages: Python (stdlib, VQ-VAE tokenizer + interleaved decoder)

Prerequisites: Phase 12 · 05, Phase 8 (Generative AI)

Time: ~180 minutes

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

  • समझाएं कि साझा शब्दावली + एकल हानि मॉडल के कार्य को क्यों बदलती है।
  • वर्णन करें कि VQ-VAE एक छवि को एक ट्रांसफार्मर के अगले टोकन उद्देश्य के साथ संगत एक अलग अनुक्रम में कैसे टोकन करता है।
  • Chameleon के प्रशिक्षण-स्थिरता ट्रिक्स का नाम देंः QK-नॉर्म, ड्रॉपअप प्लेसमेंट, लेयरनॉर्म ऑर्डरिंग।
  • चमेलन बनाम BLIP-2 के Q-Former दृष्टिकोण की तुलना करें और वर्णन करें कि कब प्रत्येक सही विकल्प है।

समस्या

एडाप्टर आधारित VLMs (LLaVA, BLIP-2, Qwen-VL) पाठ और छवि को दो अलग-अलग चीजें के रूप में व्यवहार करते हैं। एक पाठ टोकन के माध्यम से जाता है embed(text_token)एक छवि गुजरती है visual_encoder(image) → projector → ... pseudo_tokens. मॉडल में दो इनपुट पथ हैं जो आंशिक रूप से एक साथ मिलते हैं.

तीन परिणाम:

  1. एमएलएल केवल छवियों का उपभोग कर सकता है, उन्हें प्रसारित नहीं कर सकता है। आउटपुट केवल पाठ है।
  2. मिश्रित-मोडलिटी दस्तावेज (एक लेख में जैसे अनुच्छेद और चित्रों को बदलते हुए) अजीब हैं आप या तो मॉडल या श्रृंखला पीढ़ी के बाहर मल्टीमोडल इनपुट का विश्लेषण करते हैं।
  3. विसारण असंगतता. दृश्य टोकन और पाठ टोकन छिपे हुए स्थान के विभिन्न क्षेत्रों में रहते हैं, सूक्ष्म संरेखण समस्याएं पैदा करते हैं।

चमेलन इस परिकल्पना को खारिज करता हैः छवियां साझा शब्दावली से अलग-अलग टोकन के अनुक्रम हैं। एक-दूसरे से जुड़े दस्तावेजों पर मॉडल को प्रशिक्षित करें, एक हानि, एक ऑटोरेग्रेसिव डिकोडर, और आप मुफ्त में मिश्रित मोडलिटी जनरेशन अनलॉक करते हैं।

अवधारणा

छवि टोकनराइज़र के रूप में VQ-VAE

टोकनराइज़र एक वेक्टर-क्वांटिज़्ड वैरिएशनल ऑटोकोडर है।

  • एन्कोडरः सीएनएन + वीटी जो छवि को स्थानिक सुविधा मानचित्र पर मानचित्रित करता है, जैसे कि 32x32 फीचर्स ऑफ डिम 256.
  • कोडबुकः K वेक्टरों का एक सीखा हुआ शब्दावली (कैमेलोन 8192 का उपयोग करता है), जो 256 को भी कम करता है।
  • क्वांटिज़ेशनः प्रत्येक स्थानिक विशेषता के लिए, L2 दूरी से निकटतम कोडबुक प्रविष्टि खोजें। निरंतर विशेषता को पूर्णांक सूचकांक से बदलें।
  • डीकोडरः सीएनएन जो क्वांटिज़्ड फीचर्स को पिक्सल में वापस ले जाता है।

प्रशिक्षणः वीएई पुनर्निर्माण हानि + प्रतिबद्धता हानि + कोडबुक हानि। कोडबुक सूचकांक छवियों के लिए एक अलग वर्णमाला बनाते हैं।

चमेलन के लिएः एक छवि 32*32 = 1024 टोकन बन जाती है जो 8192 की शब्दावली से निकाली जाती है। पाठ टोकन (एलएलएम की बीपीई शब्दावली से, कहते हैं 32000) के साथ संरेखित होती है। अंतिम शब्दावलीः 40192। ट्रांसफार्मर एक अनुक्रम देखता है, एक हानि।

साझा शब्दावली

चमेलेन की शब्दावली में टेक्स्ट टोकन, इमेज टोकन और मोडलिटी सेपरेटर शामिल हैं। प्रत्येक टोकन में एक एकल आईडी है। इनपुट एम्बेडिंग लेयर प्रत्येक आईडी को डी-डिम छिपे हुए वेक्टर में मैप करता है। आउटपुट प्रोजेक्शन मैप्स वाक्यांश लॉजिट में वापस छिपे हुए हैं। सॉफ्टमैक्स अगले टोकन को चुनता है, जो भी मोडलिटी हो।

विभाजक महत्वपूर्ण हैंः <image>और </image>टैग छवि-टोकन अनुक्रम को ब्रैकेट करते हैं। उत्पादन समय पर, यदि मॉडल उत्सर्जित करता है <image>, डाउनस्ट्रीम सॉफ्टवेयर जानता है कि अगले 1024 टोकन VQ सूचकांक हैं पिक्सेल रेंडर के लिए डिकोडर भेजने के लिए.

मिश्रित गतिशीलता उत्पादन

इन्फेरेंस साझा शब्दावली में अगली टोकन भविष्यवाणी है। उदाहरण प्रम्प्टः "एक बिल्ली को आकर्षित करें और इसे वर्णन करें।" चमेलन जारी करता हैः

<image> 4821 1029 2891 ... (1024 image tokens) </image>
The cat is orange, sitting on a windowsill...

मॉडल स्वयंसिद्ध रूप से क्रम चुनता है यह छवि फिर पाठ, पाठ फिर छवि या इंटरलेव उत्पन्न कर सकता है। एक ही डिकोडर, एक ही हानि।

एडाप्टर VLMs की तुलना करें जहां उत्पादन केवल पाठ है. चमेलन मॉडल आउटपुट मोडेल के प्रश्न को फिर से खोलता है।

प्रशिक्षण स्थिरता QK-Norm, ड्रॉपआउट, LayerNorm ऑर्डरिंग

चमेलन के पेपर में तीन युक्तियाँ हैं:

  • QK-Norm. ध्यान के अंदर क्वेरी और कुंजी अनुमानों पर लागू करें, डॉट उत्पाद से पहले। गहराई पर लॉजिट परिमाण विस्फोट को रोकता है। 2024 के बाद कई बड़े मॉडल द्वारा उपयोग किया जाता है।
  • ड्रॉप-ऑफ प्लेसमेंट. हर अवशिष्ट-एड के बाद ड्रॉप-ऑफ, न केवल ध्यान और एमएलपी के बाद। अधिक नियमितता की आवश्यकता होती है जब छवि टोकन से ग्रेडिएंट हावी हो सकते हैं।
  • लेयरनॉर्म ऑर्डरिंग. अवशिष्ट शाखा पर प्री-एलएन (मानक), प्लस अंतिम ब्लॉक के स्किप कनेक्शन पर एक अतिरिक्त एलएन। अंतिम परत ग्रेडिएंट प्रवाह को स्थिर करता है।

इन युक्तियों के बिना, 34B-परम चमेलन प्रशिक्षण कई चेकपोस्ट पर भिन्न हो गया। उनके साथ, यह अभिसरण है। प्रशिक्षण नुस्खा वास्तुकला के रूप में योगदान के रूप में ज्यादा है।

टोकनराइज़र की पुनर्निर्माण छत

VQ-VAE खोने वाला है। 8192 कोडबुक प्रविष्टियों और 1024 टोकन प्रति 512x512 छवि पर, पुनर्निर्माण PSNR कैप लगभग 26-28 dB के आसपास है। यह पहचान योग्य छवि जन के लिए पर्याप्त है लेकिन निरंतर अंतरिक्ष विसारण (स्थिर विसारण 3 32+ dB तक पहुंचता है) से स्पष्ट रूप से बदतर है।

टोकनराइज़र बोतल की गर्दन है। बेहतर टोकनराइज़र (MAGVIT-v2, IBQ, SBER-MoVQGAN) छत को उठाता है। Emu3 (पढ़ना 12.12) अकेले एक बेहतर टोकनराइज़र के माध्यम से SDXL गुणवत्ता उत्पादन प्राप्त करता है।

चमेलन बनाम BLIP-2 / LLaVA

चमेलन (प्रारंभिक संलयन, साझा शब्दावली):

  • एक हानि, एक डिकोडर.
  • मिश्रित मोडलिटी आउटपुट उत्पन्न करता है।
  • टोकनाइज़र गुणवत्ता की छत है।
  • महंगीः अनुमान पथ पर उत्पन्न प्रतिमा पर VQ-VAE डिकोडर।

BLIP-2 / LLaVA (अंतिम संलयन, अलग टावर):

  • दृष्टि में, केवल संदेश बाहर.
  • पूर्व प्रशिक्षित लॉ लॉ का पुनः उपयोग करें।
  • समझ के लिए कोई टोकननाइज़र बोतल गला नहीं।
  • सस्ताः एकल आगे पास।

यदि आपको छवि निर्माण की आवश्यकता है, तो चमेलेन परिवार, यदि आपको केवल समझ की आवश्यकता है, तो एडाप्टर-वीएलएम सरल है और अधिक पूर्व-प्रशिक्षित कंप्यूटिंग का उपयोग करता है।

फ्यूयू और एनिजीपीटी

फुयु (अडेप्ट, 2023) एक संबंधित दृष्टिकोण हैः पूरी तरह से अलग दृष्टि एन्कोडर को छोड़ दें, एलएलएम के इनपुट प्रोजेक्शन के माध्यम से कच्चे छवि पैच को फ़ीड करें जैसे कि वे टोकन थे, कोई टोकनराइज़र नहीं। चमेलेन की तुलना में सरल, साझा-वोकैब आउटपुट पीढ़ी खो देता है।

AnyGPT (Zhan et al., 2024) चमेलन को चार मोडलिटीज तक बढ़ाता हैः पाठ, छवि, भाषण, संगीत। प्रत्येक के लिए एक ही VQ-VAE ट्रिक, साझा ट्रांसफार्मर। किसी भी पीढ़ी के लिए। पाठ 12.16 में अधिक कवर किया गया।

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

code/main.pyएक खिलौना अंत-से-अंत प्रारंभिक विलय मॉडल का निर्माण करता हैः

  • एक छोटा VQ-VAE शैली क्वांटायर जो कोडबुक सूचकांक (K=16) के लिए 8x8 पैच का नक्शा बनाता है।
  • (टेक्स्ट आईडी 0..31) + (इमेज आईडी 32..47) + (विभाजक 48, 49) का साझा शब्दावली।
  • एक खिलौना ऑटोरेग्रेसिव डिकोडर (बिग्राम टेबल) सिंथेटिक कैप्शन + छवि-टोकन अनुक्रमों पर प्रशिक्षित।
  • नमूना लूप जो एक प्रॉम्प्ट दिए जाने पर वैकल्पिक पाठ + छवि टोकन जारी करता है।

कोड जानबूझकर ट्रांसफार्मर को छोटा (बिग्राम) रखता है ताकि आप सिग्नल प्रवाह को अंत से अंत तक ट्रैक कर सकें।

इसे भेजें

यह सबक हमें फल देता हैoutputs/skill-tokenizer-vs-adapter-picker.md. उत्पाद विनिर्देश (केवल समझें बनाम समझें + उत्पन्न करें, आवश्यक छवि गुणवत्ता, लागत बजट) को देखते हुए, यह चमेलन-परिवार (प्रारंभिक संलयन) और एलएवीए-परिवार (पिछले संलयन) के बीच चयन करता है और गुणात्मक नियमों के साथ औंठी के साथ उचित ठहराता है।

व्यायाम

  1. Chameleon 512x512 प्रति छवि के लिए K=8192 कोडबुक प्रविष्टियों और 1024 टोकन का उपयोग करता है। संपीड़न अनुपात का अनुमान लगाएं बनाम एक 24-बिट आरजीबी छवि। क्या यह नुकसानदायक है? कितना नुकसानदायक है?
  1. एक ही VQ-VAE घनत्व पर एक 4K छवि (3840x2160) कितने छवि टोकन उत्पन्न करता है? क्या एक चमेलन शैली मॉडल एक निष्कर्ष कॉल में एक 4K छवि उत्पन्न कर सकता है? क्या सबसे पहले संदर्भ, टोकनराइज़र गुणवत्ता या KV कैश को तोड़ता है?
  1. शुद्ध पायथन में क्यूके-नॉर्म को लागू करें। 64-आयामी क्वेरी और कुंजी को देखते हुए, लेयरनॉर्म से पहले और बाद में डॉट उत्पाद दिखाएं। गहराई पर परिमाण नियंत्रण महत्वपूर्ण क्यों है?
  1. प्रशिक्षण स्थिरता पर चमेलन धारा 2.3 पढ़ें। 34B पर QK-नॉर्म के बिना देखे गए पेपर की सटीक विफलता मोड का वर्णन करें। "नॉर्म विस्फोट" हस्ताक्षर क्या था?
  1. खेलौना डिकोडर को बढ़ाकर केवल पाठ के संकेत के साथ मिश्रित मोडलिटी प्रतिक्रिया जारी करें। मापें कि मॉडल कितनी बार छवि-पहली बनाम पाठ-पहली को चुनता है। प्रशिक्षण-डेटा वितरण 60% पाठ-पहली / 40% छवि-पहली।

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

TermWhat people sayWhat it actually means
Early fusion"Unified tokens"Images converted to discrete tokens sharing the transformer's vocabulary from step one
VQ-VAE"Image tokenizer"CNN + ViT + codebook that maps images to integer indices the transformer can predict
Shared vocabulary"One dictionary"A single token ID space covering text + image + modality separators
QK-Norm"Attention stabilizer"LayerNorm applied to query and key before their dot product, prevents norm blowup
Mixed-modality generation"Text + image output"Inference that autonomously produces interleaved text and image tokens in one pass
Codebook size"K entries"Number of discrete vectors the VQ-VAE can quantize to; trades compression for fidelity
Tokenizer ceiling"Reconstruction limit"Best PSNR achievable by decoding VQ tokens; bounds the model's image quality

आगे पढ़ना

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.