कोर्स
Tokenization NLP कार्यों पर काम करते समय एक बुनियादी कार्य है। इसमें टेक्स्ट को छोटे-छोटे हिस्सों में तोड़ना शामिल है, जिन्हें टोकन कहते हैं—ये शब्द, उप-शब्द, या अक्षर हो सकते हैं।
भाषा मॉडलों के प्रदर्शन के लिए कुशल टोकनाइज़ेशन अत्यंत महत्वपूर्ण है, इसलिए यह टेक्स्ट जनरेशन, अनुवाद, और सारांशण जैसे विभिन्न NLP कार्यों में एक आवश्यक चरण है।
Tiktoken OpenAI द्वारा विकसित एक तेज़ और कुशल टोकनाइज़ेशन लाइब्रेरी है। यह टेक्स्ट को टोकन में और टोकन को टेक्स्ट में बदलने का शक्तिशाली समाधान प्रदान करती है। इसकी गति और दक्षता इसे बड़े डेटा सेट और जटिल मॉडलों के साथ काम करने वाले डेवलपर्स और डेटा वैज्ञानिकों के लिए एक उत्कृष्ट विकल्प बनाती है।
यह गाइड डेवलपर्स, डेटा वैज्ञानिकों और उन सभी के लिए तैयार किया गया है जो Tiktoken का उपयोग करना चाहते हैं और जिन्हें उदाहरणों के साथ एक व्यावहारिक मार्गदर्शिका चाहिए।
Tiktoken के साथ शुरुआत
Tiktoken का उपयोग शुरू करने के लिए, हमें इसे अपने Python वातावरण में इंस्टॉल करना होगा (Tiktoken अन्य प्रोग्रामिंग भाषाओं के लिए भी उपलब्ध है)। यह निम्न कमांड से किया जा सकता है:
pip install tiktoken
आप Tiktoken के ओपन-सोर्स Python संस्करण का कोड निम्न GitHub रिपॉजिटरी में देख सकते हैं।
लाइब्रेरी इम्पोर्ट करने के लिए, हम यह चलाते हैं:
import tiktoken
एन्कोडिंग मॉडल
Tiktoken में एन्कोडिंग मॉडल यह नियम तय करते हैं कि टेक्स्ट को टोकन में कैसे तोड़ा जाए। ये मॉडल महत्वपूर्ण हैं क्योंकि ये टेक्स्ट के विभाजन और एन्कोडिंग को परिभाषित करते हैं, जो भाषा-प्रसंस्करण कार्यों की दक्षता और सटीकता को प्रभावित करता है। अलग-अलग OpenAI मॉडल अलग-अलग एन्कोडिंग का उपयोग करते हैं।
Tiktoken तीन एन्कोडिंग मॉडल प्रदान करता है जिन्हें अलग-अलग उपयोग मामलों के लिए अनुकूलित किया गया है:
- o200k_base: नवीनतम GPT-4o-Mini मॉडल के लिए एन्कोडिंग।
- cl100k_base: नए OpenAI मॉडलों, जैसे GPT-4 और GPT-3.5-Turbo, के लिए एन्कोडिंग मॉडल।
- p50k_base: Codex मॉडलों के लिए एन्कोडिंग—ये मॉडल कोड अनुप्रयोगों में उपयोग होते हैं।
- r50k_base: GPT-3 के विभिन्न संस्करणों के लिए पुरानी एन्कोडिंग।
ये सभी मॉडल OpenAI के API के साथ उपलब्ध हैं। ध्यान दें कि API यहां सूचीबद्ध मॉडलों से कहीं अधिक मॉडलों तक पहुंच देता है। सौभाग्य से, Tiktoken लाइब्रेरी यह जांचने का आसान तरीका देती है कि किस मॉडल के साथ कौन-सी एन्कोडिंग का उपयोग करना चाहिए।
उदाहरण के लिए, यदि मुझे जानना हो कि text-embedding-3-small मॉडल कौन-सा एन्कोडिंग मॉडल उपयोग करता है, तो मैं निम्न कमांड चला सकता हूं और उत्तर आउटपुट के रूप में मिल जाएगा:
print(tiktoken.encoding_for_model('text-embedding-3-small'))
हमें आउटपुट के रूप में <Encoding 'cl100k_base'> मिलता है। Tiktoken के साथ सीधे काम करने से पहले, मैं यह उल्लेख करना चाहता हूं कि OpenAI का एक टोकनाइज़ेशन वेब ऐप है जहाँ आप देख सकते हैं कि विभिन्न स्ट्रिंग्स कैसे टोकनाइज़ होती हैं—आप इसे यहाँ एक्सेस कर सकते हैं। एक थर्ड-पार्टी ऑनलाइन टोकनाइज़र Tiktokenizer भी है, जो non-OpenAI मॉडलों को सपोर्ट करता है।
टेक्स्ट को टोकन में एन्कोड करना
Tiktoken का उपयोग करके टेक्स्ट को टोकन में एन्कोड करने के लिए, आपको पहले एक एन्कोडिंग ऑब्जेक्ट प्राप्त करना होगा। इसे आरंभ करने के दो तरीके हैं। पहला, आप टोकनाइज़र के नाम से कर सकते हैं:
encoding = tiktoken.get_encoding("[name of the tokenizer]")
या, आप किसी विशिष्ट मॉडल के लिए एन्कोडर प्राप्त करने हेतु पहले बताई गई encoding_for_model फ़ंक्शन चला सकते हैं:
encoding = tiktoken.encoding_for_model("[name of the model]")
अब हम अपने encoding ऑब्जेक्ट की encode मेथड चलाकर किसी स्ट्रिंग को एन्कोड कर सकते हैं। उदाहरण के लिए, हम “I love DataCamp” स्ट्रिंग को इस प्रकार एन्कोड कर सकते हैं—यहाँ मैं cl100k_base एन्कोडर का उपयोग कर रहा हूँ:
print(encoding.encode("I love DataCamp"))
हमें आउटपुट के रूप में [40, 3021, 2956, 34955] मिलता है।
टोकन को टेक्स्ट में डिकोड करना
टोकन को वापस टेक्स्ट में डिकोड करने के लिए, हम encoding ऑब्जेक्ट पर .decode() मेथड का उपयोग कर सकते हैं।
आइए निम्न टोकन [40, 4048, 264, 2763, 505, 2956, 34955] को डिकोड करें:
print(encoding.decode([40, 4048, 264, 2763, 505, 2956, 34955]))
ये टोकन “I learn a lot from DataCamp.” में डिकोड होते हैं।
व्यावहारिक उपयोग के मामले और सुझाव
एन्कोडिंग और डिकोडिंग के अलावा, दो और उपयोग के मामले ध्यान में आते हैं।
खर्च का अनुमान और प्रबंधन
OpenAI API को रिक्वेस्ट भेजने से पहले टोकन की संख्या जानना आपको लागत प्रभावी ढंग से प्रबंधित करने में मदद कर सकता है। चूँकि OpenAI का बिलिंग संसाधित टोकनों की संख्या पर आधारित है, इसलिए अपने टेक्स्ट को पहले से टोकनाइज़ करना आपके API उपयोग की लागत का अनुमान लगाने देता है। यहाँ Tiktoken का उपयोग करके अपने टेक्स्ट में टोकनों की गिनती कैसे करें:
tokens = encoding.encode(text)
print(len(tokens))
हम बस एरे की लंबाई देखकर पता कर लेते हैं कि हमें कितने टोकन मिले। अग्रिम में टोकनों की संख्या जानकर, आप तय कर सकते हैं कि टेक्स्ट छोटा करना है या अपने उपयोग को बजट में रखने के लिए समायोजित करना है।
आप इस दृष्टिकोण के बारे में अधिक पढ़ सकते हैं इस ट्यूटोरियल में: Estimating The Cost of GPT Using The tiktoken Library in Python।
इनपुट लंबाई का सत्यापन
API से OpenAI मॉडलों का उपयोग करते समय, आप इनपुट और आउटपुट के लिए अधिकतम टोकन संख्या से बंधे होते हैं। इन सीमाओं से अधिक होने पर त्रुटियाँ या कटे-फटे आउटपुट आ सकते हैं। Tiktoken का उपयोग करके, आप इनपुट लंबाई का सत्यापन कर सकते हैं और सुनिश्चित कर सकते हैं कि यह टोकन सीमाओं का पालन करता है।
निष्कर्ष
Tiktoken एक ओपन-सोर्स टोकनाइज़ेशन लाइब्रेरी है जो OpenAI के भाषा मॉडलों के अनुरूप गति और दक्षता प्रदान करती है।
Tiktoken का उपयोग करके टेक्स्ट को एन्कोड और डिकोड करने के तरीके, तथा इसके विभिन्न एन्कोडिंग मॉडलों को समझना, बड़े भाषा मॉडलों के साथ आपके कार्य को काफी बेहतर बना सकता है।
