عداد الرموز المجاني لـ GPT-4 وChatGPT والنماذج الذكية
عداد رموز دقيق باستخدام مكتبة tiktoken من OpenAI. عد الرموز لنماذج GPT-4 وChatGPT وGPT-3. إدارة تكاليف API وتحسين الأوامر الذكية فوريًا.
عداد الرموز
إدخال غير صالح
التوثيق
ما هو عدّاد الرموز؟
يقيس عدّاد الرموز عدد الرموز التي ينقسم إليها جزء من النص عندما يقرأه نموذج لغوي للذكاء الاصطناعي. والرموز هي أجزاء نصية صغيرة — كلمات كاملة أو أجزاء من كلمات أو علامات ترقيم — تعالجها نماذج مثل GPT-4 وChatGPT بدلًا من الحروف الخام. تستخدم هذه الأداة مكتبة tiktoken، وهي مكتبة تقسيم الرموز المفتوحة المصدر التي نشرتها OpenAI، ولذلك تتطابق الأعداد مع ما تنتجه نماذج OpenAI وواجهات API الخاصة بها.
كيف يعمل تقسيم النص إلى رموز
لا يقتصر عمل مُقسِّم الرموز على عدّ الكلمات، بل يمرر النص عبر خوارزمية تُعرف باسم ترميز أزواج البايتات (BPE). تبدأ الخوارزمية ببايتات النص المفردة، ثم تدمج مرارًا الأزواج المتجاورة الأكثر شيوعًا، استنادًا إلى الأنماط التي تعلمتها من مجموعة كبيرة من النصوص أثناء التدريب. والنتيجة مفردات ثابتة تضم عشرات الآلاف من الأجزاء الشائعة: كلمات قصيرة كاملة، وأجزاء كلمات متكررة، ومحارف مفردة لكل ما هو نادر.
لذلك تتحول الكلمة الإنجليزية الواحدة غالبًا إلى رمز واحد، لكن الكلمات الأطول أو غير المألوفة قد تنقسم إلى رمزين أو أكثر. وعادةً ما تُلحق المسافات ببداية الرمز التالي بدلًا من عدّها وحدها، كما تكون علامات الترقيم عادةً رموزًا مستقلة.
الترميزات التي تدعمها هذه الأداة
توفر Tiktoken عدة ترميزات، يرتبط كل منها بعائلة من نماذج OpenAI. وتدعم هذه الأداة ثلاثة ترميزات:
| الترميز | مستخدم في | الحجم التقريبي للمفردات |
|---|---|---|
cl100k_base | نماذج عائلة GPT-3.5 وGPT-4، وChatGPT | نحو 100,000 رمز |
p50k_base | نماذج GPT-3 الأحدث | نحو 50,000 رمز |
r50k_base | نماذج GPT-3 وGPT-2 الأقدم | نحو 50,000 رمز |
يُختار cl100k_base افتراضيًا، لأنه يغطي عائلة النماذج التي يستخدمها معظم الناس اليوم. وقد ينتج النص نفسه عددًا مختلفًا من الرموز تحت كل ترميز، لأن كل ترميز دُرِّب على نصوص مختلفة ويدمج المحارف بطريقة مختلفة.
كيفية حساب عدد الرموز
لا توجد صيغة حسابية بسيطة لتحويل عدد المحارف أو عدد الكلمات إلى عدد الرموز، لأن عمليات دمج BPE تعتمد على النص المحدد والمفردات المُدرَّبة. والطريقة الدقيقة الوحيدة هي تمرير النص عبر مُقسِّم الرموز نفسه:
- اختر الترميز المطابق للنموذج المستهدف.
- مرّر النص إلى مُقسِّم الرموز الخاص بذلك الترميز.
- عُدّ قائمة معرّفات الرموز الناتجة. ويكون طول هذه القائمة هو عدد الرموز.
كتقدير تقريبي للنص الإنجليزي، يقارب الرمز الواحد أربعة محارف، أو نحو ثلاثة أرباع الكلمة. وهذا مجرد دليل إرشادي؛ فالأرقام والشفرة والنصوص غير الإنجليزية والتهجئة غير المعتادة قد تغيّر النسبة كثيرًا.
مثال تطبيقي
لنأخذ الجملة:
"يقسم تقسيمُ الرموز النصَّ إلى أجزاء."
باستخدام ترميز cl100k_base، يقسم tiktoken هذه الجملة إلى 7 رموز:
Token، ization، splits، text، into، pieces، .
لاحظ أن كلمة "Tokenization" (أي تقسيم الرموز) نفسها تنقسم إلى رمزين، هما "Token" و"ization"، بينما تبقى كل كلمة أخرى كاملة. وتكون النقطة الأخيرة رمزًا مستقلًا. ولهذا تنتج جملة مكوّنة من 37 محرفًا و5 كلمات 7 رموز، لا 6.
لماذا يهم عدد الرموز
يفرض مزودو خدمات الذكاء الاصطناعي رسوم استخدام واجهة API بحسب عدد الرموز، مع احتساب النص المُرسل والنص المُولَّد في الاستجابة، ولذلك يتيح عدد الرموز توقّع التكلفة قبل إرسال الطلب. ولكل نموذج أيضًا حد أقصى لطول السياق، أي حد لعدد الرموز التي يمكن أن يتضمنها الطلب الواحد وردّه معًا. ويختلف هذا الحد باختلاف النموذج ويتغير مع إصدار المزودين نسخًا جديدة، لذا يُفضّل التحقق منه في الوثائق الحالية للنموذج المستخدم بدلًا من افتراضه اعتمادًا على الذاكرة.
الأسئلة الشائعة
ما الرمز في نماذج اللغة للذكاء الاصطناعي؟ الرمز جزء من النص يقرأه النموذج اللغوي بوصفه وحدة واحدة. وقد يكون كلمة قصيرة كاملة، أو جزءًا من كلمة أطول، أو علامة ترقيم، أو مسافة ملحقة بالكلمة التالية.
لماذا تعطي الترميزات المختلفة أعدادًا مختلفة من الرموز للنص نفسه؟ دُرِّب كل ترميز على عينة نصية خاصة به، وبنى مفرداته الخاصة من الأجزاء الشائعة. وقد تكون الكلمة شائعة بما يكفي لتكون رمزًا واحدًا في مفردات معينة، لكنها قد لا تكون كذلك في مفردات أخرى، فتُقسَّم بطريقة مختلفة.
هل تُحتسب علامات الترقيم رمزًا؟ نعم. تُحتسب علامات الترقيم عادةً رموزًا مستقلة، أو تُدمج أحيانًا مع المحرف المجاور لها، بحسب مدى تكرار ظهور ذلك الاقتران أثناء تدريب مُقسِّم الرموز.
هل الرمز هو الكلمة نفسها؟ لا. تكون الكلمات القصيرة الشائعة عادةً رمزًا واحدًا لكل منها. أما الكلمات الأطول أو الأقل شيوعًا، ومعظم الكلمات غير الإنجليزية، فغالبًا ما تنقسم إلى رمزين أو أكثر.
ما مدى دقة هذه الأداة؟ تحسب الأداة الرموز باستخدام مكتبة tiktoken الخاصة بـOpenAI، وتنفذ منطق الترميز نفسه الذي تستخدمه OpenAI داخليًا، ولذلك يتطابق العدد مع ما ستُبلغه عنه مكالمة إلى واجهة API من OpenAI للنص والترميز نفسيهما.
هل تستطيع هذه الأداة عدّ رموز النماذج غير التابعة لـOpenAI؟ تستخدم الأداة ترميزات tiktoken، وهي مصممة لنماذج OpenAI. أما المزودون الآخرون، مثل Anthropic أو Google، فيستخدمون مُقسِّمات رموز خاصة بهم قد تنتج أعدادًا مختلفة للنص نفسه.
المراجع
- OpenAI. "tiktoken." GitHub، https://github.com/openai/tiktoken.
- Sennrich، Rico، وآخرون. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508.07909، 2016، http://arxiv.org/abs/1508.07909.
- Brown، Tom B.، وآخرون. "Language Models are Few-Shot Learners." arXiv:2005.14165، 2020، http://arxiv.org/abs/2005.14165.