LLaVA-OneVision: एकल-छवि, बहु-छवि, वीडियो एक मॉडल में
Type: Build
Languages: Python (stdlib, token budget solver + curriculum planner)
Prerequisites: Phase 12 · 05 (LLaVA), Phase 12 · 06 (any-resolution)
Time: ~180 minutes
सीखने के लक्ष्य
- एक दृश्य-चिह्न बजट डिजाइन करें जो एकल-छवि, बहु-छवि और वीडियो इनपुट पर स्थिर रहता है।
- एक प्रशिक्षण पाठ्यक्रम का आदेश दें जो विनाशकारी भूल के बिना एकल छवि से वीडियो में कौशल स्थानांतरित करता है।
- यह समझाएं कि एक ही मॉडल एक ही पैरामीटर की गणना पर विशेषज्ञों से बेहतर क्यों है जब पाठ्यक्रम सही तरीके से किया जाता है।
- एलएलएवीए-वनविज़न द्वारा रिपोर्ट की गई तीन उभरती क्षमताओं का नाम देंः मल्टी-कैमरा तर्क, सेट-ऑफ-मार्क प्रॉम्प्टिंग, आईफोन स्क्रीनशॉट एजेंट।
समस्या
छवि, मल्टी-इमेज और वीडियो प्रत्येक मॉडल को अलग तरह से तनाव देते हैं।
एकल छवि उच्च रिज़ॉल्यूशन टोकन (AnyRes, ~ 2880 दृश्य टोकन) की आवश्यकता होती है ताकि ओसीआर और बारीक विवरण को पकड़ सकें। प्रति नमूना बजटः एक छवि, 2880 टोकन।
मल्टी-इमेज मध्यम रिज़ॉल्यूशन (~576 टोकन प्रत्येक) पर कई छवियों की आवश्यकता होती है ताकि छवियों के बीच तर्क संदर्भ में फिट बैठ सके। प्रति नमूना बजटः 4-8 छवियां, 576 प्रत्येक, 2300-4600 टोकन।
वीडियो को समय की गतिशीलता को कैप्चर करने के लिए कम रिज़ॉल्यूशन पर कई फ्रेम (बॉलिंग के बाद प्रति फ्रेम ~ 196 टोकन) की आवश्यकता होती है। प्रति नमूना बजटः 8-32 फ्रेम, 196 प्रत्येक, 1600-6200 टोकन।
यदि आप अलग-अलग मॉडल को प्रशिक्षित करते हैं, तो आप एक बजट चुनते हैं। यदि आप एक मॉडल को प्रशिक्षित करते हैं, तो आपको संदर्भ को उड़ाने के बिना परिदृश्यों के बीच समझदारी से पैमाने पर बजट की आवश्यकता होती है।
पूर्व-वनविज़न, डिफ़ॉल्ट उत्तर था "एक परिदृश्य को प्रशिक्षित करें, दूसरों को अनदेखा करें।" वीडियो-एलएवीए ने अतिरिक्त प्रशिक्षण चरणों के साथ एक छवि मॉडल पर वीडियो को रीफॉर्मेट किया। एलएवीए-नेक्स्ट ने टाइलिंग के साथ मल्टी-इमेज समर्थन जोड़ा। कोई भी तीनों को साफ ढंग से संभाला।
अवधारणा
वनविज़न टोकन बजट
LLaVA-OneVision प्रति नमूना लगभग 3000-4000 टोकन का एक एकीकृत दृश्य टोकन बजट चुनता है, जो प्रति परिदृश्य अलग-अलग आवंटित होता हैः
- एकल छवि: AnyRes-9 (3x3 टाइल + थंबनेल), प्रत्येक टाइल 384 पर 729 पैच के साथ, प्रति टाइल 2x2 → 182 प्रति आक्रामक द्विआधारी पूलिंग। कुलः 9 * 182 + 182 = 1820 टोकन। या AnyRes-4 प्रति टाइल 729- पर = 2916 + 729.
- मल्टी-इमेजः प्रत्येक छवि मध्यम रिज़ॉल्यूशन (384, कोई टाइलिंग नहीं), 729 टोकन बिना ब्यूलिंग के। बजट 6 छवियां → 4374 टोकन।
- वीडियोः 32 फ्रेम 384 रिज़ॉल्यूशन के साथ आक्रामक 3x3 द्विआधारी पूल → 81 टोकन प्रति फ्रेम। कुलः 32 * 81 = 2592 टोकन।
आवंटन लगभग निरंतर कुल टोकन बनाए रखता है। एलएलएम कभी भी एक बैच नहीं देखता है जो इसके संदर्भ को उड़ाता है। एन्कोडर प्रति परिदृश्य अलग-अलग ज्यामिति का उत्पादन करता है, लेकिन एलएलएम एक ही बजट का उपभोग करता है।
तीन चरणों का पाठ्यक्रम
तीन चरणों में LLaVA-OneVision ट्रेनेंः
- एकल-छवि एसएफटी (चरण एसआई) । सभी डेटा एकल-छवि प्लस-पाठ हैं। उच्च-रिज़ॉल्यूशन एनीरेस इनपुट पर प्रशिक्षित करें। यह धारणा, ओसीआर और बारीक-खोल समझ सिखाता है। एलएवीए-नेक्स्ट डेटा प्लस वनविज़न-विशिष्ट एकल-छवि डेटा का उपयोग करता है।
- OneVision SFT (स्टेज OV) । एकल-छवि + बहु-छवि + वीडियो (समान रूप से नमूने फ्रेम) मिश्रण करें। एकीकृत टोकन बजट पर अभ्यास करें। इससे मॉडल को विषम बैच आकारों को संभालने के लिए सिखाया जाता है। कोई वजन रीसेट नहीं होता है स्टेज एसआई से जारी है।
- कार्य हस्तांतरण (चरण टीटी) लक्ष्य कार्य मिश्रण के साथ जारी रखें, आमतौर पर उत्पाद के आधार पर मल्टी-इमेज या वीडियो पर भारी। तैनाती के लिए वैकल्पिक ठीक-ठाक।
महत्वपूर्णः पाठ्यक्रम क्रम मायने रखता है। वीडियो-पहले या मल्टी-इमेज-पहले प्रशिक्षण एक ही डेटा के साथ भी एकल-इमेज-पहले की तुलना में खराब छवि प्रदर्शन पैदा करता है। पेपर इसे स्पष्ट रूप से खारिज करता है।
पाठ्यक्रम क्यों काम करता है
एकल-छवि प्रशिक्षण धारणा आधार बनाता है। पैच टोकन में बारीक-खरेबी दृश्य विशेषताएं होती हैं; एलएलएम उन्हें पाठ के साथ एकीकृत करना सीखता है। बहु-छवि और वीडियो संरचनात्मक चुनौतियों (कौन सी छवि है, कौन सी पहली हुई) को पेश करते हैं जो एक मजबूत धारणा आधार के बिना सीखना मुश्किल है।
यदि आप सभी परिदृश्यों को खरोंच से एक साथ प्रशिक्षित करते हैं, तो मॉडल धारणा (प्रति बैच सीमित एकल-छवि डेटा) और ओवरफिट संरचना (बहुत सारे मल्टी-छवि / वीडियो डेटा) से कम है। परिणामः एक मॉडल जो क्रॉस-छवि तर्क पैटर्न का अनुसरण करता है लेकिन दृश्य रूप से क्षैतिज है।
पाठ्यक्रम क्रम आपको चरण एसआई से धारणा शक्ति देता है, फिर चरण ओवी से संरचनात्मक/समय तर्क देता है, बिना किसी को खोए।
क्रॉस-सिनियर कौशल
LLaVA-OneVision पेपर में तीन उभरती क्षमताओं की रिपोर्ट की गई हैः
- मल्टी-कैमरा तर्क। मल्टी-इमेज + वीडियो पर अलग से प्रशिक्षित; निष्कर्ष पर, मल्टी-कैमरा ड्राइविंग दृश्य के बारे में तर्क करने के लिए कहा गया। मॉडल प्रशिक्षण में कभी भी सटीक प्रारूप नहीं देखने के बावजूद सही ढंग से विचारों को एकीकृत करता है।
- सेट-ऑफ-मार्क प्रोम्प्टिंग। उपयोगकर्ता अंकित चिह्नों के साथ एक छवि में वस्तुओं को नोट करता है; मॉडल तर्क "चिह्न 3 चिह्न 7 के सापेक्ष क्या कर रहा है" के बारे में।
- आईफोन स्क्रीनशॉट एजेंट. उपयोगकर्ता आईफोन स्क्रीनशॉट प्रदान करता है और अगले क्लिक की योजना बनाने के लिए कहता है। यूआई स्क्रीनशॉट, उपयोगकर्ता वर्कफ़्लो के वीडियो और जोड़े से पहले / बाद की बहु-छवि पर प्रशिक्षित। एजेंट उपयोग के मामले में सामान्यीकरण।
ये प्रशिक्षित कार्य नहीं हैं; वे पाठ्यक्रम की संरचनात्मक संरचना से उत्पन्न होते हैं।
दृश्य टोकन बंडल
टोकन बजट को pooling की आवश्यकता होती है। OneVision 2D पैच ग्रिड पर द्विआधारी अंतराल का उपयोग करता हैः 24x24 = 576 पैच 12x12 = 144 (2x कारक) या 8x8 = 64 (3x कारक) बन जाता है। स्थानीयता को संरक्षित करने के लिए पैच-ग्रिड स्थान में pooling किया जाता है, टोकन स्थान नहीं।
प्रति परिदृश्य को जोड़ने के कारक का चयन स्वयं एक हाइपरपैरामीटर है। कम जोड़ना = अधिक टोकन = समृद्ध प्रतिनिधित्व। अधिक जोड़ना = कम टोकन = अधिक फ्रेम / छवियां फिट।
LLaVA-OneVision-1.5
2025 के अनुवर्ती (LLaVA-OneVision-1.5, arXiv 2509.23661) प्रशिक्षण डेटा, मॉडल वजन और कोड में "पूरी तरह से खुला" है। कुछ बेंचमार्क पर स्वामित्व अंतर से मेल खाता है और नुस्खा को लोकतांत्रिक बनाता है। एक ही पाठ्यक्रम, अधिक डेटा, बेहतर आधार LLM। कोई वास्तुकला परिवर्तन नहीं।
Qwen2.5-VL के साथ विपरीत
Qwen2.5-VL (लक्ष 12.09) अलग-अलग विकल्प बनाता है। यह निश्चित पूलिंग के बजाय M-RoPE और गतिशील FPS का उपयोग करता है। इनपुट के साथ इसका बजट स्केल 1 मिनट का वीडियो 5 सेकंड के वीडियो की तुलना में अधिक टोकन का उपयोग करता है। LLaVA-OneVision बजट को तय करता है और पूलिंग को स्केल करता है। दोनों काम करते हैं; वे पूर्वानुमानिता के लिए विन्यासशीलता का आदान-प्रदान करते हैं।
इसका प्रयोग करें
code/main.pyएक वनविजन शैली VLM के लिए एक पाठ्यक्रम और बजट नियोजक है। प्रति नमूना टोकन बजट और एक लक्ष्य परिदृश्य मिश्रण (कहें 40% एकल छवि, 30% बहु-छवि, 30% वीडियो) को देखते हुए, यहः
- प्रति परिदृश्य संकल्प, पूलिंग कारक और फ्रेम आवंटित करता है।
- यह जांचें कि प्रत्येक परिदृश्य साझा बजट के भीतर फिट बैठता है।
- रिपोर्टों में अपेक्षित टोकन संख्या, एलएलएम फ्लोप और कौन से परिदृश्य कम टोकन किए गए हैं।
- चरण-दर-चरण प्रशिक्षण कार्यक्रम प्रिंट करता है।
इसका उपयोग एक वनविजन ठीक-ठीक करने की योजना बनाने या एक VLM तैनाती की प्रति अनुरोध लागत की मानसिकता की जांच करने के लिए करें।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-onevision-budget-planner.md. लक्ष्य कार्य वितरण और प्रति नमूना बजट को देखते हुए, यह एनीरेस कारक, प्रति फ्रेम पूलिंग, वीडियो फ्रेम की संख्या और पाठ्यक्रम चरण वजन जारी करता है। जब भी आप एक एकीकृत परिदृश्य VLM को प्रशिक्षित या ठीक से समायोजित करते हैं तो इसका उपयोग करें।
व्यायाम
- आपके उत्पाद में 80% एकल-छवि, 10% मल्टी-छवि (2-4 छवियां), 10% वीडियो (8-16 फ्रेम) का समर्थन है। टोकन बजट डिजाइन करें। भारी मल्टी-छवि नहीं करने से आप जो अतिरिक्त बजट बचाएंगे, उसे आप कहां डालेंगे?
- LLaVA-OneVision सेक्शन 4.3 (उत्पन्न क्षमताएं) पढ़ें। पाठ्यक्रम में संभवतः एक चौथा उभरता हुआ कौशल का प्रस्ताव दिया जाएगा लेकिन पेपर ने रिपोर्ट नहीं की।
- पाठ्यक्रम क्रम को बदलें पहले मल्टी-इमेज ट्रेन, फिर एकल-इमेज, फिर वीडियो। भविष्यवाणी करें कि कौन से बेंचमार्क गिराए जाते हैं और क्यों।
- पेपर में वीडियो बेंचमार्क की रिपोर्ट है जो प्रति नमूना केवल 8 फ्रेम पर प्रशिक्षित किए गए हैं। क्या यह निष्कर्ष पर 30 सेकंड के वीडियो में सामान्य हो जाता है? क्या पहले टूट जाता है टोकन बजट या समय तर्क?
- 24x24 पैचों को 12x12 तक द्विआधारी पूलिंग प्रति dim में 4x कमी है। stdlib पायथन में पूलिंग को लागू करें और सत्यापित करें कि प्रत्येक 2x2 ब्लॉक पर औसत द्विआधारी आउटपुट से मेल खाता है।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| OneVision scenario | "Single-image, multi-image, or video" | One of three input shapes the unified VLM handles; the budget stays constant across |
| Token budget | "How many tokens per sample" | Total visual tokens the LLM sees per training / inference sample, typically 3000-4000 |
| Curriculum | "Training order" | Stage ordering (single-image → multi-image → video) chosen for emergent transfer |
| Bilinear pooling | "Token shrink" | Applying bilinear interpolation to the patch grid (2D) to reduce token count while preserving locality |
| Emergent skill | "Not trained, still works" | Capability that appears at inference without matching training data, due to curriculum composition |
| AnyRes-k | "k-tile setup" | k sub-tiles of fixed resolution plus one thumbnail, typical k ∈ {4, 9} |
| Task transfer | "Cross-scenario generalization" | Skills learned on single-image that apply to video (and vice versa) via shared backbone |
आगे पढ़ना
- Li et al. — LLaVA-OneVision (arXiv:2408.03326)
- LLaVA-OneVision-1.5: Fully Open Framework (arXiv:2509.23661)
- Lin et al. — Video-LLaVA (arXiv:2311.10122)
- Lin et al. — VILA (arXiv:2312.07533)
- Wang et al. — Qwen2-VL (arXiv:2409.12191)
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.