تحديث خدمة ويب تم نشرها

في هذه المقالة، ستتعرف على كيفية تحديث خدمة ويب تم نشرها باستخدام 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.

راجع طريقة تحديث خدمة AKS.

راجع طريقة تحديث خدمة ACI.

هام

عند إنشاء إصدار جديد من نموذج، يجب تحديث كل خدمة تريد استخدامها يدويا.

لا يمكنك استخدام 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 .

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