حركة المرور في الظلال، إرسال القناريات، والتنفيذ التدريجي لشركات التدريب القانوني
Type: Learn
Languages: Python (stdlib, toy canary-progression simulator)
Prerequisites: Phase 17 · 13 (Observability), Phase 17 · 21 (A/B Testing)
Time: ~60 minutes
أهداف التعلم
- تمييز وضع الظل (مقارنة صفر تأثير) ، القناري (تحرك حركة المرور المتحرك التقدم) ، و A / B (مقارنة مؤكدة الاستقرار).
- قم بإدراج خمسة مقاييس قناريّة محدّدة لـ LLM (التأخير، التكلفة/طلب، الخطأ/الرفض، توزيع طول الخروج، ردود الفعل المستخدمية).
- شرح لماذا عدم تحديد القانون (حتى 15٪) يغير ما يعنيه "ثابت" في التنفيذ.
- صمم مسار إعادة التنفيذ يستغرق ثواني (تغيير السياسة) وليس ساعات (تعديل النشاط).
المشكلة
أنت ترسل نموذجًا جديدًا. تظهر التقييمات غير التشغيلية زيادة دقة بنسبة 3%. تقوم بتعديلها في الإنتاج. في غضون 24 ساعة، ارتفعت التكلفة بنسبة 40٪، ارتفعت إبهام المستخدم بنسبة 8٪، وبلغت ثلاث تذاكر عملاء عن "ردود غريبة". تتراجع. يستغرق إعادة التنفيذ 3 ساعات. انتهى عطلة نهاية الأسبوع الخاص بك.
كان كل جزء من ذلك يمكن تجنبه. وضع الظل كان سيصيب ارتفاع تكلفة 40% قبل أن يراه أي مستخدم. كاناري كان سيتوقف عند 10% عندما تحرك الإبهام إلى أسفل. كان يستغرق إعادة علم السياسة 30 ثانية. الانضباط هو ما يملأ الفجوة بين "تقييمات خارج الإنترنت تبدو جيدة" و "المستخدمين الحقيقيين سعداء".
المفهوم
وضع الظل
يتلقى المرشح نفس الطلبات التي يتم إجراؤها في الإنتاج؛ يتم تسجيل الخروج، وليس إرجاعها إلى المستخدمين. صفر تأثير للمستخدم. تسجيل:
- محتوى الإنتاج (الاختلاف ضد الإنتاج).
- حسابات الرموز (ديلتا التكلفة).
- التأخير
- الرفض والخطأ
الاعتراضات: ارتفاع التكاليف، تراجع الطول، تغييرات واضحة في الرفض، أخطاء صعبة. لا يلتقط: مستخدمي دلتا الجودة قد يدركونها. الظل اختبار دخان، وليس اختبار الجودة.
إطلاق القناريات
التحول التدريجي للاتصالات مع البوابات. التقدم النموذجي: 1% → 10% → 25% → 50% → 75% → 100%. البوابة على 5 متريكات في كل خطوة:
- Latency percentiles P50، P95، P99: الاختراق: كاناري لديه P99 > 1.5x عند الحد الأساسي.
- Cost per requestالاختراق: > 20% فوق خط الأساس
- Error / refusal rate5xx + رفض صريح الاختراق: 2x خط الأساس
- Output length distribution المتوسط + P99. الانتهاك: التحول التوزيعي.
- User-feedback rateإبهام أسفل / تقديم التذاكر .
عدم التحديد هو التباين الجديد
المدخلات المتطابقة تنتج نتائج غير متطابقة.
- عدم الترافق بين GPU FP (تختلف ترتيب تخفيض نقطة العبور حسب الحزمة).
- اختلاف حجم الحزمة (المسألة نفسها في حزمة من 128 مقابل حزمة من 16).
- أخذ العينات (درجة الحرارة > 0).
مقياس: تغير دقة يصل إلى 15% على أساس أجهزة تقييم متطابقة. "ثابت" في عملية التنفيذ يعني أن المقاييس موجودة ضمن التباين المتوقع، وليس متطابقة مع خط الأساس. حدد البوابات فوق أرضية الضوضاء.
التكلفة متغيرة
نموذج أفضل بنسبة 20% يمكن أن يكون أكثر تكلفة ثلاث مرات لكل مكالمة. التكلفة / الطلب هي واحدة من البوابات الخمسة. شحن نموذج "أفضل" يكسره اقتصاد الوحدة هو حالة عكس.
الـ (رول باك) هو السلاح
- علامة السياسة (نظام علامة الميزة): نسبة المعدل في التكوين؛ يستغرق ثواني.
- وضع النموذج (إضافة السجل): لا يقوم النموذج المعلق بتحديثه تلقائيًا.
- الرد = إعادة العلم + وضع إضافة محصنة إلى السابق.
إذا كانت كومة الطائرات تتطلب إعادة التنفيذ إلى الوراء، قم بإصلاح ذلك قبل التدفق.
أدوات
Argo Rollouts- لا ، لاFlagger مكافحة التسليم التدريجية Kubernetes. متكاملة مع Istio/Linkerd توجيه معزز.
Istio weighted routing تقسيم حركة المرور على مستوى شبكة الخدمات.
KServe / Seldon Core نموذج يخدم مع القناري المدمج.
Feature flagsإطلاق "مظلم" و "فليجسميث" و "إطلاق"
تسلسل المقاييس
تفتيش بوابات القناري كل 5-15 دقيقة اعتمادا على حجم حركة المرور. 1٪ من حركة المرور مع 10 ريكو / دقيقة يعطي 50-150 نقطة بيانات لكل نافذة كافية للتأخير ولكن ضوضاء لمراجعة المستخدمين. 10٪ يعطي ~ 10x أكثر. يجب أن تتوقف التقدم لفترة كافية لجمع ما يكفي من العينات في كل خطوة.
خطوة A/B اختياري
إذا كان النموذج الجديد مختلفًا بشكل واضح (سلوك مختلف ، منحنى التكلفة مختلف ، نغمة مختلفة) ، فاختبر A / B عند 50% بعد مرور Canary. إذا كان مجرد نسخة محسنة ، فانتقل إلى 100% عندما تمر بوابات Canary.
أرقام يجب أن تتذكر
- تقدم القناري: 1٪ → 10٪ → 25٪ → 50٪ → 75٪ → 100٪
- السقف غير القياسي: تغير متواصل يصل إلى 15% على المدخلات المتطابقة.
- خمس مقاييس قناري: تأخير، التكلفة، الخطأ/الرفض، طول الخروج، ردود الفعل المستخدمية.
- بوابة التكلفة: > 20% فوق الخط الأساسي هو خرق.
- الظهور: ثواني، ليس ساعات.
استخدمها
code/main.pyيحاكي إطلاق القناري مع تراجعات حقن. تقارير التي تتوقف في مرحلة الإطلاق والبوابة التي تم تنشيطها.
أرسله
هذا الدرس يُنتجoutputs/skill-rollout-runbook.md. بالنظر إلى نموذج المرشح، والخط الأساسي، وتسامح المخاطر، تصميم خطة الظل→كاناري→100٪.
التمارين
- أركض
code/main.pyإدخال رجعة تكلفة بنسبة 25% في أي مرحلة يتوقف القناري؟ - نموذجك الجديد لديه زيادة دقة 3% خارج الاتصال ولكن التكلفة / الطلب هو +18%. هل هي سفينة؟ يعتمد على السياسة كتابة كلا الطرق.
- صمم عملية إعادة التدريب التي تستغرق أقل من 60 ثانية من نهاية إلى نهاية.
- غير القرارية تظهر ±7٪ على تقييمك، حدد بوابات القناريات حتى لا تكوني تنبيهة كاذبة.
- وضع الظل يلتقط ارتفاعاً في التكلفة بنسبة 40% قبل القناري
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Shadow mode | "duplicate to new" | Zero-impact send-to-candidate for logging |
| Canary | "progressive traffic" | Gradual user-exposed rollout with gates |
| Gates | "rollout checks" | Metric thresholds that block progression |
| Non-determinism | "LLM variance" | Irreducible run-to-run differences |
| Policy flag | "flag flip rollback" | Config-level rollback, seconds not hours |
| Model pin | "registry digest" | Immutable reference to a model version |
| Argo Rollouts | "K8s progressive" | Kubernetes-native canary/rollback controller |
| KServe | "inference K8s" | Model serving with canary primitives |
| Istio weighted | "mesh split" | Service-mesh traffic splitter |
المزيد من القراءة
- TianPan — Releasing AI Features Without Breaking Production
- MarkTechPost — Safely Deploying ML Models
- APXML — Advanced LLM Deployment Patterns
- Argo Rollouts docs
- Flagger docs
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.