وحدة 7 / 11

MLOps والنشر: نقل النموذج من المختبر إلى الإنتاج

المكاسب:

  • القدرة على التعرف على التحديات الخاصة لتعلم الآلة المتعلقة بالثلاثي وحزمة نموذج بيانات الكود وتقديم النموذج عبر الإنترنت أو دفعة واحدة وفقًا لاحتياجات العمل.
  • القدرة على تنفيذ أنماط النشر التدريجي والتراجع (الظل، الكناري، A/B، التراجع) وإضافة خطة التراجع المختبرة لكل عملية نشر
  • القدرة على الحفاظ على رابط قياس كود البيانات الخاص بالنموذج الذي تم وضعه في الإنتاج ويمكن تتبعه من خلال CI/CD الذي يتم التحكم فيه من خلال عتبة التقييم وتسجيل النموذج

إن الحصول على نموذج يحقق دقة تصل إلى 95% في دفتر الملاحظات هو نصف القصة فقط. أما النصف الآخر، وهو الجزء الأصعب في كثير من الأحيان، فهو إيصال هذا النموذج إلى المستخدمين الحقيقيين بطريقة موثوقة وقابلة للتطوير وقابلة للصيانة. يجمع MLOps (عمليات التعلم الآلي: نظام وضع نماذج تعلم الآلة وتشغيلها وصيانتها في الإنتاج) بين ممارسات DevOps لهندسة البرمجيات والتحديات الفريدة لتعلم الآلة. نغطي في هذه الوحدة خطوات نقل النموذج إلى الإنتاج وكيف يساعد الذكاء الاصطناعي في هذه العملية.

لماذا يختلف ML عن البرامج العادية؟

في البرامج العادية، يكون السلوك موجودًا في التعليمات البرمجية؛ إذا لم يتغير الكود، فلن يتغير السلوك. في تعلم الآلة، يعتمد السلوك على كل من التعليمات البرمجية والبيانات والنموذج. تخلق هذه الأبعاد الثلاثة التحديات الإضافية لعمليات MLOps:

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

ولهذا السبب يوجد فرق كبير بين "نموذج العمل" و"النموذج الجاهز للإنتاج".

تعبئة النماذج وتقديمها

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

نمطان أساسيان لخدمة النموذج:

  • عبر الإنترنت/في الوقت الفعلي (عبر الإنترنت): يوجد النموذج خلف واجهة برمجة التطبيقات (API)، ويعرض تنبؤًا فوريًا لكل طلب وارد. الكمون المنخفض أمر بالغ الأهمية.
  • الدفعة: يقوم النموذج بمعالجة مجموعات كبيرة من البيانات بشكل دوري (على سبيل المثال، إنشاء نتائج لجميع العملاء في الليل). الكمون ليس له صلة، الكفاءة مهمة.

أيهما صحيح يعتمد على حاجة العمل: توصية فورية عبر الإنترنت، ودرجة المخاطر الشهرية دفعة واحدة.

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

استراتيجيات التوزيع الآمنة

يعد فتح نموذج جديد مباشرة لجميع حركة المرور أمرًا محفوفًا بالمخاطر؛ إذا كان الخطأ، فإن الجميع يتأثر. أنماط التوزيع الآمن:

  • نشر الظل: يتلقى النموذج الجديد حركة الإنتاج، ولكن لا تظهر توقعاته للمستخدم، بل يتم تسجيلها فقط. تتم مقارنته بالنموذج القديم لمعرفة ما إذا كان آمنًا في البيانات الحقيقية.
  • نشر Canary: تم طرح النموذج الجديد لأول مرة لنسبة صغيرة من حركة المرور (على سبيل المثال 5%)؛ إذا لم تكن هناك مشكلة، يتم زيادتها تدريجياً.
  • اختبار أ/ب: يتم تقديم نموذجين للمستخدم الحقيقي بشكل متوازٍ ويتم مقارنة مقاييس الأعمال (التحويل والنقرات).
  • التراجع: القدرة على العودة بسرعة إلى الإصدار القديم إذا تبين أن النموذج الجديد سيئ. يجب أن يكون لكل عملية نشر خطة التراجع.
تنبيه: لا يكتمل النشر بدون خطة العودة إلى الحالة السابقة. إن القدرة على العودة إلى الإصدار القديم خلال دقائق تحمي المستخدم عندما يتصرف النموذج الجديد بشكل غير متوقع في الإنتاج. اختبر هذا قبل النشر.

نهج ضعيف / نهج قوي

ضعيف: "كان النموذج جيدًا في الاختبار، لقد بدأنا البث المباشر، وفتحناه للجميع."

غوتشلو: "لقد قمنا بوضع النموذج في حاوية، ووضعنا علامة عليه كإصدار. أولاً، قمنا بتشغيله في وضع الظل مع حركة الإنتاج لمدة 3 أيام، ومقارنة التنبؤات بالنموذج القديم - كان الانحراف مقبولًا. ثم فتحناه باستخدام كناري بنسبة 5%، وراقبنا مقاييس الإنتاجية ووقت الاستجابة. وعندما لم تكن هناك مشاكل، قمنا بزيادتها تدريجيًا إلى 100%. لقد اختبرنا أمر التراجع مسبقًا."

الفرق: النهج القوي هو نهج تدريجي ومدروس وقابل للعكس. المخاطر محدودة في كل خطوة.

CI/CD والأتمتة

CI/CD (التكامل المستمر / النشر المستمر: مسار الاختبار التلقائي وإصدار تغييرات التعليمات البرمجية) في ML لا يغطي التعليمات البرمجية فحسب، بل يشمل أيضًا البيانات وخطوات النموذج. خط أنابيب ML CI/CD جيد: يقوم بإجراء الاختبارات عندما يتغير الكود، ويجري التحقق من صحة البيانات، ويعيد تدريب النموذج (إذا لزم الأمر)، ويتحقق من حدود التقييم، ولا يتقدم بالنشر إلا إذا كانت الحدود ثابتة. مبدأ "التدريب تلقائي، والنشر يعتمد على العتبة" يمنع النموذج السيئ من التسرب بصمت إلى الإنتاج.

يعد الذكاء الاصطناعي مفيدًا جدًا عند إعداد خطوط الأنابيب هذه: كتابة مسودات ملف التكوين (YAML)، وحالات الاختبار، والبرامج النصية للنشر. لكنك تحدد حدود التوزيع (أي مقياس يتجاوز القيمة المنشورة) وسياسة التراجع؛ هذه هي قرارات مخاطر العمل.

البنية التحتية للاستنساخ

من أجل إعادة إنتاج سلوك النموذج في الإنتاج، سجل النموذج: سجل يحتفظ بالنموذج الذي تم تدريبه باستخدام البيانات والتعليمات البرمجية والمقاييس التي تلقاها. بالنسبة لكل نموذج إنتاج، يجب أن يكون ما يلي قابلاً للتتبع: إصدار بيانات التدريب، وإصدار التعليمات البرمجية (التزام git)، والمعلمات الفائقة، ودرجات التقييم، وتاريخ النشر. عند ظهور مشكلة، يجب أن تكون قادرًا على الإجابة على السؤال "ما النموذج الذي أنتج هذا التنبؤ، وبأي بيانات؟" في غضون دقائق. سنتعمق في هذا في الوحدة 11.

ثلاث حالات صغيرة

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

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

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

قوالب قابلة للنسخ

اكتب مسودة خطة النشر لهذا النموذج. النموذج: [ماذا يفعل]، الاستخدام: [عبر الإنترنت أو دفعة؟] يجب أن يتضمن: 1) التغليف (الحاوية، الإصدار) 2) استراتيجية النشر التزايدي (الظل/الكناري/أ-ب) ولماذا 3) المقاييس التي يجب تتبعها (الأعمال + التقنية + زمن الاستجابة) 4) خطة التراجع وكيفية الاختبار 5) حدود النشر (أي مقياس يجب أن يتجاوز القيمة)

تحقق من خط أنابيب ML CI/CD: 1) هل يتم التحقق من صحة البيانات في السطر؟ 2) هل يمكن متابعة النشر دون الاحتفاظ بعتبة التقييم (لا ينبغي ذلك)؟ 3) هل التراجع تلقائي؟ 4) هل يتم تتبع البيانات + الكود + المقاييس في سجل النموذج؟ تكوين الخط: [config]

ساعدني في تحديد ما إذا كان العرض التقديمي عبر الإنترنت أو على دفعات مناسبًا لهذا النموذج. كم من الوقت سيتم استخدام النتيجة: [فورية / دقيقة / ساعة / يوم] حجم الطلب المتوقع: [الرقم] هل هناك قيد تأخير: [مللي ثانية] ما الذي توصي به من حيث التكلفة والتعقيد ولماذا؟

اكتب إجراء التراجع لهذا النموذج. - ما المقياس/العتبة التي تؤدي إلى ضعف الأداء؟ - ما هي خطوات التراجع؟ - كم من الوقت يجب أن يستغرق التراجع (الهدف)؟ - كيف يمكنني اختبار هذا الإجراء قبل الإنتاج؟

جدول أنماط العرض

المعيار

عبر الإنترنت (في الوقت الحقيقي)

دفعة

تأخير

حرجة (ملي ثانية)

تافهة

الاستخدام

الاستجابة الفورية مطلوبة

النتيجة الدورية

التكلفة

عالية

منخفض

التعقيد

عالية

منخفض

مثال

توصية حية، عملية احتيال

درجة المخاطر الشهرية

الأخطاء الشائعة

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

باختصار

يعد نقل النموذج إلى الإنتاج مهمة هندسية مختلفة وغالبًا ما تكون أكثر صعوبة من تدريبه. يتطلب تعلم الآلة انضباطًا إضافيًا لأنه يعتمد على ثلاثي نموذج البيانات والكود: التعبئة والتغليف والإصدار، ونمط التسليم (عبر الإنترنت/الدفعة) الذي يناسب احتياجات العمل، والنشر التدريجي والقابل للعكس، وCI/CD الذي يتم التحكم فيه من خلال العتبة وتسجيل النموذج. يعد الذكاء الاصطناعي وسيلة مساعدة قوية في إنشاء التعليمات البرمجية وتكوين هذه البنية التحتية؛ ولكن عتبات التوزيع، وسياسة الاسترداد، وقرارات المخاطر هي ملكك. التوزيع بدون خطة التراجع غير مكتمل.

مهمة التطبيق

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

قائمة مرجعية

  • [ ] تم تعبئة النموذج وإصداره (حاوية + ملصق).
  • [ ] تم اختيار نمط العرض (عبر الإنترنت/دفعة) وفقًا لاحتياجات العمل.
  • [ ] تم تنفيذ استراتيجية النشر المرحلي (الظل/الكناري).
  • [ ] تمت كتابة إجراء الاستعادة واختباره.
  • [ ] لا يؤدي CI/CD إلى تقدم عملية النشر قبل استيفاء حد التقييم.
  • [ ] يحتوي سجل النموذج على رابط البيانات+الكود+المقياس.