- σ-GPT डेटा के input order और आत्मप्रत्यावर्ती generation order को अलग करता है, जिससे Transformer किसी sequence को मनमाने shuffled order में भी train और generate कर सकता है
- मौजूदा आत्मप्रत्यावर्ती मॉडल अक्सर text के बाएँ-से-दाएँ क्रम या image के raster scan क्रम जैसी प्राकृतिक व्यवस्था का पालन करते हैं, लेकिन दोनों क्रमों का एक जैसा होना ज़रूरी नहीं है
- हर sample के लिए मनमाना shuffle order σ उसी समय चुना जाता है, और input/output order से मेल खाने वाले दो positional encodings जोड़कर आत्मप्रत्यावर्ती प्रक्रिया को सुसंगत रखा जाता है
- generation के दौरान किसी भी समय बचे हुए tokens की conditional distribution का अनुमान लगाया जा सकता है, इसलिए इसे arbitrary-position sampling, arbitrary conditional generation, infilling, और burst sampling तक बढ़ाया जा सकता है
- curriculum learning के साथ उपयोग करने पर यह बाएँ-से-दाएँ आत्मप्रत्यावर्ती मॉडल जैसी performance तक पहुँच सकता है, और token-based rejection sampling से कई tokens को burst इकाइयों में generate किया जा सकता है
input order और generation order का पृथक्करण
- Transformer ने कई modalities में मजबूत autoregressive performance दिखाई है
- पारंपरिक autoregressive तरीका डेटा के प्राकृतिक क्रम का पालन करता है
- text को आमतौर पर बाएँ से दाएँ process किया जाता है
- vision में image को raster scan order में flatten करके मिले sequence को Transformer से model किया जाता है
- σ-GPT डेटा के input order और autoregressive order में भेद करता है
- ज़्यादातर applications में दोनों क्रम aligned होते हैं, लेकिन उनका एक जैसा होना अनिवार्य नहीं है
- sequence को मनमाने shuffled order में train और generate करने के तरीके की पड़ताल की जाती है
- sequence order बदलने से training अधिक कठिन हो जाती है, लेकिन मॉडल को arbitrary-position conditional generation जैसे नए गुण मिलते हैं
σ-GPT की संरचना और कार्यप्रणाली
- σ-GPT हर sample के लिए मनमाना shuffle order σ उसी समय चुन सकता है
- चुना गया σ input order
0, σ(1), σ(2), ...और output orderσ(1), σ(2), σ(3), ...बनाता है- tokens की संख्या को सुसंगत रखने के लिए input में पहले
0padding जोड़ी जाती है - tokens को उसी क्रम के अनुसार shuffle किया जाता है
- tokens की संख्या को सुसंगत रखने के लिए input में पहले
- मॉडल input में दो positional encodings को concatenate किया जाता है
- एक input order से मेल खाता है
- दूसरा output order से मेल खाता है
- output को अंत में फिर वास्तविक क्रम में वापस रखा जाता है
- कोड उपलब्ध: https://github.com/idiap/sigma-gpt
मानक GPT और diffusion models के साथ तुलना
- σ-GPT की तुलना मानक causal transformer encoder GPT और diffusion models से की गई है
- समर्थित क्षमताएँ इस प्रकार हैं
- sequence की arbitrary positions पर token sampling
- आंशिक रूप से sampled sequence के आधार पर बचे हुए density की modeling
- arbitrary conditional generation
- infilling
- एक साथ कई tokens generate करने वाली burst sampling
- cross-entropy आधारित log-likelihood training
- तुलना के अनुसार, मानक GPT arbitrary conditional generation और log-likelihood training तो कर सकता है, लेकिन arbitrary-position sampling, conditional density estimation, infilling, और burst sampling को support नहीं करता
- diffusion models burst sampling को support करते हैं, लेकिन तुलना के अनुसार log-likelihood training को support नहीं करते
generation के दौरान conditional distribution और rejection sampling
- मानक autoregressive order से हटने पर मॉडल किसी विशिष्ट क्रम के अनुसार tokens की prediction कर सकता है
- इस तरीके में generation के दौरान किसी भी समय बचे हुए tokens की conditional distribution का अनुमान लगाया जा सकता है
- conditional distribution estimation का उपयोग किसी विशेष समय पर संभव generation outputs को मात्रात्मक रूप से समझने में किया जाता है
- इसे rejection sampling पर लागू करने से sequence को burst इकाइयों में, dynamic संख्या के steps के साथ generate किया जा सकता है
evaluation tasks और योगदान
- σ-GPT shuffled autoregression को पेश करता है, और यह मूल्यांकन करता है कि curriculum विधि के साथ जोड़कर क्या base model की performance बेहतर की जा सकती है
- evaluation के लिए तीन मुख्य tasks हैं
- open-ended text generation
- path solving
- aircraft vertical velocity prediction
- योगदान चार भागों में संक्षेपित हैं
- input order और output order के लिए अलग-अलग दो positional encodings वाली σ-GPT architecture का परिचय
- यह दिखाना कि curriculum learning का उपयोग करने पर बाएँ-से-दाएँ autoregressive model जैसी performance तक पहुँचा जा सकता है
- यह दिखाना कि arbitrary-order sample generation के ज़रिए sequence के किसी भी हिस्से के लिए conditional generation संभव है
- burst-आधारित sample generation के लिए token-based rejection sampling विधि का परिचय
1 टिप्पणियां
Hacker News की राय
काफ़ी अच्छा लग रहा है। ट्रेनिंग के दौरान इनपुट टोकन्स को रैंडम तरीके से शफ़ल किया जाता है, और हर टोकन के साथ दो तरह की positional encoding जोड़ी जाती है: एक उस टोकन की अपनी पोज़िशन के लिए, और दूसरी उस टोकन की पोज़िशन के लिए जिसे प्रेडिक्ट करना है
इसके अलावा यह एक standard autoregressive GPT ही है, लेकिन इस साधारण-से बदलाव का असर बड़ा है। अगर प्रशिक्षित मॉडल को sequence का कुछ हिस्सा prompt के रूप में दिया जाए, तो गायब टोकन्स को क्रम की परवाह किए बिना एक साथ parallel decoding से निकाला जा सकता है, और सभी missing tokens की conditional probability density भी parallel में निकाली जा सकती है
लेखक rejection sampling आधारित parallel infilling generation method भी प्रस्तावित करते हैं, और लगता है कि यह व्यवहार में अच्छी तरह काम करती है
I . . . . . . . . happily.हो, तो क्या दूसरे शब्द की भविष्यवाणी पहले शब्द पर निर्भर नहीं होगी?पुरानी चीज़[1] फिर से नई बन गई है, लेकिन prior work का citation नहीं है। यह कोई अनजाना research भी नहीं था; यह ICML में प्रकाशित हुआ था और लगभग 250 citations हैं
[1]: https://arxiv.org/abs/1902.03249
वाकई शानदार concept है। सोच रहा हूँ कि क्या यह image generation models में दिखने वाली dynamics जैसा होने लगा है। जैसे image के किसी एक हिस्से में structure और detail उभरते हैं, और आसपास के हिस्से धीरे-धीरे उसके अनुसार align होकर resolve होते हैं
ऐसा behavior long reasoning/logic/planning के लिए खास तौर पर उपयोगी लग रहा है। पहले बड़ा idea सामने आ सकता है, और फिर बीच की details और text स्वाभाविक रूप से भर सकते हैं
Twitter पर text generate करने वाला एक वीडियो है। यह थोड़ा image diffusion जैसा दिखता है
https://x.com/ArnaudPannatier/status/1799055129829839166
आज मैं इस paper के बारे में लगातार सोचता रहा, और इसकी functionality सच में पसंद आई। जो काम sequential LLMs में अपेक्षाकृत कठिन है, वह यहाँ आसान हो जाता है
अगर JSON चाहिए, तो opening और closing curly brace tokens को शुरुआत और अंत में fix कर दीजिए। अगर किसी निश्चित token length की explanatory response चाहिए, तो अंत में एक छोटा उत्तर जोड़कर बीच का हिस्सा भरिए
अगर और information-dense response चाहिए, तो generated text में density evaluation section और LLM के लिए information density को score करने की जगह जोड़ें, फिर high score खोजने के लिए generation चलाएँ। इसमें आज़माने के लिए बहुत कुछ दिखता है, और paper के हिसाब से लगभग 3x tokens की ज़रूरत पड़ना थोड़ा अफ़सोसजनक है, लेकिन reasonable token count वाले 8B parameter model पर भी इसे आज़माना अच्छा होगा
लेकिन इससे भी बेहतर तरीका है। अगर LLM output को JSON जैसी किसी खास grammar तक सीमित कर दिया जाए, तो उसे सिर्फ syntactically valid JSON में जवाब देने पर मजबूर किया जा सकता है
सोच रहा हूँ कि क्या यह computer code generation में खास तौर पर मददगार होगा। क्योंकि किसी चरण में निकला output, बाद के चरणों में लिखी जाने वाली चीज़ पर वास्तव में निर्भर हो सकता है
दिलचस्प research है। ऐसा ही permutation approach पहले Taylorformer paper (https://arxiv.org/pdf/2305.19141v1) में भी आ चुका है
लेखक time series जैसे continuous processes के लिए Transformer decoder का उपयोग करते हैं, और ट्रेनिंग के दौरान हर sequence को random तरीके से shuffle करते हैं। हर sequence element के पास positional encoding होती है, और shuffled sequence पर log-likelihood इस्तेमाल किया जाता है
वहाँ permutation interpolation, extrapolation, irregularly sampled data prediction में मदद करता है। साथ ही, यह “consistency” में भी मददगार लगता है, जहाँ generation order चाहे जो हो, mean squared error लगभग समान रहती है
उत्सुकता है कि यह paper इन विचारों की समझ या उपयोग में क्या और जोड़ता है। sequence order को shuffle करने का विचार Transformer Neural Process paper में भी आता है: https://arxiv.org/pdf/2207.04179
क्या यह vision Transformer से सीखी चीज़ों को language Transformer पर लागू करने जैसा है?
मेरी समझ के अनुसार vision models image को tiles में बाँटते हैं, और हर tile के साथ positional encoding जोड़ते हैं ताकि model tiles की relative position समझ सके
सच कहूँ तो मैंने सिर्फ abstract पढ़ा है और बहुत कुछ कठिन लगा, लेकिन यह paper 2D की जगह 1D में वैसा ही विचार प्रस्तावित करता हुआ लगता है
ट्रेनिंग ज़्यादा कठिन हो जाती है, लेकिन लगता है कि इससे कई tokens एक साथ generate किए जा सकते हैं। यानी N tokens लंबे उत्तर को N steps की जगह N/x steps में पाया जा सकता है
सोच रहा हूँ कि इसका code उपलब्ध है या नहीं। dual positions और shuffling को मैं पूरी तरह समझ नहीं पा रहा। positional values को जोड़ने की बजाय concatenate करना भी दिलचस्प है
Yann LeCun होते तो कहते कि autoregression खुद ही समस्या है, और इस तरह की machine learning से AGI के पास भी नहीं पहुँचा जा सकता[0]
कम से कम autoregressive paradigm के भीतर रहते हुए hallucination समस्या हल नहीं की जा सकती
[0] https://twitter.com/ylecun/status/1640122342570336267
मूल paper के लेखक यह दावा नहीं कर रहे कि यह काम AGI के करीब पहुँचने में मदद करता है। उन्होंने बस autoregressive LLM को कुछ नया करने लायक बनाया है, जो वह पहले नहीं कर सकता था
मुझे भी नहीं लगता कि ज़्यादातर कामों के लिए AGI की ज़रूरत है। खासकर तब, जब उद्देश्य किसी सचेत अस्तित्व के लिए पीड़ा पैदा करना न हो
सहज रूप से देखें तो कुछ tokens दूसरों की तुलना में ज़्यादा कठिन होते हैं। output में key tokens हो सकते हैं, और उनके तय हो जाने के बाद बाकी tokens बहुत आसान हो सकते हैं। साथ ही autoregressive तरीक़े में भी
actually no...जैसे tokens निकालकर गलत token से उबरना संभव हैtoken sampling method के आधार पर, प्रस्तावित generation को पूरे रूप में देखकर सुधारा जा सकता है। मुझे नहीं पता कि paper में प्रस्तावित sampling method अभी ऐसा करती है या नहीं, लेकिन probabilities से मिलने वाली जानकारी के आधार पर यह संभव लगता है