1 पॉइंट द्वारा GN⁺ 2024-05-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • ViT feature maps में दिखने वाले high-norm tokens मुख्य रूप से कम सूचना वाले background क्षेत्रों में दिखाई देते हैं, और इसे इस रूप में समझा जाता है कि patch tokens को internal computation के लिए storage space की तरह दोबारा इस्तेमाल किया जा रहा है
  • समाधान है input sequence में image patches से अलग register tokens जोड़ना, ताकि internal computation की भूमिका dedicated tokens में अलग हो जाए
  • supervised learning और self-supervised learning, दोनों तरह के ViT में artifacts घटते हैं और feature maps व attention maps ज्यादा smooth हो जाते हैं, जिससे downstream visual tasks में फायदा होता है
  • object discovery और dense prediction में सुधार की रिपोर्ट दी गई, लेकिन OpenCLIP में object localization performance थोड़ी घटी, इसलिए “सभी models में सुधार” वाला कथन संशोधित किया गया
  • 4~16 register tokens जोड़ने पर 2~6% अतिरिक्त computation लगता है, और tokens की संख्या बढ़ाने से dense task performance हमेशा नहीं बढ़ती

ViT feature maps में दिखे artifacts

  • Vision Transformer visual representation learning में एक शक्तिशाली tool के रूप में इस्तेमाल होता है, लेकिन supervised और self-supervised ViT के feature maps में artifacts पाए गए
  • artifacts inference के दौरान दिखने वाले high-norm tokens के रूप में देखे गए
    • ये मुख्य रूप से image के कम सूचना वाले background क्षेत्रों में होते हैं
    • ऐसा लगता है कि network इन tokens को internal computation के लिए दोबारा इस्तेमाल कर रहा है
  • ये tokens आसपास के patches जैसे background patches से आते हैं, और माना गया कि इनमें local patch information कम और global image information ज्यादा होती है
  • DINOv2 और अन्य ViT में attention map की spatial resolution और accuracy में कमी downstream object discovery और localization performance को प्रभावित कर सकती है

Register token approach

  • प्रस्तावित समाधान Vision Transformer की input sequence में image patches से अलग register tokens जोड़ना है
  • register, CLS token की तरह image patch tokens से अलग होता है, लेकिन इसे loss calculation में सीधे इस्तेमाल नहीं किया जाता
  • उद्देश्य यह है कि मौजूदा patch tokens internal computation के लिए “storage space” की तरह इस्तेमाल न हों, और यह भूमिका dedicated tokens निभाएं
  • यह तरीका मौजूदा Memory Transformer से संबंधित है, लेकिन feature artifacts का विश्लेषण कर उन्हें ठीक करने के लिए नए tokens जोड़ने का approach इस paper के analysis के लिए विशिष्ट है

Feature maps और downstream tasks में बदलाव

  • register जोड़ने पर supervised और self-supervised, दोनों तरह के models में ये artifacts हटते हैं, ऐसा रिपोर्ट किया गया
  • feature maps और attention maps ज्यादा smooth हो जाते हैं, जिससे downstream visual processing में फायदा होता है
  • self-supervised visual models के dense visual prediction tasks में नया state of the art हासिल करने के रूप में इसे संक्षेपित किया गया
  • बड़े models में भी object discovery methods का इस्तेमाल संभव हो गया
  • DINOv2 और DeiT-III में object discovery performance बढ़ती है, और image-level task performance आम तौर पर बनी रहती है

Model-specific exceptions और अतिरिक्त analysis

  • OpenCLIP में register जोड़ने के बाद भी object localization results बेहतर नहीं हुए, और table के numbers के अनुसार performance में थोड़ी गिरावट है
    • authors के जवाब में स्वीकार किया गया कि “सभी models में object discovery performance बेहतर होती है” वाला कथन numbers से समर्थित नहीं है
    • यह सामग्री Section 3.3 में संशोधित की गई
  • OpenCLIP में Figure 7 में norm में कमी दिखती है, लेकिन यह Table 3 में object localization improvement में नहीं बदलती—इस असंगति पर चर्चा की गई
    • LOST evaluation में हर model के लिए keys, queries, values में से सबसे अच्छे performance वाले embedding को चुना जाता है
    • CLIP में values सबसे अच्छे थे, और artifacts keys या queries में दिखते हैं लेकिन values में नहीं, जो Table 3 और qualitative analysis के साथ consistent है
  • MAE में वही “outlier patches” दिखाई नहीं देते लगते हैं
    • इसकी वजह यह हो सकती है कि MAE केवल local loss से trained होता है, इसलिए उसे global information इकट्ठा करने की जरूरत नहीं होती या कम होती है
    • MAE-ViT-Large की linear probing ImageNet classification accuracy 75% है, जो अन्य SSL methods से कम है

Performance, cost और limitations

  • register एक सरल तरीका है, लेकिन extra tokens के कारण computation बढ़ता है
    • 4~16 register tokens जोड़ने पर 2~6% computation increase रिपोर्ट किया गया
  • register count बढ़ना हमेशा dense task improvement में नहीं बदलता
    • 0 से 1 register तक बढ़ाने पर artifacts हटते हैं और segmentation व depth prediction बेहतर होते हैं
    • 1 के बाद और ज्यादा registers जोड़ने पर feature map पहले ही साफ हो चुका होता है, इसलिए segmentation और depth prediction performance ज्यादा नहीं बढ़ती
    • classification performance में registers ज्यादा होने पर अतिरिक्त improvement की प्रवृत्ति दिखी, लेकिन इसकी वजह पर अभी स्पष्ट intuition नहीं है
  • NYU depth dataset में 8 से 16 registers तक बढ़ाने पर RMSE थोड़ी बढ़ी
    • sequence length बढ़ने से optimal hyperparameter बदल गए हो सकते हैं
    • 8 से 16 पर जाते समय 0.03 RMSE का अंतर, 0 से 1 पर जाते समय 0.1 RMSE के अंतर की तुलना में छोटा है, इसलिए यह simple noise भी हो सकता है

OpenReview acceptance और review issues

  • OpenReview decision Accept (oral) है
  • meta-review में सभी चार reviewers ने 8 points दिए, और paper के technical contribution को मान्यता दी गई
  • reviewers ने performance inconsistency, dataset bias और SSL models के संबंध, optimization settings के selection, gradient clipping के impact आदि पर चिंता जताई
  • authors ने rebuttal के दौरान अतिरिक्त experiments और appendix analysis जोड़े
  • बाद की discussion में internal mechanism analysis को मजबूत किया गया, जैसे क्या register outlier का behavior अपने ऊपर लेता है, क्या image token ज्यादा local nature में लौटता है, और CLS token norm कैसे बदलता है

1 टिप्पणियां

 
GN⁺ 2024-05-13
Hacker News प्रतिक्रियाएँ
  • पेपर के अनुसार register ऐसे अतिरिक्त trainable token हैं जिन्हें Vision Transformer मॉडल की ट्रेनिंग के दौरान input sequence में जोड़ा जाता है
    इन्हें patch embedding layer के बाद [CLS] token की तरह trainable values के रूप में जोड़ा जाता है, और Vision Transformer के अंत में register token को हटा दिया जाता है, फिर सिर्फ [CLS] token और patch token को image representation के लिए इस्तेमाल किया जाता है
    यह token मॉडल को forward pass के दौरान global information को store, process और retrieve करने की जगह देता है, ताकि patch token को उस काम के लिए जबरन इस्तेमाल न करना पड़े
    इसके नतीजे में trained Vision Transformer के feature map में दिखने वाले artifact और high-norm outlier token गायब हो जाते हैं, feature map अधिक smooth हो जाता है, और dense prediction performance व unsupervised object discovery भी बेहतर हो जाते हैं
    inference cost सिर्फ 2% बढ़ती है, लेकिन ViT performance काफ़ी सुधरती है, इसलिए यह लगभग free lunch जैसा साफ़-सुथरा नतीजा लगता है

    • tokens को इधर-उधर जोड़ देने से सब कुछ जादू की तरह काम करने लगे, यह रुझान काफ़ी संदिग्ध लगता है, और जब इसमें probability भी जुड़ जाए तो discrete mathematics वाले लोगों के लिए इसे हल्के में लेना मुश्किल होगा
      probabilistic regular expressions भी एक चीज़ हैं, लेकिन यह गणितीय उच्छृंखलता का बिल्कुल अलग स्तर है
      फिर भी, यह सच में काम करता है, यह हैरान करने वाला है
    • BERT में कई [CLS] token जोड़ने की कोशिश भी हुई थी, लेकिन नतीजे कम प्रभावशाली थे: https://arxiv.org/pdf/2210.05043
    • सोच रहा हूँ कि क्या सामान्य text Transformer भी इससे कुछ सीख सकते हैं
      यह attention sink या pause token जैसा लगता है
    • ऐसे token इस्तेमाल करने के लिए अंतिम layer के output को पहले वापस token में बदलना होगा, और फिर अगली pass में दोबारा embed करना होगा
      सोच रहा हूँ कि क्या किसी ने एक pass के raw output को अगली input के रूप में सीधे देने वाले तरीक़े की जाँच की है
  • यह संबंधित लगता है: "Let's Think Dot by Dot: Hidden Computation in Transformer Language Models" https://arxiv.org/abs/2404.15758
    इस पेपर का कहना है कि language model में chain-of-thought performance improvement मानव-जैसे task decomposition की वजह से है या अतिरिक्त token से मिलने वाली computation की वजह से, यह स्पष्ट नहीं है
    इसमें दिखाया गया कि Transformer बिना किसी अर्थ वाले filler token, जैसे ......, का इस्तेमाल करके भी कठिन algorithmic tasks हल कर सकता है, जिन्हें वह बीच के token के बिना उत्तर देते समय हल नहीं कर पाता, लेकिन ऐसे filler token का उपयोग सिखाने के लिए specific और dense supervision चाहिए
    इसलिए यह सोचने वाली बात है कि text LLM में भी विशेष computation/register token डालने से फ़ायदा होगा या नहीं
    अतिरिक्त चर्चा: https://news.ycombinator.com/item?id=40182695, https://www.reddit.com/r/LocalLLaMA/comments/1cf2w5a/transfo...

  • पिछले कुछ वर्षों में vision और multimodal understanding में मैंने दर्जनों, शायद 100 से भी ज़्यादा, papers और ideas आज़माए हैं, और यह उन दुर्लभ मामलों में से था जहाँ सब कुछ अच्छी तरह काम करता था
    उदाहरण के लिए, यह मॉडल 4 register token और Matryoshka-style loss के साथ train होता है, और बहुत छोटे 64-dimensional embedding बनाता है, जो CLIP के विकल्प की तलाश कर रहे लोगों के लिए उपयोगी हो सकते हैं: https://huggingface.co/unum-cloud/uform3-image-text-english-...

  • इसे ICLR में देखा था, और यह इस साल के सर्वश्रेष्ठ papers में से एक था; poster session में भी यह बात साफ़ दिखी
    authors को बधाई

  • मैं कुछ महीनों से DinoV2 इस्तेमाल कर रहा हूँ, और [CLS] + patch token के साथ 4 register token वाले मॉडल भी आज़माए हैं
    मौजूदा बिना-register मॉडल से निकले कई embedding token पहले से ही समाधान का हिस्सा हैं, इसलिए 0 register मॉडल और 4 register मॉडल के बीच [CLS] token align नहीं हुए, और इसी वजह से मैंने नया register मॉडल नहीं अपनाया
    अच्छा होगा अगर दोनों मॉडलों के बीच [CLS] और patch token किसी तरह align हो जाएँ

  • यह vision model के लिए attention sink जैसा दिखता है