न्यूरल नेटवर्क संख्याओं के साथ काम करते हैं। वे "hello" शब्द को उस तरह नहीं पढ़ सकते जैसे आप पढ़ते हैं। किसी भी भाषा मॉडल द्वारा टेक्स्ट को प्रोसेस करने से पहले, इसे टोकन नामक छोटे संख्यात्मक टुकड़ों में तोड़ना होता है। यह देखने में सरल लगने वाला कदम AI भाषा को कैसे समझता - और गलत समझता - है, इसके लिए गहरे परिणाम रखता है।
सबसे सरल तरीका: हर कैरेक्टर को एक टोकन मानें। "Hello" बन जाता है ['H', 'e', 'l', 'l', 'o'] - पाँच टोकन।
समस्या? शब्द बेहद लंबी सीक्वेंस बन जाते हैं। 500 शब्दों का एक निबंध 2,500+ कैरेक्टर टोकन बन सकता है। चूँकि Transformer मॉडल सीक्वेंस लंबाई के साथ द्विघात रूप से स्केल करते हैं, यह कम्प्यूटेशनल रूप से बहुत भारी है। इससे भी बुरा, अकेले कैरेक्टर्स लगभग कोई अर्थ नहीं रखते - मॉडल को सीखना होगा कि 'c', 'a', 't' मिलकर एक प्यारे जानवर का मतलब रखते हैं।
दूसरी चरम सीमा: हर शब्द एक टोकन। "The cat sat" बन जाता है ['The', 'cat', 'sat'] - संक्षिप्त और अर्थपूर्ण।
लेकिन इससे एक अलग समस्या बनती है: शब्दकोश विस्फोट। अकेली अंग्रेज़ी में सैकड़ों हज़ारों शब्द हैं। गलत वर्तनी, तकनीकी शब्दावली और कोड जोड़ें, तो शब्दकोश असंभालनीय हो जाता है। शब्दकोश में न मिलने वाला कोई भी शब्द अज्ञात [UNK] टोकन बन जाता है - समझ के लिए एक बंद रास्ता।
अगर शब्द-स्तरीय टोकन उपयोग करने वाला कोई मॉडल पहली बार "ChatGPT" का सामना करता है और यह शब्दकोश में नहीं है, तो यह [UNK] बन जाता है। यह नई तकनीक पर चर्चा करने की मॉडल की क्षमता को कैसे प्रभावित कर सकता है?
आधुनिक भाषा मॉडल सबवर्ड टोकनाइज़ेशन का उपयोग करते हैं, जो कैरेक्टर्स और शब्दों के बीच में बैठता है। आम शब्द पूरे रहते हैं ("the", "and"), जबकि दुर्लभ शब्द अर्थपूर्ण टुकड़ों में विभाजित होते हैं ("un" + "believ" + "able")।
इससे हमें एक प्रबंधनीय शब्दकोश (आमतौर पर 32,000–100,000 टोकन) मिलता है जबकि किसी भी टेक्स्ट को संभालने की क्षमता बनी रहती है - यहाँ तक कि वे शब्द भी जो मॉडल ने पहले कभी नहीं देखे।
BPE वह एल्गोरिदम है जो GPT मॉडलों के पीछे है। यह शब्दकोश कैसे बनाता है:
Sign in to join the discussion
{'h', 'e', 'l', 'o', 'w', 'r', 'd', ' '}।"low lower lowest" टेक्स्ट के साथ कार्यात्मक उदाहरण:
| चरण | सबसे अधिक बार आने वाली जोड़ी | नया टोकन | शब्दकोश बढ़ता है | |------|-------------------|-----------|-----------------| | 1 | l + o | lo | ...lo... | | 2 | lo + w | low | ...low... | | 3 | e + r | er | ...er... | | 4 | low + e | lowe | ...lowe... |
पर्याप्त मर्ज के बाद, डेटा से स्वाभाविक रूप से आम शब्द और शब्द खंड उभरते हैं।
BPE मूल रूप से 1994 में एक डेटा कम्प्रेशन एल्गोरिदम के रूप में आविष्कार किया गया था। इसे 2015 में Sennrich et al. द्वारा NLP के लिए पुनर्उपयोग किया गया - विषयों के बीच विचारों के आदान-प्रदान का एक सुंदर उदाहरण।
BERT और संबंधित मॉडलों द्वारा उपयोग किया जाता है। BPE के समान, लेकिन सबसे अधिक बार आने वाली जोड़ी मर्ज करने के बजाय, वह जोड़ी मर्ज करता है जो ट्रेनिंग डेटा की likelihood को अधिकतम करती है। सबवर्ड टुकड़ों के आगे ## लगता है (जैसे, "playing" → ['play', '##ing'])।
इनपुट को एक रॉ बाइट स्ट्रीम के रूप में लेता है - स्पेस द्वारा पहले से टोकनाइज़ेशन नहीं। यह जापानी और चीनी जैसी भाषाओं के लिए महत्वपूर्ण है जो शब्दों के बीच स्पेस का उपयोग नहीं करतीं। GPT-4 और LLaMA SentencePiece-शैली के दृष्टिकोण उपयोग करते हैं।
GPT-4 cl100k_base नामक एक BPE वैरिएंट का उपयोग करता है जिसमें लगभग 100,000 टोकन का शब्दकोश है। कुछ आश्चर्यजनक व्यवहार:
Hello, world - ध्यान दें कि स्पेस जुड़ा हुआ है)।ind, iv, isibility - यह दुर्लभ शब्दों को विभाजित करता है)।def hello(): → हर कीवर्ड और सिंबल आमतौर पर अपना अलग टोकन होता है।भाषा मॉडल पूरे शब्दों के बजाय सबवर्ड टोकनाइज़ेशन क्यों उपयोग करते हैं?
| शब्दकोश आकार | फ़ायदे | नुकसान | |----------------|------|------| | छोटा (8k) | छोटा मॉडल, कम एम्बेडिंग्स | लंबी सीक्वेंस, धीमी प्रोसेसिंग | | बड़ा (100k+) | छोटी सीक्वेंस, समृद्ध टोकन | बड़ी एम्बेडिंग टेबल, अधिक मेमोरी |
सही संतुलन खोजना एक इंजीनियरिंग निर्णय है जो मॉडल की गति, मेमोरी और क्षमता को प्रभावित करता है।
मुख्य रूप से अंग्रेज़ी टेक्स्ट पर ट्रेन किए गए टोकनाइज़र पक्षपाती होते हैं। हिंदी या अरबी में वही वाक्य अपने अंग्रेज़ी समकक्ष से 3–5× अधिक टोकन ले सकता है, क्योंकि वे लिपियाँ ट्रेनिंग डेटा में कम प्रतिनिधित्व वाली थीं। इसका मतलब:
वही वाक्य हिंदी में अंग्रेज़ी की तुलना में अधिक API टोकन क्यों ले सकता है?
GPT-4, Claude, या Gemini की हर API कॉल प्रति टोकन बिल की जाती है। टोकनाइज़ेशन समझने से आपको मदद मिलती है:
अंग्रेज़ी के लिए एक मोटा अनुमान: 1 टोकन ≈ ¾ शब्द, या लगभग 4 कैरेक्टर।
1,000 शब्दों का एक अंग्रेज़ी निबंध लगभग कितने टोकन का होता है?
OpenAI की ओपन-सोर्स tiktoken लाइब्रेरी आपको GPT-4 जैसे ही एल्गोरिदम से स्थानीय रूप से टेक्स्ट टोकनाइज़ करने देती है। अपने खुद के लेखन पर इसे आज़माएँ और देखें कि आपके संदेश वास्तव में कितने टोकन खर्च करते हैं।
अगर आप वेल्श जैसी कम-संसाधन भाषा के लिए एक भाषा मॉडल बना रहे होते, तो निष्पक्ष और कुशल एन्कोडिंग सुनिश्चित करने के लिए टोकनाइज़ेशन के प्रति कैसा दृष्टिकोण अपनाते?