رموز الذكاء الاصطناعي والكلمات: قِس الطلب قبل تقدير التكلفة
الرمز وحدة ينتجها محلل ترميز معين، وليس عدداً ثابتاً من الكلمات أو الحروف. للعد الدقيق للنص استخدم المحلل والإعدادات المطابقة. وللطلب الكامل احتسب بنية الرسائل والأدوات المدعومة، ثم قارن التقدير بالاستخدام الذي يعيده المزود.
في هذا الدليل
يفيد عداد الكلمات في شرط طول المقالة، لكنه لا يحدد بصورة موثوقة هل يدخل طلب AI في السياق أو كم يكلف. قد يقسم محللان النص المرئي نفسه بطريقة مختلفة، وغالباً يتضمن الطلب أكثر من النص الملصق في رسالة واحدة.
يفصل هذا المسار قياس النص الخام عن قياس الطلب والاستخدام المحتسب. يتضمن مثالاً محلياً وورقة تملؤها بنتائج حقيقية؛ لا يخترع أعداد رموز دقيقة لنموذج لم يُشغَّل. احفظ هوية المحلل وإعداداته حتى تكون المقارنة قابلة للإعادة.
افصل الكلمات ومحارف Unicode والرموز
قد تصبح الكلمة رمزاً واحداً أو أجزاء عدة مع علامات الترقيم والمسافات. يشرح Hugging Face طرق الكلمات والمحارف والأجزاء الفرعية. تؤثر اللغة والإملاء والكود والمسافات ومفردات المحلل في النتيجة، لذلك لا يكفي طول النص الظاهر.
يجيب عد Unicode عن سؤال آخر: قد يحتاج المحرف وحدات ترميز أو بايتات متعددة، وقد يتكون الرمز المرئي من نقاط ترميز عدة. لا يوجد تحويل عالمي من أي منها إلى رموز نموذج. نسبة الحروف لكل رمز تقريب لعينة محددة، لا خاصية ثابتة لكل اللغات.
| المهمة | القياس المفيد | الحدود |
|---|---|---|
| فحص طول المقالة | كلمات أو محارف Unicode | لا يحدد رموز النموذج |
| قياس نص خام بمحلل معين | معرفات الرموز من المحلل وإعداداته | قد يستبعد قالب المحادثة وزيادات الطلب |
| تقدير طلب API منظم | عد مدعوم من المزود أو صياغة الطلب المطابقة | قد يختلف عن الاستخدام النهائي |
| مطابقة الاستخدام المفوتر | حقول الاستخدام وتعريفات الفوترة الحالية | ليس تقديراً لطلب مزود آخر |
عُد عينة محلية بمحلل معلوم
عند استعمال صيغة Hugging Face tokenizers حمّل tokenizer.json الصحيح محلياً وشفّر ملف UTF-8. دوّن هوية النموذج أو المحلل وإصدار ملفه والحزمة وإدراج الرموز الخاصة. يستهدف المثال واجهة tokenizers 0.23.2 ، ويعطل الحشو والاقتطاع ويعد النص الخام دون إضافة رموز خاصة.
احصل على ملف المحلل من التوزيع الرسمي للنموذج المقصود. لا ينزل المثال نموذجاً ولا يرسل النص إلى خادم ولا يحاكي قالب API مستضاف كاملاً. يفيد الناتج فقط إذا طابق المحلل والإعدادات السؤال الذي تقيسه؛ نجاح تشغيل الكود لا يكفي لإثبات مطابقة الفوترة.
# 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.احتسب الطلب كله عند تخطيط السياق
قد يضم طلب المحادثة تعليمات النظام والسجل والمقاطع المسترجعة وتعريفات الأدوات والتنسيق بجانب الرسالة الأخيرة. قد يضيف قالب المحادثة رموز تحكم حول الأدوار والحدود. عد الفقرة الأخيرة فقط قد يقلل تقدير المدخلات بصورة كبيرة.
للمزود المستضاف استخدم وسيلة عد الطلب الموثقة عندما تدعم أنواع مدخلاتك. تصف وثائق Claude عد المدخلات المنظمة وحالات تتطلب بيانات الاستخدام الفعلي. التزم بحدود التقدير المعلنة، خصوصاً للأدوات والصور والمستندات؛ لا تعامل كل مدخل كنص بسيط.
لا تلصق بيانات الدخول أو نصوص العملاء الحساسة في عدادات مجهولة. يعمل المحلل المحلي على النص الخام، بينما يرسل نداء المزود الطلب إليه. اختر المسار المناسب للبيانات قبل القياس، وسجّل ما الذي أرسلته وما الذي قسته محلياً.
أنشئ ورقة مقارنة قابلة لإعادة التنفيذ
اختر عينات تمثل التطبيق: رسالة دعم وكود وجدول ومقطع بكل لغة مستخدمة. احتفظ بالبايتات الأصلية حتى لا تغير المقارنة نهايات الأسطر أو الترقيم أو المسافات بين تشغيلين. اختلاف الإدخال يمنع نسبة الفرق إلى المحلل وحده.
لكل عينة دوّن الهوية والإصدار وخيار الرموز الخاصة وعد النص وتقدير الطلب الكامل إن توفر. اترك غير المقاس فارغاً بدلاً من إحلال نسبة تخمينية. اختلاف العد بين محللين نتيجة لهذه العينات، وليس تصنيفاً لجودة اللغة أو فهم النموذج.
| العينة | المحلل وإصداره | عد النص الخام | عد الطلب الكامل أو تقديره |
|---|---|---|---|
| رسالة دعم | سجّل المعرف الدقيق | قِس محلياً | قِس بالصيغة المدعومة للطلب |
| مقطع كود | سجّل المعرف الدقيق | قِس محلياً | قِس بالصيغة المدعومة للطلب |
| مقطع باللغة الأخرى | سجّل المعرف الدقيق | قِس محلياً | قِس بالصيغة المدعومة للطلب |
احجز مساحة المخرجات قبل زيادة المدخلات
في مثال افتراضي يسمح النموذج بسياق إجمالي 32,000 رمز لهذا النوع من الطلبات. احجز 4,000 للمخرجات و 2,000 هامش تخطيط؛ تبقى 26,000 للمدخلات المقاسة. إذا استهلكت التعليمات والسجل والأدوات 8,000 ، بقي 18,000 للمحتوى المسترجع.
ليست هذه مواصفات نموذج حالي. قد يعرّف المزود السياق والمخرجات والاستدلال والأدوات بصورة مختلفة. راجع العقد الحالي وأدخل قياساتك في حاسب ميزانية السياق. دخول الطلب في الحد لا يعني أن كل مقطع مدخل مفيد للمهمة؛ الميزانية ليست بديلاً عن اختيار المحتوى.
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 contentطابق التقدير مع الاستخدام والتكلفة الفعليين
بعد اختبار حقيقي صغير احتفظ بحقول الاستخدام المعادة وقارنها بتقدير الطلب نفسه. افصل المدخلات المخزنة والمخرجات والاستدلال وغيرها من فئات الفوترة الموثقة. تقدير أغفل تعريف أداة لا يصلحه تغيير نسبة الكلمات إلى الرموز.
استخدم حاسب تكلفة الرموز مع الأعداد المقاسة والأسعار الحالية التي تدخلها. افصل المدخل والمخرج واحتفظ بوحدة السعر مثل التكلفة لكل مليون رمز. ورقة التكلفة المفيدة قابلة للإعادة من الاستخدام والأسعار المعلنة، ولا تعتمد على تحويل عالمي من الكلمات.
أسئلة شائعة
هل يساوي الرمز دائماً أربعة حروف؟
لا؛ ذلك تقريب لبعض النصوص والمحللات فقط. تؤثر اللغة والكود والترقيم والمسافات وتصميم المحلل في الناتج.
لماذا يختلف العد المحلي عن استخدام API ؟
قد يضم الطلب تنسيقاً وتعليمات وسجلاً وأدوات وأنواع مدخلات لا توجد في العينة الخام. وقد يختلف المحلل أو الرموز الخاصة. قارن الطلب الكامل نفسه وتعريفات المزود.
هل يحسب عداد الكلمات هنا رموز النموذج بدقة؟
لا؛ يعرض قياسات نص مثل الكلمات ومحارف Unicode. استخدم محللاً مطابقاً أو طريقة عد مدعومة من المزود، ثم أدخل القياسات في حاسبي السياق والتكلفة.
المصادر والتعريفات
- 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
تم التحقق من الطريقة: