चैटबॉट से पूछिए कि \"कमल\" में कितने अक्षर हैं। वह इसलिए अटकता है कि उसने कभी कोई अक्षर देखा ही नहीं
🌐 Read this article in English
संक्षेप में: भाषा मॉडल अक्षरों पर नहीं, टोकनों पर चलते हैं, और वह शब्दावली ट्रेनिंग से पहले बार-बार आने वाले बाइट जोड़े मिलाकर बनाई जाती है। यह लेख बताता है कि बाइट-पेयर एन्कोडिंग यह शब्दावली कैसे बनाती है, एक ही टोकन में आया शब्द अपने अक्षरों की बनावट क्यों नहीं ढोता, अंक असमान रूप से कटने पर गणित क्यों डगमगाता है, भारतीय लिपियाँ अंग्रेज़ी से कहीं ज़्यादा टोकनों में क्यों टूटती हैं और उसकी क़ीमत, संदर्भ तथा रफ़्तार में क्या पड़ती है, ग्लिच टोकन क्या होते हैं, और बाइट-स्तर के मॉडल क्यों खोजे जा रहे हैं।
एक ख़ास नाकामी है जिस पर उँगली उठाने में लोगों को मज़ा आता है: जो मॉडल कोई प्रमेय समझा सकता है, चलता हुआ कोड लिख सकता है और क़ानून का अनजान हिस्सा खोलकर रख सकता है, वही पूरे आत्मविश्वास से बता देता है कि किसी आम शब्द में कौन-सा अक्षर कितनी बार आया — और ग़लत बता देता है। यह देखकर लगता है कि कहीं बड़ी कमी है: इतनी क्षमता वाला सिस्टम वह काम कैसे नहीं कर पाता जो छह साल का बच्चा कर लेता है?
ईमानदार जवाब यह है कि यह उस आदमी से अक्षर गिनवाने जैसा है जिसने वह शब्द सिर्फ़ बोला हुआ सुना है, कभी लिखा हुआ देखा ही नहीं। मॉडल अक्षर देख ही नहीं रहा। उसने कभी कोई अक्षर देखा नहीं है। यह क्यों है, इसे समझ लेने पर ऐसे कई बर्ताव एक साथ साफ़ हो जाते हैं जो अलग-अलग पहेली लगते हैं — और रास्ता किसी तमाशे से कहीं ज़्यादा अहम जगह पहुँचता है।
मॉडल तक पहुँचने से पहले ही टेक्स्ट बदल दिया जाता है
भाषा मॉडल अक्षर नहीं खाता। नेटवर्क तक कुछ पहुँचे, उससे पहले टेक्स्ट टोकनों में काटा जाता है और हर टोकन की जगह एक संख्या रख दी जाती है — किसी तय शब्दावली में उसका क्रमांक, जिसमें शायद पचास हज़ार से दो लाख तक प्रविष्टियाँ होती हैं।
वह शब्दावली हाथ से नहीं बनाई जाती। वह एक प्रक्रिया से बनती है, आम तौर पर बाइट-पेयर एन्कोडिंग, जो ट्रेनिंग शुरू होने से पहले ट्रेनिंग डेटा के नमूने पर एक बार चलाई जाती है। अलग-अलग बाइट से शुरू कीजिए। गिनिए कि पूरे संग्रह में कौन-सा अगल-बगल वाला जोड़ा सबसे ज़्यादा बार आता है, और उसे मिलाकर एक नई इकाई बना दीजिए। यही दसियों हज़ार बार दोहराइए। जो अनुक्रम बार-बार आते हैं वे अकेले टोकन में समा जाते हैं; जो कम आते हैं वे कभी नहीं समाते।
नतीजा एक संपीड़न व्यवस्था है, जो उसी टेक्स्ट के हिसाब से ढली है जो उसे दिखाया गया था। आम अंग्रेज़ी शब्द एक-एक टोकन बन जाते हैं। कम आम शब्द दो-तीन टुकड़ों में बँटते हैं। कोई दुर्लभ उपनाम या तकनीकी शब्द आधा दर्जन टुकड़ों में बिखर सकता है। और सबसे अहम बात, ये मेल जमे हुए हैं — शब्दावली मॉडल के कुछ भी सीखने से पहले तय हो जाती है, और मॉडल जो कुछ भी कभी अनुभव करेगा वह इसी से होकर आएगा।
इससे अक्षर अदृश्य क्यों हो जाते हैं
अगर कोई शब्द गिने-चुने अपारदर्शी टोकनों के रूप में आता है, तो मॉडल के पास उनके भीतर के अक्षरों तक कोई सीधी पहुँच नहीं है। टोकन की पहचान एक क्रमांक है, और मॉडल यह संदर्भ से सीखता है कि वह क्रमांक बर्ताव कैसा करता है — उसकी वर्तनी से नहीं।
वर्तनी के बारे में मॉडल जो भी जानता है वह उसने घुमावदार रास्ते से सीखा है — वर्तनी के बारे में लिखे टेक्स्ट से, अलग-अलग संदर्भों में शब्दों के अलग-अलग कटने से, और अपने ट्रेनिंग डेटा में आए संक्षिप्त रूपों तथा शब्द-क्रीड़ा से। यह असली ज्ञान है, और इसीलिए मॉडल अक्सर वर्तनी ठीक भी लिख देते हैं। पर यह ऐसी बनावट के बारे में अनुमान है जिसे वह देख ही नहीं सकता — इसीलिए जिन कामों में सचमुच अक्षर जाँचने पड़ते हैं वहाँ भरोसा ढह जाता है: कोई ख़ास अक्षर गिनना, शब्द उलटना, मात्रा या तुक परखना, या जानबूझकर ग़लत लिखे टेक्स्ट पर काम करना।
इससे वह क्रम भी समझ आता है जो बाहर से बेतुका लगता है। समाकलन टेक्स्ट में भरपूर मौजूद है और आपस में अच्छी तरह जुड़ता है; अक्षर गिनने के लिए वह जानकारी चाहिए जिसे प्रतिनिधित्व ने दरवाज़े पर ही फेंक दिया था। जो काम हमें आसान लगता है, वही वह काम है जिसकी जानकारी शुरू में ही गँवा दी गई।
गणित की जड़ भी यही है
संख्याओं के साथ इसी समस्या का बारीक़ रूप चलता है। टोकनाइज़र के हिसाब से चार अंकों की संख्या एक टोकन हो सकती है, या दो-दो अंकों में बँट सकती है, या तीन ऐसे टुकड़ों में जिनका स्थानीय मान से कोई लेना-देना नहीं। वही अंक अपने पड़ोसियों के हिसाब से बिल्कुल अलग टोकनों के भीतर बैठ सकता है।
स्तंभ के हिसाब से जोड़-गुणा करने के लिए अंकों का स्थान के हिसाब से क़तार में होना ज़रूरी है। जिस मॉडल को बेतरतीब कटी हुई संख्याएँ मिल रही हैं, उसे कुछ करने से पहले वह क़तार दोबारा बनानी पड़ती है — इसीलिए लंबा गुणा उस तरह डगमगाता है जिसका गणितीय क्षमता से कम ही लेना-देना है।
बताने वाली बात इसका इलाज है। कई नए टोकनाइज़र अब अंकों को एक-एक करके अलग कर देते हैं, ठीक इसीलिए कि स्थानीय मान प्रतिनिधित्व तक बचा रहे — और इसी से गणित की सटीकता साफ़ तौर पर सुधर जाती है। जो समस्या बौद्धिक लगती थी, वह ट्रेनिंग से पहले लिया गया एक प्रारूप-संबंधी फ़ैसला निकली।
मॉडल जो कुछ कर सकता है वह इस बात से बँधा है कि टोकनों में बदलते समय क्या बचा। वह बदलाव एक बार, किसी संग्रह से तय होता है, और इंटरफ़ेस पर दिखता ही नहीं।
भारतीय भाषाओं पर लगा टोकन-कर
यहीं यह विषय कौतूहल होना छोड़ देता है, क्योंकि यही मशीनरी ऐसी नापी जा सकने वाली असमानता पैदा करती है जिस पर लगभग कोई बात नहीं करता।
बाइट-पेयर के मेल उसी चीज़ को मिलते हैं जो उस संग्रह में बार-बार आई जिस पर टोकनाइज़र ढाला गया — और वे संग्रह भारी बहुमत से अंग्रेज़ी रहे हैं। इसलिए अंग्रेज़ी को किफ़ायती कवरेज मिलता है, मोटे तौर पर चार अक्षर प्रति टोकन। देवनागरी, तमिल, बांग्ला या तेलुगु में लिखा टेक्स्ट कहीं ज़्यादा टूटता है: उन लिपियों के बाइट अनुक्रम कम आए थे, उन पर कम मेल ख़र्च हुए, और शब्द आम तौर पर कई छोटे टुकड़ों में बँट जाते हैं — सबसे बुरी हालत में लगभग एक टोकन प्रति अक्षर।
इसके नतीजे दार्शनिक नहीं, ठोस हैं:
लागत। व्यावसायिक मॉडलों का दाम प्रति टोकन लगता है। उतनी ही जानकारी वाला अनुच्छेद हिंदी में अंग्रेज़ी से कई गुना महँगा पड़ता है। भारतीय भाषा वाला उत्पाद हर अनुरोध पर यह कर चुकाता है, वही सामग्री देने के लिए।
संदर्भ। कॉन्टेक्स्ट विंडो टोकनों में नापी जाती है, इसलिए जो विंडो लंबा अंग्रेज़ी दस्तावेज़ आराम से रख लेती है वह हिंदी का उसका अंश भर रख पाती है। उसी टेक्स्ट के लिए सिस्टम की कामकाजी याददाश्त छोटी हो जाती है।
रफ़्तार और गुणवत्ता। ज़्यादा टोकन का मतलब है उतना ही जवाब बनाने के लिए ज़्यादा चक्कर, यानी जवाब धीमा। और चूँकि हर टोकन कम अर्थ ढोता है, मॉडल को एक शब्द का प्रतिनिधित्व कई जगहों पर फैलाना पड़ता है, जिससे लागत के ऊपर प्रदर्शन भी गिरता है।
इनमें से कुछ भी मॉडल का कोई निर्णय नहीं है। यह उस हिसाब से विरासत में आया है कि शब्दावली किस टेक्स्ट पर ढाली गई थी। इलाज पता है और बेरौनक़ है — शब्दावली को भरपूर भारतीय भाषा डेटा के साथ बढ़ाना या दोबारा बनाना, जिससे टोकनों की गिनती नापने लायक़ घटती है और आगे की गुणवत्ता सुधरती है — और यह वैसा ढाँचागत काम है जो जितना उपयोगी है उतना सराहा नहीं जाता।
यह और क्या-क्या चुपचाप समझा देता है
ग्लिच टोकन। कुछ शब्द-टुकड़े शब्दावली में इसलिए पहुँच गए कि टोकनाइज़र के नमूने में वे बार-बार आए थे — स्क्रैप किया कचरा, उपयोगकर्ता नाम, फ़ोरम के अंश — पर असली ट्रेनिंग में वे लगभग आए ही नहीं। मॉडल के पास उनका क्रमांक है और सीखा हुआ बर्ताव लगभग शून्य, और ऐसे टुकड़ों से प्रॉम्प्ट देने पर सचमुच विचित्र नतीजे निकल सकते हैं। ये ऐसी प्रविष्टियाँ हैं जिनके पीछे कुछ है ही नहीं।
प्रारूप की संवेदनशीलता। आख़िर में लगी एक ख़ाली जगह, कोई असामान्य बुलेट चिह्न या बीच में आई लाइन-ब्रेक बदल सकती है कि आगे का टेक्स्ट कैसे कटेगा — और इसी से बदल जाता है कि मॉडल को मिला क्या। कई बार प्रॉम्प्ट का अलग बर्ताव पूरी तरह टाइपोग्राफ़ी की वजह से होता है।
दुर्लभ नाम। अनजान नाम ऐसे टुकड़ों में बिखरता है जिनका अलग-अलग कोई ख़ास अर्थ नहीं — और यह उन्हें ख़राब सँभालने की एक वजह है; यह वही तंत्र नहीं है जो बोली पहचानने में नाम बिगाड़ता है, पर नतीजा मिलता-जुलता है।
हो क्या रहा है
तीन दिशाएँ। बेहतर बहुभाषी शब्दावलियाँ, जो जानबूझकर कई भाषाओं पर एक साथ ढाली जाएँ, न कि अंग्रेज़ी पर ढालकर बाद में बढ़ाई जाएँ। काम के हिसाब से चुनाव, जैसे अंकों को ज़बरदस्ती अलग करना। और बाइट-स्तर के मॉडल, जो सीखी हुई शब्दावली पूरी तरह छोड़ देते हैं और लगभग कच्चे बाइट पर चलते हैं — इससे टूटने की सज़ा मिट जाती है, क़ीमत यह कि अनुक्रम लंबे हो जाते हैं। यह दिशा सक्रिय रूप से खोजी जा रही है, ठीक इसलिए कि वह इस पूरी श्रेणी की समस्या को पैबंद लगाने के बजाय घोल ही देगी।
विद्यार्थियों और शोधकर्ताओं के लिए क्यों मायने रखता है
आम सबक़ ख़ास सबक़ से ज़्यादा क़ीमती है: ट्रेनिंग से पहले लिया गया प्रतिनिधित्व का फ़ैसला उस हर चीज़ को बाँध देता है जो सिस्टम आगे कर सकता है — और बाहर से वह दिखता ही नहीं। चैटबॉट इस्तेमाल करने वाला कोई भी शब्दावली नहीं देख सकता। फिर भी वही तय करती है कि मॉडल क्या गिन सकता है, कितना थाम सकता है, और आपको कितने का पड़ेगा।
यहाँ कुछ बनाने वाले के लिए व्यावहारिक रूप यह है: बजट बनाने से पहले अपनी असली भाषा और अपनी असली सामग्री पर प्रति अक्षर टोकन नाप लीजिए। अंग्रेज़ी की टोकन-गिनती मानकर तय की गई क़ीमत हिंदी में बड़े अंतर से ग़लत निकलेगी, और जो संदर्भ-सीमा परीक्षण में उदार लगी थी वह असली इस्तेमाल में तंग पड़ जाएगी। यह नाप लेना आसान है और छोड़ देना महँगा — और यही वह ठोस, बेरौनक़ जाँच है जो चलने वाले सिस्टम को उस सिस्टम से अलग करती है जिसे सिर्फ़ अंग्रेज़ी में परखा गया था।
अक्सर पूछे जाने वाले सवाल
AI मॉडल शब्द के अक्षर क्यों नहीं गिन पाते?
क्योंकि वे अक्षरों पर काम करते ही नहीं। मॉडल तक पहुँचने से पहले टेक्स्ट टोकनों में बदल दिया जाता है — यानी एक या ज़्यादा अक्षरों के टुकड़ों में — इसलिए कोई शब्द ऐसी इकाई के रूप में आ सकता है जिसकी भीतरी वर्तनी मॉडल सीधे देख ही नहीं सकता।
टोकनाइज़ेशन क्या है?
यह टेक्स्ट को किसी तय शब्दावली की इकाइयों की शृंखला में बदलना है, जो आम तौर पर किसी नमूना संग्रह में बार-बार आने वाले अगल-बगल के बाइट जोड़े मिलाते जाकर बनाई जाती है। बार-बार आने वाले अनुक्रम एक टोकन बन जाते हैं और दुर्लभ अनुक्रम टुकड़ों में बँट जाते हैं।
AI मॉडल लंबे गणित में कमज़ोर क्यों हैं?
कुछ हद तक इसलिए कि संख्याएँ असमान रूप से कटती हैं और मॉडल के इनपुट में अंक स्थानीय मान के हिसाब से क़तार में नहीं आते। कई नए टोकनाइज़र अंकों को एक-एक करके अलग कर देते हैं, जिससे गणित की सटीकता साफ़ सुधरती है।
हिंदी में AI इस्तेमाल करना अंग्रेज़ी से महँगा क्यों पड़ता है?
क्योंकि टोकनाइज़र की शब्दावलियाँ मुख्यतः अंग्रेज़ी टेक्स्ट पर ढाली गई थीं, इसलिए उतनी ही सामग्री के लिए भारतीय लिपियाँ कहीं ज़्यादा टोकनों में टूटती हैं। चूँकि दाम और संदर्भ-सीमा दोनों टोकनों में नपते हैं, वही अनुच्छेद ज़्यादा महँगा पड़ता है और विंडो का ज़्यादा हिस्सा खा जाता है।
ग्लिच टोकन क्या है?
यह ऐसा टोकन है जो शब्दावली में इसलिए है कि टोकनाइज़र के नमूने में बार-बार आया था, पर ट्रेनिंग में लगभग आया ही नहीं। मॉडल के पास उसकी प्रविष्टि है और सीखा हुआ अर्थ लगभग शून्य, इसलिए उसे शामिल करने वाले प्रॉम्प्ट अजीब नतीजे दे सकते हैं।