طرح خزينة لنقاط النهاية عبر الإنترنت (معاينة)

APPLY TO: Azure CLI ml extension v1 v2 (معاينة)

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

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

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

هام

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

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

  • لاستخدام التعلم الآلي لـ Azure، يجب أن يكون لديك اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ. جرب الإصدار المجاني أو المدفوع الخاص بالتعلم الآلي لـ Azure اليوم.

  • يجب تثبيت وتكوين ملحق Azure CLI وML. للمزيد من المعلومات، راجع تثبيت CLI (v2) وإعداده واستخدامه (معاينة).

  • يجب أن يكون لديك مجموعة موارد Azure، حيث يجب أن يكون لديك (أو مسؤول الخدمة الذي تستخدمه) حق الوصول Contributor. امتلاك مجموعة من الموارد من هذا القبيل وذلك عند القيام بتكوين ملحق ML وفقاً للمقال سالف الذكر.

  • امتلاك Machine Learning workspace. امتلاك مساحة العمل وذلك للقيام بتكوين ملحق ML وفقاً للمقال سالف الذكر.

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

    az account set --subscription <subscription id>
    az configure --defaults workspace=<azureml workspace name> group=<resource group>
    
  • نقطة نهاية ونشر حالية عبر الإنترنت. تفترض هذه المقالة أن النشر الخاص بك كما هو موضح في نشر وتسجيل نموذج التعلم الآلي مع نقطة نهاية عبر الإنترنت (معاينة).

  • إذا لم تكن قد قمت بالفعل بتعيين متغير البيئة $ENDPOINT_NAME، فقم بذلك الآن:

    export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
    
  • (موصى به) استنساخ مستودع العينات والتبديل إلى دليل المستودع cli/ :

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

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

تأكيد إنشاء النشر الحالي

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

az ml online-endpoint show --name $ENDPOINT_NAME 

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

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

توسيع نطاق النشر الحالي للتعامل مع المزيد من الزيارات

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

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

ملاحظة

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

نشر نموذج جديد، ولكن لا ترسل له أي حركة مرور حتى الآن

إنشاء نشر جديد باسم green:

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

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

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

اختبار النشر الجديد

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

az ml online-endpoint invoke --name $ENDPOINT_NAME --deployment 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 عملية النشر، خصص نسبة صغيرة من الزيارات إليها:

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

الآن ، سيتلقى النشر الخاص بك green 10٪ من الطلبات.

إرسال كل حركة المرور إلى النشر الجديد

بمجرد أن تكون مقتنعا بأن النشر الخاص بك 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

الخطوات التالية