إجراء إطلاق آمن للتوزيعات الجديدة للاستدلال في الوقت الحقيقي
ينطبق على:ملحق ML Azure CLI v2 (الحالي)
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، ستتعلم كيفية نشر إصدار جديد من نموذج التعلم الآلي في الإنتاج دون التسبب في أي تعطيل. ستستخدم استراتيجية نشر زرقاء أخضر (تعرف أيضا باسم استراتيجية الإطلاق الآمن) لتقديم إصدار جديد من خدمة الويب للإنتاج. ستسمح لك هذه الاستراتيجية بطرح الإصدار الجديد من خدمة الويب لمجموعة فرعية صغيرة من المستخدمين أو الطلبات قبل طرحها بالكامل.
تفترض هذه المقالة أنك تستخدم نقاط النهاية عبر الإنترنت، أي نقاط النهاية المستخدمة للاستدلال عبر الإنترنت (في الوقت الحقيقي). هناك نوعان من نقاط النهاية عبر الإنترنت: نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت. لمزيد من المعلومات حول نقاط النهاية والاختلافات بين نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت، راجع ما هي نقاط نهاية Azure التعلم الآلي؟.
يستخدم المثال الرئيسي في هذه المقالة نقاط النهاية المدارة عبر الإنترنت للنشر. لاستخدام نقاط نهاية Kubernetes بدلا من ذلك، راجع الملاحظات الموجودة في هذا المستند المضمنة مع مناقشة نقطة النهاية المدارة عبر الإنترنت.
في هذه المقالة، سوف تتعلم:
- تعريف نقطة نهاية عبر الإنترنت مع نشر يسمى "أزرق" لخدمة الإصدار 1 من نموذج
- تغيير حجم التوزيع الأزرق بحيث يمكنه التعامل مع المزيد من الطلبات
- نشر الإصدار 2 من النموذج (يسمى النشر "الأخضر") إلى نقطة النهاية، ولكن أرسل التوزيع بدون حركة مرور مباشرة
- اختبار الانتشار الأخضر في عزلة
- عكس نسبة مئوية من نسبة استخدام الشبكة المباشرة إلى النشر الأخضر للتحقق من صحتها
- إرسال نسبة صغيرة من نسبة استخدام الشبكة المباشرة إلى النشر الأخضر
- إرسال عبر كل حركة المرور المباشرة إلى النشر الأخضر
- حذف التوزيع الأزرق الإصدار 1 غير المستخدم الآن
المتطلبات الأساسية
قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:
Azure CLI والملحق
ml
إلى Azure CLI. لمزيد من المعلومات، راجع تثبيت وإعداد واستخدام واجهة مستوى الاستدعاء (CLI) (الإصدار 2).هام
تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux.
مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم تكن لديك واحدة، فاستخدم الخطوات الواردة في تثبيت CLI (v2) وإعدادها واستخدامها لإنشاء واحدة.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (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 الأمر . |
لإنشاء نقطة نهاية عبر الإنترنت:
تعيين اسم نقطة النهاية:
بالنسبة إلى Unix، قم بتشغيل هذا الأمر (استبدل
YOUR_ENDPOINT_NAME
باسم فريد):export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
هام
يجب أن تكون أسماء نقاط النهاية فريدة داخل منطقة Azure. على سبيل المثال، في منطقة Azure
westus2
، يمكن أن تكون هناك نقطة نهاية واحدة فقط مع الاسمmy-endpoint
.إنشاء نقطة النهاية في السحابة:
قم بتشغيل التعليمات البرمجية
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% من نسبة استخدام الشبكة إلى توزيع 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
المحتوى ذو الصلة
- استكشاف نماذج نقاط النهاية المتصل
- توزيع النماذج باستخدام REST
- استخدام عزل الشبكة مع نقاط النهاية المدارة عبر الإنترنت
- الوصول إلى موارد Azure بنقطة نهاية عبر الإنترنت وهوية مُدارة
- مراقبة نقاط النهاية المدارة عبر الإنترنت
- إدارة وزيادة حصص الموارد باستخدام التعلم الآلي من Azure
- عرض تكاليف نقطة نهاية عبر الإنترنت مُدارة من Azure Machine Learning
- قائمة SKU لنقاط النهاية المُدارة عبر الإنترنت
- استكشاف أخطاء توزيع نقاط النهاية وتسجيلها عبر الإنترنت وإصلاحها
- مرجع YAML لنقطة النهاية عبر الإنترنت
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ