LLM की अनिश्चितता पहचानने की तकनीक
(thariq.io)- Entropix एक ऐसा प्रोजेक्ट है जो उस क्षण LLM की अनिश्चितता को पढ़ता है जब वह अगला token चुनता है, और स्थिति के अनुसार sampling का तरीका बदलकर inference quality बढ़ाने की कोशिश करता है
- निर्णय के मानदंड logits distribution की entropy और varentropy हैं, और इन दोनों के संयोजन से मॉडल की confidence state को 4 प्रकारों में बाँटा जाता है
- confidence अधिक होने की स्थिति में argmax sampling उपयुक्त है, लेकिन जब कई मजबूत उम्मीदवार हों तो branching के जरिए अलग-अलग paths की तुलना की जा सकती है
- high entropy की स्थिति में मॉडल सचमुच नहीं जानता हो सकता है, या विकल्प व्यवहारिक रूप से बराबर हो सकते हैं, इसलिए thinking token जोड़ना, temperature समायोजित करना, या branching जैसी प्रतिक्रियाएँ ज़रूरी हो सकती हैं
- अभी large-scale evaluation नहीं है, इसलिए प्रभाव निश्चित नहीं है, लेकिन inference-time sampling ऐसा क्षेत्र है जहाँ बड़े बजट के बिना भी open source experiments के जरिए सुधार की कोशिश की जा सकती है
Entropix किस समस्या को लक्ष्य बनाता है
- Entropix XJDR द्वारा विकसित एक प्रोजेक्ट है, जो मॉडल के अनिश्चित क्षणों में sampling strategy बदलकर inference को बेहतर बनाने की कोशिश करता है
- अभी Entropix पर large-scale evaluation नहीं है, इसलिए वास्तविक performance improvement की सीमा स्पष्ट नहीं है
- फिर भी uncertainty-based sampling, LLM inference को अलग नज़रिए से देखने का एक प्रयोगात्मक तरीका और reasoning model प्रदान करता है
LLM की अनिश्चितता कहाँ दिखती है
- sampling वह प्रक्रिया है जिसमें LLM यह तय करता है कि संभावित tokens की distribution यानी logits में से कौन-सा token चुना जाए
- मॉडल की confidence का स्तर अगले token की logits distribution में देखा जा सकता है
- confidence अधिक हो तो probability कुछ tokens पर स्पष्ट रूप से केंद्रित होती है
- confidence कम हो तो अगले token के उम्मीदवार अधिक फैले हुए होते हैं
- अनिश्चितता हमेशा बुरा संकेत नहीं होती, और इसके कई कारण हो सकते हैं
goodऔरgreatकी तरह tokens synonyms हों या व्यवहारिक रूप से बराबर हों- जैसे किसी program को Java में भी लिखा जा सकता है और C में भी, यानी branching paths मौजूद हों
- मॉडल को समझ न आ रहा हो कि क्या करना है, या वह training data में न देखे गए out of distribution input से टकरा गया हो
entropy और varentropy
- Entropix, logits की entropy और varentropy से अनिश्चितता को मापता है
- entropy यह दिखाती है कि predicted logits एक-दूसरे से कितने अलग हैं, और सबसे संभावित परिणाम को लेकर कितनी अनिश्चितता है
- low entropy में कुछ logits को लेकर काफ़ी confidence होता है
- high entropy में logits distribution अधिक uniform हो जाती है, इसलिए confidence कम हो जाता है
- varentropy अनिश्चितता की shape दिखाने वाला माप है
- high varentropy का मतलब है कि कुछ मान बाकी मानों से काफ़ी अलग हैं
- ये दोनों माप surprisal(self-information) की अवधारणा पर आधारित हैं
- surprisal यह मापता है कि कोई घटना अपनी probability की तुलना में कितनी अप्रत्याशित है
- घटना
xकी probabilityP(x)हो तो surprisalI(x) = -log₂(P(x))होता है P(x) = 1/8हो तो surprisal 3 bit होता है, औरP(x) = 1/2हो तो 1 bit
- entropy, सभी संभावित परिणामों के surprisal का expected value है
- varentropy, surprisal के variance के रूप में निकाली जाती है, और यह दिखाती है कि कुछ परिणाम औसत surprisal की तुलना में कितने अधिक चौंकाने वाले हैं
अनिश्चितता की 4 अवस्थाएँ
- entropy और varentropy को साथ देखने पर मॉडल की स्थिति को 4 हिस्सों में बाँटा जा सकता है
- low entropy·low varentropy: नुकीली distribution जिसमें एक परिणाम की probability बहुत अधिक होती है
- low entropy·high varentropy: ऐसी distribution जिसमें कुछ अलग-अलग peaks हों
- high entropy·low varentropy: uniform या लगभग uniform distribution
- high entropy·high varentropy: व्यापक रूप से फैली हुई लेकिन एकसमान नहीं distribution
अवस्था के अनुसार adaptive sampling
-
low entropy·low varentropy
- यह आदर्श स्थिति है जिसमें मॉडल न सिर्फ अपनी पहली पसंद को लेकर, बल्कि उसके गलत होने पर विकल्पों को लेकर भी अपेक्षाकृत आश्वस्त होता है
- अक्सर candidate list साफ़-सुथरे क्रम में होती है, इसलिए सबसे अधिक probability वाले token को चुनने वाली argmax sampling उपयुक्त होती है
-
low entropy·high varentropy
- यह वह स्थिति है जिसमें मॉडल कुछ चुनिंदा विकल्पों को बहुत ऊँची probability देता है
- यह स्थिति पूरी तरह नए output path का संकेत हो सकती है, या synonyms की तरह कुछ ऐसे expressions की, जहाँ कई अभिव्यक्तियाँ संभव हों; इसलिए निर्णय कठिन होता है
- एक संभव प्रतिक्रिया branching है: दोनों logits की भविष्यवाणी करके उनके paths पर आगे बढ़ना और कुछ बिंदु के बाद परिणामों की तुलना करना
- अगर branching के परिणामों की confidence मिलती-जुलती हो लेकिन सामग्री अलग हो, तो इसे उपयोगकर्ता से पूछे जाने वाले सवाल में बदला जा सकता है
-
high entropy·low varentropy
- यह ऐसी स्थिति हो सकती है जहाँ मॉडल low confidence में हो, या सभी विकल्प एक-दूसरे के बदले इस्तेमाल किए जा सकें
- Entropix इस समय यह सुझाव देता है कि मॉडल को अधिक confidence वाली स्थिति तक ले जाने के लिए अगले token के रूप में thinking token डाला जाए
- उदाहरण के तौर पर
Wait..जैसा token - thinking token output में इस संकेत के रूप में डाला जाता है कि मॉडल को जवाब देने से पहले और computation time लेकर सोचना चाहिए
- उदाहरण के लिए, अगर मॉडल
The capital of Germany is Parisकी भविष्यवाणी करने की कोशिश कर रहा हो लेकिन आश्वस्त न हो, तोWaitजोड़कर यह आगेThe capital of Germany is Paris… Wait, no, it’s actually Berlinजैसा बन सकता है
-
high entropy·high varentropy
- इसमें कोई स्पष्ट top candidate नहीं होता, लेकिन कुछ outputs पर मॉडल बाकी outputs की तुलना में अधिक आश्वस्त होता है
- top choices synonyms की तरह सभी स्वीकार्य हो सकती हैं, इसलिए अधिक temperature के साथ random selection किया जा सकता है
- पिछली अवस्थाओं की तरह branching या thinking token insertion भी संभव है
branching और thinking token में अंतर
- दोनों तरीके अनिश्चित स्थिति में अधिक inference computation खर्च करने की कोशिश करते हैं
- branching prediction कुछ logits को follow करके देखता है कि वे किन दूसरे tokens की ओर ले जाते हैं
- इसे अक्सर MCTS(Monte Carlo Tree Search) कहा जाता है
- LLM में इस पर कई बार प्रयोग हुए हैं, लेकिन नतीजे मध्यम रहे हैं
- मुख्य trade-off यह है that हर branch दूसरे की computation का लाभ नहीं उठा पाती
- thinking token, उन branches को explore करने में computation खर्च नहीं करता जिन्हें बाद में फेंका भी जा सकता है; इसके बजाय यह अनिश्चित अवस्था में अतिरिक्त computation हासिल करने का तरीका है
Wait…insertion से AI को यह पहचानने में मदद मिलती है कि उससे गलती हुई हो सकती है
- branching और thinking token में कौन बेहतर है, यह अभी भी open research question है
attention-आधारित signals
- Entropix, temperature adjust करते समय कुछ अन्य entropy measurements का भी उपयोग करता है
- Attention Entropy यह दिखाती है कि attention head किसी खास token को follow कर रहा है या context के कई tokens में ध्यान फैला रहा है
- Attention Agreement यह बताती है कि अलग-अलग attention heads एक ही token पर ध्यान दे रहे हैं या अलग-अलग tokens को देख रहे हैं
- अगर heads की entropy low हो और agreement high हो, तो यह इस बात का अतिरिक्त संकेत हो सकता है कि highest-probability token sample करना ठीक है
- अगर agreement low हो, तो अलग-अलग heads अलग-अलग predictions में योगदान दे रहे हो सकते हैं, इसलिए branching पर विचार किया जा सकता है
यह क्यों महत्वपूर्ण है
- Entropix का विचार समझने में आसान है और पूरी तरह नया भी नहीं, लेकिन यह sampling stage पर LLM inference improvement को फिर से सोचने पर मजबूर करता है
- भले ही evaluation में अभी बड़ा लाभ साबित न हुआ हो, ऐसी inference-time techniques पर प्रयोग करना अपेक्षाकृत आसान है
- यह open source hackers के लिए बिना बड़े बजट के inference improvement आज़माने की एक promising दिशा बन सकती है
1 टिप्पणियां
Hacker News की राय
कहा जाता है कि उनसे दो बार पूछा गया था, “Mr. Babbage, अगर मशीन में गलत संख्याएँ डाली जाएँ, तो क्या सही जवाब निकलेगा?”
Charles Babbage ने कहा था कि वे ठीक से समझ नहीं पाए कि ऐसी बात पूछने के पीछे सोच की उलझन कैसी रही होगी
ऐसी sampling-आधारित तकनीकें उन दुर्लभ मामलों में से हैं जहाँ consumer hardware पर latest models को बेहतर बनाने की कोशिश की जा सकती है
शायद यह ज्यादा लंबे समय तक नहीं चलेगा, और अंततः सीख सकने वाला sampler आ जाएगा, लेकिन अभी इसे भरपूर आजमाने लायक है: https://github.com/codelion/optillm
optillm के authors को लगता है कि Entropics की extra computation, साधारण chain-of-thought decoding से बेहतर नतीजे नहीं देती। उन्होंने efficiency भी जाँची है या नहीं, पता नहीं: https://x.com/asankhaya/status/1846736390152949966
LLM की कई समस्याएँ GSM Symbolic paper में दिखे semantic leakage या अप्रासंगिक जानकारी पर attention बंट जाने जैसी चीजों से आती लगती हैं, और शायद attention में सुधार की गुंजाइश भी दिखती है
इससे जुड़े कुछ लेख भी लिखे हैं: https://zzbbyy.substack.com/p/semantic-leakage-quick-notes, https://zzbbyy.substack.com/p/llms-and-reasoning, https://zzbbyy.substack.com/p/o1-inference-time-turing-machi...
कुछ लोग दावा करते हैं कि यह बेहतर काम करती हैं, लेकिन इसे साबित करने के लिए कोई rigorous benchmark नहीं है। बात “लिखाई बेहतर आती है”, “style fresh है” जैसी होती है, और मुझे लगता है LeCun इस हिस्से में 100% सही हैं। किसी general-purpose model को “कविता” या “गद्य” में अच्छा होने के आधार पर evaluate करना bias की परिभाषा जैसा है, और निजी किस्सों से खुद को ही कमजोर कर लेना है
coding या math पर लागू किए गए नतीजे देखना चाहूँगा। मसलन, olympiad math problems में sampler बेहतर काम करता है या नहीं, इसका before/after अच्छी तरह benchmark किया जाना चाहिए
या फिर यह attention mechanism की ज्यादा बुनियादी कमजोरी भी हो सकती है। अभी alternatives भी सामने आ रहे हैं
मुझे पूरी तरह समझ नहीं आ रहा कि यह project academic papers पर आधारित है या नहीं, यानी क्या यह LLM की uncertainty judge करने की कोई published technique इस्तेमाल करता है
हाल के कामों में यह काफी related लगता है: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
यहाँ token logits की standard entropy से ज्यादा sophisticated semantic entropy का idea इस्तेमाल होता है, जो statistically quantify करने के लिए ज्यादा उपयुक्त है कि LLM guess कर रहा है या उसे high confidence है। original paper Oxford authors का Nature paper है
इस approach को और generalize करने वाला research [1] भी है, जिसमें sampled outputs के बीच semantic equivalence की धारणा के आधार पर soft clustering की जाती है
फिर भी एक बात ध्यान रखने लायक है। हमने हाल में LLM uncertainty estimation की state-of-the-art techniques का comprehensive benchmark करने वाला paper [2] निकाला है, और कई मामलों में meaning-aware methods बहुत अच्छा काम करती हैं, लेकिन दूसरे tasks में token distribution की average entropy जैसी simple baselines, complex techniques जैसी या उनसे बेहतर भी रहीं
इसके अलावा हम एक open source Python library [3] भी develop कर रहे हैं, जो LLMs पर लागू की जा सकने वाली latest uncertainty estimation techniques implement करती है, estimation methods को benchmark करना और production में चल रहे models के outputs की uncertainty estimate करना आसान बनाती है
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
मैंने इसे काफी करीब से follow किया है, और यह दिलचस्प लगा कि छोटे models इस sampler में ज्यादा efficient हो सकते हैं। अगर रुचि हो तो posts पढ़ने लायक हैं, और इस तरह की sampling काफी मायने रखने वाला काम लगती है
जैसा कि मैंने दूसरे comment में भी लिखा, author शायद एक fundamental misunderstanding कर रहे हैं, और लेख के ऊपर दिए note को देखें तो इसी वजह से practical results न निकल पाए हों, ऐसा लगता है
इसका मतलब उन्हें दोष देना या discourage करना नहीं है। हो सकता है उन्होंने कुछ पकड़ लिया हो, और ऐसी अनोखी approaches आजमाने लायक होती हैं। बस ऊपर बताई वजहों से अगर इसका positive effect नहीं है, तो यह paper बनकर आना मुश्किल होता; इसलिए इस approach पर academic paper न होना भी हैरानी की बात नहीं है
जब entropy ज़्यादा हो, तो मॉडल के पास बच निकलने का रास्ता होना चाहिए, ऐसा मानता हूँ
पूरे जवाब की certainty कम है, यह trigger होना चाहिए, और generation के दौरान certainty score जमा करके आखिर में user को यह देखने देना चाहिए कि जवाब की certainty बहुत खराब थी या नहीं। ऐसे जवाब को फेंक देने या “मुझे नहीं पता” से replace कर पाने की सुविधा होनी चाहिए
इस क्षेत्र में model uncertainty को quantify करने के अलग-अलग तरीकों की तुलना करते समय अक्सर refusal verification किया जाता है। मूल रूप से, uncertainty ज़्यादा वाले data points को लगातार reject करते हुए देखा जाता है कि बचे हुए outputs की average quality कैसे बढ़ती है। अच्छा uncertainty estimate output quality से strongly correlated होना चाहिए, इसलिए low-uncertainty outputs की average quality ज़्यादा होनी चाहिए
हाल के LLM uncertainty estimation approaches benchmark [1] में भी ठीक यही तरीका इस्तेमाल किया गया, और ऐसे benchmarks को संभव बनाने वाली open-source library [2] भी develop हो रही है। किसी specific model output के लिए uncertainty score भी बनाया जा सकता है, इसलिए इसे industry में applications में integrate भी किया जा सकता है
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
इसलिए entropy ज़्यादा होने पर कई बार यह “confidence नहीं है” का signal होता है, लेकिन model बहुत बार confidently गलत भी हो सकता है। इसलिए logit entropy को reliability का indicator मानना आसानी से बहुत misleading हो सकता है
मैं LLM expert नहीं हूँ; यह सामान्य classifiers की समझ के आधार पर मेरा विचार है। अगर data पर्याप्त हो तो क्या यह consideration अब लागू नहीं रहता, यह जानने की उत्सुकता है
इसे refusal answer की दिशा में काफ़ी push करने वाला experiment भी किया जा सकता है, और मैं खुद करके देखने की सलाह दूँगा। smollm-entropix repository [1] ने पूरा implementation Jupyter notebook में किया है, इसलिए ideas test करना आसान है
[1]: https://github.com/SinatrasC/entropix-smollm
आधुनिक बड़े GPT token vocabulary पूरी की तरफ़ एक विशाल classifier के logits output करते हैं
ये किसी space में होते हैं, और न सिर्फ़ ऐसे manifold की कल्पना की जा सकती है जिसमें non-trivial convexity properties हों, बल्कि इसे empirically compute भी किया जा सकता है। किस LLM ने कौन-सा text लिखा, यह पहचानने की समस्या, किसी खास tone में लिखने का instruction दिए जाने के मामलों सहित, well-defined है या practically solved problem के काफ़ी करीब है
यह सिर्फ़ research में रहा problem ही नहीं था, बल्कि ऐसा field था जहाँ तेज़ और impressive progress हो रही थी, लेकिन किसी point पर इसे बस बंद कर दिया गया
इस field में सबसे अच्छा बनना बहुत बड़ा business है। और यह बिल्कुल वही तरह का काम है जो startup को करना चाहिए। वजह यह है कि पैसे वाले incumbents का competitor बनकर आना मुश्किल है—इसलिए नहीं कि वे market को ignore करते हैं, बल्कि इसलिए कि वे actively नहीं चाहते कि यह market exist करे
समझाने का यह तरीका लगभग maze-search algorithm जैसा लगता है। यहाँ compute time का मतलब है “यह possible solution है या नहीं, इसे test करने के लिए किसी path पर कितनी गहराई तक जाना है”
सोच रहा हूँ कि क्या और similarities भी हो सकती हैं। जैसे क्या कोई maze-solving algorithm है जिसे LLM पर apply किया जा सके?
सच कहूँ तो यह Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html) के उल्टी दिशा में है। वह lesson chess में maze search को बहुत ज़्यादा sophisticated तरीके से handle करने से भी निकला था। लेकिन अभी LLM scale पर ऐसी improvements valuable हो सकती हैं
जब भी मैं ऐसे संभावित optimizations के बारे में पढ़ता हूं, तो समझना मुश्किल होता है कि लोग LLMs पर इतने कम supervision के साथ कैसे भरोसा करके इस्तेमाल कर लेते हैं
क्या वे सचमुच मानते हैं कि LLM इस्तेमाल करने वाले “AI” products कंप्यूटर को control करने या सही code लिखने के लिए पर्याप्त सक्षम हैं? design के हिसाब से क्या सब कुछ “hallucination” या अनुमान नहीं है? क्या इसे सच में पार किया जा सकता है?
ये programs machine को actions भेजते हैं, results/errors/outputs को query करते हैं, उन्हें .csv में save करते हैं और फिर अच्छी तरह formatted Excel file में बदलते हैं. किसी खास test में technician को कैसे connect करना है, यह दिखाने वाली start guide भी देते हैं
मैं programmer नहीं हूं, और हमारी company में भी कोई programmer नहीं है. फिर भी इसने बिल्कुल वैसा code लिखा जो मैंने मांगा था. development के दौरान code कहीं अटकता तो मैं उसे फिर ChatGPT में डालकर solve करवाता, और आखिरकार सब solve हो गया. इसमें करीब एक दिन लगा; अगर मैं करता तो एक महीना लगता, और outsource करने पर 10,000 डॉलर और एक हफ्ता लगता
LLMs ऊंची salary वाले advanced programming projects के लिए खराब हो सकते हैं. लेकिन उन लोगों के लिए वरदान हैं जिन्हें computer से कुछ करवाना है, पर computer को क्या करना है बताने वाली language barrier पार नहीं कर पाते
यह मेरे आम तौर पर लिखे जाने वाले code से कहीं ज्यादा robust और accurate है. मैं 20 साल से programming कर रहा हूं
यह बस एक और hype है. Client/Server, Industry 4.0, Machine Learning, Microservices, Cloud, Crypto की तरह
क्या किसी ने experiment किया है कि अगर model को कभी uncertain होने ही न दिया जाए तो output कैसा होता है?
जैसे हर बार certainty threshold से नीचे गिरते ही sampler वापस जाए और कोई दूसरा token चुने. आखिर में हर single token threshold से ऊपर certainty वाला होगा
इससे unwanted outputs पूरी तरह खत्म नहीं होंगे, लेकिन interesting होगा
या फिर “मुझे नहीं पता” को पूरी confidence के साथ कह सकता है
language models की sampling strategies अरबों तरह की हैं
समस्या यह है कि empirically दिखाना बहुत मुश्किल है कि कोई sampling strategy standard top-k या top-p sampling से बेहतर है. सिर्फ perplexity minimize करना किसी method की superiority साबित करने के लिए पर्याप्त नहीं है. blog post में सुझाई गई strategy में भी वही समस्या है. theoretically plausible है, लेकिन practically unverified innovation है
“बेहतर” क्या है यह साफ कहना मुश्किल है, और preference data जैसी चीजें collect करने की cost बड़ी है, इसलिए proof मुश्किल है
बहुत सारे samples देखने के बाद common sense से कहा जा सकता है कि “X optimize करना हो तो यह तरीका बेहतर काम करता लगता है”
LLM answers की limitations “uncertainty” के एक dimension से कहीं ज्यादा dimensions रखती हैं
जैसे “question/sentence का कोई मतलब नहीं है”, “answer देने के लिए information पर्याप्त नहीं है”, “expert consensus यह है कि ‘कोई सच में नहीं जान सकता’ जैसी information मौजूद है” आदि
इंसानों की tendency है कि दिए गए question का answer देना मुश्किल क्यों है, इसे सिर्फ uncertainty की समस्या में reduce कर दें, और इसलिए LLM answer को भी केवल एक single uncertainty level वाला मानें. लेकिन यह anthropomorphism है
AI images, और उससे पहले photography ने दिखाया था कि images नए और अनसोचे तरीकों से गलत हो सकती हैं—ऐसे तरीके जो असली जैसे लगते हैं पर गलत होते हैं. AI language interactions भी और subtle तरीके से यही करती हैं
अब तक यह मुख्यतः reinforcement learning से किया गया है, लेकिन inference time पर पकड़कर handle करने का तरीका भी explore करने लायक लगता है. open source के लिए यह कहीं ज्यादा accessible भी है. ऐसा reinforcement learning सिर्फ बड़े ML labs ही कर सकते हैं
मुझे लगता है anthropomorphism LLM marketing strategy का हिस्सा है
uncertainty को कई “flavors” में भी तोड़ा जा सकता है. सबसे सरल और अक्सर चर्चा किया जाने वाला breakdown aleatoric uncertainty और epistemic uncertainty है. epistemic uncertainty, या model-based uncertainty, आम तौर पर उस स्थिति को कहती है जब model को ऐसी type की input मिलती है जो उसने पहले नहीं देखी, और वह खराब output देता है—ऐसी situation जहां उससे सही handle करने की उम्मीद करना मुश्किल है. दूसरी ओर aleatoric uncertainty data में ही inherent होती है; task की natural ambiguity या noisy labeling के बारे में सोचें
uncertainty estimation के field में इन अलग-अलग प्रकार की uncertainties को quantify करने के methods develop करने में काफी interest है, और अलग-अलग methods इनमें से किसी एक के प्रति ज्यादा sensitive हो सकते हैं