AI tokens ও শব্দ: খরচের আগে সম্পূর্ণ request মাপুন
Token নির্দিষ্ট tokenizer-এর তৈরি একক, নির্দিষ্ট সংখ্যক শব্দ বা character নয়। Exact text count-এ matching tokenizer ও settings নিন। পুরো API request-এ message structure ও supported tools ধরুন, তারপর provider-এর returned usage-এর সঙ্গে estimate মেলান।
এই নির্দেশিকায়
লেখার দৈর্ঘ্য ঠিক করতে word counter কাজে লাগে, কিন্তু AI request context-এ ধরবে বা খরচ কত তা নির্ভরযোগ্যভাবে জানায় না। একই লেখা আলাদা tokenizer-এ আলাদা ভাগ হয়; একটি message-এ paste করা text-এর চেয়েও request-এ বেশি কিছু থাকে।
এই workflow raw text, সম্পূর্ণ request ও billed usage আলাদা রাখে। Local counting example এবং মাপা ফল দিয়ে পূরণের worksheet আছে। না-চালানো model-এর exact count কল্পনা করা হয়নি; ফল বুঝতে tokenizer-এর পরিচয় ও settings-ও দরকার।
শব্দ, Unicode characters ও tokens আলাদা করুন
দেখা একটি শব্দ এক token, কয়েকটি subword বা punctuation ও space-সহ মিশ্র অংশ হতে পারে। Hugging Face word, character ও subword পদ্ধতি বোঝায়। Language, spelling, code, whitespace ও vocabulary বিভাজন বদলাতে পারে।
Unicode character count অন্য প্রশ্ন। একটি character একাধিক code unit বা byte নিতে পারে, একটি visible symbol-এ কয়েকটি code point থাকতে পারে। কোনোটিরই model tokens-এ সার্বজনীন conversion নেই। Characters-per-token অনুপাত নির্দিষ্ট sample-এর rough heuristic, সব ভাষার নিয়ম নয়।
| কাজের ধরন | উপযুক্ত মাপ | সীমাবদ্ধতা |
|---|---|---|
| লেখার দৈর্ঘ্য দেখা | শব্দ বা Unicode characters | model tokens নির্ধারণ করে না |
| এক tokenizer-এ raw file মাপা | সেই tokenizer ও settings-এর token IDs | chat formatting ও overhead বাদ পড়তে পারে |
| Structured API request অনুমান | provider-supported count বা exact formatting | শেষ usage-এর সঙ্গে পার্থক্য হতে পারে |
| Billed usage মিলানো | actual usage fields ও বর্তমান billing definitions | অন্য provider-এর request estimate নয় |
পরিচিত tokenizer দিয়ে local sample গুনুন
Hugging Face tokenizers format-এর জন্য সঠিক local tokenizer.json নিয়ে UTF-8 file encode করুন। Model/tokenizer ID, file revision, package version ও special tokens অন্তর্ভুক্ত কি না লিখুন। উদাহরণ tokenizers 0.23.2 API-এর, padding/truncation বন্ধ করে এবং special tokens না যোগ করে raw text গোনে।
Tokenizer file intended model-এর official distribution থেকে নিন। উদাহরণ model নামায় না, server-এ text পাঠায় না এবং hosted chat API-এর পুরো request format বানায় না। মাপের নির্দিষ্ট প্রশ্নে settings মিললেই count উপকারী; স্থানীয় সফল run নিজে থেকে billing count নয়।
# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer
# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.Context budget-এ পুরো request ধরুন
Chat request-এ system instructions, conversation history, retrieved passages, tool definitions ও formatting থাকে। Chat template roles এবং message boundaries ঘিরে control tokens দিতে পারে। শুধু শেষ paragraph গুনলে input কম ধরা হবে।
Hosted provider-এর documented counting facility আপনার input types সমর্থন করলে ব্যবহার করুন। Claude-এর নথিতে structured input counting এবং actual usage reporting দরকার হয় এমন ক্ষেত্র আছে। Tools, images ও documents-এ provider-এর ঘোষিত estimation limits মানুন।
অজানা online counter-এ credentials বা sensitive customer text দেবেন না। Local tokenizer raw text নিজ যন্ত্রে গোনে, provider endpoint-এ supplied request পাঠানো হয়। কোন তথ্য কোথায় যাবে সেই উপযুক্ত workflow আগে ঠিক করুন, তারপর মাপুন।
পুনরাবৃত্তিযোগ্য comparison worksheet রাখুন
Support message, code snippet, table ও application-এর প্রতিটি ভাষার passage-এর মতো প্রতিনিধিত্বকারী samples নিন। Exact bytes রাখুন যাতে runs-এর মধ্যে line endings, punctuation বা whitespace বদলে না যায়। বদলানো input-এর পার্থক্যকে tokenizer-এর ফল বলা যায় না।
প্রতি sample-এ tokenizer identity/revision, special-token setting, raw count এবং সম্ভব হলে full-request estimate লিখুন। অমাপা মান guessed ratio দিয়ে না ভরে ফাঁকা রাখুন। ভিন্ন count এই samples-এর পর্যবেক্ষণ, language quality-এর ranking নয়।
| নমুনা | Tokenizer ও revision | Raw text-এর গণনা | পুরো request-এর count বা estimate |
|---|---|---|---|
| সাপোর্টের বার্তা | সঠিক identifier লিখুন | স্থানীয়ভাবে মাপুন | সমর্থিত request format-এ মাপুন |
| Code-এর অংশ | সঠিক identifier লিখুন | স্থানীয়ভাবে মাপুন | সমর্থিত request format-এ মাপুন |
| অন্য ভাষার passage | সঠিক identifier লিখুন | স্থানীয়ভাবে মাপুন | সমর্থিত request format-এ মাপুন |
Input বাড়ানোর আগে output-এর জায়গা রাখুন
কাল্পনিক পরিকল্পনায় model-এর request type-এ combined context 32,000 tokens ধরুন। Output 4,000 ও planning buffer 2,000 রাখলে measured input 26,000 । Instructions, history ও tools 8,000 নিলে retrieved content-এর জন্য 18,000 থাকে।
এগুলো স্পষ্ট hypothetical values, বর্তমান কোনো model specification নয়। Context, output, reasoning ও tool usage provider ভিন্নভাবে সংজ্ঞায়িত করতে পারে। Current contract দেখে নিজের পরিমাণ context-budget calculator-এ দিন। সীমায় ধরে যাওয়া মানে প্রতিটি input passage কার্যকর নয়।
Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget
26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved contentEstimate, actual usage ও cost মিলিয়ে দেখুন
ছোট real test-এর returned usage fields রেখে একই request-এর estimate-এর সঙ্গে তুলনা করুন। Documented cached input, output, reasoning এবং অন্য billable categories আলাদা রাখুন। Tool definition বাদ পড়লে word-token ratio বদলিয়ে তা ঠিক হবে না।
Token-cost calculator-এ actual counts ও আপনার দেওয়া current prices নিন। Input/output আলাদা এবং প্রতি million tokens-এর খরচের মতো unit বজায় রাখুন। ব্যবহারযোগ্য cost worksheet মাপা usage ও stated rates দিয়ে পুনরায় হিসাব করা যায়; universal word conversion-এর ওপর দাঁড়ায় না।
সাধারণ প্রশ্ন
এক token কি সব সময় চার characters?
না। কিছু text ও tokenizer-এ এটি আনুমানিক নিয়ম হতে পারে। Language, code, punctuation, whitespace ও tokenizer design ফল বদলায়।
Local count ও API usage আলাদা কেন?
Request-এ formatting, instructions, history, tools ও raw sample-এ নেই এমন input types থাকতে পারে। Tokenizer ও special-token settings-ও আলাদা হতে পারে। একই পুরো request ও provider definitions মিলান।
এই site-এর word counter exact model tokens জানায়?
না। Words ও Unicode characters-এর মতো text measurements দেয়। Matching tokenizer বা supported provider counter নিন, পরে measured inputs cost ও context tools-এ দিন।
উৎস ও সংজ্ঞা
- Hugging Face LLM Course: Tokenizers
- Claude Platform: Token counting
- Hugging Face tokenizers 0.23.2: published Python package and API examples
- Hugging Face Transformers: Chat templates
পদ্ধতি যাচাই করা হয়েছে: