Phase 12: Multimodal AI

दृष्टि परिवर्तन और पैच-टोकन आदिम

मल्टीमोडल कुछ भी होने से पहले, एक छवि को टोकन का एक अनुक्रम बन जाना चाहिए जिसे ट्रांसफार्मर खा सकता है। 2020 वीआईटी पेपर ने 16x16 पिक्सेल पैच, एक रैखिक प्रोजेक्शन और एक स्थिति एम्बेडिंग के साथ इसका जवाब दिया। पांच साल बाद हर 2026 सीमा मॉडल (क्लाउड ओपस 4.7 पर 2576px मूल, मिथुन 3.1 प्रो, Qwen3.5-Omni) अभी भी इस तरह से शुरू होता है एन्कोडर को ViT से DINOv2 से SigLIP 2 में बदला गया, रजिस्टर टोकन जोड़े गए, स्थिति योजना 2D-RoPE बन गई, लेकिन आदिम बरकरार रहा। यह पाठ पैच-टोकन पाइपलाइन को अंत से अंत तक पढ़ता है और इसे stdlib पायथन में बनाता है ताकि चरण 12 के बाकी हिस्सों में "दृश्य टोकन" के लिए एक ठोस मानसिक मॉडल हो।

Type: Learn

Languages: Python (stdlib, patch tokenizer + geometry calculator)

Prerequisites: Phase 7 (Transformers), Phase 4 (Computer Vision)

Time: ~120 minutes

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

  • सही स्थिति एन्कोडिंग के साथ पैच टोकन के एक अनुक्रम में एक HxWx3 छवि परिवर्तित करें।
  • किसी दिए गए ViT के लिए अनुक्रम की लंबाई, पैरामीटर की गिनती और FLOPs की गणना करें (पैच आकार, रिज़ॉल्यूशन, छिपा हुआ फीका, गहराई) ।
  • उन तीन उन्नयनों का नाम बताइए जिन्होंने 2020 के शोध से 2026 के उत्पादन तक वीआईटी को ले लियाः स्व-निरीक्षण पूर्व प्रशिक्षण (डीआईएनओ / एमएई), रजिस्टर टोकन और मूल-रिज़ॉल्यूशन पैकिंग।
  • CLS pooling, औसत pooling, और एक डाउनस्ट्रीम कार्य के लिए टोकन पंजीकरण के बीच चयन करें।

समस्या

ट्रांसफार्मर वेक्टर के अनुक्रम पर काम करते हैं। पाठ पहले से ही एक अनुक्रम (बाइट या टोकन) है। एक छवि तीन रंग चैनलों के साथ पिक्सल की एक 2D ग्रिड है एक अनुक्रम नहीं। यदि आप प्रत्येक पिक्सल को सपाट करते हैं, तो एक 224x224 आरजीबी छवि 150,528 टोकन बन जाती है, और उस लंबाई पर आत्म-विचार एक गैर-स्टार्टर (अनुक्रम लंबाई में वर्गिक) है।

2020 से पहले के दृष्टिकोणों ने सीएनएन फीचर एक्सट्रैक्टर को सामने से घुमायाः रेसनेट 2048-डिम वेक्टरों का 7 × 7 फीचर मैप बनाता है, उन 49 टोकन को एक ट्रांसफार्मर में खिलाता है। यह काम करता है लेकिन सीएनएन के पूर्वाग्रहों (अनुवाद समरूपता, स्थानीय रिसेप्टिव फ़ील्ड) को विरासत में देता है और ट्रांसफार्मर के पैमाने के लिए भूख को खो देता है।

डोसोविट्स्की आदि। (2020) ने एक साधा सवाल पूछाः क्या होगा अगर हम सीएनएन को छोड़ दें? छवि को निश्चित आकार के पैचों में विभाजित करें (कहें 16x16 पिक्सल), प्रत्येक पैच को रैखिक रूप से वेक्टर में प्रक्षेपित करें, एक स्थितित्मक एम्बेडिंग जोड़ें, और अनुक्रम को वैनिला ट्रांसफार्मर में खिलाएं। उस समय यह बिना घुमाव के विजन के हीरेसी था। पर्याप्त डेटा (जेएफटी -300 एम, फिर लायन) के साथ, यह इमेजनेट पर रेसनेट को हराया और सुधार जारी रखा।

2026 तक, वीआईटी आदिम प्रश्नहीन आधार है। हर ओपन-वेट वीएलएम का विजन टावर कुछ वंशज है (डीआईएनओवी 2, सिगलिप 2, क्लिप, ईवीए, इंटरविटी) । सवाल अब "क्या हमें पैच का उपयोग करना चाहिए? " नहीं है, बल्कि "क्या पैच आकार, क्या संकल्प अनुसूची, क्या पूर्व-प्रशिक्षण उद्देश्य, क्या स्थिति एन्कोडिंग। "

अवधारणा

टोकन के रूप में पैच

एक छवि को देखते हुए xआकार का (H, W, 3)और एक पैच आकार P, आप छवि को एक ग्रिड में नक्काशी (H/P) x (W/P)गैर- ओवरलैप पैच। प्रत्येक पैच एक हैP x P x 3पिक्सेल के घन. प्रत्येक घन को एक तक समतल करें 3 P^2वेक्टर. साझा रैखिक प्रक्षेपण लागू करें W_Eआकार का (3 P^2, D)मॉडल के छिपे आयाम में प्रत्येक पैच को मैप करने के लिए D. .

ViT-B/16 के लिए कैनोनिकल कॉन्फिगः

  • संकल्प 224, पैच आकार 16 → ग्रिड 14x14 → 196 पैच टोकन।
  • प्रत्येक पैच है 16 x 16 x 3 = 768पिक्सेल मान, अनुमानित D = 768. .
  • एक सीखने योग्य जोड़ें [CLS]टोकन → अनुक्रम लंबाई 197.

पैच प्रोजेक्शन गणितीय रूप से एक 2D संभल के साथ नाभिक आकार के समान है P, कदम Pऔर Dउत्पादन कोड वास्तव में इसे लागू करता है।nn.Conv2d(3, D, kernel_size=P, stride=P). "रेखीय प्रक्षेपण" फ्रेमिंग अवधारणात्मक है; कर्नेल फ्रेमिंग कुशल है।

स्थिति सम्मिलित

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

आधुनिक दृष्टि रीढ़ की हड्डी 2D-RoPE (Qwen2-VL के M-RoPE, SigLIP 2 के डिफ़ॉल्ट) या फैक्टरized 2D स्थानों का उपयोग करते हैं। 2D-RoPE पैच (पंक्ति, स्तंभ) के सूचकांक के आधार पर क्वेरी और कुंजी वेक्टरों को घूमता है, इसलिए मॉडल घूर्णन कोण से सापेक्ष 2D स्थिति को घटाता है। कोई स्थिति तालिका नहीं है। मॉडल अनुमान पर मनमाने योग्य ग्रिड आकारों को संभालता है।

CLS टोकन, pooled output और register tokens

छवि स्तर पर प्रतिनिधित्व क्या है? तीन विकल्प सह-अस्तित्व में हैंः

  1. [CLS]टोकन. पैच अनुक्रम में एक सीखने योग्य वेक्टर को तैयार करें. सभी ट्रांसफार्मर ब्लॉकों के बाद, CLS टोकन की छिपी हुई स्थिति छवि प्रतिनिधित्व है। BERT से विरासत में मिला। मूल ViT द्वारा उपयोग किया जाता है, CLIP।
  2. औसत पूल. पैच टोकन के आउटपुट छिपे हुए राज्यों का औसत. सिगलिप द्वारा इस्तेमाल किया, DINOv2, अधिकांश आधुनिक VLMs.
  3. रजिस्टर टोकन. Darcet et al. (2023) ने देखा कि बिना स्पष्ट सिंक टोकन के प्रशिक्षित वीटी उच्च-मानक "आर्टिफैक्ट" पैच विकसित करते हैं जो आत्म-विचार को अपहरण करते हैं। 416 सीखने योग्य रजिस्टर टोकन जोड़ने से यह भार अवशोषित होता है और घने भविष्यवाणी की गुणवत्ता (विखंडन, गहराई) में सुधार होता है। DINOv2 और SigLIP 2 दोनों रजिस्टर के साथ जहाज करते हैं।

सीएलएस वर्गीकरण के लिए ठीक है। वीएलएम के लिए जो एलएलएम में पैच टोकन फ़ीड करते हैं, आप पूरी तरह से pooling को छोड़ देते हैं प्रत्येक पैच एलएलएम इनपुट टोकन बन जाता है। रजिस्टर हस्तान्तरण से पहले फेंक दिया जाता है (वे स्टफलिंग हैं, सामग्री नहीं) ।

पूर्व प्रशिक्षणः पर्यवेक्षित, विपरीत, मुखौटा, स्व-डिस्टिल

2020 वीआईटी को जेएफटी-300एम पर पर्यवेक्षित वर्गीकरण के साथ पूर्व-प्रशिक्षित किया गया था।

  • CLIP (2021): 400M जोड़े पर विपरीत छवि-पाठ। पाठ 12.02.
  • MAE (2021, He et al.): 75% पैचों को मास्क करें, पिक्सल का पुनर्निर्माण करें। स्व-निरीक्षण, शुद्ध छवियों पर काम करता है।
  • DINO (2021) / DINOv2 (2023): छात्र-शिक्षक के साथ आत्म-डिस्टिलिशन, कोई लेबल, कोई कैप्शन नहीं। 2023 DINOv2 ViT-g/14 शुद्ध रूप से दृश्य रीढ़ की हड्डी और "घनत्व सुविधाओं" के उपयोग के मामलों के लिए डिफ़ॉल्ट है।
  • सिगलिप / सिगलिप 2 (2023, 2025): सिगमोइड हानि के साथ CLIP और नेटिव एस्पेक्ट रेश्यो के लिए NaFlex। 2026 में प्रमुख दृश्य टॉवर खुला VLM (क्यूवेन, आइडिएफिक्स2, एलएवीए-वनविजन) ।

पूर्व प्रशिक्षण का आपका विकल्प निर्धारित करता है कि रीढ़ की हड्डी किस लिए अच्छी हैः पाठ के साथ अर्थपूर्ण मिलान के लिए CLIP/SigLIP, घने दृश्य सुविधाओं के लिए DINOv2, डाउनस्ट्रीम फाइनट्यूनिंग के लिए एक प्रारंभिक बिंदु के रूप में MAE।

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

ViT स्केलिंग (Zhai et al. 2022) ने स्थापित किया कि एक ViT की गुणवत्ता मॉडल आकार, डेटा आकार और गणना में अनुमानित कानूनों का पालन करती है।

  • बड़ा मॉडल + अधिक डेटा → बेहतर गुणवत्ता।
  • पैच आकार अनुक्रम लंबाई बनाम निष्ठा पर एक लीवर है। पैच 14 (DINOv2/SigLIP SO400m के लिए विशिष्ट) प्रति छवि पैच 16 की तुलना में अधिक टोकन देता है; ओसीआर और घने कार्यों के लिए बेहतर, गति के लिए बदतर।
  • संकल्प दूसरा बड़ा लीवर है. 224 से 384 तक 512 तक जाना लगभग हमेशा मदद करता है, फ्लोप में quadratic लागत पर।

ViT-g/14 (1B पैरामीटर, पैच 14, रिज़ॉल्यूशन 224 → 256 टोकन) और SigLIP SO400m/14 (400M पैरामीटर, पैच 14) 2026 खुले VLM के लिए दो वर्कहॉर्स एन्कोडर हैं।

एक वीआईटी के लिए पैरामीटर गिनती

पूरी गणना में रहता है code/main.py. 224 पर ViT-B/16 के लिएः

patch_embed = 3 * 16 * 16 * 768 + 768  =  591k
cls + pos    = 768 + 197 * 768          =  152k
block        = 4 * 768^2 (QKVO) + 2 * 4 * 768^2 (MLP) + 2 * 2*768 (LN)
             = 12 * 768^2 + 3k          =  7.1M
12 blocks    = 85M
final LN    = 1.5k
total       ≈ 86M

चेकपॉइंट लोड करने से पहले इस तरह से हर ViT गेंद पार्क करें। रीढ़ की हड्डी के आकार किसी भी डाउनस्ट्रीम VLM में अपने VRAM मंजिल सेट करता है।

2026 उत्पादन विन्यास

2026 में सबसे अधिक खुले VLMs के साथ जहाज कोडर सिगलिप 2 SO400m/14 है। इसमें निम्न हैंः

  • 400 मीटर पैरामीटर।
  • पैच आकार 14, डिफ़ॉल्ट रिज़ॉल्यूशन प्रति छवि 384 → 729 पैच टोकन।
  • छवि स्तर के कार्यों के लिए औसत पूल; सभी 729 पैच वीक्यूए के लिए एलएलएम में बहते हैं।
  • 4 रजिस्टर टोकन, LLM हस्तान्तरण से पहले फेंक दिया गया।
  • 2D-RoPE मूल आयाम अनुपात के लिए छवि स्तर स्केलिंग के साथ।

उस कॉन्फिग में हर निर्णय एक कागज की ओर जाता है जिसे आप पढ़ सकते हैं।

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

code/main.pyयह एक पैच टोकनाइज़र और ज्यामिति कैलकुलेटर है। यह लेता है (छवि H, W, पैच P, छिपा D, गहराई L) और रिपोर्ट करता हैः

  • पेंच के बाद ग्रिड का आकार और अनुक्रम की लंबाई।
  • 8x8 पिक्सेल के सिंथेटिक खिलौना छवि के लिए टोकन अनुक्रम (सपाट + परियोजना पथ के माध्यम से चलें) ।
  • पैच एम्बेड, स्थिति एम्बेड, ट्रांसफार्मर ब्लॉक और सिर द्वारा विभाजित पैरामीटर गिनती।
  • लक्ष्य संकल्प पर प्रति आगे के पास FLOPs।
  • वीटी-बी/16 @ 224, वीटी-एल/14 @ 336, डीआईएनओवी2 वीटी-जी/14 @ 224, सिगलिप एसओ400एम/14 @ 384 पर एक तुलना तालिका।

इसे चलाएं. प्रकाशित संख्याओं के साथ पैरामीटर गिनती मेल खाता है. पैच आकार और संकल्प के साथ खेलें टोकन गिनती लागत महसूस करने के लिए.

इसे भेजें

यह सबक हमें फल देता हैoutputs/skill-patch-geometry-reader.md. एक ViT कॉन्फ़िग (पैच आकार, संकल्प, छिपा हुआ धुंधला, गहराई) को देखते हुए, यह औचित्य के साथ टोकन-कउंट, पैरामीटर-कंट और वीआरएएम अनुमान उत्पन्न करता है। जब भी आप एक वीएलएम के लिए एक दृष्टि रीढ़ की हड्डी चुनते हैं तो इस कौशल का उपयोग करें यह "टोकन विस्फोट और मेरे एलएलएम संदर्भ भरने" की संभावनाओं को रोकता है।

व्यायाम

  1. Patch-token अनुक्रम की लंबाई की गणना करें Qwen2.5-VL के लिए मूल 1280x720 इनपुट के साथ patch आकार 14. यह केवल CLS प्रतिनिधित्व के साथ कैसे तुलना करता है?
  1. पैच 14 पर 1080p फ्रेम (1920x1080) कितने टोकन उत्पन्न करता है? 5 मिनट के वीडियो पर 30 FPS पर, कुल कितने दृश्य टोकन? कौन सी लागत आपको सबसे अधिक बचाती हैः पूलिंग, फ्रेम नमूने, या टोकन विलय?
  1. शुद्ध पायथन में पैच टोकन पर औसत पूलिंग लागू करें। सत्यापित करें कि DINOv2 आउटपुट के 196 टोकन से अधिक का औसत पूल मॉडल के अनुरूप है forwardजब आप एक pooled एम्बेडिंग के लिए पूछते हैं वापस आता है।
  1. "विजन ट्रांसफॉर्मर्स को रजिस्टर की जरूरत है" (arXiv:2309.16588) के खंड 3 को पढ़ें। दो वाक्य में वर्णन करें कि रजिस्टर किस वस्तु को अवशोषित करते हैं और यह निचले प्रवाह की घनी भविष्यवाणी के लिए महत्वपूर्ण क्यों है।
  1. संशोधित करेंcode/main.pyपैच-एन-पैक का समर्थन करने के लिएः विभिन्न रिज़ॉल्यूशन की छवियों की सूची दी गई है, एक एकल पैक अनुक्रम और ब्लॉक-आयामी ध्यान मुखौटा उत्पन्न करें। जब आप इसे प्राप्त करते हैं तो पाठ 12.06 के खिलाफ जांच करें।

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

TermWhat people sayWhat it actually means
Patch"16x16 pixel square"A fixed-size non-overlapping region of the input image; becomes one token
Patch embedding"Linear projection"A shared learned matrix (or Conv2d with stride=P) mapping flattened patch pixels to D-dim vectors
CLS token"Class token"Prepended learnable vector whose final hidden state represents the whole image; optional in 2026
Register token"Sink token"Extra learnable tokens that absorb the high-norm attention artifacts ViTs develop during pretraining
Position embedding"Positional info"Per-position vector or rotation making the sequence-order-aware; 2D-RoPE is the modern default
Grid"Patch grid"The (H/P) x (W/P) 2D array of patches for a given resolution and patch size
NaFlex"Native flexible resolution"SigLIP 2 feature: single model serves multiple aspect ratios and resolutions without retraining
Backbone"Vision tower"The pretrained image encoder whose patch-token outputs feed the LLM in a VLM
Pooling"Image-level summary"Strategy to turn patch tokens into one vector: CLS, mean, attention pool, or register-based
Patch 14 vs 16"Finer vs coarser grid"Patch 14 produces more tokens per image, better fidelity for OCR, slower; patch 16 is the classic default

आगे पढ़ना

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.