Phase 17: Infrastructure & Production

حركة المرور في الظلال، إرسال القناريات، والتنفيذ التدريجي لشركات التدريب القانوني

يجمع تطويرات LLM بين أصعب أجزاء تنفيذ البرمجيات: لا اختبارات وحدة، وضع الفشل المنتشر، إشارات تأخير. التسلسل هو (1) وضع الظل طلبات إضافة مزدوجة لنموذج المرشح ، سجل ، مقارنة مع صفر تأثير للمستخدم ؛ يلتقط مشاكل توزيع واضحة ولكنه ليس ضمانًا للجودة ؛ (2) إرسال القناري تحول مرور تدريجي 10% → 25% → 50% → 75% → 100% مع بوابات في كل خطوة ؛ تتبع نسبة التخفيف ، وتكلفة / طلب ، وتسعيف الخطأ / رفض ، وتوزيع طول الخروج ، وتسعيف ردود الفعل المستخدم ؛ (3) اختبار A / B للبدائل المتميزة بعد تأكيد الاستقرار. غير القرار غير القابلة للتقليل تغير دقة يصل إلى 15% عبر الرحلات مع المدخلات المماثلة بسبب عدم الترافق في GPU FP بالإضافة إلى اختلاف حجم البطاقات. التكلفة متغيرة، وليس ثابتة نموذج أفضل بنسبة 20% يمكن أن يكون أكثر تكلفة 3x لكل مكالمة. سرعة الردع هي الحاسمة: إذا كان الردع يتطلب إعادة الانتشار، فأنت بطيء جدا. الحياة السياسية في التكوين / العلامات؛ الحياة النموذج في السجل مع إضافة المضغوطات؛ التراجع = السياسة التحول + عكس العدالة + وضع النموذج القديم في ثوان.

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 متريكات في كل خطوة:

  1. Latency percentiles P50، P95، P99: الاختراق: كاناري لديه P99 > 1.5x عند الحد الأساسي.
  2. Cost per requestالاختراق: > 20% فوق خط الأساس
  3. Error / refusal rate5xx + رفض صريح الاختراق: 2x خط الأساس
  4. Output length distribution المتوسط + P99. الانتهاك: التحول التوزيعي.
  5. 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٪.

التمارين

  1. أركضcode/main.pyإدخال رجعة تكلفة بنسبة 25% في أي مرحلة يتوقف القناري؟
  2. نموذجك الجديد لديه زيادة دقة 3% خارج الاتصال ولكن التكلفة / الطلب هو +18%. هل هي سفينة؟ يعتمد على السياسة كتابة كلا الطرق.
  3. صمم عملية إعادة التدريب التي تستغرق أقل من 60 ثانية من نهاية إلى نهاية.
  4. غير القرارية تظهر ±7٪ على تقييمك، حدد بوابات القناريات حتى لا تكوني تنبيهة كاذبة.
  5. وضع الظل يلتقط ارتفاعاً في التكلفة بنسبة 40% قبل القناري

الشروط الرئيسية

TermWhat people sayWhat 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

المزيد من القراءة

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.