टोकन म्हणजे काय?
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 Charter = 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”)
