ما الرموز؟
الرموز هي وحدات بناء النص التي تعالجها نماذج OpenAI. قد تكون قصيرة بحجم حرف واحد أو طويلة بحجم كلمة كاملة، بحسب اللغة والسياق. تُحتسب المسافات وعلامات الترقيم وأجزاء الكلمات ضمن عدد الرموز. هكذا تقسّم واجهة API نصك داخليًا قبل إنشاء رد.
قواعد إرشادية مفيدة للإنجليزية:
رمز واحد ≈ 4 أحرف
رمز واحد ≈ ¾ كلمة
100 رمز ≈ 75 كلمة
جملة إلى جملتين ≈ 30 رمزًا
فقرة واحدة ≈ 100 رمز
نحو 1,500 كلمة ≈ 2,048 رمزًا
يختلف تقسيم النص إلى رموز باختلاف النموذج والترميز. استخدم أداة Tokenizer أو tiktoken.encoding_for_model(model) للحصول على العدد الدقيق لنموذجك المستهدف.
أمثلة
فيما يلي بعض عينات النصوص الواقعية مع أعداد الرموز التقريبية لها:
اقتباس واين غريتسكي «تفوتك 100% من التسديدات التي لا تقوم بها» = 11 رمزًا
ميثاق OpenAI = 476 رمزًا
إعلان استقلال الولايات المتحدة = 1,695 رمزًا
كيف تُحسب أعداد الرموز
عند إرسال نص إلى واجهة API:
يُقسَّم النص إلى رموز.
يعالج النموذج هذه الرموز.
يُنشأ الرد كسلسلة من الرموز، ثم يُحوَّل مرة أخرى إلى نص.
يُتتبَّع استخدام الرموز ضمن عدة فئات:
رموز الإدخال – الرموز في طلبك.
رموز الإخراج – الرموز المُنشأة في الرد.
الرموز المخزنة مؤقتًا – رموز مُعاد استخدامها في سجل المحادثة (غالبًا تُحاسَب بسعر مخفض).
رموز الاستدلال – في بعض النماذج المتقدمة، تُضمَّن داخليًا «خطوات تفكير» إضافية قبل إنتاج المخرَج النهائي.
تظهر هذه الأعداد في بيانات التعريف لرد واجهة API لديك، وتُستخدم للفوترة وتتبع الاستخدام.
لاستكشاف تقسيم النص إلى رموز بمزيد من التفصيل، يمكنك استخدام أداة Tokenizer التفاعلية لدينا، التي تتيح لك حساب عدد الرموز ومعرفة كيفية تقسيم النص إلى رموز.
بدلاً من ذلك، إذا أردت تقسيم النص إلى رموز برمجيًا، فاستخدم Tiktoken بوصفه مُقسِّم رموز BPE سريعًا مخصصًا لنماذج OpenAI.
حدود الرموز
لكل نموذج حد أقصى إجمالي للرموز (الإدخال + الإخراج). تدعم النماذج الحالية عالية السعة ما يصل إلى مئات الآلاف من الرموز في السياق، مع أن الحدود العملية قد تختلف بحسب إصدار النموذج وفئة استخدامك.
إذا تجاوزت الحد، يمكنك:
تقصير المطالبات أو إعادة صياغتها.
تقسيم النص الكبير إلى أجزاء أصغر.
تلخيص المدخلات أو معالجتها مسبقًا قبل إرسالها.
تسعير الرموز
يُسعَّر استخدام واجهة API لكل رمز، ويختلف بحسب النموذج وما إذا كانت الرموز للإدخال أو الإخراج أو مخزنة مؤقتًا. اطّلع على صفحة التسعير الخاصة بـ OpenAI لمعرفة الأسعار الحالية. قد تستخدم بعض نماذج الاستدلال مزيدًا من الرموز داخليًا، لكنها تهدف إلى تحسين الكفاءة عبر تقليل عدد الرموز اللازمة لكل مهمة مكتملة.
استكشاف الرموز
تتعامل واجهة API مع الكلمات وفقًا لسياقها في بيانات المتن. تأخذ النماذج المطالبة، وتحول الإدخال إلى قائمة من الرموز، وتعالج المطالبة، ثم تحول الرموز المتوقعة مرة أخرى إلى الكلمات التي نراها في الرد.
ما قد يبدو لنا كلمتين متطابقتين قد يُنشأ كرموز مختلفة بحسب كيفية بنائهما داخل النص. تأمل كيف تنشئ واجهة API قيم الرموز للكلمة ‘red’ بناءً على سياقها داخل النص:
في المثال الأول أعلاه، يتضمن الرمز “2266” لـ ‘ red’ مسافة لاحقة (ملاحظة: هذه معرّفات رموز مثال لغرض التوضيح).
الرمز “2296” لـ ‘ Red’ (مع مسافة بادئة وبحرف كبير في البداية) يختلف عن الرمز “2266” لـ ‘ red’ بحرف صغير.
عند استخدام ‘Red’ في بداية جملة، لا يتضمن الرمز المُنشأ مسافة بادئة. الرمز “7738” يختلف عن المثالين السابقين للكلمة.
ملاحظات:
كلما كان الرمز أكثر احتمالًا/تكرارًا، كان رقم الرمز المُسنَد إليه أقل:
الرمز المُنشأ للنقطة هو نفسه (“13”) في الجمل الثلاث كلها. ويرجع ذلك إلى أن النقطة تُستخدم، من حيث السياق، بطريقة متشابهة إلى حد كبير في بيانات المتن.
يختلف الرمز المُنشأ لـ ‘red’ بحسب موضعها داخل الجملة:
بحرف صغير في وسط الجملة: ‘ red’ - (الرمز: “2266”)
بحرف كبير في وسط الجملة: ‘ Red’ - (الرمز: “2297”)
بحرف كبير في بداية الجملة: ‘Red’ - (الرمز: “7738”)
