إجراء إطلاق آمن للتوزيعات الجديدة للاستدلال في الوقت الحقيقي

ينطبق على:ملحق ML Azure CLI v2 (الحالي)Python SDK azure-ai-ml v2 (الحالي)

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

تفترض هذه المقالة أنك تستخدم نقاط النهاية عبر الإنترنت، أي نقاط النهاية المستخدمة للاستدلال عبر الإنترنت (في الوقت الحقيقي). هناك نوعان من نقاط النهاية عبر الإنترنت: نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت. لمزيد من المعلومات حول نقاط النهاية والاختلافات بين نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت، راجع ما هي نقاط نهاية Azure التعلم الآلي؟.

يستخدم المثال الرئيسي في هذه المقالة نقاط النهاية المدارة عبر الإنترنت للنشر. لاستخدام نقاط نهاية Kubernetes بدلا من ذلك، راجع الملاحظات الموجودة في هذا المستند المضمنة مع مناقشة نقطة النهاية المدارة عبر الإنترنت.

في هذه المقالة، سوف تتعلم:

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

المتطلبات الأساسية

قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:

  • يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.

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

إعداد النظام الخاص بك

تعيين متغيرات البيئة

إذا لم تكن قد قمت بالفعل بتعيين الإعدادات الافتراضية لـAzure CLI، فاحفظ الإعدادات الافتراضية. لتجنب تمرير قيم اشتراكك، ومساحة العمل، ومجموعة الموارد عدة مرات، قم بتشغيل هذا التعليمة البرمجية:

az account set --subscription <subscription id>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

استنساخ مستودع الأمثلة

لمتابعة هذه المقالة، قم أولا باستنساخ مستودع الأمثلة (azureml-examples). ثم انتقل إلى دليل المستودع cli/ :

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

تلميح

استخدم --depth 1 لاستنساخ أحدث تثبيت للمستودع فقط. وهذا يقلل من الوقت لإكمال العملية.

الأوامر في هذا البرنامج التعليمي موجودة في الملف deploy-safe-rollout-online-endpoints.sh في cli الدليل، وملفات تكوين YAML في endpoints/online/managed/sample/ الدليل الفرعي.

إشعار

ملفات تكوين YAML لنقاط نهاية Kubernetes عبر الإنترنت موجودة في endpoints/online/kubernetes/ الدليل الفرعي.

تحديد نقطة النهاية والنشر

يتم استخدام نقاط النهاية عبر الإنترنت للاستدلال عبر الإنترنت (في الوقت الحقيقي). تحتوي نقاط النهاية عبر الإنترنت على عمليات نشر جاهزة لتلقي البيانات من العملاء وإرسال الاستجابات مرة أخرى في الوقت الفعلي.

تعريف نقطة نهاية

يسرد الجدول التالي السمات الرئيسية لتحديدها عند تعريف نقطة نهاية.

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

للاطلاع على قائمة كاملة بالسمات التي يمكنك تحديدها عند إنشاء نقطة نهاية، راجع CLI (v2) مخطط YAML لنقطة النهاية عبر الإنترنت أو SDK (v2) ManagedOnlineEndpoint Class.

تعريف التوزيع

يشكل التوزيع مجموعة من الموارد اللازمة لاستضافة النموذج الذي يقوم بالاستدلال الفعلي. يصف الجدول التالي السمات الرئيسية التي يجب تحديدها عند تعريف التوزيع.

السمة الوصف
الاسم مطلوب. اسم التوزيع.
اسم نقطة النهاية مطلوب. اسم نقطة النهاية لإنشاء التوزيع ضمن.
النموذج النموذج الذي يجب استخدامه للتوزيع. يمكن أن تكون هذه القيمة إما مرجعًا لنموذج موجود بإصدار في مساحة العمل أو لمواصفات نموذج مدمج. في هذا المثال، لدينا نموذج scikit-Learn الذي يقوم بالتراجع.
مسار التعليمات البرمجية المسار إلى الدليل على بيئة التطوير المحلية التي تحتوي على جميع التعليمات البرمجية لمصدر Python لتسجيل النموذج. يمكنك استخدام الدلائل والحزم المتداخلة.
برنامج نصي لتسجيل النقاط تعليمة Python البرمجية التي تنفذ النموذج على طلب إدخال معين. يمكن أن تكون هذه القيمة المسار النسبي لملف تسجيل النقاط في دليل التعليمات البرمجية المصدر.
يتلقى البرنامج النصي لتسجيل النقاط البيانات المرسلة إلى خدمة ويب منشورة ويمررها إلى النموذج. ثم ينفذ البرنامج النصي النموذج ويعيد استجابته إلى العميل. البرنامج النصي لتسجيل النقاط خاص بالنموذج الخاص بك ويجب أن يفهم البيانات التي يتوقعها النموذج كإدخل وإرجاع كإخراج.
في هذا المثال، لدينا ملف score.py . يجب أن تحتوي التعليمة البرمجية لـPython هذه على دالة init() ودالة run() . init() سيتم استدعاء الدالة بعد إنشاء النموذج أو تحديثه (يمكنك استخدامه لتخزين النموذج مؤقتا في الذاكرة، على سبيل المثال). يتم استدعاء الدالة run() في كل استدعاء لنقطة النهاية للقيام بتسجيل النقاط والتنبؤ الفعليين.
البيئة مطلوب. البيئة لاستضافة النموذج والرمز. يمكن أن تكون هذه القيمة إما مرجعًا لبيئة موجودة بإصدار في مساحة العمل أو مواصفات بيئة مدمجة. يمكن أن تكون البيئة صورة Docker مع تبعيات Conda أو Dockerfile أو بيئة مسجلة.
نوع المثيل مطلوب. حجم الجهاز الظاهري المراد استخدامه للتوزيع. للحصول على قائمة بالأحجام المدعومة، راجع قائمة SKU لنقاط النهاية المدارة عبر الإنترنت.
عدد المثيلات مطلوب. عدد المثيلات التي يجب استخدامها للتوزيع. قم بإسناد القيمة إلى حِمل العمل الذي تتوقعه. للحصول على قابلية وصول عالية، نوصي بتعيين القيمة إلى على الأقل 3. نحتفظ بنسبة 20٪ إضافية لإجراء الترقيات. لمزيد من المعلومات، راجع حدود نقاط النهاية عبر الإنترنت.

للاطلاع على قائمة كاملة بالسمات التي يمكنك تحديدها عند إنشاء عملية نشر، راجع مخطط YAML للتوزيع المدار عبر الإنترنت ل CLI (v2) أو SDK (v2) ManagedOnlineDeployment Class.

قم بإنشاء نقطة نهاية عبر الإنترنت

قم أولا بتعيين اسم نقطة النهاية ثم قم بتكوينه. في هذه المقالة، ستستخدم ملف endpoints/online/managed/sample/endpoint.yml لتكوين نقطة النهاية. تعرض القصاصة البرمجية التالية محتويات الملف:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

يتم وصف مرجع تنسيق YAML لنقطة النهاية في الجدول التالي. لمعرفة كيفية تحديد هذه السمات، راجع مرجع YAML لنقطة النهاية عبر الإنترنت. للحصول على معلومات حول الحدود المتعلقة بنقاط النهاية المدارة عبر الإنترنت، راجع حدود نقاط النهاية عبر الإنترنت.

المفتاح ‏‏الوصف
$schema (اختياري) مخطط YAML. لمشاهدة جميع الخيارات المتوفرة في ملف YAML، يمكنك عرض المخطط في قصاصة التعليمات البرمجية السابقة في مستعرض.
name اسم نقطة النهاية.
auth_mode استخدام key للمصادقة المستندة إلى المفتاح. استخدم aml_token للمصادقة المستندة إلى الرمز المميز التعلم الآلي من Microsoft Azure. للحصول على أحدث رمز مميز، استخدم az ml online-endpoint get-credentials الأمر .

لإنشاء نقطة نهاية عبر الإنترنت:

  1. تعيين اسم نقطة النهاية:

    بالنسبة إلى Unix، قم بتشغيل هذا الأمر (استبدل YOUR_ENDPOINT_NAME باسم فريد):

    export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
    

    هام

    يجب أن تكون أسماء نقاط النهاية فريدة داخل منطقة Azure. على سبيل المثال، في منطقة Azure westus2، يمكن أن تكون هناك نقطة نهاية واحدة فقط مع الاسم my-endpoint.

  2. إنشاء نقطة النهاية في السحابة:

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

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    

إنشاء عملية التوزيع 'الأزرق'

في هذه المقالة، ستستخدم ملف نقاط النهاية/online/managed/sample/blue-deployment.yml لتكوين الجوانب الرئيسية للتوزيع. تعرض القصاصة البرمجية التالية محتويات الملف:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

لإنشاء نشر باسم blue لنقطة النهاية الخاصة بك، قم بتشغيل الأمر التالي لاستخدام blue-deployment.yml الملف لتكوين

az ml online-deployment create --name blue --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic

هام

--all-traffic تخصص العلامة az ml online-deployment create في 100٪ من نسبة استخدام الشبكة لنقطة النهاية إلى النشر الأزرق الذي تم إنشاؤه حديثا.

في blue-deployment.yaml الملف، نحدد path (مكان تحميل الملفات) المضمنة. يقوم CLI تلقائياً بتحميل الملفات وتسجيل النموذج والبيئة. كأفضل ممارسة للإنتاج، يجب عليك تسجيل النموذج والبيئة وتحديد الاسم والإصدار المسجلين بشكل منفصل في YAML. استخدم النموذج model: azureml:my-model:1 أو environment: azureml:my-env:1.

للتسجيل، يمكنك استخراج تعريفات YAML لـmodel وenvironment إلى ملفات YAML منفصلة واستخدام الأوامر az ml model create وaz ml environment create. لمعرفة المزيد بشأن هذه الأوامر، قم بتشغيل az ml model create -h وaz ml environment create -h.

لمزيد من المعلومات حول تسجيل النموذج الخاص بك كأصل، راجع تسجيل نموذجك كأصل في التعلم الآلي باستخدام CLI. لمزيد من المعلومات حول إنشاء بيئة، راجع إدارة بيئات Azure التعلم الآلي باستخدام CLI وSDK (v2).

تأكيد التوزيع الحالي

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

إشعار

على عكس CLI أو Python SDK، يتطلب منك Azure التعلم الآلي studio تحديد توزيع عند استدعاء نقطة نهاية.

استدعاء نقطة النهاية باسم النشر

إذا قمت باستدعاء نقطة النهاية باسم النشر الذي سيتلقى نسبة استخدام الشبكة، فسيوجه Azure التعلم الآلي نسبة استخدام الشبكة لنقطة النهاية مباشرة إلى النشر المحدد ويعيد إخراجه. يمكنك استخدام --deployment-name الخيار ل CLI v2، أو deployment_name خيار SDK v2 لتحديد النشر.

استدعاء نقطة النهاية دون تحديد التوزيع

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

تخصص إعدادات التحكم في حركة المرور نسبا مئوية محددة من نسبة استخدام الشبكة الواردة لكل عملية نشر في نقطة النهاية. على سبيل المثال، إذا حددت قواعد حركة المرور الخاصة بك أن عملية نشر معينة في نقطة النهاية الخاصة بك ستتلقى نسبة استخدام الشبكة الواردة بنسبة 40٪ من الوقت، فسيوجه Azure التعلم الآلي 40٪ من نسبة استخدام الشبكة لنقطة النهاية إلى هذا النشر.

يمكنك عرض حالة نقطة النهاية الحالية والتوزيع عن طريق تشغيل:

az ml online-endpoint show --name $ENDPOINT_NAME 

az ml online-deployment show --name blue --endpoint $ENDPOINT_NAME 

يجب أن تشاهد نقطة النهاية المحددة بواسطة $ENDPOINT_NAME و، عملية توزيع تسمى blue.

اختبر نقطة النهاية ببيانات العينة

يمكن استدعاء نقطة النهاية باستخدام invoke الأمر . سنرسل نموذج طلب باستخدام ملف json.

az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

توسيع نطاق التوزيع الحالي الخاص بك للتعامل مع المزيد من نسبة استخدام الشبكة

في عملية التوزيع الموضحة في توزيع وتسجيل نموذج التعلم الآلي بنقطة نهاية عبر الإنترنت، يمكنك تعيين instance_count إلى القيمة 1 في ملف yaml للتوزيع. يمكنك التوسع باستخدام الأمر update :

az ml online-deployment update --name blue --endpoint-name $ENDPOINT_NAME --set instance_count=2

إشعار

لاحظ أننا في الأمر أعلاه نستخدم --set لإلغاء تكوين التوزيع. بدلاً من ذلك، يمكنك تحديث ملف yaml وتمريره كمدخل إلى الأمر update باستخدام الإدخال --file.

قم بتوزيع نموذج جديد، لكن لا ترسل إليه أي حركة مرور حتى الآن

قم بإنشاء عملية توزيع جديدة باسم green:

az ml online-deployment create --name green --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/green-deployment.yml

نظرا لأننا لم نخصص أي حركة مرور بشكل صريح إلى green، فإنه لا يحتوي على نسبة استخدام الشبكة المخصصة لها. يمكنك التحقق من ذلك باستخدام الأمر:

az ml online-endpoint show -n $ENDPOINT_NAME --query traffic

اختبار التوزيع الجديد

على الرغم من تخصيص 0% من نسبة استخدام الشبكة لـgreen، يمكنك استدعاؤها مباشرةً عن طريق تحديد اسم --deployment :

az ml online-endpoint invoke --name $ENDPOINT_NAME --deployment-name green --request-file endpoints/online/model-2/sample-request.json

إذا كنت تريد استخدام عميل REST لاستدعاء التوزيع مباشرة دون المرور بقواعد المرور، فقم بتعيين رأس HTTP التالي: azureml-model-deployment: <deployment-name>. يستخدم قصاصة برمجية التعليمة البرمجية أدناه curl لاستدعاء التوزيع مباشرة. يجب أن يعمل قصاصة برمجية التعليمة البرمجية في بيئات Unix/WSL:

# get the scoring uri
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
# use curl to invoke the endpoint
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --header "azureml-model-deployment: green" --data @endpoints/online/model-2/sample-request.json

اختبار التوزيع باستخدام حركة مرور معكوسة

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

للانعكاس القيود التالية:

  • النسخ المتطابق مدعوم ل CLI (v2) (الإصدار 2.4.0 أو أعلى) وPython SDK (v2) (الإصدار 1.0.0 أو أعلى). إذا كنت تستخدم إصدارا قديما من CLI/SDK لتحديث نقطة نهاية، فستفقد إعداد نسبة استخدام الشبكة المتطابقة.
  • النسخ المتطابق غير مدعوم حاليا لنقاط نهاية Kubernetes عبر الإنترنت.
  • يمكنك عكس نسبة استخدام الشبكة إلى نشر واحد فقط في نقطة نهاية.
  • النسبة المئوية القصوى لنسبة استخدام الشبكة التي يمكنك عكسها هي 50٪. هذا الحد هو تقليل التأثير على الحصة النسبية لعرض النطاق الترددي لنقطة النهاية (5 ميغابايت في الثانية الافتراضية) - يتم تقييد النطاق الترددي لنقطة النهاية إذا تجاوزت الحصة النسبية المخصصة. للحصول على معلومات بشأن مراقبة التحكم في النطاق الترددي، راجع مراقبة نقاط النهاية عبر الإنترنت المُدارة.

لاحظ أيضا السلوكيات التالية:

  • يمكن تكوين التوزيع لتلقي نسبة استخدام الشبكة المباشرة أو حركة المرور المتطابقة فقط، وليس كليهما.
  • عند استدعاء نقطة نهاية، يمكنك تحديد اسم أي من عمليات التوزيع الخاصة بها - حتى نشر الظل - لإرجاع التنبؤ.
  • عند استدعاء نقطة نهاية باسم النشر الذي سيتلقى نسبة استخدام الشبكة الواردة، لن يعكس Azure التعلم الآلي نسبة استخدام الشبكة إلى نشر الظل. يعكس Azure التعلم الآلي نسبة استخدام الشبكة إلى نشر الظل من نسبة استخدام الشبكة المرسلة إلى نقطة النهاية عندما لا تحدد توزيعا.

الآن، دعونا نضبط التوزيع الأخضر لتلقي 10٪ من نسبة استخدام الشبكة المتطابقة. سيظل العملاء يتلقون تنبؤات من النشر الأزرق فقط.

رسم تخطيطي يظهر نسبة استخدام الشبكة المنعكسة وهي 10٪ لنشر واحد.

يعكس الأمر التالي 10% من نسبة استخدام الشبكة إلى توزيع green :

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=10"

يمكنك اختبار حركة مرور متطابقة عن طريق استدعاء نقطة النهاية عدة مرات دون تحديد توزيع لتلقي نسبة استخدام الشبكة الواردة:

for i in {1..20} ; do
    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
done

يمكنك التأكد من أن النسبة المئوية المحددة لنسبة استخدام الشبكة تم إرسالها إلى green النشر من خلال رؤية السجلات من التوزيع:

az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME

بعد الاختبار، يمكنك ضبط نسبة استخدام الشبكة المتطابقة على صفر لتعطيل الانعكاس:

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=0"

تخصيص نسبة صغيرة من نسبة استخدام الشبكة المباشرة للنشر الجديد

بمجرد اختبار توزيع green، خصص نسبة صغيرة من نسبة استخدام الشبكة إليه:

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=90 green=10"

تلميح

يجب أن تجمع النسبة المئوية الإجمالية لنسبة استخدام الشبكة إلى 0٪ (لتعطيل نسبة استخدام الشبكة) أو 100٪ (لتمكين نسبة استخدام الشبكة).

الآن، يتلقى التوزيع الخاص بك green 10٪ من جميع نسبة استخدام الشبكة المباشرة. سيتلقى العملاء تنبؤات من عمليات blue التوزيع و green .

رسم تخطيطي يوضح تقسيم نسبة استخدام الشبكة بين عمليات النشر.

إرسال كل نسبة استخدام الشبكة إلى التوزيع الجديد الخاص بك

بمجرد أن تكون راضيا تماما عن النشر الخاص بك green ، قم بتبديل كل حركة المرور إليه.

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=0 green=100"

إزالة التوزيع القديم

استخدم الخطوات التالية لحذف عملية توزيع فردية من نقطة نهاية عبر الإنترنت مُدارة. يؤثر حذف نشر فردي على عمليات التوزيع الأخرى في نقطة النهاية المدارة عبر الإنترنت:

az ml online-deployment delete --name blue --endpoint $ENDPOINT_NAME --yes --no-wait

حذف نقطة النهاية والتوزيع

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

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait