1 पॉइंट द्वारा GN⁺ 2024-05-02 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यदि LLM के मानक लक्ष्य next-token prediction को बदलकर कई भविष्य के टोकन का एक साथ प्रेडिक्शन किया जाए, तो समान डेटा और compute budget पर भी code और natural language generation performance को और बेहतर किया जा सकता है
  • संरचना में साझा Transformer backbone के ऊपर कई output heads रखे जाते हैं, और basic inference में केवल next-token head का उपयोग होता है, इसलिए यह मौजूदा autoregressive generation की तरह काम करता है
  • code model में 13B parameter मॉडल ने तुलनीय next-token model की तुलना में HumanEval में 12% और MBPP में 17% अधिक समस्याएँ हल कीं, और यह लाभ बड़े मॉडलों में अधिक स्पष्ट था
  • अतिरिक्त heads का उपयोग self-speculative decoding में किया जा सकता है; 4-token prediction model ने अधिकतम 3× और 8-byte prediction model ने 6.4× inference speedup दिखाया
  • synthetic tasks में यह induction heads और algorithmic reasoning के लिए फायदेमंद रहा, और संभव है कि यह training के दौरान teacher forcing और generation के समय autoregressive distribution के बीच के अंतर को कम करता हो

मल्टी-टोकन प्रेडिक्शन तरीका

  • पारंपरिक language modeling में हर position पर अगले एक token के cross-entropy loss को न्यूनतम किया जाता है
  • मल्टी-टोकन प्रेडिक्शन training objective को इस तरह बढ़ाता है कि हर position पर अगले n tokens का एक साथ प्रेडिक्शन किया जाए
  • model architecture तीन भागों में बँटी होती है
    • साझा Transformer backbone observed context का latent representation बनाता है
    • n स्वतंत्र output heads हर future token का parallel प्रेडिक्शन करते हैं
    • साझा unembedding matrix अंतिम token probabilities की गणना करता है
  • सबसे सरल inference तरीका सामान्य autoregressive prediction है, जिसमें केवल next-token prediction head का उपयोग होता है और बाकी heads को छोड़ा जा सकता है
  • अतिरिक्त output heads का उपयोग blockwise parallel decoding या Medusa-like tree attention जैसे self-speculative decoding में किया जा सकता है

memory-efficient implementation

  • साधारण implementation में हर head के logits और gradients को memory में रखना पड़ता है, जिससे GPU memory usage बढ़ जाता है
  • मौजूदा LLMs में vocabulary size V, latent representation dimension d से बहुत बड़ा होता है, इसलिए logit vector GPU memory bottleneck बन जाता है
  • प्रस्तावित implementation में shared backbone के forward pass के बाद हर output head का forward/backward क्रम से चलाया जाता है
    • एक head के logits और gradients अगले head पर जाने से पहले मुक्त कर दिए जाते हैं
    • backbone पर केवल accumulated gradients रखे जाते हैं
  • इस तरीके से peak GPU memory usage O(nV + d) से घटकर O(V + d) हो जाता है, और runtime cost नहीं बढ़ती

code model experiment results

  • वास्तविक data experiments में next-token prediction model और n-token prediction model की तुलना समान parameter count पर की गई
    • future prediction heads के लिए n−1 layers जोड़ी जाएँ तो shared backbone से n−1 layers हटा दी जाती हैं
  • 300M से 13B तक छह model sizes को कम से कम 91B code tokens पर scratch से train किया गया
  • MBPP और HumanEval evaluation में छोटे models baseline से खराब हो सकते थे, लेकिन scale बढ़ने पर मल्टी-टोकन प्रेडिक्शन आगे निकल गया
  • 13B model ने तुलनीय next-token model की तुलना में अधिक समस्याएँ हल कीं
    • HumanEval में 12% अधिक समस्याएँ हल कीं
    • MBPP में 17% अधिक समस्याएँ हल कीं
  • 7B model को 200B code tokens पर train किए गए ablation में n=1, 2, 4, 6, 8 की तुलना की गई
    • n=4 ने HumanEval और MBPP के pass@1, pass@10, pass@100 पर लगातार सबसे अच्छा प्रदर्शन किया
    • APPS/Intro में n=6 आगे रहा
    • optimal window size input data distribution के अनुसार बदल सकती है

inference speed और byte-level models

  • 7B 4-token prediction model पर greedy self-speculative decoding लागू किया गया, और training में उपयोग न किए गए code व natural language test prompts पर decoding speed मापी गई
  • परिणामों में code पर 3.0× और text पर 2.7× speedup दिखा
    • code में 3 प्रस्तावों में औसतन 2.5 tokens स्वीकार किए गए tokens थे
  • 8-byte prediction model ने inference speed में 6.4× सुधार दर्ज किया
  • byte-level tokenization experiment में 7B byte-level transformer को 314B bytes, यानी लगभग 116B tokens के बराबर data पर train किया गया
  • 8-byte prediction model ने next-byte prediction की तुलना में अधिक समस्याएँ हल कीं
    • MBPP pass@1 में 67% अधिक समस्याएँ हल कीं
    • HumanEval pass@1 में 20% अधिक समस्याएँ हल कीं
  • multi-byte prediction, byte-level models को अधिक efficiently train करने का एक रास्ता हो सकता है

कई epochs, fine-tuning, और natural language results

  • समान data पर कई epochs training के बाद भी मल्टी-टोकन प्रेडिक्शन ने next-token prediction पर कुछ बढ़त बनाए रखी
    • MBPP pass@1 में +2.4%
    • HumanEval pass@100 में +3.2%
    • बाकी metrics समान रहे
  • CodeContests fine-tuning में 4-token prediction से pretrain किया गया 7B model, next-token baseline model की तुलना में pass@k के लगभग सभी मापदंडों पर बेहतर था
    • 4-token prediction model को सीधे n′=4 loss के साथ fine-tune करने पर भी वह baseline से बेहतर रहा
    • अतिरिक्त heads हटाकर next-token target के साथ fine-tune करने का तरीका कुल मिलाकर सबसे बेहतर रहा
  • natural language में 7B model को 200B tokens पर train कर 6 standard NLP benchmarks पर evaluate किया गया
    • 2-token prediction model, next-token baseline model के लगभग बराबर था
    • 4-token prediction model में performance कुछ गिर गई
    • संभव है कि इसके लिए बड़े model size की आवश्यकता हो
  • generative natural language evaluation को summarization और math tasks में बाँटकर किया गया
    • 8 summarization benchmarks में n=2 और n=4 models ने 200B और 500B tokens training दोनों पर ROUGE-L F1 के आधार पर next-token baseline model से बेहतर प्रदर्शन किया
    • GSM8K 8-shot evaluation में 200B tokens पर n=2 baseline से आगे था, लेकिन 500B tokens के बाद यह पैटर्न उलट गया, और n=4 कुल मिलाकर अधिक खराब रहा

synthetic tasks में induction और algorithmic reasoning

  • induction वह pattern है जिसमें वाक्य में “AB” आने के बाद बाद में “A” फिर से आने पर उसके बाद “B” का प्रेडिक्शन किया जाता है
  • children stories dataset पर 1M~1B nonembedding parameters वाले models को train किया गया, और random 2-token names वाले test set से induction capability मापी गई
  • 30M से छोटे models में 2-token prediction loss ने induction capability के निर्माण में बड़ा सुधार किया
    • 100M से ऊपर यह लाभ गायब हो गया
  • polynomial arithmetic task में F7[X]/(X5) पर unary negation, addition, multiplication, composition वाले expressions को train और evaluate किया गया
  • मल्टी-टोकन प्रेडिक्शन ने task difficulty के पूरे दायरे में accuracy बढ़ाई, और out-of-domain generalization भी, भले absolute value कम रही हो, लेकिन उल्लेखनीय रूप से सुधरी
  • 30M से 100M तक model size बढ़ाने की तुलना में next-token prediction को मल्टी-टोकन प्रेडिक्शन में बदलने का प्रभाव अधिक बड़ा था

यह काम क्यों कर सकता है

  • मल्टी-टोकन प्रेडिक्शन teacher forcing training और inference-time autoregressive generation के बीच distribution mismatch को कम कर सकता है
  • next-token prediction छोटी दूरी की भविष्यवाणी पर केंद्रित होकर लंबी दूरी की dependencies को नज़रअंदाज़ कर सकता है
  • मल्टी-टोकन प्रेडिक्शन उन tokens को अधिक implicit weight देता है जिनका संबंध बाद के tokens से अधिक मज़बूत होता है
    • इसे choice point reinforcement के रूप में समझा जा सकता है
    • उपयोगी text generation काफी हद तक choice points पर सही निर्णय चुनने पर निर्भर मानी जाती है
  • information-theoretic expansion में 2-token prediction, X और Y के बीच mutual information term के महत्व को next-token prediction की तुलना में अधिक बढ़ाता हुआ दिखता है

सीमाएँ और लागत

  • आगे की चुनौतियों में मल्टी-टोकन प्रेडिक्शन में n को अपने आप चुनने की विधि, loss scale और loss balancing का उपयोग, vocabulary size adjustment, और embedding space में काम करने वाले auxiliary prediction loss का विकास शामिल है
  • सभी experimental model training में कुल लगभग 500K GPU hours का उपयोग हुआ
    • hardware A100-80GB और H100 था
    • अनुमानित कुल emissions लगभग 50 tCO2eq थीं, जिन्हें Meta के sustainability program के तहत 100% offset किया गया
  • लक्ष्य language models की compute और data efficiency बढ़ाना है, लेकिन rebound effects पर ध्यान देना होगा, और LLMs के सामाजिक लाभ व जोखिम दोनों को साथ में देखना होगा

1 टिप्पणियां

 
GN⁺ 2024-05-02
Hacker News राय
  • इस क्षेत्र में बहुत ज़्यादा कुछ हो रहा है
    काश कोई ऐसा स्रोत होता जो डेटा, pre-training, training, inference, mixture of experts, RAG जैसे शब्द असली flow में कब आते हैं, इसे किसी factory tour की तरह समय-क्रम में समझा देता
    ज़्यादातर लोगों को बड़े चित्र में ये terms कहाँ फिट होते हैं, यह पता नहीं होता; मैंने भी जब पहली बार pre-training देखा था तो लगा था कि यह training से पहले data process करने की प्रक्रिया है, लेकिन असल में वह भी एक अलग तरह की training ही थी

    • बड़े चित्र में ये terms कहाँ फिट होते हैं, यह न समझना LinkedIn, Twitter और podcasts पर दिखने वाले कई AI experts और consultants के साथ भी है
      इस क्षेत्र में signal-to-noise ratio बहुत कम है, और Langchain जैसे industry leaders के docs भी कई बार पहले से पुराने या आपस में विरोधाभासी होते हैं
      blockchain hype के समय भी ऐसा ही था, तो शायद यह hype train की एक खासियत है
    • दर्द और उत्साह दोनों साथ महसूस होते हैं
      खासकर RAG जैसी चीज़ों में हालिया प्रगति इतनी तेज़ है कि कुछ समय तक ऐसा reference book आना मुश्किल है जो up-to-date बना रहे, इसलिए यह समझना कठिन है कि शुरुआत कहाँ से करें
      फिर भी LlamaIndex जैसे high-level tools के docs शुरुआत के लिए ठीक हैं, क्योंकि वे concepts को गहराई से समझाने के बजाय यह दिखाते हैं कि वे पूरे चित्र में कहाँ फिट होते हैं
      YouTube, हमेशा की तरह, latest trend से clicks खींचने की कोशिश करने वाले गैर-विशेषज्ञों के समुद्र से भरा है, इसलिए मुझे वह शुरुआती बिंदु के रूप में अच्छा नहीं लगता
    • Lilian Weng का blog देखना अच्छा रहेगा: https://lilianweng.github.io/posts/2023-01-27-the-transforme...
    • Sebastian Raschka की Machine Learning Q and AI की सिफारिश करता हूँ
    • अभी लोग AI में सचमुच बहुत खराब चीज़ें बनाने में बहुत ज़्यादा समय लगा रहे हैं
      बेशक हर चीज़ में ऐसा होता है, लेकिन उसे patch करने की कोशिश करने के बजाय यह मानकर चलना बेहतर है कि निकट भविष्य में GPT-4 से कहीं बेहतर कुछ आएगा, और उसी आधार पर differentiated product design करना बेहतर होगा
  • जो लोग speculative decoding जानते हैं, उनके लिए यह मूल रूप से self-speculative decoding है
    predict की गई label sequence को अभी भी autoregressive तरीके से फिर से network में डाला जाता है, और prediction सिर्फ उस point तक रखी जाती है जहाँ तक match होता है
    इसलिए quality/performance खराब नहीं होती, सिर्फ speed बढ़ती है; यहाँ यह अधिकतम 3x है, जो speculative decoding में सामान्य स्तर है
    multi-task learning की वजह से यह और बेहतर भी हो सकता है। कई steps आगे के targets को auxiliary loss के रूप में predict करने का idea पहले से काफी पुराना है, और यह अच्छा काम है

    • speculative decoding की समस्या यह है कि इसे support करने वाले models बहुत कम हैं, और support जोड़ने के लिए extra GPU time लगता है
      अगर speculative decoding planning performance तक improve करती है, तो इसे अपनाना आसान होगा
    • “quality/performance खराब नहीं होती, सिर्फ speed बढ़ती है” वाली बात थोड़ी confusing है
      speculative decoding output की accuracy या quality के लिहाज़ से model performance को कम नहीं करती
      गणितीय रूप से, regular autoregressive decoding करने पर जो modified distribution sample होती है, वह वही होती है; फर्क केवल randomness की वजह से होता है
      अगर performance से आपका मतलब speed था, तो speculative decoding speed कम भी कर सकती है, लेकिन ज़्यादातर inputs और सही draft model selection में ऐसा नहीं होना चाहिए
  • क्या LLM sequence prediction में किसी तय output length तक सभी संभव token combinations की probability distribution पर विचार नहीं करते? मुझे लगा था वे पहले से ऐसा करते हैं
    अगर ऐसा नहीं है, तो उनका आज की तरह अच्छा काम करना हैरान करने वाला है
    उदाहरण के लिए, अगर 2-bit sequence की संभावनाएँ और probabilities 00: p=0.36, 01: p=0.04, 10: p=0.30, 11: p=0.30 हैं, तो सबसे संभावित 2-bit sequence 00 है
    लेकिन अगर सिर्फ अगला token predict करें, तो 0: p=0.40, 1: p=0.60 होगा, इसलिए अगला bit 1 लगता है, और फिर अगले bit की prediction एक suboptimal starting point तक पहुँचती है
    लंबी sequences में, joint probability distribution जितना कम marginal distributions में अच्छी तरह factorize होगा, error उतनी अधिक स्पष्ट होगी
    और सोचने पर लगता है कि text training data में सिर्फ nवें future token को consider करने के लिए cross-entropy loss function बदलकर LLM performance और n के relation को plot करने वाला एक simple study किया जा सकता है
    अगर मानें कि current LLM सब n=1 हैं, तो hypothesis यह है कि अगले 1 से n tokens तक की joint probability distribution predict करने में लगने वाले resources के explosion को काफी हद तक bypass किया जा सकता है
    क्योंकि nवें token को directly predict करने के लिए implicitly बेहतर data model चाहिए होता है। कम से कम human-made text में तो ऐसा है, सभी data types पर लागू नहीं होता

    • शायद viewpoint को थोड़ा अलग तरह से देखना चाहिए
      LLM को training distribution का पालन करने वाला text sample करने के लिए design किया गया है, न कि आगे आने वाला “सबसे संभावित” text बताने के लिए; और वास्तव में हम वह चाहते भी नहीं
      ऐसा करने पर output diversity खत्म हो जाएगी
      आपके example में, chat application हो तो 40% बार 0 और 60% बार 1 sample करना ही समझ में आता है
      जहाँ सबसे संभावित sentence महत्वपूर्ण है, जैसे question answering में, वहाँ जैसा दूसरों ने कहा है, beam search मदद कर सकता है
      साथ ही यह भी consider करना चाहिए कि model “look ahead” कर सकता है, यानी future tokens पहले से calculate करके उन्हें current token prediction में use कर सकता है
      वास्तव में [1] जैसी research इसी को address करती है
      आखिर में, एक बार में एक token predict करना इंसानों के बोलने के तरीके जैसा है, इसलिए यह गलत approach नहीं है। बोलने से पहले हम अपने दिमाग में ऐसी “look ahead” करते हैं
      [1] https://arxiv.org/abs/2404.00859
    • असल में यह इसी तरह काम करता है, और low temperature पर predict करते समय यह सचमुच समस्या बन जाता है
      याद पड़ता है कि LLM output में अजीब patterns दिखते हैं; जैसे “an” अक्सर “a” से कम संभावित होता है, इसलिए expected से कम vowel से शुरू होने वाले nouns आते हैं
    • language model joint probability p(y, x) को p(y, x) = p(y|x) p(x) में factorize करता है, और यह सही है
      यानी अगर किसी distribution पर language model train करें और temperature 1 पर sampling करें, तो बिल्कुल वही distribution निकलती है
      low temperature या greedy तरीके से sampling करें तो जाहिर है अलग distribution निकलेगी
    • यह मूल रूप से decoder की greedy sampling की समस्या है
      beam search जैसी कई local optimization sampling strategies हैं, और speculative decoding जैसी ज़्यादा global sampling approaches पर भी काफी काम हुआ है
    • आप training loss यानी next-token cross-entropy/surprisal और training के बाद की predictive decoding, जैसे beam search, को मिलाकर बात कर रहे हैं
  • क्या मौजूदा LLM हर आउटपुट token के लिए शुरुआत से शुरू करता है?
    अगर आपने पूछा “केले को पीला क्या बनाता है?” और वह जवाब दे “Bananas are yellow due to a pigment called bromelain.”, तो “a” आउटपुट करते समय neural network के अंदर pigment और bromelain की अवधारणाएं कुछ हद तक पहले से सक्रिय लगती हैं
    अब वह मन बदलकर “an optical illusion...” जैसा जवाब आगे नहीं बढ़ा सकता, इसलिए लगता है कि उसने पहले ही आगे की योजना बना ली है कि वह bromelain नाम के pigment के बारे में कहेगा
    जब LLM “a” आउटपुट करता है, क्या वह पहले से किए गए काम को अगले जवाब में इस्तेमाल कर सकता है? क्या neural network state को अगले जवाब के लिए सुरक्षित रखा जा सकता है?

    • इसे दूसरे तरीके से देखें, तो GPT से अगला वाक्य पूरा करने को कहा जा सकता है
      “Bananas are yellow due to a” और “Bananas are yellow due to an”
      पहले मामले में वह “Bananas are yellow due to a pigment called bromelain.” जवाब दे सकता है, और दूसरे मामले में “Bananas are yellow due to an organic compound called bromelain, which is a yellow pigment.” जवाब दे सकता है
      किसी भी तरफ, GPT “a” या “an” चुने, प्रतिक्रिया के अर्थ पर असर नहीं पड़ सकता
      बहुत चरम रूप में, हम यह भी मान सकते हैं कि LLM “due to” के बाद अगला token “a” 55%, “an” 45% जैसी मूर्खतापूर्ण heuristic से चलता है
      असलियत बेशक अधिक परिष्कृत है, लेकिन केवल ऐसी heuristic से भी इस व्यवहार की व्याख्या हो जाती है
      अगर pretraining data में bromelain से जुड़े तथ्य नहीं डाले गए हों, तो LLM सचमुच “an optical illusion” जैसी बात से autocomplete कर सकता है
      GPT-3 ऐसी factual errors काफी बार करता था, लेकिन मुझे याद है कि उसने “a” और “an” के grammar rules समझ लिए थे
      जैसा कहा, मुझे नहीं लगता कि अवधारणाओं का सचमुच पहले से सक्रिय होना जरूरी है, लेकिन implicit और emergent अर्थ में ऐसी pre-activation होने की संभावना है
    • कुछ हद तक attention वह mechanism है जो पिछले tokens की computation को बाद में उपयोगी बनाता है
      KV cache को अब तक के text और उस पर model के विचारों की अभिव्यक्ति माना जा सकता है
      language model पूरी sequence को अंत तक सीखता है, इसलिए मुझे लगता है कि ऐसा होने की संभावना काफी है
      multi-token prediction इस व्यवहार को स्पष्ट रूप से प्रोत्साहित करता है, लेकिन सिर्फ परिभाषित किए गए छोटे n-token window के भीतर
      दूसरी ओर transformer language models की computation utilization बढ़ाने के लिए early exit, depth mixing, SSM जैसी नई structures पर भी काफी काम हो रहा है
    • LLM output आमतौर पर सबसे ज्यादा probability वाले अगले कुछ tokens/words में से randomly sample किया जाता है, लेकिन model को खुद नहीं पता होता कि sampler कौन सा word चुनेगा
      शायद “a” या दूसरे candidates के बाद क्या आ सकता है, इसका कोई conceptual plan होता होगा, लेकिन ऐसी high-level prediction “a” generate होते ही फिर से शुरू से reconsider की जाती है
      model हर word generate होने के बाद न केवल अपना मन बदल सकता है, बल्कि उसे ऐसा करना ही पड़ता है
      इसलिए ऐसी “planning” बहुत क्षणिक होती है, और गहराई से सोचकर जवाब व expression चुनने वाले इंसान की बजाय तुरंत मौके पर रचने वाले freestyle rapper के ज्यादा करीब है
    • यह लेख दिलचस्प है: https://clementneo.com/posts/2023/02/11/we-found-an-neuron
    • अधिकतर LLM का output probabilistic होता है
      core LLM tokens लेकर अगली आने वाली ranked token set और “confidence” output करता है
      उसके बाद आमतौर पर filtering और search step होता है, जहां उन ranked tokens को फिर LLM में डालकर और ranked tokens लिए जाते हैं और एक छोटा probability tree बनाया जाता है
      उदाहरण के लिए, top N tokens को फिर डालें तो हर एक नया top N token set बनाता है
      उस tree को देखकर कुल confidence सबसे ज्यादा वाली branch, repeated tokens सबसे कम वाली branch, input tokens से matching tokens सबसे कम वाली branch चुनने जैसी basic filtering की जाती है, या अक्सर इन criteria को combine करके और summed confidence से weight की गई random selection भी जोड़ी जाती है
      इसलिए weights पूरी तरह fixed वाले LLM को भी वही input कई बार देने पर अलग-अलग outputs आ सकते हैं
      यानी खास सवाल का जवाब दें तो, model “मन बदल” सकता है। हर generated token probabilistic output filter को संभावित output paths में से नया path चुनने का मौका देता है
  • यह बहुत भोला सवाल हो सकता है, लेकिन अगर मान लें कि हम पूरे वाक्य के अर्थ को encode करने वाला vector बना सकते हैं, तो LLM को एक शब्द की जगह उस sentence vector का prediction करना क्यों नहीं सिखाया जा सकता?

    • लेखक हूं। बहुत अच्छा point है, और मेरी समझ में कई टीमें इस पर काम कर रही हैं
      भाषा के लिए autoencoder train करना असल में काफी आसान है, क्योंकि text में मौजूद information की मात्रा vision/video की तुलना में कम होती है
      मुश्किल हिस्सा यह है कि जब सारे signals token space में exact match से आते हैं, तब model को semantic हिस्से पर focus करवाना
      इसी से Yann LeCun का joint embedding predictive architecture वाला idea आता है
      साथ ही auxiliary tasks ज्यादा signals देते हैं, लेकिन focus shift कर देते हैं—यह trade-off हमेशा रहता है
      हमारे मामले में, prediction tokens की संख्या बहुत ज्यादा होने पर performance degradation दिखा
      इसलिए latent prediction methods को यह साफ करना होगा कि वास्तव में उपयोगी क्या है
    • मुझे नहीं लगता कि यह बेवकूफी भरा सवाल है
      समस्या यह है कि answer को represent करने वाला vector पाने के बाद, उस answer को फिर से word representation में वापस बदलने के लिए किसी और model जैसी चीज़ चाहिए होगी
      यह text के लिए किसी diffusion model जैसा हो सकता है
      इसके अलावा, इस diffusion model को जिस function का approximation करना होगा, वह injective function नहीं है; अच्छा हुआ तो surjective function होगा, और बुरा हुआ तो mathematical sense में function भी नहीं हो सकता
      क्योंकि एक embedding के लिए बहुत सारे possible text representations हो सकते हैं, और उनमें से ज्यादातर grammar या semantics के लिहाज से valid नहीं हो सकते
      आखिर में, embedding किसी data का lossy representation है, इसलिए inverse function बहुत सारे nuances और context खो देगा
      LLM query, पिछले n tokens और self-consistency बनाए रखते हुए next token—और अब next n tokens—का prediction करके ऊपर की समस्या से बचता है, और जिन functions का ये approximation करते हैं वे आम तौर पर surjection के करीब होने चाहिए
    • मैं भी beginner हूं, लेकिन अगर sentence vectors को encode, train और synthesize किया जाए, तो क्या AI की नया बनाने की क्षमता sentence से word level तक नहीं चली जाएगी?
      अभी यह मोटे तौर पर words से deal करता है, इसलिए AI सिर्फ वही words इस्तेमाल कर सकता है जिन्हें वह जानता है, लेकिन उन words से नए sentences synthesize कर सकता है
      अगर AI sentence level पर काम करे, तो क्या वह बस वही sentences दोहराएगा जो उसने पहले देखे हैं? तब शायद वह नए paragraphs तो synthesize कर पाए, लेकिन नए sentences नहीं बना पाएगा
      English में sentence AI के लिए useful abstraction है या नहीं, इसका मुझे भरोसा नहीं है। इंसानों के लिए भी यह बस किसी तरह useful है
      सामान्य chats, emails, YouTube comments देखें तो बहुत बार वे असल में sentences नहीं होते या punctuation भी इस्तेमाल नहीं करते
      मुझे नहीं लगता कि sentence किसी semantic device से correspond करता है
      sentence लेखक के हिसाब से दो words का भी हो सकता है, English paper का आधा हिस्सा भी; छह ideas को cross कर सकता है या सिर्फ एक idea रख सकता है
      sentence कहां खत्म होता है, यह ज्यादातर meaning से ज्यादा लेखक की tendency पर depend करता है
    • मेरी समझ में tokenization bottleneck का एक हिस्सा है
      sentence को tokens में तोड़ें तो हर token को vector representation मिलता है
      sentence level पर जाएं तो सभी tokens की vocabulary infinite हो जाएगी
    • फिर भी words और sentence vectors के बीच किसी न किसी तरह conversion करना ही होगा
      उसे किसी faster model से करने की कोशिश की जा सकती है, लेकिन output quality गिरने की संभावना लगती है
  • मैंने paper अभी बहुत detail में नहीं पढ़ा है, लेकिन एक छोटा editorial comment है
    Appendix L.2 satisfactory था, लेकिन 5.2 में compressed argument थोड़ा weak लगा
    खासकर H(X) + H(Y) = H(X | Y) + 2I(X ; Y) + H(Y | X) में H(Y | X) को “छोड़ देने” वाली बात साफ नहीं थी
    अगर तीसरे token Z का prediction करना हो, तो H(Y | X) implicit context C में होना चाहिए, और इसलिए उसे freely discard नहीं किया जा सकता, है न?
    Appendix में भी यह argument साफ हुआ हो, ऐसा नहीं लगा
    हालांकि इससे मैं claim के core पर शक करने जितना confused नहीं हुआ; कुल मिलाकर यह presentation की समस्या है

    • feedback के लिए धन्यवाद। इसे बेहतर तरह से कहूं तो, generation में आखिरकार सिर्फ next-token head का इस्तेमाल होता है
      तब 2-token target H(X) + H(Y) में कौन सा हिस्सा learning में मदद करने वाली auxiliary information है और कौन सा हिस्सा waste है?
      H(X | Y) और I(X; Y) next-token generation के लिए useful हैं, लेकिन H(Y | X) definition के अनुसार next token X से unrelated information amount है
      इसलिए कहा जा सकता है कि “multi-token prediction H(Y) की useful information I(X; Y) को H(Y | X) पर wasted computation के बदले trade करता है”
      हालांकि ध्यान देना चाहिए कि H(Y | X), prefix (C, X) से Y predict करने वाली next-token entropy है
      अगर attention mechanism Y|X prediction के लिए पहले से किए गए computation को अगले step में ले जा सके, तो वह computation वास्तव में waste नहीं बल्कि precomputation हो सकता है
  • मैंने पढ़ा था कि LLM के पास सचमुच दुनिया की ओर सिर्फ 1-dimensional window होती है
    सब कुछ बस token sequence है
    शायद इस तरह का multi-prediction उसका view लगभग 1.1 dimension तक बढ़ा दे
    वैसे भी उस window को किसी तरह 2 dimensions या उससे ज्यादा तक expand करने के लिए वास्तविक arguments मौजूद हैं

    • structurally, खासकर coding tasks में, बेहतर करने की काफी गुंजाइश लगती है
      उदाहरण के लिए, अगर आपके पास FAIR-level resources हैं और आप सच में अच्छा Java coding model train करना चाहते हैं, तो tokens की जगह AST predict करना सिखाना समझ में आता है
      comments, identifier names आदि predict करने के लिए आम LLM के साथ combined form अभी भी चाहिए होगा, लेकिन program को खुद token stream के रूप में model नहीं किया जाएगा
      इसके बजाय “if block add करो”, “4 parameters वाला method call block add करो” जैसी चीज़ें predict करवाई जा सकती हैं
      साथ ही current cursor के type members जैसी information के लिए context window में specific positions reserve करने के लिए model को train किया जा सकता है, और inference loop को IDE/LSP-style static analysis के साथ integrate किया जा सकता है
      इससे model actual text में मौजूद information से ज्यादा information देख पाएगा
      मुझे लगता है कि ऐसे models अभी ज्यादा न दिखने की वजह यह है कि इस तरह की research महंगी है, और AI side के लोग सब Python-centric हैं, जबकि Python को IDE के benefits बहुत ज्यादा नहीं मिलते
  • machine learning में head शब्द consistent तरीके से इस्तेमाल नहीं होता, इसलिए confusion हो सकती है
    इस paper में multihead attention और multiple output heads—दोनों concepts हैं
    multihead attention transformer architecture में input के अलग-अलग regions पर focus करने की चीज़ है, और यहां biological analogy central processing unit के रूप में head के करीब है
    output head neural network की last layer को कहते हैं, और एक ही previous layers के आधार पर अलग-अलग outputs देने वाले कई output heads हो सकते हैं
    यह भी loose biological analogy है, लेकिन CPU के रूप में head की बजाय body के एक end पर मौजूद head के ज्यादा करीब है
    इनमें से कोई भी data पढ़ने वाले tape head की analogy नहीं है

  • LLM काफी हद तक अपने ही output को फिर से input में डालने के तरीके से “सोचते” हुए लगते हैं, और इसलिए लगातार यह देखा गया है कि model को ज़ोर से सोचने के लिए मजबूर करने पर inference quality बेहतर होती है
    यानी chain-of-thought inference में, सवाल का सीधे जवाब देने के बजाय, model से यह दोहरवाया जाता है कि उससे क्या मांगा गया है, जवाब देने के लिए कौन-सी जानकारी चाहिए होगी इस पर high-level strategy व्यक्त कराई जाती है, जो जानकारी उसे पता है वह कहलवाई जाती है, और यह समझवाया जाता है कि वह जानकारी शुरुआती reasoning को कैसे प्रभावित करेगी
    लेकिन हर step पर अगले कई tokens predict करवाने का तरीका कहीं मूल रूप से उल्टा असर तो नहीं करेगा, इसकी चिंता है
    chain-of-thought prompting ऐसा दिखाती है कि जब model के पास input के रूप में सिर्फ n tokens होते हैं, उसकी तुलना में n + m tokens होने पर वह ज्यादा “smart” होता है
    इसलिए किसी दिए गए n पर अगले 5 tokens निकालना, n पर अगला 1 token निकालकर फिर n+1 पर अगला 1 token निकालने वगैरह की तुलना में खराब result दे सकता है

    • अगर LLM में पर्याप्त सस्ता model हो, तो वह task के लिए जितने tokens चाहिए उतने हमेशा generate करेगा
      यह तथ्य महत्वपूर्ण नहीं है कि इस खास तरीके में अधिक tokens की जरूरत होती है
      अगर सस्ता model नहीं है, तो LLM के वास्तविक जवाब के बजाय अनुमान से जवाब देने के bias से आप हमेशा प्रभावित होंगे
      साथ ही, अधिकांश speculative decoding strategies वही output देती हैं जो model को sequentially चलाने पर मिलता
      अगर prediction गलत हो, तो वह token फेंक दिया जाता है और सिर्फ speedup गायब हो जाता है
  • अगर token/word +1 और +2 को independently predict किया जाए, तो grammatically अब भी सही लगने वाला result कैसे निकलता है? यह तो अक्सर टूटता होगा?

    • +1 और +2 predictions को बस discard कर दिया जाता है, वे सिर्फ ज्यादा efficient training के लिए generate किए जाते हैं
      abstract में यह साफ नहीं है, लेकिन Figure 1 के explanation में लिखा है, “inference के दौरान केवल next-token output head इस्तेमाल होता है। वैकल्पिक रूप से, बाकी तीन heads inference time घटाने के लिए इस्तेमाल किए जा सकते हैं”
      top predictions को सबके सब ले लिया जाए तो तीनों heads का इस्तेमाल किया जा सकता है, लेकिन तब common sampling strategies इस्तेमाल नहीं कर पाएंगे
      benchmarks के बाहर temperature 0 पर LLM असल में कितने लोग चलाते हैं, पता नहीं; और अगर temperature लगाने से बेहतर कुछ किया जाए तो बात अलग हो सकती है
    • n+1वां token, अगर nवें token के दिए होने पर कम probable हो, तो discard कर दिया जाता है