अगला शब्द, कोई निश्चितता कभी नहीं
मॉडल को लिखने से पहले पता नहीं होता कि वह क्या लिखेगा। हर शब्द पर वह हर मुमकिन उम्मीदवार के लिए एक संभावना निकालता है, फिर उसमें दाँव लगाता है। यह पन्ना वही दाँव आपकी आँखों के सामने चलाता है, सेटिंग दर सेटिंग: तापमान, टॉप-k और टॉप-p।
सब कुछ आपके ब्राउज़र में हिसाब होता है। कॉर्पस पन्ने के साथ लोड होता है, मॉडल इसी डिवाइस पर उस पर सीखता है, और आप जो कुछ सेट करते हैं, वह आपकी मशीन से बाहर नहीं जाता। अपने ब्राउज़र का Network टैब खोलिए और डेमो चलाइए: कोई रिक्वेस्ट बाहर नहीं जाती।
एक वितरण निकालना, फिर उसमें दाँव लगाना
कोई भाषा मॉडल यह नहीं जानता कि वह क्या लिखेगा, जब तक वह उसे लिख न दे। हर शब्द पर वह हर मुमकिन उम्मीदवार के लिए एक संभावना निकालता है: एक पूरी सूची, कोई एक तय जवाब कभी नहीं। संभावनाओं की यह सूची एक वितरण है। जो चुनाव जैसा दिखता है, वह इसके बाद आता है: इस वितरण में एक दाँव, जैसे किसी तुली हुई गड्डी से एक पत्ता निकाला जाए।
इसीलिए एक ही सवाल दो बार पूछने पर हर बार वही जवाब ज़रूरी नहीं मिलता। जब तक वितरण में कई मुमकिन उम्मीदवार बचे हैं, दाँव उनमें से एक चुनता है, और हर बार वही नहीं। यहाँ दाँव एक दिखते हुए और बदले जा सकने वाले सीड पर चलता है, ताकि नतीजा दोहराया जा सके: एक ही सीड हमेशा एक ही शब्द देता है। कोई आम सेवा अपना सीड छिपा लेती है, जिससे यह लगता है कि संयोग का कोई मूल ही नहीं।
इस पन्ने का मॉडल Le Tour du monde en quatre-vingts jours (“अस्सी दिन में दुनिया की सैर”) पर सीखता है, जो Jules Verne का 1873 में प्रकाशित और सार्वजनिक डोमेन में मौजूद उपन्यास है। वह इस टेक्स्ट में पहले मिली एक से तीन शब्दों की हर कड़ी के लिए गिनता है कि उसके बाद कौन सा शब्द आया और कितनी बार। इस कॉर्पस पर वह इस वक़्त … टोकन जानता है, जिनकी शब्दावली … अलग-अलग शब्दों की है, और जो … एक-शब्द संदर्भों, … दो-शब्द संदर्भों और … तीन-शब्द संदर्भों में बँटे हैं। इस डेमो के लिए प्रतिलिपि थोड़ी सुधारी गई है: एपोस्ट्रोफ़ टाइपोग्राफ़िक कर दिए गए, प्रतिलिपि के डैश और उद्धरण-चिह्न हटा दिए गए, इटैलिक के निशान हटा दिए गए, अध्याय-शीर्षक और विषय-सूची अलग रख दी गई, और चालीस अक्षरों से छोटे अनुच्छेद हटा दिए गए।
यह डेमो टेक्स्ट को पूरे शब्दों में बाँटता है, ताकि वह पढ़ा जा सके। कोई असली मॉडल शब्द से छोटी इकाइयों में बाँटता है, यानी ऐसे टोकन में जो एक बिलकुल दूसरे हिसाब से निकलते हैं: देखिए अध्याय शब्द, टुकड़ों में। वितरण और दाँव की मशीनरी, वह दोनों हालात में एक ही रहती है।
डेमो क्या दिखाता है
एक कदम: वही फ़ॉर्मूला, और नतीजा आपकी आँखों के सामने बदलता हुआ
तापमान का स्लाइडर खिसकाइए, और तालिका के कॉलम तुरंत हिलते हैं: लघुगणक नहीं बदलता, तापमान से उसका भाग बदल जाता है, और उसके साथ “सॉफ़्टमैक्स के बाद” वाला कॉलम भी। कोई टॉप-k या टॉप-p चालू कीजिए, और अब तक रखे गए कुछ उम्मीदवार “हटाया गया” पर चले जाते हैं, पूरे शब्दों में, सिर्फ़ अपनी पट्टी के फीके पड़ने से नहीं। इसमें से कुछ भी न कॉर्पस बदलता है, न गिनतियाँ: बदलता है सिर्फ़ उसी वितरण को पढ़ने का ढंग।
कई कदम: एक टेक्स्ट जो दोहराता है, या जो बिखर जाता है
शून्य के पास वाले तापमान पर दाँव लगभग हमेशा सबसे संभावित उम्मीदवार रखता है: बनाया गया टेक्स्ट जल्दी एक चक्कर में फँस जाता है, वही कुछ शब्द उसी क्रम में लौटते रहते हैं। दो के पास वाले तापमान पर दुर्लभ उम्मीदवार लगभग उतने ही संभावित हो जाते हैं जितने बार-बार आने वाले: टेक्स्ट टुकड़ों में बिखर जाता है, वाक्य दर वाक्य आस-पास से संभावित, पर पूरे का कोई सूत्र नहीं। एक ही शुरुआती टुकड़े और एक ही सीड पर दोनों सेटिंग आज़माइए, दोनों असर एक के बाद एक देखने के लिए।
तरीका
“टेक्स्ट बनाइए” बटन क्या करता है, एक बार में एक कदम। “एक कदम” वाले हिस्से की तालिका ये ही कदम चालू शुरुआती टुकड़े के असली उम्मीदवारों पर दिखाती है: उसे एक कॉलम के बाद दूसरा पढ़ लेना ही काफ़ी है, ताकि उसे हाथ से, पाँच उम्मीदवारों और एक कैलकुलेटर से दोहराया जा सके।
- गिनिए। चालू संदर्भ के लिए, पूरे कॉर्पस में वह हर शब्द दर्ज
कीजिए जो उसके बाद आया, और कितनी बार। किसी उम्मीदवार की शुरुआती संभावना उसकी
गिनती है, जिसे इस संदर्भ के सारे उम्मीदवारों की गिनतियों के जोड़ से भाग दिया
जाता है:
p = गिनती ÷ कुल। - लघुगणक पर जाइए। हर संभावना बन जाती है
logit = log(p), जहाँlogप्राकृतिक लघुगणक है, यानी किसी वैज्ञानिक कैलकुलेटर की “ln” की। कोई logit हमेशा ऋणात्मक या शून्य होता है, क्योंकि p शून्य और एक के बीच रहता है। - कोई झुकाव जोड़िए, अगर हो। एक वैकल्पिक झुकाव बाकी सब से पहले
logit में जुड़ता है:
झुकाव वाला logit = logit + झुकाव। यह पन्ना कोई झुकाव नहीं जोड़ता; अध्याय वॉटरमार्क ठीक इसी कदम पर एक जोड़ता है। - तापमान से भाग दीजिए। हर झुकाव वाला logit तापमान T से भाग
दिया जाता है:
z = झुकाव वाला logit ÷ T। छोटा तापमान सबसे अच्छे उम्मीदवार और बाकियों के बीच का फ़र्क़ बढ़ा देता है; बड़ा तापमान उसे मिटा देता है। - सॉफ़्टमैक्स पर जाइए। z संभावनाओं में बदल जाते हैं जिनका जोड़
एक होता है:
संभावना = exp(z) ÷ सारे उम्मीदवारों के exp(z) का जोड़। तापमान शून्य होने पर यह कदम और अगला छोड़ दिए जाते हैं: सबसे ऊँचे logit वाला उम्मीदवार सीधे रख लिया जाता है, बिना दाँव के। - टॉप-k पर काटिए। उम्मीदवार सबसे संभावित से सबसे कम संभावित तक क्रम में लगाए जाते हैं। अगर k मान वाला कोई टॉप-k चालू है, तो सिर्फ़ पहले k मुक़ाबले में रहते हैं; बाकी हटा दिए जाते हैं।
- टॉप-p पर काटिए। अगर कोई टॉप-p सीमा चालू है, तो मॉडल इसी सूची का वह सबसे छोटा शुरुआती हिस्सा रखता है जिसकी जुड़ी हुई संभावनाएँ उस सीमा तक पहुँच जाती हैं; बाकी हटा दिया जाता है, वह भी जो किसी टॉप-k कटाई ने पहले जाने दिया था।
- दोबारा सामान्य कीजिए। बचे उम्मीदवारों की संभावनाएँ अपने ही जोड़ से भाग दी जाती हैं, ताकि कुल एक पर लौट आए: यही हर एक की आखिरी संभावना है।
- दाँव लगाइए। शून्य से लेकर एक तक (शून्य शामिल, एक बाहर) लिया गया एक अंक आखिरी संभावनाओं की इस सूची में गिरता है, जो एक के बाद एक जोड़कर रखी गई है: जिस उम्मीदवार के अंतराल में यह अंक आता है, वही रखा गया टोकन है। संदर्भ एक शब्द लंबा हो जाता है, और अगले शब्द के लिए पहला कदम फिर शुरू होता है।
कोई असली मॉडल क्या जोड़ता है, और क्या नहीं हटाता
यह डेमो एक शर्त पर ईमानदार है: यह बता देना कि तुलना कहाँ रुक जाती है।
जो किसी बड़े मॉडल में भी सच रहता है
- वह अगली इकाई पर एक संभावना-वितरण लौटाता है, कोई निश्चितता कभी नहीं।
- वह इस वितरण में दाँव लगाता है: नतीजा एक संयोग पर टिका है, जो यहाँ एक सीड से दिखता और दोहराया जा सकने वाला बना दिया गया है।
- तापमान, टॉप-k और टॉप-p उसके वितरण पर उसी फ़ॉर्मूले से, उन्हीं कदमों पर असर डालते हैं।
- वह हमेशा जवाब देता है: कोई चुप्पी कभी नहीं, अपनी ही पहल से कहा गया कोई “मुझे नहीं पता” कभी नहीं।
यह खिलौना मॉडल क्या नहीं करता
- ग्रेडिएंट डिसेंट से कोई सीखना नहीं: यह मॉडल गिनता है, वह कोई वेट नहीं सधाता।
- शब्दों की कोई एम्बेडिंग नहीं: हर शब्द एक कच्चा लेबल है, अर्थ की जगह में कोई बिंदु नहीं।
- कोई अटेंशन नहीं: ध्यान में लिया गया संदर्भ तीन शब्दों पर रुक जाता है, और वे हमेशा सबसे ताज़ा होते हैं।
- कोई अर्थ नहीं, कोई सामान्यीकरण नहीं: माँगे गए क्रम पर कभी न देखा गया संदर्भ मॉडल को पीछे लौटा देता है, अंदाज़ा लगाने कभी नहीं।
शोध ने क्या नापा है
तीन प्रकाशित नतीजे उस बात की जगह तय करते हैं जो यह डेमो महसूस कराता है।
हमेशा सबसे संभावित शब्द चुनने से टेक्स्ट सपाट और दोहराव वाला बनता है; न्यूक्लियस सैंपलिंग, जो वितरण का कम भरोसेमंद हिस्सा काट देती है (इस पन्ने का टॉप-p), ज़्यादा स्वाभाविक टेक्स्ट बनाती है। सॉफ़्टमैक्स फ़ॉर्मूले में तापमान का पैरामीटर मॉडल के निकाले संभावना-वितरण को नरम या सख़्त कर देता है: ज़्यादा तापमान चुनावों को कम पूर्वानुमेय बनाता है और उन्हें कई मुमकिन शब्दों के बीच ज़्यादा बराबरी से बाँट देता है। टॉप-k सैंपलिंग, जो हर कदम पर दाँव को सबसे संभावित k शब्दों तक सीमित करती है, हमेशा एक ही तय चुनाव से ज़्यादा विविध टेक्स्ट बनाने के लिए इस्तेमाल होने वाला तरीका है।
संभावित टेक्स्ट सच्चा टेक्स्ट क्यों नहीं होता
इस पन्ने के मॉडल ने 1873 का एक उपन्यास ही पढ़ा है। उससे ऐसे वाक्य का आगे का हिस्सा माँगिए जो इस उपन्यास जैसा है, और वह एक असली संदर्भ के साथ, सही क्रम पर जवाब देता है। उससे ऐसे वाक्य का आगे का हिस्सा माँगिए जिसका इस टेक्स्ट में कोई जोड़ नहीं, और वह छोटे संदर्भ पर लौट जाता है, यहाँ तक कि पूरे कॉर्पस का सबसे बार-बार आने वाला शब्द लौटा देता है: वह फिर भी जवाब देता है, उसी दिखते हुए आत्मविश्वास के साथ, और कभी नहीं बताता कि वह अंदाज़ा लगा रहा है।
कोई संभावित जवाब वह जवाब है जो अपनी बनावट से उस चीज़ जैसा लगता है जो कॉर्पस में है। हिसाब में कुछ भी यह नहीं जाँचता कि वह किसी तथ्य से मेल खाता है या नहीं। कोई बड़ा मॉडल, जो एक ही उपन्यास के बजाय अरबों शब्दों पर सीखा है, कम बार और कम दिखते हुए ढंग से पीछे लौटता है: यही अध्याय वह क्यों गढ़ लेता है का विषय है।
आगे पढ़ने के लिए
टेक्स्ट को शब्द से छोटी इकाइयों में बाँटना अध्याय शब्द, टुकड़ों में में लिया गया है। जिन हालात में मॉडल जवाब देने के बजाय गढ़ लेता है, वे अध्याय वह क्यों गढ़ लेता है में लिए गए हैं। साइट के सारे डेमो डेमो वाले पन्ने पर एक जगह हैं, और कोर्स की सूची समझें वाले पन्ने पर है।
स्रोत
- The Curious Case of Neural Text Degeneration Ari Holtzman, Jan Buys, Li Du, Maxwell Forbes, Yejin Choi, 2020। स्थापित करता है कि हमेशा सबसे संभावित शब्द चुनने से टेक्स्ट सपाट और दोहराव वाला बनता है, और न्यूक्लियस सैंपलिंग (टॉप-p), जो वितरण का कम भरोसेमंद हिस्सा काट देती है, ज़्यादा स्वाभाविक टेक्स्ट बनाती है।
- Distilling the Knowledge in a Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean, 2015। स्थापित करता है कि सॉफ़्टमैक्स फ़ॉर्मूले में तापमान का पैरामीटर मॉडल के निकाले संभावना-वितरण को नरम या सख़्त कर देता है, और ज़्यादा तापमान चुनावों को कम पूर्वानुमेय तथा कई मुमकिन शब्दों के बीच ज़्यादा बराबरी से बँटा हुआ बना देता है।
- Hierarchical Neural Story Generation Angela Fan, Mike Lewis, Yann Dauphin, 2018। स्थापित करता है कि टॉप-k सैंपलिंग, जो हर कदम पर दाँव को सबसे संभावित k शब्दों तक सीमित करती है, हमेशा एक ही तय चुनाव से ज़्यादा विविध टेक्स्ट बनाने के लिए इस्तेमाल होने वाला तरीका है।
- Le Tour du monde en quatre-vingts jours Jules Verne, J. Hetzel et Compagnie, 1873, सार्वजनिक डोमेन। प्रतिलिपि: Wikisource। इस डेमो के लिए थोड़ी सुधारी गई: एपोस्ट्रोफ़ टाइपोग्राफ़िक कर दिए गए, प्रतिलिपि के डैश और उद्धरण-चिह्न हटा दिए गए, इटैलिक के निशान हटा दिए गए, अध्याय-शीर्षक और विषय-सूची अलग रख दी गई, और चालीस अक्षरों से छोटे अनुच्छेद हटा दिए गए।