विज़न लैंग्वेज मॉडल्स की दृश्य सीमाएँ
(vlmsareblind.github.io)- GPT-4o, Gemini-1.5 Pro, Sonnet-3, Sonnet-3.5 जैसे विज़न लैंग्वेज मॉडल्स (VLM) विज़ुअल अंडरस्टैंडिंग बेंचमार्क में ऊँचे स्कोर लाते हैं, लेकिन इंसान द्वारा आसानी से हल किए जाने वाले low-level visual tasks में औसतन केवल 58.57% accuracy हासिल करते हैं
- BlindTest, 7 सरल tasks के ज़रिये सटीक spatial perception की जाँच करता है, जैसे line intersections की संख्या, दो circles का touch/overlap, चिह्नित अक्षर ढूँढना, overlapped shapes गिनना, nested rectangles, table rows/columns, और subway routes
- कुल औसत random baseline 24% से अधिक है, लेकिन सबसे अच्छा मॉडल Sonnet-3.5 भी केवल 74.94% तक पहुँचता है, जो इंसानी अपेक्षा के 100% से काफ़ी दूर है
- resolution और line thickness बदलने पर भी मॉडल्स एक-दूसरे के क़रीब या overlapped geometric primitive elements और सटीक positional relations को स्थिर रूप से संभाल नहीं पाते
- table में text होने पर row/column counting बेहतर होती है, लेकिन subway map जैसे inputs में, जहाँ spatial tracking की ज़रूरत होती है, प्रदर्शन काफ़ी गिर जाता है
BlindTest की समस्या सेटिंग और कुल परिणाम
- Paper (ArXiv), Code, Dataset प्रकाशित किए गए हैं
- मूल्यांकन के लिए GPT-4o, Gemini-1.5 Pro, Sonnet-3, Sonnet-3.5 — ये चार VLM शामिल हैं
- BlindTest, इंसानों के लिए आसान low-level visual tasks के माध्यम से VLM की सटीक spatial perception की जाँच करता है
- कुल औसत accuracy 58.57% है, जो random baseline 24% से अधिक है, लेकिन अपेक्षित 100% accuracy से काफ़ी कम है
- मॉडल-वार कुल औसत में Sonnet-3.5 सबसे आगे है, जिसकी accuracy 74.94% है
- मुख्य विफलताएँ बार-बार सटीक positional relations, कम दूरी, overlap, route tracking, और geometric primitive recognition में दिखती हैं
line intersections गिनना
- यह task दो-segment वाली नीली और लाल polyline के 0, 1, 2 बार intersect होने की संख्या गिनने का है
- images, सफ़ेद canvas पर 2D line graph की 1,800 images के रूप में बनाई गईं
- हर line, x-coordinate तय और समान दूरी पर रखे गए तीन points से परिभाषित होती है
- y-coordinate को random sample करके ठीक 0, 1, या 2 intersections बनने दिए गए
- सही उत्तर के विकल्प {0, 1, 2} हैं और random baseline 33% है
- औसत accuracy: GPT-4o 41.61%, Gemini-1.5 Pro 66.94%, Sonnet-3 43.41%, Sonnet-3.5 75.36%
- उदाहरण परिणामों में VLM intersection points को स्थिर रूप से नहीं गिन पाए
दो circles के touch और overlap की पहचान
- यह task पूछता है कि समान आकार के भरे हुए 2 circles एक-दूसरे को छूते हैं या overlap करते हैं, Yes/No में
- images की संख्या 672 है, और इन्हें circle size, distance, direction, और canvas size बदलकर बनाया गया
- circle diameter, canvas size का 1/4, 1/5, 1/6, 1/7 है
- circles की boundaries के बीच दूरी diameter की -0.15 गुना से 0.5 गुना तक है
- direction: 90°, 0°, -45°, 45°
- canvas size: 384, 769, 1155 pixels
- सही उत्तर circles की boundaries के बीच दूरी d से तय होता है
- d < 0: overlap करते हैं और छूते हैं
- d = 0: overlap नहीं करते, लेकिन छूते हैं
- d > 0: न overlap करते हैं, न छूते हैं
- औसत accuracy: GPT-4o 72.69%, Gemini-1.5 Pro 92.78%, Sonnet-3 84.52%, Sonnet-3.5 91.66%
- छोटे gaps में VLM लगातार विफल होते हैं, और बड़े gaps में भी GPT-4o के अस्थिर उदाहरण दिखते हैं
लाल ellipse से चिह्नित अक्षर ढूँढना
- VLM अपने आप में लाल circle जैसे basic shapes पहचान सकते हैं और English words पढ़ सकते हैं, लेकिन जब किसी शब्द के ऊपर किसी खास अक्षर पर लाल ellipse रखा जाता है, तो वे ठीक कौन-सा अक्षर है यह पहचानने में कठिनाई दिखाते हैं
- इस्तेमाल किए गए strings हैं Acknowledgement, Subdermatoglyphic, tHyUiKaRbNqWeOpXcZvM
- इन तीन strings में अक्षरों की width और height अलग-अलग हैं
- जब सिर्फ़ string image के रूप में दी गई, तब चारों models पूरी string पढ़ सके
- random string को इसीलिए शामिल किया गया ताकि word familiarity का accuracy पर असर देखा जा सके
- हर string और marked letter combination के लिए 512×512 image बनाई गई, जिसमें लाल ellipse की 3 line thickness, 2 font sizes, और canvas के भीतर 4 positions को जोड़ा गया
- Acknowledgement: 360 images
- Subdermatoglyphic: 408 images
- tHyUiKaRbNqWeOpXcZvM: 480 images
- औसत accuracy: GPT-4o 70.18%, Gemini-1.5 Pro 92.81%, Sonnet-3 73.34%, Sonnet-3.5 89.22%
- जब model ग़लत होते हैं, तो वे चिह्नित अक्षर के बगल वाले अक्षर का अनुमान लगाने की प्रवृत्ति दिखाते हैं
overlapped shapes और nested rectangles गिनना
- Olympic logo की तरह overlap करते हुए circles या pentagons गिनने वाला task यह जाँचता है कि अलग-अलग पड़े circles गिन सकने वाले VLM, overlap वाले shapes में भी कठिनाई महसूस करते हैं या नहीं
- overlapped shapes task में 384, 769, 1155 pixel canvas पर एक ही आकार के 5~9 shapes को दो पंक्तियों में रखा गया
- circle diameter: C/5 या C/10
- pentagon side length: C/5 या C/10
- कुल 120 images बनाई गईं
- सही उत्तर {5, 6, 7, 8, 9} है और random baseline 20%
- overlapped circles accuracy: GPT-4o 42.50%, Gemini-1.5 Pro 20.83%, Sonnet-3 31.66%, Sonnet-3.5 44.16%
- overlapped pentagons accuracy: GPT-4o 19.16%, Gemini-1.5 Pro 9.16%, Sonnet-3 11.66%, Sonnet-3.5 75.83%
- nested rectangles task में सबसे बाहरी rectangle के अंदर दूसरे rectangles को एक-दूसरे से बिना छुए रखकर 2~5 rectangles गिनवाए गए
- कुल 120 images बनाई गईं
- accuracy: GPT-4o 55.83%, Gemini-1.5 Pro 87.08%, Sonnet-3 65.00%, Sonnet-3.5 92.08%
- उदाहरणों में केवल Sonnet-3.5 कई images में rectangles सही गिन सका
table rows/columns गिनना और subway routes ट्रैक करना
- table rows/columns counting task यह जाँचता है कि VLM table वाले inputs में ऊँचा प्रदर्शन दिखाने के बावजूद, क्या वे साधारण grid structure को सही से गिन पाते हैं
- grids, N×N, N×N', N'×N रूप में हैं, जहाँ N 3~9 है और N' = N+1
- canvas size: 500, 1250, 2000 pixels
- line thickness: 2 प्रकार
- empty grid और हर cell में random words वाले grid दोनों शामिल करके कुल 444 images
- rows और columns दोनों सही होने पर ही उत्तर सही माना गया, और औसत accuracy: GPT-4o 39.58%, Gemini-1.5 Pro 39.39%, Sonnet-3 36.17%, Sonnet-3.5 74.26%
- empty grid औसत: 34.37%
- text वाले grid का औसत: 60.33%
- cells में text होने पर सभी VLM का प्रदर्शन सुधरता है, और Sonnet-3.5 में यह सुधार विशेष रूप से बड़ा है
- subway map task में A, B, C, D चार stations के बीच किसी खास दो stations को जोड़ने वाले single-color path की संख्या गिनवाई जाती है
- 512 या 1024 pixel canvas का उपयोग
- अदृश्य 18×18 grid पर depth-first search से paths बनाए गए
- हर station के पास ठीक N∈{1, 2, 3} outgoing paths होते हैं
- कुल 180 maps बनाए गए
- subway paths की औसत accuracy: GPT-4o 47.89%, Gemini-1.5 Pro 41.60%, Sonnet-3 23.24%, Sonnet-3.5 55.53%
- प्रति station 1 path होने पर औसत 59.16%
- 2 paths होने पर औसत 40.69%
- 3 paths होने पर औसत 26.35%
- किसी station से निकलने वाले paths की संख्या बढ़ने पर VLM का प्रदर्शन और बिगड़ने की प्रवृत्ति दिखती है
1 टिप्पणियां
Hacker News की राय
दिलचस्प है, लेकिन निष्कर्ष काफी भटका हुआ लगता है। सारांश में यह लिखना कि “इनकी दृष्टि, बहुत हुआ तो, बारीकियां धुंधली दिखने वाली नज़दीक की कमजोरी जैसी है” कुछ ज्यादा ही बढ़ा-चढ़ाकर कहना है, और यह भी संदेह है कि उस परिकल्पना को ठीक से जांचा गया है या नहीं।
अगर काम के दौरान GPT-4v द्वारा काफी कठिन सूक्ष्म visual tasks करने के उदाहरण साझा किए जा सकें, तो यह निष्कर्ष खारिज किया जा सकता है। व्यक्तिगत रूप से मैं इस paper https://arxiv.org/abs/2404.04125 को ज्यादा महत्व देता हूं; इसका तर्क है कि बड़े generative AI models, इस शर्त पर कि training के दौरान उन्होंने उस प्रकार का बहुत सारा data देखा हो, काफी अच्छा करते हैं। जानबूझकर अजीब tasks बनाए जाएं तो वे सचमुच खराब कर सकते हैं और AGI वाली पहली छाप कमजोर पड़ती है, लेकिन वास्तविकता में हम सिर्फ वे tasks इस्तेमाल नहीं करते जो model को गिराने के लिए बनाए गए हों। कुछ खास tasks में performance अच्छी हो सकती है, लेकिन यह paper इन दोनों पहलुओं के लिए पर्याप्त ठोस आधार पेश नहीं करता।
ये models असल में मानव-स्तर के नहीं हैं, फिर भी उन्हें लगभग मानव-स्तर जैसा imply किया जाता है। paper दिखाता है कि सरल समस्याओं में भी model अप्रत्याशित रूप से confuse हो जाता है, यानी अभी बड़ा gap है। ऐसे tasks को और सामने लाना जरूरी है, ताकि लोग इन्हें general use के लिए उपयुक्त मानने से पहले समझें कि safeguards और पर्याप्त warnings की जरूरत है।
लेकिन model को “अंधा” कहना या आम तौर पर उसका performance कम बताना, सिर्फ phone निकालकर ChatGPT app में एक photo डालकर आसानी से गलत साबित किया जा सकता है। BeMyEyes का जिक्र करके “AI defender” को कोसने वाली प्रतिक्रियाएं भी हैं, लेकिन $20/month subscription और phone हो तो इसे तुरंत test किया जा सकता है। real-world tasks में यह हैरान करने वाली तरह से अच्छा काम करता है, और perfect न होते हुए भी practically काफी useful है; कई बार alternatives से बेहतर होता है या कोई alternative होता ही नहीं।
technology isolated niche tasks में बेहद अच्छी हो सकती है। 10 साल पहले के OCR systems भी तय किए गए single task में बहुत reliable थे। AI ने जिस चीज का वादा किया था, वह developer द्वारा तय किए गए किसी खास niche में कैद न रहने वाला नया paradigm है; अगर यह ऐसी सरल चीजें भी reliably miss करता है जिनमें सामान्य इंसान गलत नहीं होगा, तो पूरा value proposition ढह जाता है।
कल GPT-4o के साथ काफी चौंकाने वाला अनुभव हुआ। garage door हाल में नीचे गिरना शुरू हो गया था, तो देखने पर पता चला कि मकान मालिक ने wire rope clip गलत लगाया था, जिससे torsion cable का tension छूट गया था।
मुझे उस part का नाम नहीं पता था, इसलिए ChatGPT से पूछा, और उसने उम्मीद के मुताबिक part identify कर दिया। test के तौर पर पूछा कि photo में कुछ ध्यान देने लायक है क्या; उसने सही पहचाना कि cable उलटी लगी है, इसलिए जिस side पर tension था वह loose end को दबाकर कसने के बजाय उसके ऊपर चढ़ी हुई है। इसे diagnose करने के लिए cable को space में follow करना और geometry से यह infer करना पड़ता है कि किस side पर tension है; बेशक, luck से सही guess होने की संभावना को खारिज नहीं किया जा सकता। सचमुच हैरानी की बात यह थी कि दो nuts में से एक साफ तौर पर गायब था, फिर भी second installation problem बताने के बाद भी उसने इसे notice नहीं किया। screenshot: https://imgur.com/a/QqCNzOM
“never saddle a dead horse” वाली mnemonic निकालना भी इस बात का आधार है कि यह समस्या common है। ठीक करने के बाद वही सवाल फिर पूछना अच्छा रहेगा।
दूसरे reply की तरह, मुझे यह मानने में skepticism है कि LLM ने बस luck से सही बता दिया।
अब तक VLM object counting या spatial relationships जैसे कामों में अच्छे नहीं रहे हैं—जैसे यह बताना कि कॉफी microwave के दाईं ओर है या नहीं
VLM की मदद करने के तरीके हैं; Microsoft का Set of Marks https://github.com/microsoft/SoM इसका प्रमुख उदाहरण है। इसमें image को VLM को भेजने से पहले segmentation के ज़रिए regions की outline बनाकर उन्हें label किया जाता है। Regions को “शब्दों में व्यक्त किए जा सकने वाले” labels देने से VLM की visual capabilities को ground करने में मदद मिलती है, और इसी paper में “Task 6: Counting the rows and columns of a grid” में grid के अंदर words होने पर performance कहीं बेहतर होने की वजह भी यही है
यह photocells वाले “neurons” को grid में लगाकर बनाया गया एक parallel analog computer था, और कहा जाता है कि यह “size, position, form, और illumination intensity से स्वतंत्र रूप से objects की संख्या” गिन सकता था। इस क्षेत्र के लोगों के लिए Heinz Von Foerster का 1962 का paper “Perception of Form in Biological and Man Made Systems” दिलचस्प हो सकता है: https://distributedmuseum.illinois.edu/exhibit/biological_computer_laboratory/, https://sites.evergreen.edu/arunchandra/wp-content/uploads/sites/395/2018/05/bcl082.pdf
तरीका कुछ ऐसा है: किसी image को “नीले आसमान और बादलों के सामने बिजली के तार पर पक्षी बैठे हैं” के रूप में describe किया जाता है, फिर उस description की embedding को photo की embedding से match किया जाता है। अगर पूछा जाए कि पक्षी हैं या नहीं, तो यह पता चल सकता है, लेकिन कितने हैं यह नहीं। यानी जब तक training data में किसी object पर बैठे पक्षियों की संख्या का वर्णन करना आम न रहा हो, और वह संख्या image description में असली count से पर्याप्त बार match न हुई हो। अगर objects गिनने हैं, तो YOLO जैसी चीज़ चाहिए
Vision Transformer tokenizer में हैरान कर देने वाली मात्रा में compression करता है। Chameleon paper कहता है कि tokenizer “512 × 512 image को size 8192 की codebook से आए 1024 discrete tokens में encode करता है”
इसका मतलब है प्रति token 256 pixels, और अगर pixel को 24-bit मानें, तो 256 * 24 = 6144 bits को log2(8192), यानी 13 bits में compress किया जा रहा है। An Image is Worth 32 Tokens for Reconstruction and Generation इसे और आगे ले जाता है। अगर ये models इसी तरह काम करते हैं, तो कुछ visual tasks में उनका संघर्ष करना अजीब नहीं है
इसलिए किसी हद तक वह “देख” रहा है। बस ऐसी questions का जवाब देने की logic कम लगती है। पूरा dataset यहां सीधे test किया जा सकता है: https://huggingface.co/datasets/XAI/vlmsareblind/viewer/default/train
यह generalization की structural failure के बजाय capacity issue भी हो सकता है, और scale को और बढ़ाने पर शायद स्वाभाविक रूप से हल हो जाए
अगर मौजूदा top-level models GPT-4o, Gemini-1.5 Pro, Sonnet-3, Sonnet-3.5 की हालत यही है, तो performance काफ़ी शर्मनाक रूप से खराब है। इन models को ऐसे advertise और बेचा जाता है कि वे image understanding कर सकते हैं—जैसे किसी अंधे व्यक्ति को guide करना या किसी बच्चे को geometry सिखाना
जिन tasks में वे fail होते हैं, वे इंसानों के लिए हास्यास्पद रूप से सरल हैं। जैसे दो lines कितनी बार intersect करती हैं यह गिनना, दो circles overlap करते हैं या नहीं detect करना, किसी word में circled letter चुनना, Olympic logo जैसी drawing में circles की संख्या गिनना। यह लेख front page के बिल्कुल ऊपर होना चाहिए
Model का “इंसानों के लिए obvious” कई cases handle न कर पाना बिल्कुल भी surprising नहीं है। Machine learning में शुरू से ऐसी characteristics रही हैं, और लोग ऐसे systems से deal करते समय यही classic गलती करते हैं। इंसान मान लेते हैं कि अगर कोई machine learning model task X में इंसान से ज़्यादा accuracy दिखाता है, तो उसमें बाकी सभी tasks में भी वही क्षमता होगी। किसी बेहद सक्षम इंसान के बारे में यह संभव हो सकता है कि वह दूसरे tasks में भी अच्छा होगा, लेकिन machine learning model पर यह लागू नहीं होता। उल्टा, यह मानना भी गलत है कि model task Y में खराब है, इसलिए task X में उसकी capability भी भ्रम है और उस पर भरोसा नहीं किया जा सकता
क्या expectation treadmill सचमुच इतनी तेज़ हो गई है कि अब किसी भी problem category में human-below performance शर्मनाक बात हो गई है?
खोज अपने-आप में दिलचस्प है, लेकिन “Vision language models are blind” शीर्षक बढ़ा-चढ़ाकर कहा गया है और नतीजों को भ्रामक बनाता है। यह सच है कि VLM जिस तरह image input को detect और process करते हैं, वह इंसानों से बहुत अलग है, और कम resolution में image blocks में टूटकर discrete tokens में map हो जाती है।
इस mapping में काफी loss होता है, इसलिए असल में वे बारीक details तक नहीं पहुंच पाते। इस मायने में नतीजे पूरी तरह समझ में आते हैं और चौंकाने वाले नहीं थे, लेकिन “अंधे” कहना बहुत मजबूत संकेत देता है और यह research उसे support नहीं करती। पहले example, यानी चार 2D line graphs, को ही देखें तो Sonnet 3.5 से 5 बार पूछने पर 2 बार उसने काफी ठीक जवाब दिए। तीसरे graph में intersection असल में 2 थे लेकिन उसने 1 कहा, यह गलत था, पर कुल मिलाकर उसने काफी अच्छा किया और बाकी 3 बार भी तीसरे graph के लिए 1 ही जवाब दिया
VLM कैसे काम करते हैं, इसकी केवल सतही समझ रखने वाले के नजरिए से देखें तो यहां embodiment की बात करने वाले लोग कुछ हद तक सही हो सकते हैं, ऐसा लगता है। इंसान image recognition को बार-बार refine करते हुए रुचि वाले area पर focus कर सकता है, लेकिन VLM को पूरी image को समान fidelity के साथ process करना पड़ता है।
मुझे जिज्ञासा है कि क्या इसकी नकल करने का कोई तरीका हो सकता है। जैसे शुरुआत में visual tokens को कम fidelity पर रखना, और VLM को ऐसे tokens output करने देना जिनसे वह image के किसी खास region पर higher resolution में “focus” कर सके। हालांकि ऐसे “interactive” data से model को efficiently train किया जा सकता है या नहीं, यह ठीक से नहीं पता
जरूरी नहीं कि higher resolution ही हो, बल्कि stronger neural connectivity के जरिए किसी region पर focus करने का तरीका है
गरीब देशों में जिन लोगों का cataract थोड़ा देर से हटाया गया, hardware के स्तर पर उस समय उनकी vision perfect होनी चाहिए थी, लेकिन फिर भी लगता है कि जीवनभर रहने वाली कमी बच जाती है। शुरुआती low-resolution learning इंसानों को कितना प्रभावित करती है, यह पूरी तरह ज्ञात नहीं है, और यह connectionist systems की सामान्य सच्चाई की बजाय इंसानों की खास neurobiology से जुड़ा हो सकता है। फिर भी यह विचार दिलचस्प है कि artificial neural networks के कुछ results training paradigm पर बहुत निर्भर हो सकते हैं, और हर defect को सिर्फ core architecture update से ठीक नहीं किया जा सकता
यह ironic है कि वे ऐसे simple tests में fail करते हैं जिन्हें बच्चा भी हल कर सकता है। लेकिन जब Gemini से बहुत visual noise वाली handwritten Russian cursive postcard पढ़वाई, तो उसने text पढ़ा और English में translate भी कर दिया।
उसे यह बताने की जरूरत भी नहीं पड़ी कि text Russian में है। एक तरफ LLM जो कर सकते हैं वह अविश्वसनीय रूप से शानदार है, और दूसरी तरफ वे ऐसी दिखने में simple problems पर अक्सर बुरी तरह लड़खड़ा जाते हैं। self-driving cars में भी हमने ऐसा ही देखा है, जहां लगभग हर human driver जिस स्थिति से आसानी से बच जाता, वहां वे accident कर देती हैं
algorithmic perspective से देखें तो ये visual tasks explicitly program करना वास्तव में काफी कठिन है
मैंने computational geometry की classes कुछ बार ली हैं, और N line segments के intersections को efficiently calculate करना शुरू में जितना लगता है उतना simple नहीं है। कहीं न कहीं इसे पहचानने के लिए computation की जरूरत होती है, और LLM इस task के लिए specially trained नहीं है, इसलिए उसका struggle करना चौंकाने वाला नहीं है।
कुल मिलाकर basic geometry learning perspective से कम explore किया गया area लगता है
ऐसा लगता है कि इन models ने जिस type की reasoning सीखी है और specific mathematical reasoning के लिए जरूरी reasoning type के बीच फर्क है
हम plane space में lines को visually लेकर यह calculate नहीं करते कि वे कहां intersect करती हैं। हमें पता होता है कि intersection कैसा दिखता है, हम एक देखते हैं, counter बढ़ाते हैं, फिर अगला ढूंढते हैं। करीब 5 से कम हों तो एक साथ process करते हैं, उससे ज्यादा हों तो सचमुच गिनते हैं, कभी छोटे groups में, कभी एक-एक करके
सभी models, खासकर Claude 3.5 Sonnet, random से काफी बेहतर करते दिखते हैं, इसलिए वे निश्चित रूप से अंधे नहीं हैं। Claude Sonnet 3.5 जिस एकमात्र task में random से बेहतर नहीं था, वह multiple paths follow करने वाला problem था, यानी A से C तक answer 3 होने वाला case, और उसे हल करने में मुझे भी कुछ seconds लगे।
ऐसा लगता है कि paper title पहले तय कर लिया गया और फिर नए Claude 3.5 Sonnet को abstract images पर evaluate किया गया। “इनकी vision ज्यादा से ज्यादा ऐसी myopia जैसी है जिसमें details धुंधली दिखती हैं” वाला sentence भी समझ में नहीं आता। ये images model की abstract ability को evaluate करती हैं, eyesight को नहीं