نموذج CTR أو التحويل الذي عليه أن يجيب داخل كل طلب مزايدة يفوّت المهلة النهائية عادةً في موضعين مُدرجين تحت اسم واحد: سمات تصل متأخرة من مخزن بعيد، وتقييم ينتظر في طابور. هكذا تُقسَّم مهلة المزاد، وأي خيارات runtime وتجميع في دفعات تناسب ميزانية لكل طلب، وماذا يفعل المزايد حين يتأخر النموذج، وكيف تميّز شركات الهندسة التي تقوم فعلًا بهذا العمل.
النموذج الذي يحسب احتمال النقر والتحويل داخل مسار المزايدة يُحكَم عليه بساعة لا يملكها. فمنصة التبادل تكفّ عن الإصغاء عند مهلتها النهائية، والتنبؤ الذي يصل بعد تلك اللحظة ليس إجابة بطيئة: إنه لا إجابة، والحوسبة أُنفقت بالفعل.
يصل المتطلب عادةً في صورة هدف لزمن استجابة الاستدلال. لكنه يعمل أفضل في صورة عملية طرح: ما يتبقى من مهلة المزاد بعد الشبكة وتحليل الطلب وعمليات البحث عن السمات، وبماذا يزايد المزايد حين لا يتبقى شيء.
الجواب القصير بنيوي. قسّم المهلة النهائية قبل اختيار النموذج: اختم الطلب لحظة وصوله بمهلة نهائية مطلقة، وألغِ جلب السمات حين تنفد حصته، وقيّم داخل عملية المزايد بلا طابور أمامها، وأنهِ سُلّم الاحتياط بـ no-bid نظيف. وما تستطيع amBrain إثباته علنًا: بنينا RTBBidder، وهي منصة جانب طلب. وهذه المقالة تصف ميكانيكا الاستدلال داخل الطلب، لا حالة لدينا، ولا رقم أدناه مقيس على نظام لدينا.
في OpenRTB 2.6، الـ tmax هو أقصى زمن بالميلي ثانية تسمح به منصة التبادل لاستقبال المزايدات، شاملًا زمن الاستجابة عبر الإنترنت، وهو يَجُبّ أي إرشاد قدّمته منصة التبادل مسبقًا. والميزانية ليست إعدادًا في خدمتك: إنها تنتقل مع كل طلب.
يقول توثيق Google Authorized Buyers، المحدَّث في أغسطس 2026، إن المهلة النهائية في BidRequest.tmax تتراوح عادةً من 80 إلى 1000 ms، وتغطي زمن الشبكة حتى موقع التداول إضافةً إلى الزمن الذي يستغرقه مزايدك لتوليد الرد. ويشترط أن تقع 85 في المئة من الردود داخل المهلة كما تُرى من موقع التداول، ويخنق المزايدين الذين لا يستطيعون تحقيق ذلك باستمرار.
فالمهلة النهائية إذن مجموع، والنموذج يملك حدًّا واحدًا منه:
اختم الطلب لحظة وصوله بمهلة نهائية مطلقة، مشتقة من tmax ناقص زمن الشبكة الذي تقيسه لمنصة التبادل تلك، ومرّر إلى كل مرحلة الزمن المتبقي بدل مهلة انتظار ثابتة. ويصف توثيق gRPC الآلية نفسها: المهلة النهائية المُمرَّرة تتحول إلى مهلة انتظار (timeout) خُصم منها الزمن المنقضي مسبقًا، ويبقى تطبيق الخادم مسؤولًا عن إيقاف العمل الذي أطلقه.
حين يكون المتبقي أصغر من أن يكفي للتقييم، أجب مبكرًا. يقدّم OpenRTB 2.6 شكلين للـ no-bid: ردًا فارغًا مع HTTP 204، أو رد مزايدة يحمل رمز سبب في nbr، ويشجّع على رمز السبب. والإجابة المتأخرة تكلّف أكثر: نظام حصص الاستدعاءات (callout quota) لدى Google يرسل استدعاءات أقل إلى المزايد الذي لا يستجيب في الوقت المحدد، ويتكيّف خلال دقائق.
مرحلتان تختبئان تحت كلمة الاستدلال. جلب السمات عملية إدخال/إخراج: إشارات السجل التاريخي والتكرار والسياق من مخزن بعيد، بذيل تتحكم فيه الشبكة وذلك المخزن. أما التقييم فحوسبة، تمرير أمامي أو اجتياز للأشجار، بذيل يتحكم فيه التنازع على CPU داخل عمليتك أنت.
قيمة p99 التي تخلط الاثنين لا تقول أيهما يجب إصلاحه، لذا احتفظ بمدرّجين تكراريين لكل منصة تبادل وصنّف السمات حسب مكان وجودها:
الجلب المقيَّد بمهلة نهائية يحتاج إلى نموذج يتوقع الإجابة الغائبة: درّبه مع غياب مجموعة السمات المتأخرة في حصة من الأمثلة، أو احتفظ بنموذج ثانٍ بدونها، كي يحرّك البحث الملغى التنبؤَ بطريقة سبق أن قستها.
وصف Dean وBarroso الطلبات التحوّطية (hedged requests) في The Tail at Scale عام 2013: بعد تأخير قصير، أرسل الطلب نفسه مرة ثانية إلى نسخة متماثلة أخرى واستخدم الإجابة التي تصل أولًا أيًّا كانت. وفي اختبار الأداء الذي أجرياه على BigTable، خفّض طلب تحوّطي أُرسل بعد 10 ms زمن الاستجابة عند المئين 99.9 لاسترجاع 1,000 قيمة من 1,800 ms إلى 74 ms، مع إرسال طلبات أكثر بنسبة 2 في المئة. وداخل المزاد، يجب أن يأتي تأخير الطلب التحوّطي من الحصة المتبقية للجلب.
قرار الـ runtime هو في الغالب قرار بشأن مكان حدوث التقييم. فخادم الاستدلال المنفصل يضيف رحلة ذهاب وإياب وطابورًا إلى كل طلب يُقيَّم؛ أما التقييم داخل عملية المزايد فلا يضيف أيًّا منهما، ويسلّمك بدلًا من ذلك ذاكرته وخيوطه. أربعة خيارات شائعة:
التكميم هو الرافعة الأخرى على CPU، وله كلفتان يذكرهما توثيق ONNX Runtime نفسه: التكميم الخطي بـ 8 بت ليس تحويلًا بلا فقد، وكلفته الإضافية تجعل تراجع الأداء على الأجهزة القديمة أمرًا غير نادر. وفي نموذج CTR تشمل الدقةُ المعايرةَ، فقارن المعدلات المتنبأ بها والمرصودة قبل التكميم وبعده.
تجميع مرشّحي الطلب الواحد في دفعة لا يكلّف أي انتظار، لأنها موجودة أصلًا. أما التجميع الديناميكي عبر الطلبات فيرفع الإنتاجية بجعل الطلبات تنتظر من ينضم إليها، وهذا عكس ما تطلبه مهلة المزاد، وخوادم الاستدلال نفسها تقول ذلك:
تُظهر ورقة Wide & Deep من Google، المنشورة عام 2016، جانب المقايضة داخل الطلب الواحد لخدمة تهدف إلى تقديم كل طلب في حدود 10 ms. فتقييم كل المرشّحين في دفعة واحدة على خيط واحد استغرق 31 ms؛ وتقسيم الدفعة إلى دفعات أصغر على خيوط متوازية خفّض زمن الاستجابة من جانب العميل إلى 14 ms، بما في ذلك الكلفة الإضافية للتقديم.
يحدد Clipper، نظام تقديم التنبؤات من Berkeley الذي قُدِّم في NSDI 2017، حجم الدفعات وفق المهلة النهائية لا وفق العتاد: يكبّر الدفعة بزيادات جمعية حتى تتجاوز معالجتها هدف زمن الاستجابة، ثم يتراجع بنسبة 10 في المئة. والدرس للمزايد في الترتيب: ثبّت هدف زمن الاستجابة أولًا، ثم خذ أي دفعة تتسع تحته، ولو كانت دفعة من عنصر واحد.
المسرِّع يستحق مكانه على الدفعات الكبيرة، ودفعة طلب المزايدة ليست سوى مرشّحيه الناجين. ووجدت DeepRecSys، وهي دراسة من Harvard وFacebook قُدِّمت في ISCA 2020، أن وحدات GPU تتفوق على وحدات CPU عند أحجام الدفعات الأكبر، وأن تحميل المدخلات من CPU إلى GPU استغرق في المتوسط من 60 إلى 80 في المئة من زمن الاستدلال على GPU من الطرف إلى الطرف لكل نموذج درسته.
ولم يختر مجدولها جهازًا واحدًا: فتقسيم الاستعلامات الكبيرة إلى دفعات أصغر على أنوية CPU متوازية وحدها ضاعف الإنتاجية تحت أهداف صارمة لزمن استجابة الذيل عبر ثمانية نماذج تمثل الصناعة، ونقلُ الاستعلامات التي تتجاوز عتبة حجم فقط إلى GPU رفعها أكثر. وبالنسبة للمزايد، تبقى الدفعات الصغيرة لكل طلب على CPU، وعلى المسرِّع أن يسترد كلفة النقل والطابور.
تقوم آلية Clipper لتخفيف أثر المتلكئات (straggler mitigation) على خيار تصميمي يستحق النسخ: تقديم تنبؤ متأخر أسوأ من تقديم تنبؤ غير دقيق. فعند المهلة النهائية كانت طبقة اختيار النموذج فيه تجمع التنبؤات التي وصلت وتستبدل المفقودة منها بقيمتها المتوسطة. ومقابل ذلك في المزايد سُلّم، وكل درجة فيه يجب أن تعطي سعرًا يستطيع المزاد التعايش معه:
حين يكون الهدف تحويلًا، فالقيمة المتوقعة لكل ظهور هي احتمال النقر مضروبًا في احتمال التحويل بعد النقر مضروبًا في قيمة التحويل، لذا فالدرجة التي تميل تقديراتها إلى الارتفاع تزايد بأكثر مما يساويه الظهور: في مزاد السعر الأول تدفع أكثر من اللازم عند كل فوز، وفي مزاد السعر الثاني تفوز بمرات ظهور كان ينبغي أن تخسرها. وكتب McMahan وزملاؤه أن التنبؤات الدقيقة وجيدة المعايرة ضرورية لتشغيل المزاد، وعدّوا السمات الخفية غير المتاحة وقت التدريب أو وقت التقديم من أسباب الانحياز المنهجي؛ والجلب الملغى يجعل السمة غير متاحة وقت التقديم.
عُدّ كل درجة. معدل اللجوء إلى الاحتياط حسب السبب - جلب ملغى، تقييم متأخر، إصابة في الذاكرة المؤقتة، احتمال قبلي، no-bid - مكانه على الرسم البياني نفسه مع p99، لأن المزايد يستطيع أن يحافظ على هدف زمن الاستجابة بالإجابة بصمت من الاحتمال القبلي بينما يُسعَّر الإنفاق على تخمين.
النموذج الجديد يغيّر زمن الاستجابة والسعر معًا، والاثنان يفشلان على ساعتين مختلفتين: زمن الاستجابة خلال دقائق، والسعر على امتداد نافذة التحويل. فاطرحه على خطوتين تفصلان بينهما:
يعرّف كتاب Google SRE Workbook نشر canary بأنه نشر جزئي ومحدود زمنيًا لتغيير في خدمة ما مع تقييمه، ويحذّر من أنه في الأنظمة ذات الاستعلامات المتنوعة لا يعطي canary يُنهى بعد حفنة من الاستعلامات أي إشارة مفيدة. وفي نموذج التحويل تُعدّ الحفنة بالتحويلات، لذا يستمر canary مدةً لا تقل عن نافذة التحويل.
مراقبة زمن الاستجابة تقول هل أجاب النموذج؛ ومراقبة النموذج تقول هل كانت الإجابة تستحق السعر. والمزايد يحتاج إلى الاثنتين، مقسّمتين لكل منصة تبادل ولكل إصدار نموذج:
التنبؤ الذي يصل بعد tmax لم ينتج مزايدة أبطأ. بل أنتج انتهاء مهلة، وسببًا لخنقك، وفاتورة CPU، بينما حسم المزادَ المزايدون الذين أجابوا.
النصف الثاني من السؤال، من يبني خطوط استدلال مدمجة في المزايدين، له اختبار لا يحتاج قائمة مورّدين. فالشركة التي تقوم بهذا العمل تسأل عن الميزانية قبل أن تعرض نموذجًا:
كل بند مستند يمكنك طلبه في المحادثة الأولى، والإجابة الغامضة تعني أن الميزانية لم تُقسَّم بعد.
لذا فالسؤال الأول ليس أي نموذج تقدّم. بل كم يتبقى من tmax بعد الشبكة وجلب السمات على منصة التبادل التي تنتهي عندها المهلة، وبماذا يزايد المزايد حين ينفد ذلك المتبقي.
ما تستطيع amBrain إثباته علنًا: amBrain شركة تطوير برمجيات متخصصة في منصات التداول ومحركات المطابقة وأنظمة المزايدة الفورية وهندسة منصات الكازينو. وتبني amBrain البرمجيات منذ 2019، وما نبنيه في AdTech هو تطوير DSP ومنصات المزايدة الفورية وهندسة منصات تبادل الإعلانات. ونعمل بثلاث صيغ: تسليم كامل، أو فريق مخصص، أو مهندسون مدمجون في فريقك.
أحضر بنيتك الحالية وسيناريو الفشل الذي يقلقك، وسنراجعه معًا خلال نصف ساعة.