Phase 08: Generative AI

विजुअल ऑटोरेग्रेसिव मॉडलिंग (वीएआर): अगले पैमाने की भविष्यवाणी

विसारण मॉडल समय में पुनरावर्ती रूप से नमूना (विनाशात्मक चरण) । VAR नमूने पैमाने में पुनरावर्ती रूप से यह एक 1x1 टोकन, फिर 2x2, फिर 4x4 का पूर्वानुमान करता है, अंतिम संकल्प तक, प्रत्येक पैमाने को पिछले पर कंडीशनिंग। 2024 पेपर में दिखाया गया है कि VAR छवि उत्पादन के लिए जीपीटी शैली के स्केलिंग कानूनों से मेल खाता है और एक ही गणना बजट पर डीटी को हराता है। यह पाठ मूल तंत्र का निर्माण करता है।

Type: Build

Languages: Python (with PyTorch)

Prerequisites: Phase 7 Lesson 03 (Multi-Head Attention), Phase 8 Lesson 06 (DDPM)

Time: ~90 minutes

समस्या

स्व-निष्क्रिय पीढ़ी ने भाषा मॉडलिंग पर हावी रहा क्योंकि यह पूर्वानुमाननीय रूप से स्केल करती हैः अधिक गणना, अधिक मापदंड, कम भ्रम, बेहतर आउटपुट। 2024 से पहले छवि पीढ़ी में दो मुख्य एआर प्रयास थेः पिक्सेलआरएनएन / पिक्सेलसीएनएन (पिक्सेल-दर-पिक्सेल) और डेल-ई 1 / पार्टि / म्यूज़ेन (वीक्यू-वीएई कोड पर टोकन-दर-टोकन) ।

दोनों को पीढ़ी-क्रम की समस्या का सामना करना पड़ा। पिक्सेल और टोकन 2 डी ग्रिड में व्यवस्थित हैं, लेकिन एआर मॉडल को उन्हें 1 डी रैस्टर क्रम में देखना पड़ता है। एक प्रारंभिक कोन पिक्सेल को कोई विचार नहीं है कि छवि अंततः क्या बनती है। पीढ़ी की गुणवत्ता जीपीटी-ऑन-टेक्सट की तुलना में बदतर थी और कभी भी मिलान गणना पर विसारण मॉडल की गुणवत्ता तक नहीं पहुंच पाई।

VAR उत्पन्न होने वाले को बदलकर पीढ़ी-क्रम की समस्या को ठीक करता है। अंतरिक्ष में छवि टोकन को एक-एक करके भविष्यवाणी करने के बजाय, VAR बढ़ते रिज़ॉल्यूशन पर एक पूरी छवि की भविष्यवाणी करता है। चरण 1: 1x1 टोकन (कुल छवि "सारांश") का भविष्यवाणी करें। चरण 2: टोकन की 2x2 ग्रिड (अधिक कठोर विशेषताएं) का भविष्यवाणी करें। चरण 3: एक 4x4 ग्रिड का भविष्यवाणी करें। चरण K: अंतिम (H/8) x(W/8) ग्रिड का भविष्यवाणी करें।

प्रत्येक पैमाने अपने स्वयं के पैमाने के भीतर सभी पिछले पैमाने (कारणतः "स्केल क्रम में") और समानांतर में कार्य करता है। क्रम समस्या गायब हो जाती हैः पैमाने k पर पूरी छवि एक ट्रांसफार्मर पास में उत्पन्न होती है।

अवधारणा

VQ-VAE बहु-मात्रा टोकनाइज़र

वीएआर को एक multi-scale discrete tokenizer. एक छवि x के लिए, यह तेजी से उच्च संकल्प टोकन ग्रिड का एक अनुक्रम उत्पन्न करता हैः

x -> encoder -> latent f
f -> tokenize at 1x1: token grid z_1 of shape (1, 1)
f -> tokenize at 2x2: token grid z_2 of shape (2, 2)
...
f -> tokenize at (H/p)x(W/p): token grid z_K of shape (H/p, W/p)

प्रत्येक z_k एक ही कोडबुक (सामान्य आकार 4096-16384) का उपयोग करता है। प्रत्येक पैमाने पर टोकनाइज़ेशन स्वतंत्र नहीं है यह इस प्रकार प्रशिक्षित है कि प्रत्येक पैमाने पर शेष राशि का योग f का पुनर्निर्माण करता हैः

f ≈ upsample(embed(z_1), target_size) + ... + upsample(embed(z_K), target_size)

यह एक हैresidual VQचर k क्या पैमाने 1..k-1 याद किया है कैप्चर करता है. decoder सभी पैमाने एम्बेडमेंट का योग लेता है और छवि का उत्पादन करता है.

बहु-पैमाना वाले वीक्यू टोकनाइज़र को एक बार प्रशिक्षित किया जाता है (जैसे वीक्यूजीएएन) और फिर जमे हुए हैं। सभी जनरेटिव काम ऊपर के ऑटोरेग्रेसिव मॉडल द्वारा किया जाता है।

अगली स्केल भविष्यवाणी

जनरेटिव मॉडल एक ट्रांसफार्मर है जो सभी पिछले पैमाने से टोकन देखता है और अगले पैमाने पर टोकन की भविष्यवाणी करता है।

इनपुट अनुक्रम संरचनाः

[START, z_1 tokens, z_2 tokens, z_3 tokens, ..., z_K tokens]

स्थिति एम्बेडमेंट स्केल इंडेक्स और स्केल के भीतर स्थानिक स्थिति दोनों को एन्कोड करते हैं। ध्यान पैमाने के क्रम में कारण है: पैमाने k पर टोकन, स्थिति (i, j) पैमाने 1..k पर सभी टोकन और पैमाने k पर टोकन स्वयं को देख सकता है जो किसी भी आंतरिक पैमाने के क्रम में पहले आते हैं (VAR किसी भी आंतरिक पैमाने के कारण के बिना निश्चित स्थिति ध्यान का उपयोग करता है एक पैमाने के भीतर सभी स्थानों को समानांतर रूप से भविष्यवाणी की जाती है) ।

प्रशिक्षण हानिः प्रत्येक पैमाने k पर, सभी पूर्व-स्केल टोकन दिए गए टोकन z_k की भविष्यवाणी करें। विवश VQ कोड पर क्रॉस-एंट्रोपी हानि। "अनुक्रम" को छोड़कर GPT के समान संरचना अब पैमाने-संरचित है।

पीढ़ी

निष्कर्ष परः

generate z_1 = sample from p(z_1)                    # 1 token
generate z_2 = sample from p(z_2 | z_1)              # 4 tokens in parallel
generate z_3 = sample from p(z_3 | z_1, z_2)         # 16 tokens in parallel
...
decode: f = sum of embed-and-upsample scales 1..K
image = VAE_decoder(f)

के = 10 पैमाने के लिए, पीढ़ी 10 ट्रांसफार्मर आगे के पास है। प्रत्येक पास एक पैमाने के भीतर समानांतर में अपना पूरा पैमाने कोई प्रति टोकन ऑटोरेग्रेशन नहीं बनाता है। 256x256 छवि के लिए यह लगभग 10 पास बनाम डीटी का 28-50 है।

अगला स्केल अगले टोकन पर क्यों जीतता है

तीन संरचनात्मक जीतेंः

  1. Coarse-to-fine aligns with natural image statistics.मानव दृश्य धारणा और छवि डेटासेट दोनों पैमाने पर निर्भर नियमितता प्रदर्शित करते हैंः कम आवृत्ति संरचना स्थिर और पूर्वानुमान योग्य है; उच्च आवृत्ति विवरण कम आवृत्ति सामग्री पर निर्भर करता है। अगले पैमाने पर भविष्यवाणी इसका लाभ उठाती है।
  2. Parallel generation within scale.जीपीटी-शैली के टोकन एआर के विपरीत, वीएआर एक चरण में एक पैमाने पर सभी टोकन उत्पन्न करता है। प्रभावी पीढ़ी की लंबाई रैखिक के बजाय लॉग-स्केल है।
  3. No generation order bias.स्केल k पर टोकन सभी स्केल k-1 को देखते हैं; कोई "बाएं-ऑफ" या "ऊपर" पूर्वाग्रह नहीं है जो देर से संदर्भ उपलब्ध होने से पहले प्रारंभिक टोकन को प्रतिबद्ध करने के लिए मजबूर करता है।

स्केलिंग कानून

टियां आदि। यह दिखाया गया है कि VAR छविनेट पर FID के लिए एक शक्ति-कानून स्केलिंग वक्र का पालन करता है जैसे GPT भ्रमितता के लिए करता है। पैरामीटर या गणना को दोगुना करने से त्रुटि आधे हो जाती है। यह पहली छवि-जनरेटरी मॉडल थी जो इस प्रकार के स्केलिंग व्यवहार को भाषा मॉडल के रूप में साफ ढंग से प्रदर्शित करती थी। परिणाम यह है कि VAR पैमाने पर भविष्यवाणियां गणना से पूर्वानुमान योग्य हो जाती हैं, वास्तुकला के अनुसार अनुभवजन्य अनुमान नहीं।

प्रसार के साथ संबंध

VAR और विसारण एक ही डेटा-संपीड़न कहानी साझा करते हैंः दोनों पीढ़ी की समस्या को आसान उप-समस्याओं के एक अनुक्रम में तोड़ते हैं।

  • प्रसारः धीरे-धीरे शोर जोड़ें, एक कदम को रद्द करना सीखें।
  • VAR: धीरे-धीरे संकल्प जोड़ें, अगले पैमाने की भविष्यवाणी करना सीखें।

वे समस्या के माध्यम से अलग-अलग अक्ष हैं। दोनों व्यवहार्य सशर्त वितरण प्रदान करते हैं। अनुभवजन्य रूप से VAR निष्कर्ष पर तेज़ है (कम पास, सभी पैमाने के भीतर समानांतर) और वर्ग-सशर्त इमेजनेट पर डीटी से मेल खाता है या हराता है। पाठ-सशर्त VAR (VARclip, HART) एक सक्रिय अनुसंधान दिशा है।

इसे बनाओ

code/main.pyआपः

  1. एक छोटा सा बनाओ multi-scale VQ tokenizerसिंथेटिक "चित्र" डेटा (2D गौशियन रिंग) पर।
  2. ट्रेन ए VAR-style transformerअगले पैमाने पर टोकन भविष्यवाणी करने के लिए.
  3. ट्रांसफार्मर को 4 बार (4 स्केल) कॉल करके और डिकोडिंग करके नमूना लें।
  4. यह सत्यापित करें कि पैमाने पर क्रमबद्ध प्रशिक्षण एक पैमाने के भीतर पीढ़ी को समानांतर बनाता है।

यह एक खिलौना कार्यान्वयन है. मुद्दा यह है कि पैमाने पर संरचित ध्यान मुखौटा और समानांतर पैमाने के भीतर पीढ़ी वास्तव में काम करते हैं.

इसे भेजें

यह सबक हमें फल देता हैoutputs/skill-var-tokenizer-designer.md बहु-पैमाना टोकनराइज़र डिजाइन करने के लिए कौशलः स्केल की संख्या, स्केल अनुपात, कोडबुक आकार, अवशिष्ट साझाकरण, डिकोडर वास्तुकला।

व्यायाम

  1. Scale count ablation.4, 6, 8, 10 स्केल के साथ VAR को प्रशिक्षित करें। पुनर्निर्माण की गुणवत्ता बनाम ऑटोरेग्रेसिव पास की संख्या मापें। अधिक स्केल = बेहतर अवशेष = बेहतर गुणवत्ता लेकिन अधिक पास।
  1. Codebook size.कोडबुक के आकारों के साथ टोकन बनाने वाले ट्रेन 512, 4096, 16384। बड़े कोडबुक बेहतर पुनर्निर्माण देते हैं लेकिन भविष्यवाणी करना कठिन है। घुटने को ढूंढें।
  1. Parallel-within-scale check.एक प्रशिक्षित VAR के लिए, ध्यान पैटर्न को स्पष्ट रूप से मापें। पैमाने k के भीतर, मॉडल क्रॉस-स्केल पदों पर ध्यान देता है लेकिन आंतरिक पैमाने पर नहीं? मास्क कार्यान्वयन की जांच करें।
  1. VAR vs DiT scaling.उसी इमेजनेट क्लास-कंडीशनिंग टास्क के लिए, VAR और DiT को मैच पैरामीटर बजट (जैसे, 33M, 130M, 458M) पर प्रशिक्षित करें। प्लॉट FID बनाम कंप्यूटिंग। VAR को प्रत्येक आकार पर DiT से आगे खींचना चाहिए छोटे पैमाने पर पेपर के परिणाम को पुनः पेश करना चाहिए।
  1. Text conditioning.एडाएलएन के माध्यम से अतिरिक्त कंडीशनिंग इनपुट के रूप में पाठ एम्बेडिंग (CLIP pooled) को लेने के लिए VAR का विस्तार करें। यह HART नुस्खा है। FID पाठ-अनुसूचित नमूने लेने में कितना सुधार करता है?

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

TermWhat people sayWhat it actually means
VAR"Visual AutoRegressive"Image generation by next-scale prediction over a pyramid of VQ token grids
Next-scale prediction"Predict coarser, then finer"The model predicts tokens at increasing resolution scales, conditioning on all previous scales
Multi-scale VQ tokenizer"Residual VQ"VQ-VAE that produces K token grids of increasing resolution, with decoder summing all scales
Scale k"Pyramid level k"One of K resolution levels, from 1x1 at k=1 up to (H/p)x(W/p) at k=K
Parallel-within-scale"One forward per scale"All tokens at scale k are predicted in one transformer pass, not autoregressively
Causal-across-scales"Scale-ordered attention"Token at scale k can attend to all of scales 1..k but not scales k+1..K
Residual VQ"Additive tokenization"Each scale's tokens encode the residual left by lower scales; decoder sums all scale embeddings
VAR scaling law"Image GPT scaling"FID follows a predictable power law in compute, like language models' perplexity
HART"Hybrid VAR + text"Text-conditional VAR variant combining MaskGIT-style iterative decoding with VAR's scale structure
Scale position embedding"(scale, row, col) triple"Positional encoding carries both the scale index and spatial coordinates within the scale

आगे पढ़ना

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.