टोकन क्या हैं?
टोकन टेक्स्ट की वे बुनियादी इकाइयाँ हैं जिन्हें OpenAI मॉडल प्रोसेस करते हैं. भाषा और संदर्भ के आधार पर, ये एक अक्षर जितने छोटे या पूरे शब्द जितने लंबे हो सकते हैं. स्पेस, विराम-चिह्न और शब्दों के हिस्से सभी टोकन की गिनती में योगदान करते हैं. रिस्पॉन्स जनरेट करने से पहले API आपके टेक्स्ट को आंतरिक रूप से इसी तरह सेगमेंट करता है.
अंग्रेज़ी के लिए उपयोगी सामान्य नियम:
1 टोकन ≈ 4 अक्षर
1 टोकन ≈ एक शब्द का ¾
100 टोकन ≈ 75 शब्द
1–2 वाक्य ≈ 30 टोकन
1 पैराग्राफ ≈ 100 टोकन
~1,500 शब्द ≈ 2,048 टोकन
टोकनाइज़ेशन मॉडल और एन्कोडिंग के अनुसार बदलता है. अपने लक्षित मॉडल के लिए सटीक गिनती पाने के लिए Tokenizer टूल या tiktoken.encoding_for_model(model) का उपयोग करें.
उदाहरण
यहाँ वास्तविक दुनिया के कुछ टेक्स्ट नमूने और उनकी अनुमानित टोकन गिनतियाँ दी गई हैं:
Wayne Gretzky का उद्धरण “आप उन 100% शॉट्स को चूक जाते हैं जिन्हें आप नहीं लेते” = 11 टोकन
OpenAI चार्टर = 476 टोकन
अमेरिका की स्वतंत्रता घोषणा = 1,695 टोकन
टोकन की गिनती कैसे की जाती है
जब आप API को टेक्स्ट भेजते हैं:
टेक्स्ट को टोकन में बाँटा जाता है.
मॉडल इन टोकन को प्रोसेस करता है.
रिस्पॉन्स टोकन के क्रम के रूप में जनरेट होता है, फिर वापस टेक्स्ट में बदल दिया जाता है.
टोकन उपयोग को कई श्रेणियों में ट्रैक किया जाता है:
इनपुट टोकन – आपके अनुरोध में मौजूद टोकन.
आउटपुट टोकन – रिस्पॉन्स में जनरेट किए गए टोकन.
कैश्ड टोकन – बातचीत के इतिहास में दोबारा उपयोग किए गए टोकन (अक्सर कम दर पर बिल किए जाते हैं).
रीज़निंग टोकन – कुछ उन्नत मॉडलों में, अंतिम आउटपुट देने से पहले अतिरिक्त “सोचने के चरण” आंतरिक रूप से शामिल किए जाते हैं.
ये गिनतियाँ आपके API रिस्पॉन्स मेटाडेटा में दिखाई देती हैं और बिलिंग व उपयोग ट्रैकिंग के लिए उपयोग होती हैं.
टोकनाइज़ेशन को और समझने के लिए, आप हमारे इंटरैक्टिव Tokenizer टूल का उपयोग कर सकते हैं, जिससे आप टोकन की संख्या निकाल सकते हैं और देख सकते हैं कि टेक्स्ट टोकन में कैसे टूटता है.
वैकल्पिक रूप से, यदि आप टेक्स्ट को प्रोग्रामेटिक रूप से टोकनाइज़ करना चाहते हैं, तो OpenAI मॉडलों के लिए विशेष रूप से उपयोग किए जाने वाले तेज़ BPE टोकनाइज़र के रूप में Tiktoken का उपयोग करें.
टोकन सीमाएँ
प्रत्येक मॉडल की अधिकतम संयुक्त टोकन सीमा (इनपुट + आउटपुट) होती है. मौजूदा उच्च-क्षमता वाले मॉडल संदर्भ में लाखों तक नहीं, बल्कि सैकड़ों हज़ार टोकन तक सपोर्ट करते हैं, हालांकि व्यावहारिक सीमाएँ मॉडल वर्शन और आपके उपयोग स्तर के अनुसार बदल सकती हैं.
यदि आप सीमा से अधिक हो जाते हैं, तो आप:
प्रॉम्प्ट को छोटा कर सकते हैं या फिर से लिख सकते हैं.
बड़े टेक्स्ट को छोटे हिस्सों में बाँट सकते हैं.
इनपुट भेजने से पहले उनका सारांश बना सकते हैं या उन्हें प्री-प्रोसेस कर सकते हैं.
टोकन मूल्य निर्धारण
API उपयोग का मूल्य प्रति टोकन तय होता है, जो मॉडल और इस बात पर निर्भर करता है कि टोकन इनपुट, आउटपुट या कैश्ड हैं. मौजूदा दरों के लिए OpenAI का मूल्य निर्धारण पेज देखें. कुछ रीज़निंग मॉडल आंतरिक रूप से अधिक टोकन इस्तेमाल कर सकते हैं, लेकिन उनका लक्ष्य पूर्ण किए गए प्रत्येक कार्य के लिए आवश्यक टोकन की संख्या घटाकर दक्षता बढ़ाना होता है.
टोकन की खोज
API शब्दों को कॉर्पस डेटा में उनके संदर्भ के अनुसार ट्रीट करता है. मॉडल प्रॉम्प्ट लेते हैं, इनपुट को टोकन की सूची में बदलते हैं, प्रॉम्प्ट को प्रोसेस करते हैं, और अनुमानित टोकन को वापस उन शब्दों में बदलते हैं जिन्हें हम रिस्पॉन्स में देखते हैं.
जो हमें दो समान शब्दों जैसे दिख सकते हैं, वे टेक्स्ट में उनकी संरचना के आधार पर अलग-अलग टोकन में जनरेट हो सकते हैं. देखें कि API टेक्स्ट में संदर्भ के आधार पर शब्द ‘red’ के लिए टोकन मान कैसे जनरेट करता है:
ऊपर पहले उदाहरण में ‘ red’ के लिए टोकन “2266” में साथ में स्पेस शामिल है (ध्यान दें, ये प्रदर्शन के लिए उदाहरण टोकन ID हैं).
‘ Red’ (आरंभिक स्पेस और बड़े अक्षर से शुरू) के लिए टोकन “2296”, छोटे अक्षर वाले ‘ red’ के टोकन “2266” से अलग है.
जब ‘Red’ का उपयोग वाक्य की शुरुआत में किया जाता है, तो जनरेट किए गए टोकन में आरंभिक स्पेस शामिल नहीं होता. टोकन “7738” इस शब्द के पिछले दो उदाहरणों से अलग है.
अवलोकन:
कोई टोकन जितना अधिक संभावित/बार-बार आने वाला होता है, उसे दिया गया टोकन नंबर उतना ही कम होता है:
पीरियड के लिए जनरेट किया गया टोकन सभी 3 वाक्यों में समान (“13”) है. ऐसा इसलिए है क्योंकि संदर्भ के हिसाब से, पीरियड पूरे कॉर्पस डेटा में काफ़ी समान तरीके से उपयोग होता है.
‘red’ के लिए जनरेट किया गया टोकन वाक्य में उसकी जगह के आधार पर बदलता है:
वाक्य के बीच में छोटा अक्षर: ‘ red’ - (टोकन: “2266”)
वाक्य के बीच में बड़ा अक्षर: ‘ Red’ - (टोकन: “2297”)
वाक्य की शुरुआत में बड़ा अक्षर: ‘Red’ - (टोकन: “7738”)
