টোকেন কী?
টোকেন হলো টেক্সটের গঠনমূলক একক, যা OpenAI মডেলগুলো প্রক্রিয়া করে. ভাষা ও প্রেক্ষাপটের ওপর নির্ভর করে এগুলো একক চরিত্রের মতো ছোট বা একটি পূর্ণ শব্দের মতো বড় হতে পারে. স্পেস, যতিচিহ্ন এবং শব্দের অংশ—সবই টোকেন গণনায় যোগ হয়. রেসপন্স তৈরি করার আগে API অভ্যন্তরীণভাবে এভাবেই আপনার টেক্সটকে ভাগ করে.
ইংরেজির জন্য কিছু সহায়ক আনুমানিক নিয়ম:
১ টোকেন ≈ ৪টি চরিত্র
১ টোকেন ≈ একটি শব্দের ¾ অংশ
১০০ টোকেন ≈ ৭৫টি শব্দ
১–২টি বাক্য ≈ ৩০ টোকেন
১ অনুচ্ছেদ ≈ ১০০ টোকেন
~১,৫০০ শব্দ ≈ ২,০৪৮ টোকেন
মডেল ও এনকোডিং অনুযায়ী টোকেনাইজেশন ভিন্ন হয়. আপনার লক্ষ্য মডেলের সঠিক গণনা পেতে টোকেনাইজার টুল বা tiktoken.encoding_for_model(model) ব্যবহার করুন.
উদাহরণ
এখানে বাস্তব জগতের কিছু টেক্সট নমুনা এবং তাদের আনুমানিক টোকেন গণনা দেওয়া হলো:
ওয়েন গ্রেটস্কির উক্তি “আপনি যে শট নেন না, তার ১০০% মিস করেন” = ১১ টোকেন
OpenAI চার্টার = ৪৭৬ টোকেন
যুক্তরাষ্ট্রের স্বাধীনতার ঘোষণা = ১,৬৯৫ টোকেন
টোকেন গণনা কীভাবে হিসাব করা হয়
আপনি যখন API-তে টেক্সট পাঠান:
টেক্সটটি টোকেনে ভাগ করা হয়.
মডেল এই টোকেনগুলো প্রক্রিয়া করে.
রেসপন্সটি টোকেনের একটি ক্রম হিসেবে তৈরি হয়, তারপর আবার টেক্সটে রূপান্তরিত হয়.
টোকেন ব্যবহারের হিসাব কয়েকটি শ্রেণিতে ট্র্যাক করা হয়:
ইনপুট টোকেন – আপনার রিকোয়েস্টের টোকেন.
আউটপুট টোকেন – রেসপন্সে তৈরি হওয়া টোকেন.
ক্যাশ করা টোকেন – কথোপকথনের ইতিহাসে পুনঃব্যবহৃত টোকেন (প্রায়ই কম রেটে বিল করা হয়).
রিজনিং টোকেন – কিছু উন্নত মডেলে চূড়ান্ত আউটপুট তৈরির আগে অতিরিক্ত “চিন্তার ধাপ” অভ্যন্তরীণভাবে অন্তর্ভুক্ত থাকে.
এই গণনাগুলো আপনার API রেসপন্সের মেটাডাটায় দেখা যায় এবং বিলিং ও ব্যবহার ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়.
টোকেনাইজেশন আরও অন্বেষণ করতে, আপনি আমাদের ইন্টারঅ্যাকটিভ টোকেনাইজার টুল ব্যবহার করতে পারেন, যা দিয়ে টোকেনের সংখ্যা গণনা করা যায় এবং টেক্সট কীভাবে টোকেনে ভাঙে তা দেখা যায়.
বিকল্পভাবে, আপনি যদি প্রোগ্রামগতভাবে টেক্সট টোকেনাইজ করতে চান, তাহলে OpenAI মডেলের জন্য বিশেষভাবে ব্যবহৃত দ্রুত BPE টোকেনাইজার হিসেবে Tiktoken ব্যবহার করুন.
টোকেন সীমা
প্রতিটি মডেলের সর্বোচ্চ সম্মিলিত টোকেন সীমা থাকে (ইনপুট + আউটপুট). বর্তমান উচ্চ-ক্ষমতার মডেলগুলো প্রেক্ষাপটে কয়েক লক্ষ পর্যন্ত টোকেন সমর্থন করে, তবে মডেল সংস্করণ ও আপনার ব্যবহার স্তর অনুযায়ী বাস্তব সীমা ভিন্ন হতে পারে.
আপনি সীমা ছাড়িয়ে গেলে, আপনি করতে পারেন:
প্রম্পট সংক্ষিপ্ত করুন বা অন্যভাবে লিখুন.
বড় টেক্সটকে ছোট ছোট অংশে ভাগ করুন.
ইনপুট পাঠানোর আগে সেগুলো সারাংশ করুন বা প্রি-প্রসেস করুন.
টোকেন মূল্য নির্ধারণ
API ব্যবহারের মূল্য প্রতি টোকেন হিসেবে নির্ধারিত হয় এবং মডেল ও টোকেন ইনপুট, আউটপুট বা ক্যাশ করা কিনা তার ওপর নির্ভর করে. বর্তমান রেটের জন্য OpenAI-এর মূল্য নির্ধারণ পৃষ্ঠা দেখুন. কিছু রিজনিং মডেল অভ্যন্তরীণভাবে বেশি টোকেন ব্যবহার করতে পারে, তবে সম্পন্ন কাজপ্রতি প্রয়োজনীয় টোকেনের সংখ্যা কমিয়ে দক্ষতা বাড়ানোর লক্ষ্য রাখে.
টোকেন অন্বেষণ
API কর্পাস ডেটার প্রেক্ষাপট অনুযায়ী শব্দগুলোকে বিবেচনা করে. মডেলগুলো প্রম্পট নেয়, ইনপুটকে টোকেনের তালিকায় রূপান্তর করে, প্রম্পট প্রক্রিয়া করে এবং পূর্বাভাসিত টোকেনগুলোকে আবার রেসপন্সে দেখা শব্দে রূপান্তর করে.
আমাদের কাছে দুটি একই শব্দ মনে হলেও, টেক্সটের ভেতরে সেগুলো কীভাবে গঠিত তার ওপর নির্ভর করে সেগুলো ভিন্ন টোকেনে তৈরি হতে পারে. টেক্সটের ভেতরে প্রেক্ষাপটের ভিত্তিতে API কীভাবে ‘red’ শব্দটির জন্য টোকেন মান তৈরি করে তা বিবেচনা করুন:
উপরের প্রথম উদাহরণে ‘ red’-এর জন্য টোকেন “2266”-এ একটি পরবর্তী স্পেস অন্তর্ভুক্ত আছে (নোট: এগুলো প্রদর্শনের উদ্দেশ্যে উদাহরণ টোকেন ID).
‘ Red’-এর জন্য টোকেন “2296” (শুরুতে একটি স্পেসসহ এবং বড় হাতের অক্ষর দিয়ে শুরু) ছোট হাতের অক্ষরসহ ‘ red’-এর জন্য টোকেন “2266” থেকে ভিন্ন.
বাক্যের শুরুতে ‘Red’ ব্যবহার করা হলে, তৈরি হওয়া টোকেনে শুরুর স্পেস থাকে না. টোকেন “7738” শব্দটির আগের দুটি উদাহরণ থেকে ভিন্ন.
পর্যবেক্ষণ:
কোনো টোকেন যত বেশি সম্ভাব্য/ঘনঘন হয়, তাকে বরাদ্দ করা টোকেন নম্বর তত কম হয়:
পিরিয়ডের জন্য তৈরি টোকেনটি ৩টি বাক্যেই একই (“13”). এর কারণ, প্রেক্ষাপটগতভাবে, পিরিয়ডটি কর্পাস ডেটাজুড়ে বেশ একইভাবে ব্যবহৃত হয়.
বাক্যের মধ্যে অবস্থানের ওপর নির্ভর করে ‘red’-এর জন্য তৈরি টোকেন ভিন্ন হয়:
বাক্যের মাঝখানে ছোট হাতের অক্ষর: ‘ red’ - (টোকেন: “2266”)
বাক্যের মাঝখানে বড় হাতের অক্ষর: ‘ Red’ - (টোকেন: “2297”)
বাক্যের শুরুতে বড় হাতের অক্ষর: ‘Red’ - (টোকেন: “7738”)
