3 पॉइंट द्वारा GN⁺ 2023-08-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • छोटे मॉडलों में देखा गया grokking वह घटना है जिसमें मॉडल पहले training data को याद करता है, फिर काफी देर तक और सीखने के बाद अचानक ऐसे inputs पर सही जवाब देने लगता है जिन्हें उसने पहले नहीं देखा; यह memorization और generalization को अलग समझने का संकेत देता है
  • modular addition प्रयोग में 1-layer MLP शुरू में शोरभरे weights दिखाता है, लेकिन test accuracy बढ़ने के समय periodic structure बनाकर generalize करता है
  • 30-अंकों वाली 0/1 sequence के प्रयोग में generalize करने वाला मॉडल distractor वाले पीछे के अंकों के weights कम करता है और पहले 3 अंकों पर ध्यान देता है, जिससे memorization solution और generalization solution का अंतर दिखता है
  • इस बदलाव का मुख्य दबाव loss minimization और weight decay है; test loss भले अचानक गिरता दिखे, लेकिन अंदरूनी weights इन दो समाधानों के बीच अपेक्षाकृत smooth तरीके से चलते हैं
  • Grokking तभी दिखता है जब hyperparameters जैसे model size, data size और weight decay सही हों; बड़े मॉडलों में भी इसे इसी तरह समझा जा सकता है या नहीं, यह अब भी खुला सवाल है

Grokking जो सवाल उठाता है

  • 2021 में शोधकर्ताओं ने toy tasks में पाया कि छोटे मॉडल training data को सही करने के बाद भी कुछ समय तक test data पर सही जवाब नहीं दे पाते, लेकिन और लंबे training के बाद अचानक generalize करने लगते हैं
  • इस घटना को grokking कहा गया, और यह उन learning dynamics को दर्शाता है जिनमें training data fit होने के काफी बाद generalization दिखाई देता है
  • बड़े language models दुनिया को समझते हुए लग सकते हैं, लेकिन वे विशाल training text के कुछ हिस्सों को याद करके दोहरा भी रहे हो सकते हैं
  • छोटे मॉडलों से शुरुआत करने पर ऐसी intuition बनाना आसान होता है, जिसे आज के सबसे बड़े मॉडलों पर सीधे लागू करना कठिन है
  • तरीका यह है कि छोटे मॉडल की training process को देखा जाए और मॉडल ने जो solution खोजा उसे reverse engineer करके mechanistic interpretability का एक उदाहरण दिखाया जाए

Modular addition में दिखने वाली periodic structure

  • modular addition, grokking को देखना आसान बनाने वाले एक छोटे task के रूप में इस्तेमाल होता है
    • दो input संख्याएँ a, b और modulus दिया जाता है, और a + b को modular operation के तहत predict करना होता है
    • उदाहरण प्रयोग 0 से 66 तक की संख्याओं का उपयोग करता है, और 67 ऐसा मान है जिसे इसलिए चुना गया कि visualization न बहुत सरल हो और न बहुत जटिल
  • प्रयोग का मॉडल 24 neurons वाला 1-layer MLP है
    • सभी a, b pairs को random तरीके से training data और test data में बाँटा जाता है
    • training data model weights को adjust करने के लिए और test data सिर्फ यह जाँचने के लिए इस्तेमाल होता है कि मॉडल ने general solution सीखा है या नहीं
  • मॉडल input a, b से संबंधित embedding columns चुनकर उन्हें जोड़ता है, negative values को 0 बनाता है, और output matrix के सबसे नज़दीकी column को prediction के रूप में उपयोग करता है
  • training की शुरुआत में weights में काफी noise होता है, लेकिन test accuracy बढ़ने और मॉडल के generalize करने पर periodic pattern दिखाई देता है
    • training के अंत तक हर neuron में input संख्या 0 से 66 तक बढ़ने के दौरान कई बार high और low values आती-जाती हैं
    • अगर neurons को उनकी अंतिम periodic frequency के अनुसार group किया जाए तो यह pattern और साफ दिखता है
  • यह periodicity संकेत देती है कि मॉडल किसी गणितीय संरचना को सीख रहा है, और यह उसी समय उभरती है जब मॉडल test examples हल करना शुरू करता है

0 और 1 task से दिखता memorization और generalization

  • एक और सरल प्रयोग में लंबाई 30 की 0/1 sequence से यह predict कराया जाता है कि पहले 3 अंकों में मौजूद 1s की संख्या odd है या नहीं
    • उदाहरण के लिए, अगर sequence 000... से शुरू हो तो output 0 हो सकता है, और 010... से शुरू हो तो 1
    • मूल रूप से यह थोड़ा कठिन XOR problem है, और पीछे के digits distractor noise हैं
  • generalize करने वाले मॉडल को सिर्फ पहले 3 digits का उपयोग करना चाहिए
    • जो मॉडल training data याद करता है, वह पीछे के distractor digits को भी साथ में इस्तेमाल करता है
  • इस प्रयोग में भी 1-layer MLP इस्तेमाल किया गया, जिसे fixed 1,200 sequences पर train किया गया
    • शुरुआत में सिर्फ training accuracy बढ़ती है और test accuracy लगभग random स्तर पर रहती है
    • बाद में test accuracy तेज़ी से बढ़ती है और मॉडल general solution सीख लेता है
  • memorization कर रहा मॉडल कई inputs में फैले बड़े weights के साथ dense और noisy structure दिखाता है
  • generalization पूरा होने पर distractor positions से जुड़े weights बहुत छोटे हो जाते हैं और मॉडल पहले 3 input digits पर केंद्रित हो जाता है

Weight decay general solution की ओर कैसे धकेलता है

  • training के दौरान मॉडल पर एक साथ दो तरह के दबाव होते हैं
    • loss कम करना होता है ताकि सही labels को high probability मिले
    • साथ ही weight decay का असर weights के आकार को कम रखने के लिए होता है
  • 0/1 task में मॉडल के generalize करने से ठीक पहले training loss थोड़ा बढ़ता है
    • क्योंकि मॉडल सही probability बढ़ाने वाले loss का कुछ हिस्सा छोड़कर कम weights वाले solution की ओर बढ़ता है
  • test loss का अचानक गिरना ऐसा दिखा सकता है जैसे मॉडल ने अचानक generalization की ओर switch किया हो
  • लेकिन training के दौरान weights को देखें तो अधिकांश weights memorization solution और generalization solution के बीच smooth interpolation करते हैं
  • तेज़ generalization तब होती है जब distractor positions से जुड़े आख़िरी weights weight decay के कारण हट जाते हैं

Grokking किन शर्तों में दिखाई देता है

  • Grokking हमेशा होने वाली घटना नहीं है; यह model size, weight decay, data size जैसी conditions पर निर्भर करता है
  • अगर weight decay बहुत कम हो तो मॉडल training data के overfitting से बाहर नहीं निकल पाता
  • decay थोड़ा बढ़ाने पर मॉडल पहले याद करता है, फिर generalize करता है
  • इसे और बढ़ाने पर test loss और training loss साथ गिरते हैं और मॉडल सीधे generalize कर लेता है
  • decay बहुत ज़्यादा होने पर मॉडल कुछ भी नहीं सीख पाता
  • 0/1 task में अलग-अलग hyperparameters के साथ 1,000 से ज़्यादा models train किए गए, और training noise को देखते हुए हर hyperparameter combination पर 9 models सीखे गए

पाँच neurons से बना modular addition solution

  • modular addition एक periodic problem है, क्योंकि जब sum 67 से आगे जाता है तो वह फिर से wrap around करता है
  • अगर input numbers को एक circle पर points की तरह रखा जाए, तो इस periodicity को model structure में सीधे डाला जा सकता है
    • हर संभव input number के लिए sin और cos values निकालकर embedding matrix बनाया जाता है
  • इस शुरुआती बिंदु वाले 1-layer MLP में अगर सिर्फ कुछ matrices को train किया जाए, तो 5 neurons से भी perfect accuracy वाला solution मिल जाता है
  • trained parameters को देखने पर neurons लगभग समान magnitude पर converge करते हैं, और sincos components को plot करने पर वे circle पर लगभग बराबर दूरी पर दिखते हैं
  • पास-पास के neurons को जोड़ने पर unembedding side, embedding side की तुलना में circle के चारों ओर दोगुनी गति से घूमने वाला pattern दिखाती है
  • यह संरचना modular addition हल करने के लिए 20 parameters वाला solution देती है

बड़े 1-layer MLP के भीतर वही algorithm

  • शुरुआती 3,216-parameter मॉडल शुरू से train होता है और उसमें built-in periodicity नहीं होती
  • बनाए गए छोटे solution के विपरीत, यह मॉडल कई frequencies का उपयोग करता है
  • discrete Fourier transform (DFT) का उपयोग करके input के पूरे दायरे में सीखे गए periodic patterns को अलग किया जा सकता है
    • हर neuron के लिए संभव periodic frequencies 1 से 33 तक के sin और cos values निकाले जा सकते हैं
    • neurons को उस frequency के आधार पर group किया जा सकता है जहाँ उनका sin/cos मान सबसे बड़ा हो
  • जैसे-जैसे मॉडल generalize करता है, weight decay इस representation को और sparse बना देता है
  • अगर neurons को उनकी अंतिम frequency के अनुसार group करके DFT components plot किए जाएँ, तो पाँच-neuron संरचना में दिखा तारे जैसा आकार उभरता है
  • trained मॉडल उसी algorithm का उपयोग करता है जो बनाए गए solution में था
    • हर frequency neuron group के output contribution को देखें तो वे a + b mod 67 की गणना के अनुरूप waveform बनाते हैं
    • लगभग 45,000 steps के पास एक छोटे plateau के बाद जब test loss सुधरता है, तो frequency 7 neuron group तारे के आकार में align हो जाता है और output waveform के और क़रीब पहुँचता है
  • मॉडल बड़े weights का उपयोग किए बिना loss कम करने के लिए कई frequencies का उपयोग करता है और constructive interference का लाभ उठाता है
  • frequency 4, 5, 7, 26 अपने आप में विशेष नहीं हैं; दूसरे training runs में इसी algorithm के अलग रूप सीखे जाते हैं

अभी बाकी बचे सवाल

  • सिर्फ W = W_L W_R रूप वाले model को सीधे train करने से modular arithmetic में generalization नहीं दिखता, भले weight decay जोड़ दिया जाए
    • कम से कम एक matrix का factoring होना ज़रूरी है
    • DFT के बाद generalization solution sparse है, लेकिन combined matrix का norm बड़ा होता है
    • W और U पर सीधे weight decay लगाने से इस task के लिए सही inductive bias नहीं मिलता
  • weight decay कई तरह के मॉडलों को training data memorization से दूर ले जा सकता है
    • overfitting से बचने की दूसरी techniques में dropout, छोटे models, और numerically unstable optimization algorithms शामिल हैं
    • ये approaches जटिल और nonlinear तरीके से interact करती हैं, इसलिए पहले से अनुमान लगाना कठिन है कि कौन-सी setting generalization को बढ़ावा देगी
  • memorization, generalization से पहले क्यों होता है, इस पर एक सिद्धांत यह है कि training set को याद करने के तरीके general solution की तुलना में बहुत अधिक हो सकते हैं
    • regularization न हो या बहुत कम हो तो सांख्यिकीय रूप से memorization पहले होने की संभावना बढ़ जाती है
    • weight decay जैसी regularization techniques dense solutions की तुलना में sparse solutions जैसे कुछ खास solutions को प्राथमिकता देती हैं
  • अच्छी तरह structured representations generalization से जुड़ी हो सकती हैं, लेकिन वे न तो आवश्यक शर्त हैं और न पर्याप्त
    • symmetric input के बिना कुछ MLP variants modular addition हल करते समय कम circular representations सीखते हैं
    • weight decay के बिना trained छोटे मॉडल कभी generalization शुरू करके फिर periodic embeddings के साथ वापस memorization की ओर लौट जाते हैं
    • कुछ hyperparameters में generalization → memorization → generalization का transition भी संभव है

बड़े मॉडलों तक जाती interpretability

  • Grokking छोटे Transformer और MLP के algorithmic tasks में देखा गया, और बाद में image, text और tabular data के अधिक जटिल tasks में भी कुछ hyperparameter ranges के भीतर पाया गया
  • सबसे बड़े models, जो कई तरह के tasks कर सकते हैं, training के दौरान अलग-अलग गति से कई चीज़ों में grokking कर रहे हों, यह संभव है
  • ऐसे नतीजे भी हैं जो grokking वास्तव में होने से पहले उसका अनुमान लगाने की कोशिश करते हैं
    • कुछ methods को general solution या पूरे data domain के ज्ञान की ज़रूरत होती है
    • कुछ methods सिर्फ training loss analysis का उपयोग करते हैं और बड़े मॉडलों पर भी लागू हो सकते हैं
  • आगे का एक रास्ता सरल मॉडलों का बार-बार उपयोग करना है
    • अधिक मज़बूत inductive bias और कम moving parts वाले सरल models train किए जाएँ
    • उन मॉडलों से बड़े मॉडलों के कठिन-से-समझ आने वाले हिस्सों को समझाया जाए
    • ज़रूरत हो तो इस प्रक्रिया को दोहराया जाए
  • ऐसा mechanistic interpretability approach उन patterns की पहचान या automation में मदद कर सकता है जिनसे neural networks द्वारा सीखे गए algorithms को ढूँढा जा सके

1 टिप्पणियां

 
GN⁺ 2023-08-11
Hacker News की टिप्पणियाँ
  • इंसानी memory के हैरान करने की वजह शायद यह है कि इसमें मशीन जितनी storage capacity नहीं होती, लेकिन information को बहुत घटाकर store करने की pattern compression क्षमता होती है
    उन patterns को फिर दूसरे patterns के साथ बाँधकर compress करना और वहाँ से कुछ निकालना—इस तरह; यह बेहद lossy compression है, लेकिन मकसद पूरा हो जाता है

    • बिल्कुल ऐसा नहीं है। कुछ research यह भी बताती है कि दिमाग की storage capacity की कोई ऐसी ऊपरी सीमा दिखती नहीं जिस तक हम पहुँच सकें
      दिमाग ऐसे ज्ञान को, जिसे शब्दशः याद रखने की जरूरत नहीं, सक्रिय रूप से core elements में distill करता है; यह overfitting से बचकर “generalized intuition and understanding” हासिल करने जैसा है
      संदर्भ: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
    • कुछ दुर्लभ लोग ऐसे भी होते हैं जिन्हें सब कुछ याद रहता है
      https://youtu.be/hpTCZ-hO6iI
    • associative memory और उसके mathematical background के लिए Hopfield Neural Networks देख सकते हैं
      upper bound technically “infinite” है, लेकिन store किए जाने वाले concepts की संख्या और प्रति concept store की जा सकने वाली fundamental information की मात्रा के बीच uncertainty principle जैसे दूसरे trade-off principles जैसा एक trade-off होता है
    • Artificial neural networks भविष्य predict करने की क्षमता के मामले में बहुत हद तक compression algorithms की तरह काम करते हैं। trained network compressed data store नहीं करता, बल्कि वह compression algorithm itself के ज्यादा करीब होता है
      जानवरों का दिमाग भी इसी तरह है या नहीं, पता नहीं; लेकिन मुझे शक है कि यह मुख्य रूप से prediction के लिए compression algorithm है और data itself बहुत ज्यादा store नहीं करता
    • maths और physics classes में, general concepts समझने के बाद formulas रटने के बजाय उन्हें ऐसी दूसरी बातों से derive करना, जिन्हें याद रखना आसान हो, सच में बहुत मददगार था
      geometry इस training के लिए अच्छी है और physics proofs में भी अक्सर उपयोगी होती है
  • मुख्य बात शायद यह है कि weight decay sparsity induce करता है और overfitted representations की तुलना में “real” representations सीखने में मदद देता है
    इंसानी दिमाग में भी development के दौरान इसी जैसी दिखने वाली mechanism, synaptic pruning, व्यापक रूप से दिखती है। यह weight decay या और सीधे तौर पर neural network pruning की inspiration थी या नहीं, यह field expert से सुनना चाहूँगा

    • machine learning researcher के तौर पर सुधार करूँ तो, L1 sparsity induce करता है। weight decay explicitly L2 है, इसलिए sparsity induce नहीं करता; यह एक आम गलतफहमी है
      weight decay इसलिए काम करता है क्योंकि regularization के रूप में apply किए जाने पर यह network को minimum description length (MDL) के करीब ले जाता है, जिससे training के दौरान regret कम होता है। brain pruning से इसका कुछ हद तक संबंध है, लेकिन दिमाग compression के लिए नहीं बल्कि representations induce करने के लिए बुनियादी तौर पर sparsity का इस्तेमाल करता दिखता है, इसलिए यह असल में एक अलग motif के ज्यादा करीब है। अलग-अलग representations के implicit bias और उसका learned या learnable representations पर पड़ने वाला downstream effect सोचकर देखें
    • weight decay की inspiration यह थी कि model की memorization capacity घटाकर उसे task की complexity से ठीक-ठीक match कराया जाए। task से ज्यादा complex हो तो overfitting, कम complex हो तो underfitting, इसलिए दोनों का balance चाहिए
      लेकिन overfitting का सबसे अच्छा इलाज dataset को बड़ा करना और data diversity सुनिश्चित करना है। LLMs में datasets इतने बड़े होते हैं कि आम तौर पर सिर्फ एक epoch train किया जाता है
    • इंसानी दिमाग में synaptic pruning होती है। इसका exact purpose केवल theorize किया गया है, वास्तव में समझा नहीं गया; और LLMs और इंसानी दिमाग के बीच कोई similar mechanism मान लेना बहुत बड़ी छलाँग है
    • जहाँ तक मुझे पता है, weight decay L2 regularization से आया है, जो linear regression तक जाता है। L2 regularization weights पर mean 0 वाली Gaussian prior distribution रखने के बराबर है
      L1 regularization कहीं ज्यादा sparsity बनाता है, लेकिन performance उतनी अच्छी नहीं होती
  • AI वाले grok शब्द को खराब कर रहे हैं
    मूल रूप से इसका मतलब लगभग “पूरी तरह, समग्र रूप से समझना” है; उसी शब्द को generalization के लिए इस्तेमाल करना मतलब grokking को grok न कर पाना है

    • AI में “grok” का मतलब simple generalization नहीं, बल्कि कुछ ज्यादा specific है। यह “delayed and quite sudden generalization” के करीब है
      इस phenomenon को “overfitting से final recovery” कहने का सुझाव देने वाले post की comments में भी इस पर चर्चा हुई थी: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
    • SF geek के नजरिए से, “grok” Valentine Michael Smith द्वारा Martian language को human ears और vocal cords के मुताबिक ढालकर बनाया गया शब्द है, और इसका precise denotative meaning “पीना” है
      connotative meaning literal या metaphorical रूप से “गहराई से भीतर लेना” से लेकर किसी प्रियजन के अनुपस्थित शव को consume करने तक फैलता है। Stranger in A Strange Land की जोरदार recommendation है, और लगभग 1990 में आया uncut reissue चुनना बेहतर है
    • यहाँ grokking को बस अलग तरह से define किया जा रहा है
      यह intuitive understanding और समझ में अचानक, बड़ी बढ़ोतरी जैसे elements की याद दिलाता है, इसलिए काफी reasonable लगता है; और यह loss में होने वाले change से भी मिलता-जुलता है
    • इन दोनों usages के बीच जो फर्क बनाने की कोशिश की जा रही है, वह मुझे सच में समझ नहीं आता
    • किसी चीज़ को grok करने में अहम बात completeness से ज्यादा intuitive understanding है—मैं हमेशा ऐसा ही सोचता आया हूँ
  • याद सही है या नहीं, पता नहीं, लेकिन Mindscape में Raphaël Millière के interview में शायद कहा गया था कि machine learning models में dimensions बढ़ने पर interpolation और extrapolation का फर्क उतना साफ नहीं रहता जितना उन domains में रहता है जहाँ हम आम तौर पर reason करते हैं
    यह लेख जिस बात पर है, उससे यह मिलता-जुलता है या नहीं, मुझे ठीक से नहीं पता

  • मुझे यह जानने की उत्सुकता है कि वे चार्ट कैसे बनाए गए
    लगता है किसी library से लगभग आधा generate करके फिर हाथ से polish किया गया होगा, लेकिन generated animated SVG सुंदर है

  • अगर आपको इस विषय की बारीकियों में दिलचस्पी है, तो लेख को कंप्यूटर पर देखना बेहतर है। mobile पर explore न किया जा सकने वाला visualization data है

  • सबसे पहले, यह बहुत अच्छे examples वाला बढ़िया blog post है, और पुराने distill.pub की याद दिलाता है
    लेख में ठीक कहा गया है कि आम तौर पर L2 weight decay इस्तेमाल करने पर छोटे magnitude वाले बहुत सारे weights बनते हैं। अगर हमें बेहतर generalize करने वाला model चाहिए, तो क्या हमेशा L1 weight decay इस्तेमाल करके sparsity को promote करना और ज़्यादा समय तक train करना बेहतर होगा—यह सोचने वाली बात है। यह भी जानना चाहूंगा कि dense linear layers के बजाय सिर्फ sparse Fourier features इस्तेमाल करने वाले deep learning models शायद बेहतर काम करते हों

    • छोटा जवाब: अगर input को Fourier basis में अच्छी तरह represent किया जा सकता है, तो हाँ। मैं इस विषय पर patent pursue कर रहा हूँ, इसलिए उम्मीद है कि यह अच्छा निकले
      लंबा जवाब: deep learning models आम तौर पर input को represent करने के लिए optimal nonlinear basis खोजने की कोशिश करते हैं। अगर input किसी पहले से ज्ञात basis में अच्छी तरह, यानी sparsely, represent किया जा सकता है, तो RF signal पर FFT करने की तरह उसे उस basis में रख देना आम तौर पर मददगार होता है। लेकिन global optimal basis किसी local minimum के basis से भी अलग हो सकता है, इसलिए network को उस दिशा में push करने की कोई तरकीब चाहिए
    • थोड़ा related: sparsity induce करने वाला ReLU activation function neural networks में अक्सर इस्तेमाल होता है
  • मुझे जिज्ञासा है कि target function कितना representative है
    यह आम बात है कि हम चाहते हैं model input के important हिस्से सीखे, लेकिन bit string में सिर्फ पहले तीन bits पर ध्यान देना काफी artificial लगता है। क्या relevant parameter size 8 वाली truth table को 4.8 million samples से train किया गया था, या मैं कुछ गलत समझ रहा हूँ—पता नहीं

    • computer vision tasks में भी मैंने यह pattern देखा है। training accuracy कुछ समय तक flat रहती है और फिर test accuracy बढ़नी शुरू होती है
      simple task इस्तेमाल करने की वजह यह है कि जब ऐसा होता है, तो अंदर क्या हो रहा है इसकी interpretation की जा सके
  • HTML में RSS/Atom auto-discovery feed भी नहीं था और RSS feed link भी नहीं था, लेकिन possible feed names और locations का अनुमान लगाकर “Explorables” RSS feed मिल गया: https://pair.withgoogle.com/explorables/rss.xml

  • यह grid cells जैसा दिखता है
    https://en.wikipedia.org/wiki/Grid_cell
    अगर hidden layer के neuron heatmap को 2D chart पर plot करें, जिसमें एक axis $a$ और दूसरी axis $b$ हो, तो शायद triangular grid निकलेगी। अगर यह मेरे सोचने के तरीके से काम करता है, तो किसी दूसरे hidden neuron को देखने पर अलग direction और scale वाली एक और grid दिखेगी। इन्हें जोड़कर base-67 adder भी बनाया जा सकता है। साथ ही, W_in-proj neurons के बीच संबंध और W_out-proj neurons के बीच संबंध, semitone circle और circle of fifths के mapping जैसे लगते हैं—इस intuition को भी नज़रअंदाज़ करना मुश्किल है
    https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png