3 पॉइंट द्वारा GN⁺ 2025-05-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • LLM अगला token probability distribution गणना करता है और फिर एक token चुनता है; sampling, greedy तरीके में नियंत्रित randomness जोड़कर output की विविधता को नियंत्रित करती है
  • temperature, repetition penalty, DRY, Top-K/Top-P/Min-P token चुनने से पहले या बाद में logits या probability distribution को बदलकर candidate range और relative probabilities को फिर से बनाते हैं
  • हर sampler अलग-अलग मानदंडों जैसे fixed count, cumulative probability, highest probability के मुकाबले ratio, entropy, n-gram repetition, surprisal आदि के आधार पर tokens को रखता या हटाता है
  • वास्तविक pipeline में filtering, penalties, temperature, distribution adjustment का लागू करने का क्रम परिणाम को बहुत बदल देता है, और combination के अनुसार प्रभाव एक-दूसरे को पूरक भी हो सकते हैं या एक-दूसरे पर हावी भी
  • tokenizer का vocabulary size और splitting method इस बात को बदलता है कि model किस unit पर probability देता है और DRY जैसे n-gram आधारित sampler कौन-से pattern पहचानते हैं

LLM generation और sampling की बुनियादी संरचना

  • LLM user prompt जैसे text को input के रूप में लेकर अगले शब्द से जुड़े token की गणना करता है
  • model के पास valid tokens से बनी एक vocabulary होती है, और training व inference दोनों में वही vocabulary संदर्भित होती है
  • training के दौरान यह बहुत-सा text देखकर tokens का एक internal probability map बनाता है, और inference के दौरान सीखी हुई probabilities के आधार पर अगला token तय करता है
  • generation process दो चरणों में बंटता है
    • prediction: हर position पर संभावित अगले सभी tokens के लिए probability distribution की गणना करना
    • selection: उस distribution से एक token चुनकर output में जोड़ना
  • greedy तरीका हमेशा सबसे अधिक संभावित token चुनता है, इसलिए यह दोहरावदार और deterministic text बनाने की ओर झुकता है
  • sampling selection चरण में controlled randomness जोड़ती है ताकि output अधिक विविध हो सके

शब्द या अक्षर नहीं, token क्यों

  • character-level tokenization उसी text को कहीं लंबी sequence में बदल देती है; tokenization subword तरीके में 2~3 tokens की बजाय 12 tokens बन सकता है
  • लंबी sequence, self-attention पर अधिक computation मांगती है, और model को t-h-e जैसी कई positions की जानकारी को एक ही concept से जोड़ना पड़ता है
  • word-level tokenization में पूरी English vocabulary और कई भाषाओं के शब्द शामिल करने पड़ते हैं, इसलिए embedding matrix बहुत बड़ी और महंगी हो जाती है
  • नए या rare शब्द मिलने पर word-level तरीका आम तौर पर उन्हें "unknown" token से बदल देता है, जिससे अर्थ संबंधी जानकारी खो जाती है
  • subword tokenization grompuficious जैसे नए शब्द को मौजूदा subword combinations से व्यक्त कर सकती है
  • नया tokenizer इस्तेमाल करने वाले language model, training data के representative sample पर tokenizer को इस तरह train करते हैं कि वह अक्सर आने वाले subwords पहचाने, और vocabulary size पहले से तय करते हैं

वे मुख्य मान जिनसे sampler काम करते हैं

  • logits: model vocabulary के हर token के लिए जो unnormalized score निकालता है; मान जितना अधिक, अगला token होने की संभावना उतनी अधिक
  • softmax: logits को 0~1 के बीच के मानों में बदलकर ऐसी probability distribution बनाता है जिसका कुल योग 1 हो
  • entropy: probability distribution की uncertainty या randomness को दर्शाता है; entropy जितनी अधिक, model अगले token को लेकर उतना कम आश्वस्त होता है
  • perplexity: model text को देखकर कितना चकित होता है, यह दर्शाता है; जितनी कम, उतना अधिक भरोसा
  • n-gram: लगातार n tokens की sequence; "once upon a" एक 3-gram है
  • context window: prompt और generated output सहित tokens की वह अधिकतम संख्या जिसे LLM एक बार में process कर सकता है

probability distribution को सीधे समायोजित करने वाले बुनियादी sampler

  • Temperature LLM की “creativity knob” की तरह काम करता है
    • कम temperature सबसे ऊँचे score वाले tokens को और अधिक प्रमुख बना देता है, जिससे predictability बढ़ती है
    • 0.7~1.0 जैसा ऊँचा temperature 3rd या 4th candidate को भी चुने जाने योग्य बनाता है, जिससे diversity बढ़ती है लेकिन errors की संभावना भी बढ़ती है
    • 1.0 से ऊपर का बहुत ऊँचा temperature, अगर Min-P जैसे दूसरे sampling तरीकों के साथ न हो, तो output को खुरदुरा और कम अनुमानित बना सकता है
    • तकनीकी रूप से logits को temperature value से divide करने के बाद softmax लागू किया जाता है
  • Presence Penalty उन tokens पर fixed penalty लगाता है जो पहले कम-से-कम एक बार आ चुके हों
    • appearance count की परवाह किए बिना, पहले इस्तेमाल हुए token के logits से penalty value घटा दी जाती है
    • बेहतर penalty strategies मौजूद हैं, इसलिए इसे आम तौर पर recommend नहीं किया जाता
  • Frequency Penalty token के आने की संख्या के अनुपात में penalty बढ़ाता है
    • अगर कोई token तीन बार आया है, तो उसका logit 3 × frequency penalty जितना घट जाएगा
    • वही token जितनी बार दोहराया जाएगा, उसे दोबारा चुनने की संभावना उतनी क्रमशः कम होती जाएगी
  • Repetition Penalty उन tokens पर लागू होता है जो prompt और generated output दोनों में आए हों
    • positive logits को penalty से divide किया जाता है, और negative logits को penalty से multiply करके और अधिक negative बनाया जाता है
    • repetition loop तोड़ने में उपयोगी है, लेकिन aggressive values पर coherence की कीमत चुकानी पड़ सकती है

दोहराव वाले pattern रोकने के लिए DRY

  • DRY(Don't Repeat Yourself) केवल साधारण शब्द-दोहराव से आगे जाकर व्यापक repetition patterns पहचानता है
  • यह generated token sequence में n-gram repetition खोजता है और उस pattern को आगे बढ़ाने वाले token पर penalty लगाता है
  • अगर "the cat sat on the" जैसा pattern पहले आ चुका है और वही flow फिर से शुरू होता है, तो वह उस अगले token को कम चुने जाने योग्य बनाता है जो पहले उसके बाद आया था
  • repetition pattern जितना लंबा होगा, penalty उतनी मजबूत होगी
  • मुख्य parameters हैं penalty strength के लिए multiplier, n-gram length के अनुसार बढ़ने की दर के लिए base, minimum/maximum n-gram length, sequence breaker, range limit आदि
  • punctuation जैसे sequence breaker pattern matching को reset कर सकते हैं, और efficiency के लिए केवल हाल का text देखने वाली range limit भी हो सकती है
  • creative writing जैसे क्षेत्रों में, जहाँ दोहराए गए phrases अप्राकृतिक लगते हैं, यह खास तौर पर उपयोगी है

candidates को काटने वाले filtering sampler

  • Top-K पूरी vocabulary की जगह केवल शीर्ष K tokens छोड़ता है
    • अगर K, 40 है तो चयन केवल सबसे संभावित 40 candidates में से होगा
    • बाकी logits को -∞ पर set कर दिया जाता है, इसलिए softmax के बाद उनकी probability लगभग 0 हो जाती है
  • Top-P(Nucleus) fixed count की जगह cumulative probability threshold P पार करने वाला न्यूनतम candidate set रखता है
    • अगर P, 0.9 है तो शीर्ष candidates को तब तक शामिल किया जाता है जब तक cumulative probability 90% तक न पहुँच जाए
    • जब model आश्वस्त हो तो candidates कम रहते हैं, और जब वह अनिश्चित हो तो अधिक candidates बचे रहते हैं
    • कम-से-कम एक token हमेशा बचा रहे, इसलिए सबसे अधिक probability वाला token रखा जाता है
  • Min-P सबसे अधिक probability वाले token के मुकाबले ratio के रूप में quality baseline तय करता है
    • अगर highest probability 0.6 है और Min-P 0.1 है, तो threshold 0.06 होगा
    • शीर्ष candidate के मुकाबले बहुत कम probability वाले tokens हटा दिए जाते हैं
    • यह आम तौर पर 1.0~1.2 जैसे ऊँचे temperature के साथ और 0.1 जैसे बहुत कम Min-P value के साथ इस्तेमाल होता है
    • Top-K या Top-P की तरह पूरी vocabulary को sort करने की जरूरत नहीं होती, इसलिए यह अधिक efficient है
  • Top-A highest probability के square के अनुपात में threshold इस्तेमाल करता है
    • model जितना अधिक आश्वस्त होगा, square effect के कारण threshold उतना ऊँचा होगा और candidates उतने अधिक घटेंगे
    • यह Min-P से पहले आया तरीका है; तकनीकी रूप से Min-P linear है जबकि Top-A square-based है
  • Epsilon Cutoff fixed probability threshold से नीचे के tokens हटा देता है
    • distribution की प्रकृति चाहे जो हो, वही समान मानदंड लागू रहता है
    • यह simple और predictable है, लेकिन Eta Cutoff जितना adaptive नहीं

distribution के आकार और uncertainty का उपयोग करने वाले sampler

  • Top-N-Sigma logits के maximum value और standard deviation का उपयोग करके statistical threshold बनाता है
    • मानदंड है maximum logit - N × standard deviation
    • यह केवल absolute values नहीं, बल्कि पूरे score distribution के फैलाव को भी दर्शाता है
  • Tail-Free Sampling(TFS) probability distribution की curvature देखकर उस बिंदु को ढूँढ़ता है जहाँ लंबी tail शुरू होती है
    • logits को descending order में sort करके probability में बदला जाता है, फिर second difference का absolute value निकाला जाता है
    • curvature की cumulative distribution threshold पार करने के बाद के tokens हटा दिए जाते हैं
    • यह absolute probability values से अधिक distribution के shape पर ध्यान देता है
  • Eta Cutoff individual probability और overall entropy दोनों का साथ में उपयोग करता है
    • model जब low entropy की स्थिति में आश्वस्त होता है, तब cutoff अधिक सख्त होता है
    • model जब high entropy की स्थिति में अनिश्चित होता है, तब cutoff अधिक उदार होता है
    • threshold eta और sqrt(eta) * exp(neg_entropy) में से छोटे मान से तय होता है
  • Locally Typical Sampling probability खुद नहीं, बल्कि average surprisal के कितने करीब है, यह देखता है
    • बहुत अधिक predictable tokens और बहुत अधिक surprising tokens, दोनों को कम “typical” माना जाता है
    • tokens को surprisal deviation के छोटे से बड़े क्रम में sort किया जाता है, और typical-p से रखा जाने वाला cumulative probability mass तय होता है
  • Quadratic Sampling filtering नहीं करता, बल्कि पूरे logits distribution पर nonlinear transformation लागू करता है
    • सबसे ऊँचे score वाले token को आधार बनाकर बाकी logits के साथ अंतर को quadratic और cubic terms से adjust किया जाता है
    • smoothing factor adjustment की strength नियंत्रित करता है, और smoothing curve transformation के shape को नियंत्रित करता है
    • s positive होने पर distribution अधिक sharp हो जाता है, और k positive होने पर यह distribution को flatter बनाने की दिशा में काम करता है

predictability और diversity को नियंत्रित करने के उन्नत तरीके

  • XTC(eXclude Top Choices) probabilistically activate होता है और सबसे अधिक predictable choices को जानबूझकर हटा देता है
    • इसमें activation probability और exclusion threshold parameters के रूप में इस्तेमाल होते हैं
    • threshold पार करने वाले शीर्ष candidates में से सबसे कम score वाले एक candidate को छोड़कर बाकी high-probability candidates हटा दिए जाते हैं
    • कम probability candidates काटने वाले सामान्य filters के विपरीत, यह सबसे obvious choice को निशाना बनाता है
  • Mirostat target surprisal बनाए रखने के लिए dynamic adjustment वाला feedback तरीका है
    • वर्तमान mu threshold से बहुत अधिक surprising tokens को फ़िल्टर किया जाता है
    • token चुनने के बाद actual surprisal की गणना कर उसे target value tau से compare किया जाता है
    • eta learning rate है, जो तय करता है कि mu कितनी तेजी से adjust होगा
    • update formula है mu_{t+1} = mu_t - η × (surprisal_t - τ)
    • यह text generation की perplexity को स्थिर बनाए रखने की self-regulating method है
  • Dynamic Temperature Sampling वर्तमान distribution की entropy के अनुसार temperature बदलता है
    • low entropy में अधिक temperature देकर diversity जोड़ी जाती है
    • high entropy में कम temperature देकर output को अधिक केंद्रित किया जाता है
    • user minimum temperature, maximum temperature और exponent set करता है
    • formula है temperature = min_temp + (max_temp - min_temp) * (normalized_entropy ^ exponent)

Beam Search और Contrastive Search

  • Beam Search कई candidate sequences को parallel में बनाए रखकर overall probability वाले बेहतर path खोजता है
    • beam width के बराबर candidate sequences रखे जाते हैं, और हर decoding step पर उन्हें expand करके केवल top candidates बचाए जाते हैं
    • आम तौर पर हर step पर 2k candidates sample किए जाते हैं ताकि completed sequence आदि हटने के बाद भी पर्याप्त candidates बचें
    • score, sequence में शामिल सभी tokens के logprob के योग से बनता है
    • वही input मिलने पर यह deterministic रूप से वही output देता है; इसकी cost अधिक है और बेहतर sampling methods उपलब्ध हैं, इसलिए आजकल इसका कम उपयोग होता है
  • Contrastive Search context के अनुरूप high probability और repetition pattern से बचाव, दोनों को साथ optimize करता है
    • पहले Top-K candidates चुने जाते हैं
    • फिर existing context और candidate continuation की hidden representation की तुलना कर similarity-based degeneration penalty निकाली जाती है
    • अंतिम score है score(x) = α * P(x) - (1-α) * sim(x, context)
    • α संभावना और diversity के बीच संतुलन नियंत्रित करता है
    • Beam Search की तरह यह भी बहुत व्यापक रूप से इस्तेमाल होने वाला तरीका नहीं है

sampler के लागू होने का क्रम परिणाम कैसे बदलता है

  • वास्तविक LLM implementation में sampling techniques अक्सर क्रम से लागू की जाती हैं; कुछ libraries request के अनुसार order बदलने देती हैं, लेकिन ज़्यादातर नहीं
  • एक सामान्य pipeline इस क्रम का पालन करती है
    • model raw logits generate करता है
    • जिन tokens पर विचार नहीं करना है, उन्हें filter या ban किया जाता है
    • repetition, frequency, presence penalties लागू की जाती हैं
    • DRY जैसी pattern-based techniques लागू की जाती हैं
    • temperature scaling लागू की जाती है
    • Top-K, Top-P, Min-P जैसी distribution adjustment techniques लागू की जाती हैं
    • अंतिम probability distribution से token sample किया जाता है
  • implementation के अनुसार Temperature को penalties और post-softmax samplers के बाहर, सबसे पहले या सबसे अंत में लागू किया जा सकता है
    • अधिकांश tasks में temperature पहले लागू किया जाता है
    • creative writing में यह अक्सर अंत में लागू किया जाता है
  • हर sampler अगला sampler जो probability landscape देखेगा, उसे बदल देता है
    • penalties पहले इस्तेमाल हो चुके tokens के peak को नीचे लाती हैं और अन्य candidates को सापेक्ष रूप से ऊपर उठाती हैं
    • कम temperature distribution को sharp बनाता है, और अधिक temperature उसे flatter बनाता है
    • Top-K/P जैसे filters कम probability वाले tokens हटाकर बची हुई probabilities को फिर से normalize करते हैं

order-dependent interactions और combinations

  • Temperature → Filtering क्रम पहले पूरी distribution को reshape करता है, फिर filtering करता है
    • कम temperature filter से पहले ही probability mass को कम tokens पर केंद्रित कर देता है
    • अधिक temperature probability mass को अधिक फैला देता है, फिर filtering होती है
  • Filtering → Temperature क्रम पहले candidates को काटता है, फिर temperature केवल बचे हुए tokens की relative probabilities को adjust करता है
    • high temperature इस्तेमाल करने पर भी जो tokens मूल filter से हट चुके हैं, वे वापस नहीं आते
    • Top-K 40 और temperature 1.5 में अगर filter पहले लगे, तो मूल शीर्ष 40 ही बचे रहेंगे
  • Penalties → Temperature में पहले repeated tokens की probability घटती है, फिर temperature उस adjustment को बढ़ा या घटा देता है
    • high temperature पर penalty का असर व्यावहारिक रूप से मिट सकता है
    • low temperature पर penalty ज़रूरत से ज़्यादा amplify हो सकती है
  • Temperature → Penalties में temperature से reshaped distribution पर penalties काम करती हैं, जिससे penalty effect अधिक balanced और predictable हो सकता है
  • DRY position-sensitive है
    • pipeline की शुरुआत में लागू करने पर repetition रोकने का असर मजबूत होता है, लेकिन बाद के samplers penalized tokens को फिर ऊपर ला सकते हैं
    • अंत में लागू करने पर यह कमजोर हो सकता है क्योंकि पहले के samplers कुछ candidates पहले ही हटा चुके होते हैं, लेकिन token selection से ठीक पहले repetition के खिलाफ यह आख़िरी रक्षा-पंक्ति बन जाता है
  • कुछ combinations पूरक भी हैं
    • Top-K + Top-P: Top-K hard limit देता है और Top-P model confidence के अनुसार adapt करता है
    • Temperature + Min-P: high temperature distribution को flatter बनाता है और Min-P शीर्ष candidate के मुकाबले quality floor तय करता है
  • कुछ combinations टकराव भी पैदा करते हैं
    • High Temperature + Low Top-K: low Top-K candidates को बहुत सीमित कर देता है, जिससे temperature का प्रभाव काफी हद तक दब जाता है
    • एक साथ कई filtering methods: Top-K, Top-P, Min-P, TFS को साथ इस्तेमाल करने पर सबसे restrictive तरीका हावी हो सकता है और बाकी redundant बन सकते हैं
    • XTC + Top-A: दोनों अलग-अलग तरीके से शीर्ष choices हटाने की कोशिश करते हैं, इसलिए sampling space ज़रूरत से ज़्यादा संकुचित हो सकता है

tokenizer sampling space कैसे बनाता है

  • tokenizer तय करता है कि model किस चीज़ पर probability predict करेगा और samplers किन candidates को संभालेंगे
  • subword algorithms, character-level की लंबी sequence की समस्या और word-level की विशाल vocabulary व unknown समस्या के बीच संतुलन बनाते हैं
  • BPE(Byte Pair Encoding) character या byte आधारित vocabulary से शुरू होकर training corpus में सबसे अधिक बार आने वाले पास-पास के symbol pairs को बार-बार merge करता है
    • इच्छित vocabulary size तक merge दोहराया जाता है
    • उदाहरण के तौर पर 32000 या 128256 units जैसी vocabulary size दी गई है
    • standard BPE में spaces और punctuation के आधार पर pre-tokenization की जरूरत पड़ सकती है, और अलग implementations में whitespace handling एक जैसी न हो
  • SentencePiece text को पहले से split किए बिना सीधे Unicode character sequence के रूप में संभालता है
    • यह spaces को token के हिस्से के रूप में encode कर सकता है
    • raw Unicode पर काम करने के कारण यह whitespace को U+2581 के रूप में स्पष्ट encode कर सकता है, जिससे tokenization और de-tokenization reversible और lossless बनते हैं
    • आंतरिक रूप से यह BPE या unigram language model तरीका implement कर सकता है
    • language-agnostic और reversible होने के कारण यह आधुनिक LLMs में लोकप्रिय है

vocabulary size, token boundary और rare शब्दों का प्रभाव

  • tokenizer की vocabulary size fixed होती है; बड़ी vocabulary अधिक पूरे शब्द समेटती है जबकि छोटी vocabulary subwords पर अधिक निर्भर रहती है
  • अगर "sampling" या "probability" single token हों, तो model पूरे concept की संभावना एक बार में predict करता है
    • आम phrases में अधिक direct और predictable output मिल सकता है
    • rare शब्दों पर <UNK> या अटपटे subword combinations की समस्या हो सकती है
  • अगर "sampling" को sampl + ing की तरह बाँटा जाए, तो model अधिक fine-grained steps पर predict करता है
    • temperature जैसे samplers अनुमति दें तो sampling की जगह sampler आने की गुंजाइश बनती है
    • rare शब्दों को टुकड़ों से बनाया जा सकता है
    • common sub-word prefix पर अटकने से कम coherent या stuck output बन सकता है
    • DRY जैसी penalties को छोटी और अर्थ की दृष्टि से कम स्पष्ट sequences track करनी पड़ती हैं
  • वही phrase tokenizer के अनुसार अलग-अलग तरह से टूट सकता है
    • "State-of-the-art" कभी State + - + of + - + the + - + art बन सकता है, या SentencePiece शैली में State + _of + _the + _art बन सकता है
    • अगर यह बहुत बार आया हो, तो पूरा phrase एक single token भी हो सकता है
  • token boundaries, DRY जैसे n-gram आधारित samplers को सीधे प्रभावित करती हैं
    • अगर "once upon a time" 4 tokens है, तो DRY आसानी से 4-gram पहचान सकता है
    • अगर वह single token है, तो output rollback किए बिना उसी तरीके से penalty देना कठिन हो सकता है
  • rare या नए शब्द BPE और SentencePiece में जाने-पहचाने टुकड़ों में टूट सकते हैं
    • अगर <UNK> बनता है, तो sampler के लिए एक अर्थपूर्ण विकल्प कम हो जाता है
    • subword तरीका टुकड़ों को रचनात्मक रूप से जोड़ सकता है, लेकिन rare शब्द बनाने के लिए कई sampling steps चाहिए होते हैं, इसलिए single known token की तुलना में बीच में भटकने की संभावना बढ़ जाती है

1 टिप्पणियां

 
GN⁺ 2025-05-06
Hacker News टिप्पणियां
  • इसी संदर्भ में, हमारा min_p पेपर ICLR में जमा हुए 12,000 पेपरों में 18वें स्थान पर रहा और oral presentation के लिए चुना गया
    https://iclr.cc/virtual/2025/oral/31888
    पोस्टर भी काफी लोकप्रिय रहा: https://iclr.cc/media/PosterPDFs/ICLR%202025/30358.png?t=174...
    oral presentation यहां देखी जा सकती है। इसमें इस विषय पर Yoshua Bengio की आलोचना करने वाला एक सीन है, और वे पहले सवाल पूछने वाले बनते हैं। दूसरा presenter लगभग 19:30 पर शुरू करता है, presentation slides भी साथ हैं और यह काफी मजेदार है: https://iclr.cc/virtual/2025/session/31936
    पेपर: https://arxiv.org/abs/2407.01082
    min_p के लेखकों में से एक के तौर पर, मैं पुष्टि कर सकता हूं कि फिलहाल general-purpose sampler में Top N sigma भारी बढ़त के साथ सबसे अच्छा है। साथ ही temperature को अभी की तुलना में कहीं ज्यादा ऊंचा सेट किया जा सकता है, और करना चाहिए। min_p या top N sigma जैसी तकनीकों के साथ temperature 100 भी पूरी तरह ठीक है
    एक और बात, पेपर के अंत में लेखकों ने जिस top_k = 2 और बहुत high temperature वाले संयोजन की सिफारिश नहीं की है, वह अपने आप में बहुत दिलचस्प है। करीब हर 10 शब्दों में spelling error आती है, लेकिन साथ ही लगता है कि उससे काफी दिलचस्प creativity भी पैदा होती है

    • मुझे उत्सुकता है कि क्या असल में कोई non-greedy sampler है। यानी ऐसा तरीका जो सचमुच tree search करता हो
      मुझे पता है branching factor बेहिसाब बड़ा है और node expand करने की लागत भी महंगी है, लेकिन यह बात हमेशा अजीब लगी कि वास्तव में search किया ही नहीं जाता
  • यहां एक बात छूट गई है: sampler के पास model की internal state तक access नहीं होता। sampler सिर्फ output distribution पर बुनियादी math लागू करता है, और वह distribution तकनीकी रूप से थोड़ी semantics रखता जरूर है, लेकिन अगर आप model जितने smart नहीं हैं तो उसे decode नहीं कर सकते
    यहां बताए गए repetition penalty या DRY जैसे samplers पर भी यही लागू होता है। model अपने-आप को अनगिनत तरीकों से दोहरा सकता है, और उन सबको रोकने का एकमात्र तरीका बेहतर training है, n-gram search या classic natural language processing वाले तरीके नहीं। यह हर छेद को उंगलियों से बंद करने जैसा है—आपके पास आखिर कितनी उंगलियां हैं?
    autoregressive process को hack करके Min-P जैसे low-hanging fruit से सुधार या clever tricks मिल सकती हैं, लेकिन अगर मकसद खराब model को अच्छा model बनाना है, तो दिशा गलत है

    • नहीं, मकसद गैर-creative model को creative model में बदलना है। sampling मायने नहीं रखती या यह bitter lesson का उल्लंघन है—ऐसी सोच की वजह से ICLR oral presentation में मुझे साफ कहना पड़ा कि पूरे field के पास इस तरह के research को लेकर एक बड़ा blind spot है
      Top n sigma 2024 के मध्य से और min_p 2023 से मौजूद हैं, फिर भी open source के बाहर, यानी HF/vllm के बाहर, इन innovations के integrate होने का इंतजार है। API providers जानबूझकर धीमे चल रहे हैं क्योंकि वे models के बहुत ज्यादा creative हो जाने का जोखिम नहीं लेना चाहते, और high temperature watermarking को तोड़ सकता है इसकी संभावना भी बड़ी है
      एक और बात, model को उसकी अपनी sampling settings के बारे में aware कराना बहुत आसान है। हर token या generation पर वे settings वापस model में feed कर दें। उदाहरण के लिए structured generation से यह किया जा सकता है। model अपनी sampling settings को control कर सकता है, और बहुत थोड़ी extra programming के साथ “internal state तक access” कर सकता है। अब वह code model आपके लिए लिख भी सकता है
    • इस guide में मुख्य चिंता efficiency और complexity explosion को रोकना लगती है
  • हाल में मैंने Ollama/llama.cpp के लिए sampling guide भी थोड़ा लिखा है, feedback या सुधार सुझावों का स्वागत है: https://smcleod.net/2025/04/comprehensive-guide-to-llm-sampl...

  • पूरा लेख अच्छी तरह व्यवस्थित और आसानी से समझाया गया है, इसलिए यह दिखाता है कि नई कोशिशें प्रभावी रूप से कहां की जा सकती हैं—यह बात मुझे पसंद है
    उदाहरण के लिए पूरे शब्दों को token के रूप में क्यों न इस्तेमाल करें? सीमित “robot dialect” वाले “robot” बनाए जा सकते हैं। उनमें नए या दुर्लभ शब्दों को संभालने की क्षमता नहीं होगी, लेकिन training data और input data को बदलकर ऐसे शब्दों को मौजूदा vocabulary में translate किया जा सकता है। इससे कहीं छोटा mapping बनेगा, यह सचमुच robot जैसा भी लगेगा, और user C-3PO की तरह इस robot से किस तरह के जवाबों की उम्मीद करनी है, इसे लेकर expectations बना सकेगा

    • word-only tokenizer वही तरीका है जो लोग RNN/LSTM के दौर में अपनाते थे। BPE या WordPiece/SentencePiece जैसी tokenization methods की तुलना में इससे functionally कुछ बेहतर नहीं मिलता, और punctuation जैसे meaningful semantic hints का इस्तेमाल मुश्किल हो जाता है, जिससे quality और खराब होती है
  • अगर कोशिश यह है कि LLM सिर्फ “next token” नहीं बल्कि ideas output करे, तो logits vector पर selection की प्रक्रिया उस original idea को तोड़ देगी। अगर idea पूरा बना हुआ है, तो logits पर sampling इस्तेमाल करने की जरूरत नहीं होनी चाहिए
    इस framework में sampling output के करीब वाले level पर, यानी “अगला बोला जाने वाला शब्द क्या है”, वहां नहीं होनी चाहिए

    • LLM को “ideas” नहीं बल्कि next token predict करने की probability maximize करने के लिए train किया जाता है। ideas को training loss objective के रूप में define नहीं किया जा सकता
  • कुछ हफ्ते पहले मैंने संबंधित विषय, constrained sampling, पर एक interactive लेख बनाया था। हालांकि यह लेख कहीं ज्यादा thorough है
    http://michaelgiba.com/grammar-based/index.html

  • क्या LLM मॉडल tokenization को implicit तरीके से कर सकता है? मतलब अलग tokenizer बनाए बिना मनचाही string allow की जाए, फिर neural network उसे tokens में बदल दे और उस network के weights को बाकी LLM के साथ train किया जाए?

    • ऐसा पहले से हो रहा है। Neural network tokens को सीधे handle नहीं कर सकता; वह सिर्फ real-valued vectors और differentiable inputs ले सकता है[0]। इसलिए token 123, 456 को जैसे-का-तैसा देने के बजाय हर token को one-hot encoded vector में बदलना पड़ता है। यह ऐसा vector होता है जिसमें token ID जिस position की ओर इशारा करता है वही 1 होती है और बाकी सब 0 होते हैं
      ये one-hot vectors एक linear layer से होकर model के hidden state size तक compress हो जाते हैं। उदाहरण के लिए token vocabulary 10,000~100,000 तक हो सकती है, लेकिन hidden state size करीब 500~2,000 हो सकता है। model का बाकी हिस्सा hidden state space[1] में काम करता है, जिसके अंदर कई high-level concepts होते हैं
      tokenization हटाने पर encoder को उस hidden state space तक पहुंचने के लिए ज्यादा काम करना होगा जिससे हम परिचित हैं। unpaired bytes से hidden space तक कोई ज्यादा efficient encoding मिल भी सकती है, लेकिन यह देखते हुए कि ज्यादातर models की tokenization पहले से ही training set की statistical properties पर आधारित होती है, इसकी संभावना कम लगती है। अगर “anti” या “ism” को model को देने से पहले एक single token में अपने-आप combine नहीं किया गया, तो model के lower-layer attention heads को वही काम करना पड़ेगा
      पहले models को character sequences पर train किया जाता था और फिर efficiency के कारण tokenization पर शिफ्ट किया गया, इसलिए यह trade-off शायद worth it नहीं होगा
      [0] token IDs की list बस यूं ही नहीं दी जा सकती। token 123.25 का कोई mathematical meaning नहीं है, और token ID को बढ़ाने या घटाने का भी कोई meaning नहीं है
      [1] performance बेहतर होती है, लेकिन interpretability ज्यादा मुश्किल हो जाती है। खासकर hidden space के basis vectors सीधे words या concepts से map नहीं होते, और सारे concepts किसी तरह की N-dimensional ring पर मौजूद होते हैं
  • कुछ ही साल पहले invent हुई techniques इस्तेमाल करने के लिए method को update करने को modern कहना लगभग literacy की समस्या जैसा है। modern आखिर किसके मुकाबले—classical LLM sampling?

    • ऐसी आलोचना करने से पहले dictionary देख लेना बेहतर होगा
      modern, adj. designed and made using the most recent ideas and methods
      https://dictionary.cambridge.org/us/dictionary/english/moder...
      यह लेख जो समझा रहा है, वह ठीक इसी definition में आता है। पिछले करीब 7 सालों में इस क्षेत्र में काफी progress हुई है, और उदाहरण के लिए GPT 1, 2, 3 आज के हिसाब से निश्चित रूप से काफी पुराने हैं और ऊपर वाली definition के अर्थ में modern नहीं हैं
    • इन algorithms में से काफी 2019 के आसपास invent हुए थे, जैसे TFS, या temperature जैसे कुछ और पुराने भी हैं
    • LLMs तो कहीं ज्यादा पुराने हैं। संबंधित Nobel Prize भी दिखाता है कि दशकों पहले breakthroughs कैसे हुए थे
      ChatGPT बस public breakthrough था। उससे भी पहले smartphone keyboards 10 साल से LLMs इस्तेमाल कर रहे हैं
  • वाकई उपयोगी document है। explanations बहुत clear हैं और coverage भी व्यापक है
    किसी को पता है इसे किसने लिखा है? author दिखाया नहीं गया है और यह free Markdown pastebin पर डाला गया है
    DRY repetition penalty वाला हिस्सा दिलचस्प लगा। मैं अक्सर चाहता हूं कि LLM input को जानबूझकर बिल्कुल ठीक-ठीक copy करके output करे। उदाहरण के लिए लंबी बातचीत summarize करते समय मैं ऐसे exact quotes मांगता हूं जो point को सबसे अच्छे से दिखाएं। क्योंकि बाद में original text में search करके fact-check करना आसान होता है
    DRY penalty शायद ऐसे goal के उलट काम करेगी

    • मुझे पता नहीं था कि author credit नहीं है। यह @AlpinDale ने लिखा है