محتويات الدورة

MLOps / المسارات والإيصال المضبوط / الدرس 12

الإطلاق التدريجي والتقييم الظلي والتراجع

خطط لتعرض محدود واسترداد حول عقد التنبؤ الكامل، لا ملف النموذج وحده.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تمييز التقييم الظلي والتعرض التجريبي المحدود والتجارب المضبوطة.
  • توزيع التعرض عند وحدة مستقرة ذات معنى.
  • فحص توافق التراجع وأدلته قبل الاعتماد عليه.

تجيب أوضاع التعرض عن أسئلة مختلفة

تحسب المعالجة الظلية خرج مرشح بجوار المسار النشط دون استخدام ذلك المرشح لاتخاذ قرار المستخدم. قد تكشف سلوك الواجهة والموارد تحت مدخلات ممثلة، لكنها لا تقيس مباشرة نتائج سببتها قرارات المرشح. يعرض الإطلاق المحدود جزءاً محدوداً من العمليات الفعلية للتغيير ويراقب ضوابط محددة. تحتاج التجربة المضبوطة تصميماً مبرراً للتوزيع والتحليل لتقدير الأثر. تتداخل التقنيات تشغيلياً لكنها لا تقدم أدلة متطابقة. حدد الخرج الذي يؤثر في القرار والمجتمع المعرض وما يمكن استنتاجه من كل مشاهدة.

يحتاج توزيع التعرض وحدة وسياسة ثبات

يستخدم المثال الأول خانة بصمة حتمية لمعرّف كيان اصطناعي. قد يمنع التوزيع الثابت تبديل الكيان نفسه بين المسارات عبر الطلبات، لكن الوحدة الصحيحة قد تكون مستخدماً أو أسرة أو جلسة أو موقعاً أو مجموعة اعتماد أخرى. لا تثبت البصمة تلقائياً تجربة غير متحيزة أو توازن عينات صغيرة أو استقلالاً. سجل قاعدة التوزيع والمجتمع المؤهل والإصدار ومستوى التعرض. إذا أثرت المعالجة في الأهلية المستقبلية أو تفاعلت عبر الوحدات، فعلى التحليل مراعاة تلك الآثار. تظهر ثلاثة معرّفات ثوابت القاعدة فقط ولا تمثل مروراً حياً.

python مثال اختباري حتمي يعمل محلياً بالمكتبة القياسية
import hashlib
def arm(entity_id, candidate_percent):
    bucket = int(hashlib.sha256(entity_id.encode()).hexdigest(),16) % 100
    return "candidate" if bucket < candidate_percent else "control"
ids = ["lab-a", "lab-b", "lab-c"]
first = [arm(key,10) for key in ids]
second = [arm(key,10) for key in ids]
print("stable assignments", first == second)
print("zero exposure", all(arm(key,0)=="control" for key in ids))
print("full exposure", all(arm(key,100)=="candidate" for key in ids))
الناتج المتوقع
stable assignments True
zero exposure True
full exposure True

تعرض البصمة المستقرة قاعدة توزيع حتمية فقط؛ ولا تثبت ثلاثة معرّفات توازن المرور أو استدلالاً سببياً عشوائياً أو إطلاقاً فعلياً.

راقب الضوابط قبل زيادة التعرض

حدد شروط إيقاف وظيفية وتشغيلية ومرتبطة بالنموذج، وحداً أدنى للمشاهدات، وتأخر الوسوم، ومن يفسر الدليل الملتبس. قد تصل إشارات التوفر والخطأ السريعة قبل نضج النتائج التنبؤية. يطبق المثال الثاني قاعدة إيقاف ثابتة لمعدل خطأ اصطناعي ويفحص شروط الاسترداد بصورة مستقلة. عتبته اختيار تعليمي، لا معدل خطأ مقبول عام. قد تعكس نافذة رصد قصيرة هادئة قلة المرور أو تأخر الفشل لا النجاح. قارن المجتمعات وتعريفات القياس بعناية، ولا تزد التعرض لمجرد غياب تنبيه مرئي في لوحة حتى الآن.

python مثال اختباري حتمي يعمل محلياً بالمكتبة القياسية
observed = {"candidate_errors":3, "candidate_requests":20, "schema_compatible":True}
error_rate = observed["candidate_errors"]/observed["candidate_requests"]
rollback_ready = {"package_available":True, "schema_compatible":False}
stop_exposure = error_rate > 0.10
can_restore = all(rollback_ready.values())
print(f"candidate error rate={error_rate:.2f}")
print("stop candidate exposure", stop_exposure)
print("old package alone sufficient", can_restore)
الناتج المتوقع
candidate error rate=0.15
stop candidate exposure True
old package alone sufficient False

يفصل المثال قاعدة إيقاف ثابتة عن شروط الاسترداد؛ والعتبات توضيحية ولا يتغير مرور أو اختيار فعلي.

يعيد التراجع عملية متوافقة

قد تعتمد حزمة سابقة على مخطط أو مفردات سمات أو بيئة تشغيل أو عتبة قرار سابقة. لا يعيد توجيه الاختيار إلى الملف السلوك إذا تغيرت الاعتمادات بصورة غير متوافقة أو حُذفت. احفظ آثار الاسترداد والإعداد وتوافق المستهلك وفحص مدخل معلوم وفق هدف الاسترداد المدعوم. ميز وقف التعرض الجديد عن معالجة العمل الجاري والقرارات الصادرة والنتائج المتأخرة. لا يلغي تبديل النموذج بعض الآثار؛ فصرح بهذه الحدود في خطة الاستجابة. اختبر مسار الاسترداد في بيئة مضبوطة مدعومة قبل افتراض توفره.

احفظ قرار الإطلاق وحدوده

سجل هويتي المرشح والتحكم بدقة والتوزيع والتوقيت والأهلية والمقاييس المرصودة وأعدادها والعتبات والقرار وإصدارات المستهلكين. يوفر إطلاق أوقف دليلاً مفيداً عن تغيير وسياق معينين، لا إثباتاً لفشل كل مرشح مستقبلي بالمعمارية نفسها. إذا وجهت المقارنة ضبطاً لاحقاً فسجل استخدامها للاختيار قبل ادعاء تقييم مستقل جديد. تحسب البرامج ثوابت توزيع البصمة ومعدلاً ثابتاً وقيم توافق منطقية داخل الذاكرة فقط. ولا تظلل طلبات أو تشغل تجربة أو تغير المرور أو تنشر أثراً أو تنفذ تراجعاً.

الأخطاء الشائعة وإصلاحها

عُرض اتفاق الظل كأثر لقرار المرشح

لماذا يحدث؟
لم تؤثر مخرجات المرشح في القرارات المرصودة.
كيف تصلحه؟
صرح بحدود دليل الظل واستخدم تصميم تقييم أثر مناسباً.
كيف تتجنب تكراره؟
سجل المسار الذي تحكم فعلاً في كل قرار.

وُسع إطلاق محدود صغير فور غياب التنبيه

لماذا يحدث؟
لم يراع عدد المرور ونضج الوسوم وكفاية الرصد.
كيف تصلحه؟
طبق متطلبات الأدلة والضوابط المعلنة.
كيف تتجنب تكراره؟
اختبر قلة المرور وتأخر النتائج في سياسة القرار.

أشار التراجع إلى حزمة قديمة غير متوافقة

لماذا يحدث؟
تغيرت الاعتمادات بينما خُطط للاحتفاظ بالنموذج وحده.
كيف تصلحه؟
تحقق من المخطط والتحويلات والبيئة واسترداد المستهلك معاً.
كيف تتجنب تكراره؟
احفظ مثال استرداد مضبوطاً للعملية الكاملة.

اختبر فهمك

1. لماذا لا يكشف المرشح الظلي تلقائياً نتيجة استخدام قراراته المختلفة؟

اعرض الحل المشروح

ما زال المسار النشط يحدد الفعل الحقيقي، ولذلك تنتمي النتيجة المرصودة عادة إلى ذلك الفعل وسياقه. قد تختلف نتيجة المرشح المضادة للواقع. يستطيع الظل اختبار الحساب والتوافق التشغيلي، بينما يحتاج أثر القرار تصميماً وافتراضات مناسبين.

2. الحزمة القديمة موجودة لكنها تتوقع سمة حذفت. هل التراجع جاهز؟

اعرض الحل المشروح

لا. توفر الحزمة شرط واحد فقط. أعد مسار سمات وواجهة متوافقاً وفق خطة استرداد مراجعة، أو استخدم البديل المعلن إذا لم يدعم ذلك. تحقق من دالة المدخل إلى القرار كاملة، لا مجرد إمكان اختيار الملف القديم.

أهم ما تعلمته

  • يحدد وضع التعرض الأدلة المتاحة.
  • لا يغني توزيع مستقر عن تصميم تجربة.
  • يتطلب التراجع اعتمادات متوافقة وحدوداً صريحة.

المراجع الرسمية