- बड़े language model (LLM) की sampling विधियों को इस तरह समझाने वाली एक व्यापक गाइड कि शुरुआती लोग भी समझ सकें
- token क्या है, शब्दों की जगह इसका उपयोग क्यों किया जाता है, और model text कैसे generate करता है, इसे विस्तार से समझाया गया है
- sampling आउटपुट की विविधता और स्वाभाविकता को नियंत्रित करने की प्रक्रिया है, और Temperature, Top-K, Top-P, DRY जैसे विभिन्न sampling algorithms का परिचय दिया गया है
- हर sampling तकनीक को वैचारिक व्याख्या के साथ गणितीय और एल्गोरिद्मिक कार्य सिद्धांत सहित समझाया गया है, और दोहराव रोकने, रचनात्मकता बढ़ाने, संगति समायोजित करने जैसे प्रभावों की तुलना की गई है
- samplers के बीच संयोजन क्रम, पारस्परिक प्रभाव, और टकराव के उदाहरण तक व्यवस्थित किए गए हैं, इसलिए generation quality को बारीकी से नियंत्रित करना चाहने वाले developers के लिए यह बेहद उपयोगी सामग्री है
Intro Knowledge
Short Glossary
- Logits हर token के score को दिखाने वाले unnormalized values होते हैं
- Softmax logits को normalized probability distribution में बदलने वाला function है
- Entropy prediction uncertainty को दर्शाता है; यह जितना अधिक होगा, अगले token को लेकर अनिश्चितता उतनी ही अधिक होगी
- Perplexity एक ऐसा metric है जिसमें मान जितना कम हो, model का confidence उतना अधिक माना जाता है
- n-gram लगातार आने वाले n tokens की sequence को कहते हैं
- Context window एक बार में model द्वारा process किए जा सकने वाले tokens की अधिकतम संख्या है
Why tokens?
Why not letters?
- अक्षर-स्तर tokenization में sequence बहुत लंबी हो जाती है, जिससे compute cost बढ़ती है और जानकारी को जोड़कर समझना कठिन हो जाता है
Why not whole words?
- शब्द-आधारित तरीका vocabulary size के बहुत बढ़ जाने और नए या दुर्लभ शब्दों को व्यक्त करने में कठिनाई जैसी समस्याएँ लाता है
- Sub-word आधारित तरीका prefix, root, suffix को अलग-अलग संभाल सकता है, इसलिए यह morpheme understanding और multilingual transfer learning के लिए प्रभावी है
How are the sub-words chosen?
- training data के representative samples के आधार पर सबसे अधिक बार आने वाले sub-words को खोजकर शब्द-सूची बनाई जाती है
How does the model generate text?
- training के दौरान model बड़े पैमाने के text से अगले token की probability distribution सीखता है
- inference के समय यह सभी संभावित tokens के लिए probability की गणना करता है, और sampling technique के अनुसार अगला token चुनता है
From Tokens to Text
- prediction चरण: सभी candidate tokens के लिए probability distribution की गणना
- selection चरण: किसी विशेष sampling strategy के अनुसार token का चयन
- केवल सबसे अधिक probability वाले token को चुनने से नीरस या दोहराव वाला text बन सकता है, इसलिए sampling techniques महत्वपूर्ण हैं
Sampling
Temperature
- कम मान output को अधिक conservative और repetitive बनाते हैं, जबकि अधिक मान रचनात्मक परिणाम ला सकते हैं, लेकिन गलतियों की संभावना भी बढ़ाते हैं
- logits को temperature value से विभाजित करके probability distribution की sharpness (एकाग्रता) नियंत्रित की जाती है
Presence Penalty
- जो token एक बार भी आ चुका हो, उसकी फिर से आने की संभावना कम कर दी जाती है
- इसमें सिर्फ token के इस्तेमाल हुआ या नहीं देखा जाता है, उसकी आवृत्ति नहीं
Frequency Penalty
- आने की संख्या के अनुपात में score घटाया जाता है
- जो शब्द अधिक बार आए हों, उन्हें अधिक नुकसान मिलता है, जिससे diversity बढ़ाने में मदद मिलती है
Repetition Penalty
- पहले आ चुके tokens पर positive/negative logit के लिए asymmetric penalty लागू की जाती है
- यह loop जैसे दोहराव को रोकने में प्रभावी है, लेकिन context की संगति को नुकसान पहुँचा सकता है
DRY (Don't Repeat Yourself)
- n-gram pattern की पुनरावृत्ति पहचानकर दोहराव का संकेत देने वाले tokens की probability घटाई जाती है
- जितना लंबा और जितना हाल में दोहराया गया वाक्यांश होगा, उसे उतना ही अधिक दबाया जाएगा
- रचनात्मक text में स्वाभाविकता बनाए रखते हुए दोहराव घटाने में यह बेहद प्रभावी है
Top-K
- केवल शीर्ष K candidates को रखा जाता है और बाकी tokens हटा दिए जाते हैं
- इससे चरम samples हट जाते हैं और साथ ही कुछ हद तक randomness भी बनी रहती है
Top-P (Nucleus Sampling)
- cumulative probability के P या उससे अधिक होने तक के tokens ही रखे जाते हैं, बाकी हटा दिए जाते हैं
- model के confidence के अनुसार candidate set का आकार बदलता है, इसलिए यह adaptive है
Min-P
- सबसे अधिक probability वाले token को आधार बनाकर केवल वही tokens रखे जाते हैं जिनका अनुपात एक न्यूनतम सीमा से ऊपर हो
- model के confidence के अनुसार filtering dynamically adjust होती है
Top-A
- सबसे अधिक probability वाले token की probability के वर्ग के अनुपात वाले threshold से candidates filter किए जाते हैं
- confidence जितना अधिक होगा, filtering उतनी अधिक सख्त होगी
XTC
- एक निश्चित probability पर सबसे अधिक संभावित candidates को जानबूझकर हटाया जाता है ताकि कम निश्चित विकल्प चुने जाएँ
- यह अपरंपरागत या रचनात्मक responses के लिए उपयोगी तकनीक है
Top-N-Sigma
- probability distribution की standard deviation के आधार पर valid tokens चुने जाते हैं
- statistical features पर आधारित filtering होने के कारण यह विभिन्न परिस्थितियों में लचीले ढंग से काम करती है
Tail-Free Sampling (TFS)
- probability slope के second-order change (curvature) के आधार पर सार्थक candidates और long-tail candidates में अंतर किया जाता है
- यह स्वाभाविक cutoff point खोजकर filtering करने का तरीका है
Eta Cutoff
- distribution की entropy (uncertainty) के अनुसार filtering criteria को dynamic रूप से समायोजित किया जाता है
- confidence अधिक होने पर अधिक tokens हटाए जाते हैं, और confidence कम होने पर तरीका अधिक लचीला रहता है
Epsilon Cutoff
- स्थिर probability threshold का उपयोग करके कम probability वाले tokens हटाए जाते हैं
- यह सरल है, अनुमानित व्यवहार देता है, और अनावश्यक long-tail हटाने में उपयोगी है
Locally Typical Sampling
- expected surprisal (prediction से अंतर) औसत के करीब वाले tokens को प्राथमिकता दी जाती है
- सबसे अधिक संभावित token या सबसे विचित्र token के बजाय "typical" चयन को प्रोत्साहित किया जाता है
1 टिप्पणियां
Hacker News टिप्पणी
यह उल्लेख नहीं किया गया कि sampler मॉडल की internal state तक पहुँच नहीं सकते
मैंने Ollama/llama.cpp के लिए sampling guide लिखने की कोशिश की है
जब LLM से "ideas" output कराने की कोशिश की जाती है, तो logit vector का चयन मूल idea को तोड़ देना चाहिए
सब कुछ सरल तरीके से समझाया गया है, जिससे नई चीज़ें आज़माने के मौके खुलते हैं
क्या LLM मॉडल implicit tokenization कर सकते हैं?
इसी संदर्भ में, हमारा min_p पेपर ICLR में 12000 submissions में 18वें स्थान पर रहा
मैं सोचता हूँ कि क्या sampling वास्तव में मॉडल की सीमाओं को हल करती है, या सिर्फ किसी गहरी समस्या को ढकती है
"sampling" उम्मीद से कहीं ज़्यादा चीज़ों को कवर करता है
यह बहुत उपयोगी दस्तावेज़ है, इसकी व्याख्या स्पष्ट है और यह बहुत कुछ कवर करता है
मुझे एहसास नहीं था कि शुरुआती softmax temperature चयन के बाद इतना अधिक manipulation किया जा रहा है