تحديث خدمة ويب تم نشرها
في هذه المقالة، ستتعرف على كيفية تحديث خدمة ويب تم نشرها باستخدام Azure التعلم الآلي.
المتطلبات الأساسية
تفترض هذه المقالة أنك قمت بالفعل بنشر خدمة ويب باستخدام Azure التعلم الآلي. إذا كنت بحاجة إلى معرفة كيفية نشر خدمة ويب، فاتبع الخطوات التالية.
تفترض مقتطفات التعليمات البرمجية في هذه المقالة أن
wsالمتغير قد تمت تهيئته بالفعل إلى مساحة العمل الخاصة بك باستخدام منشئ Workflow () أو تحميل تكوين محفوظ باستخدام Workspace.from_config(). يوضح المقتطف التالي كيفية استخدام المنشئ:from azureml.core import Workspace ws = Workspace(subscription_id="mysubscriptionid", resource_group="myresourcegroup", workspace_name="myworkspace")
تحديث خدمة الويب
لتحديث خدمة ويب، استخدم الطريقة update . يمكنك تحديث خدمة الويب لاستخدام نموذج جديد أو برنامج نصي إدخال جديد أو تبعيات جديدة يمكن تحديدها في تكوين استدلال. لمزيد من المعلومات، راجع الوثائق الخاصة ب Webservice.update.
هام
عند إنشاء إصدار جديد من نموذج، يجب تحديث كل خدمة تريد استخدامها يدويا.
لا يمكنك استخدام SDK لتحديث خدمة ويب منشورة من مصمم Azure التعلم الآلي.
هام
تستخدم Azure Kubernetes Service برنامج تشغيل Blobfuse FlexVolume للإصدارات = 1.16 وبرنامج تشغيل Blob CSI للإصدارات ><= 1.17.
لذلك، من المهم إعادة نشر أو تحديث خدمة ويب بعد ترقية نظام المجموعة من أجل النشر لتصحيح أسلوب blobfuse لإصدار نظام المجموعة.
ملاحظة
عندما تكون العملية قيد التقدم بالفعل، فإن أي عملية جديدة على نفس خدمة الويب هذه ستستجيب بخطأ تعارض 409. على سبيل المثال، إذا كانت عملية إنشاء خدمة ويب أو تحديثها قيد التقدم وإذا قمت بتشغيل عملية حذف جديدة، فسيحدث خطأ.
استخدام SDK
توضح التعليمة البرمجية التالية كيفية استخدام SDK لتحديث النموذج والبيئة والبرنامج النصي للإدخال لخدمة ويب:
from azureml.core import Environment
from azureml.core.webservice import Webservice
from azureml.core.model import Model, InferenceConfig
# Register new model.
new_model = Model.register(model_path="outputs/sklearn_mnist_model.pkl",
model_name="sklearn_mnist",
tags={"key": "0.1"},
description="test",
workspace=ws)
# Use version 3 of the environment.
deploy_env = Environment.get(workspace=ws,name="myenv",version="3")
inference_config = InferenceConfig(entry_script="score.py",
environment=deploy_env)
service_name = 'myservice'
# Retrieve existing service.
service = Webservice(name=service_name, workspace=ws)
# Update to new model(s).
service.update(models=[new_model], inference_config=inference_config)
service.wait_for_deployment(show_output=True)
print(service.state)
print(service.get_logs())
استخدام CLI
يمكنك أيضا تحديث خدمة ويب باستخدام ML CLI. يوضح المثال التالي تسجيل نموذج جديد ثم تحديث خدمة ويب لاستخدام النموذج الجديد:
APPLY TO: Azure CLI ml extension
ع1
v2 (معاينة)
az ml model register -n sklearn_mnist --asset-path outputs/sklearn_mnist_model.pkl --experiment-name myexperiment --output-metadata-file modelinfo.json
az ml service update -n myservice --model-metadata-file modelinfo.json
تلميح
في هذا المثال، يتم استخدام مستند JSON لتمرير معلومات النموذج من أمر التسجيل إلى أمر التحديث.
لتحديث الخدمة لاستخدام برنامج نصي أو بيئة إدخال جديدة، قم بإنشاء ملف تكوين استدلال وحدده باستخدام المعلمة ic .
لمزيد من المعلومات، راجع وثائق تحديث خدمة az ml .
الخطوات التالية
- استكشاف أخطاء النشر الفاشل وإصلاحها
- النشر في Azure Kubernetes Service
- إنشاء تطبيقات العميل لاستهلاك خدمات الويب
- كيفية نشر نموذج باستخدام صورة Docker مخصصة
- استخدم طبقة النقل الآمنة لتأمين خدمة ويب من خلال Azure التعلم الآلي
- راقب طرازات Azure التعلم الآلي باستخدام Insights التطبيقات
- جمع البيانات للنماذج في الإنتاج
- إنشاء تنبيهات الأحداث والمشغلات لعمليات نشر النماذج