نموذج ذهني مفيد
فكّر في رموز الإخراج بوصفها أجزاءً من الإجابة وخطواتٍ في إنشائها في الوقت نفسه.
لا يكتب نموذج النص ردًا كاملًا خلف الكواليس ثم يقسّمه إلى رموز. بل يبني الرد رمزًا واحدًا في كل مرة. وبعد إنشاء كل رمز، يصبح التسلسل المتنامي جزءًا من المعلومات المستخدمة لاختيار الرمز التالي.
يوضح هذا الفرق سبب استغراق الإجابة الطويلة وقتًا أطول في التوليد من الإجابة القصيرة. فكل رمز إخراج إضافي يتطلب خطوة توليد أخرى.
كيفية توليد رموز الإخراج
بعد أن يعالج النموذج الإدخال، يعيّن درجةً لكل رمز يمكن أن يأتي تاليًا. وتحدد إعدادات التوليد كيفية اختيار أحد هذه الاحتمالات. ثم يُضاف الرمز المحدد إلى التسلسل، ويكرر النموذج العملية.
process the input
|
v
score possible next tokens
|
v
choose one output token ----+
| |
v |
append it to the sequence --+
|
v
stop when a stopping condition is metيمكن أن تنتهي الحلقة للأسباب التالية:
- يصل النموذج إلى نهاية طبيعية؛
- ينشئ تسلسل توقف مُعدًا مسبقًا؛
- يصل إلى الحد الأقصى لرموز الإخراج؛
- ينتقل إلى إجراء مثل استدعاء أداة؛ أو
- تطبّق الخدمة شرط توقف آخر خاصًا بالنموذج أو بالسياسة.
يعتمد عدد الرموز الدقيق على مُرمّز النموذج. قد تكون الكلمة القصيرة رمزًا واحدًا، بينما قد تتكون الكلمة الأطول أو الأقل شيوعًا من عدة رموز. كما يمكن تقسيم المسافات وعلامات الترقيم والتعليمات البرمجية والنصوص غير الإنجليزية بطرق مختلفة. لذلك يمكن لعدد الأحرف وعدد الكلمات تقدير طول الإخراج، لكن لا يمكنهما تحديده بدقة.
ما الذي يُحتسب رمز إخراج؟
في الاستجابة النصية العادية، يتكوّن الرد الظاهر من رموز الإخراج المُولّدة. كما تُعد JSON المُولّدة ووسائط استدعاء الأدوات مخرجات من النموذج، حتى عندما يعرضها التطبيق كإجراء في الواجهة بدلًا من إظهار النص الخام.
تضيف فئات الاستخدام لدى المزوّد طبقةً ثانية. فقد يشير مصطلح «رموز الإخراج» إما إلى التسلسل المُولّد الظاهر أو إلى إجمالي مُحتسب. وهذه الإجماليات غير موحّدة:
- تسمّي بعض واجهات API الرموز المُولّدةرموز الإكمال.
- يدرج بعضها الاستدلال المخفي ضمن إجمالي الإخراج، ويوفر تفصيلًا منفصلًا له.
- ويعرض بعضها رموز المرشح الظاهرة ورموز التفكير في حقول منفصلة.
- وقد تكون لأنواع الإخراج الخاصة تفاصيل أو قواعد فوترة خاصة بها.
المصدر الموثوق لطلب معين هو بيانات الاستخدام التي يعيدها ذلك المزوّد ونقطة النهاية. لا تستنتج الإخراج المفوتر بمجرد نسخ الاستجابة الظاهرة إلى مُرمّز. وتوضح وثائق OpenAI وAnthropic وGoogle الحالية سبب ذلك: إذ تختلف التسميات والتفصيلات بينها.OpenAI, Anthropic, and Google documentation illustrates why: their labels and breakdowns differ.
مثال تطبيقي
تخيّل طلبًا إلى واجهة API بحد أقصى قدره 100 رمز إخراج.
ينشئ النموذج إجابة كاملة ويتوقف بعد 24 رمزًا. وتعرض بيانات الاستخدام ما يلي:
{
"input_tokens": 18,
"output_tokens": 24,
"total_tokens": 42
}عدد رموز الإخراج هو 24. وكان إعداد 100 رمز مجرد حد أقصى. فهو لم يُجبر النموذج على إنتاج 100 رمز، ولا يعني بحد ذاته احتساب تكلفة 100 رمز.
افترض الآن أن النموذج يواصل التوليد حتى يصل إلى الحد الأقصى البالغ 100 رمز. قد يعيد الطلب استجابة ناجحة تقنيًا من واجهة API، لكن الإجابة قد تنتهي في منتصف جملة أو بنية. وينبغي لتطبيق الإنتاج التحقق من سبب التوقف في الاستجابة بدلًا من افتراض اكتمال النص المُعاد.
وهناك تعقيد آخر. قد ينشئ نموذج الاستدلال استدلالًا داخليًا قبل الإجابة الظاهرة. وبحسب المزوّد، قد يتضمن الاستخدام تلك الرموز المخفية ضمنoutput_tokensأو يعرضها في حقل تفكير منفصل. لذلك قد يختلف عدد رموز الإجابة الظاهرة عن عدد رموز الإخراج المحتسب.
لماذا تهم رموز الإخراج؟
التكلفة
تحتسب الخدمات التي تسعّر وفق عدد الرموز عادةً رموز الإدخال والإخراج كلًّا على حدة، وقد تختلف أسعارهما. لذلك يُعد الاستخدام الفعلي للإخراج، وليس الحد الأقصى المطلوب فقط، جزءًا من تكلفة كل طلب. وقد تحجز أنظمة الحصص الخاصة بالمزوّد سعةً مؤقتةً بناءً على الحد الأقصى، حتى عندما تعتمد الفوترة على التوليد الفعلي.
زمن الاستجابة
تُولّد رموز الإخراج بالتتابع. ويعني المزيد من الإخراج عمومًا مزيدًا من خطوات التوليد وانتظارًا أطول لاكتمال الاستجابة. ويمكن للبث أن يعرض جزءًا من الإخراج في وقت أبكر، لكنه لا يلغي العمل اللازم لتوليد الرموز المتبقية.
الاكتمال
يساعد حد الإخراج الأقصى على التحكم في الطول، لكن الحد المنخفض جدًا قد يقطع النثر أو التعليمات البرمجية أو JSON أو وسائط الأدوات. تحقّق من سبب التوقف كلما كان الاكتمال مهمًا.
السياق المتاح
يستهلك الإدخال والإخراج مساحةً معًا فينافذة السياق. وقد يترك الطلب الذي يستخدم معظم المساحة المتاحة للإدخال مساحةً أقل للتوليد، وفقًا لحدود النموذج ونقطة النهاية وقواعد المحاسبة الخاصة بهما.
مفاهيم خاطئة شائعة
«رموز الإخراج هي الكلمات نفسها»
ليست كذلك. فقد تكون الرموز كلمات كاملة أو أجزاءً من كلمات أو علامات ترقيم أو مسافات أو وحدات أخرى. ويمكن أن يكون للجملة نفسها عدد مختلف من الرموز عند استخدام مُرمّزات مختلفة.
«إعداد الحد الأقصى للإخراج هو الإخراج المتوقع»
إنه حد أعلى. يمكن للنموذج التوقف قبل الوصول إليه. وقد يطبّق المزوّد أيضًا حدًا أدنى خاصًا بالنموذج أو ميزانيةً مشتركةً تتضمن الاستدلال الداخلي.
«إذا أعادت واجهة API نصًا، فالإجابة مكتملة»
ليس بالضرورة. فقد يؤدي بلوغ حد الإخراج إلى إعادة نص جزئي مع سبب توقف مرتبط بالطول. ويهم ذلك خصوصًا في التعليمات البرمجية والبيانات المنظّمة، حيث يمكن أن يجعل فقدان حرف إغلاق واحد النتيجة غير قابلة للاستخدام.
«الاستجابة الظاهرة تساوي الإخراج المفوتر»
غالبًا، لكن ليس دائمًا. فقد يجعل الاستدلال المخفي أو المرشحون المُولّدون المتعددون أو المحاسبة الخاصة بنقطة النهاية الاستخدام أكبر من النص الذي تراه. تعامل مع حقول الاستخدام المُعادة بوصفها المرجع الموثوق لدى تلك الخدمة.
«طول الإخراج يحدده الطلب تحديدًا ثابتًا»
يؤثر الطلب في الطول، لكن التوليد يظل مشروطًا. فسلوك النموذج وإعدادات أخذ العينات وتسلسلات التوقف واستخدام الأدوات وسلوك السلامة، كلها عوامل يمكن أن تغيّر موضع انتهاء الإخراج.
كيف تندرج رموز الإخراج ضمن طلب النموذج؟
يبدأ الطلب برموز الإدخال. ثم ينشئ النموذج رموز الإخراج. وقد تستخدم نماذج الاستدلال أيضًارموز الاستدلالالداخلية، ويختلف عرضها ومعاملتها في الفوترة باختلاف المزوّد.
يسهل رؤية الفرق جنبًا إلى جنب فيرموز الإدخال مقابل رموز الإخراج مقابل رموز الاستدلال. وإذا كنت تقيس سلوك الخدمة، فإن توليد الإخراج يرتبط أيضًا مباشرةً بـالرموز في الثانيةوزمن الاستدلال.
القاعدة العملية بسيطة: عيّن حدًا أقصى معقولًا للإخراج، واقرأ الاستخدام الفعلي، وافحص سبب التوقف قبل اعتبار الاستجابة مكتملة.