مشاركة النماذج والمكونات والبيئات عبر مساحات العمل باستخدام السجلات

يتيح لك سجل Azure التعلم الآلي التعاون عبر مساحات العمل داخل مؤسستك. باستخدام السجلات، يمكنك مشاركة النماذج والمكونات والبيئات.

هناك سيناريوهان حيث تريد استخدام نفس مجموعة النماذج والمكونات والبيئات في مساحات عمل متعددة:

  • MLOps عبر مساحة العمل: تقوم بتدريب نموذج في dev مساحة عمل وتحتاج إلى نشره في test مساحات العمل و prod . في هذه الحالة، تريد أن يكون لديك دورة حياة من طرف إلى طرف بين نقاط النهاية التي يتم نشر النموذج فيها أو test prod مساحات العمل ووظيفة التدريب والمقاييس والتعليمات البرمجية والبيانات والبيئة التي تم استخدامها لتدريب النموذج في dev مساحة العمل.
  • مشاركة النماذج والتدفقات وإعادة استخدامها عبر فرق مختلفة: تعمل المشاركة وإعادة الاستخدام على تحسين التعاون والإنتاجية. في هذا السيناريو، قد تحتاج إلى نشر نموذج مدرب والمكونات والبيئات المقترنة المستخدمة لتدريبه على كتالوج مركزي. من هناك، يمكن للزملاء من الفرق الأخرى البحث عن الأصول التي شاركتها في تجاربهم الخاصة وإعادة استخدامها.

ستتعرف في هذه المقالة على كيفية:

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

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

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

  • سجل Azure التعلم الآلي لمشاركة النماذج والمكونات والبيئات. لإنشاء سجل، راجع التعرف على كيفية إنشاء سجل.

  • مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحدة، فاستخدم الخطوات الواردة في مقالة التشغيل السريع: إنشاء موارد مساحة العمل لإنشاء واحدة.

    هام

    يجب أن تكون منطقة Azure (الموقع) حيث تقوم بإنشاء مساحة العمل الخاصة بك في قائمة المناطق المدعومة لسجل Azure التعلم الآلي

  • Azure CLI والملحق ml أو Azure التعلم الآلي Python SDK v2:

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

    هام

    • تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux‬.

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

      • استبدل <subscription> بمعرف اشتراك Azure الخاص بك.
      • استبدل <workspace> بمساحة عمل التعلم الآلي من Azure.
      • استبدل <resource-group> بمجموعة موارد Azure التي تحتوي على مساحة العمل لديك.
      • استبدل <location> بمنطقة Azure التي تحتوي على مساحة العمل.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      بإمكانك معرفة ما الإعدادات الافتراضية الحالية باستخدام الأمر az configure -l.

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

تستند أمثلة التعليمات البرمجية في هذه المقالة إلى nyc_taxi_data_regression النموذج في مستودع الأمثلة. لاستخدام هذه الملفات على بيئة التطوير الخاصة بك، استخدم الأوامر التالية لاستنساخ المستودع وتغيير الدلائل إلى المثال:

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

بالنسبة لمثال CLI، قم بتغيير الدلائل إلى cli/jobs/pipelines-with-components/nyc_taxi_data_regression في النسخة المحلية من مستودع الأمثلة.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

إنشاء اتصال SDK

تلميح

هذه الخطوة مطلوبة فقط عند استخدام Python SDK.

إنشاء اتصال عميل بكل من مساحة عمل Azure التعلم الآلي والسجل:

ml_client_workspace = MLClient( credential=credential,
    subscription_id = "<workspace-subscription>",
    resource_group_name = "<workspace-resource-group",
    workspace_name = "<workspace-name>")
print(ml_client_workspace)

ml_client_registry = MLClient(credential=credential,
                        registry_name="<REGISTRY_NAME>",
                        registry_location="<REGISTRY_REGION>")
print(ml_client_registry)

إنشاء بيئة في السجل

تحدد البيئات حاوية docker وتبعيات Python المطلوبة لتشغيل مهام التدريب أو توزيع النماذج. لمزيد من المعلومات حول البيئات، راجع المقالات التالية:

تلميح

يمكن استخدام نفس أمر az ml environment create CLI لإنشاء بيئات في مساحة عمل أو سجل. يؤدي تشغيل الأمر مع --workspace-name الأمر إلى إنشاء البيئة في مساحة عمل بينما يؤدي تشغيل الأمر مع --registry-name إلى إنشاء البيئة في السجل.

سنقوم بإنشاء بيئة تستخدم python:3.8 صورة docker وتثبيت حزم Python المطلوبة لتشغيل مهمة تدريبية باستخدام إطار عمل SciKit Learn. إذا قمت باستنساخ مستودع الأمثلة وكنت في المجلد cli/jobs/pipelines-with-components/nyc_taxi_data_regression، يجب أن تكون قادرا على رؤية ملف env_train.yml تعريف البيئة الذي يشير إلى ملف env_train/Dockerfiledocker . env_train.yml يظهر أدناه للرجوع إليه:

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: SKLearnEnv
version: 1
build:
  path: ./env_train

إنشاء البيئة باستخدام كما az ml environment create يلي

az ml environment create --file env_train.yml --registry-name <registry-name>

إذا تلقيت خطأ بأن بيئة بهذا الاسم والإصدار موجودة بالفعل في السجل، يمكنك إما تحرير version الحقل في env_train.yml أو تحديد إصدار مختلف على CLI يتجاوز قيمة الإصدار في env_train.yml.

# use shell epoch time as the version
version=$(date +%s)
az ml environment create --file env_train.yml --registry-name <registry-name> --set version=$version

تلميح

version=$(date +%s) يعمل فقط في Linux. استبدل $version برقم عشوائي إذا لم ينجح ذلك.

لاحظ أسفل name و version البيئة من إخراج az ml environment create الأمر واستخدمها مع az ml environment show الأوامر كما يلي. ستحتاج إلى name و version في القسم التالي عند إنشاء مكون في السجل.

az ml environment show --name SKLearnEnv --version 1 --registry-name <registry-name>

تلميح

إذا استخدمت اسم بيئة أو إصدارا مختلفا، فاستبدل --name المعلمتين و --version وفقا لذلك.

يمكنك أيضا استخدام az ml environment list --registry-name <registry-name> لسرد جميع البيئات في السجل.

يمكنك استعراض جميع البيئات في Azure التعلم الآلي studio. تأكد من الانتقال إلى واجهة المستخدم العمومية والبحث عن إدخال السجلات .

لقطة شاشة للبيئات في السجل.

إنشاء مكون في السجل

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

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

لمزيد من المعلومات حول المكونات، راجع المقالات التالية:

تأكد من أنك في المجلد cli/jobs/pipelines-with-components/nyc_taxi_data_regression. ستجد ملف train.yml تعريف المكون الذي يحزم البرنامج النصي train_src/train.py لتدريب Scikit Learn والبيئة AzureML-sklearn-0.24-ubuntu18.04-py37-cpuالمنسقة . سنستخدم بيئة Scikit Learn التي تم إنشاؤها في خطوة ضارة بدلا من البيئة المنسقة. يمكنك تحرير environment الحقل في train.yml للإشارة إلى بيئة Scikit Learn. سيكون ملف train.yml تعريف المكون الناتج مشابها للمثال التالي:

# <component>
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_linear_regression_model
display_name: TrainLinearRegressionModel
version: 1
type: command
inputs:
  training_data: 
    type: uri_folder
  test_split_ratio:
    type: number
    min: 0
    max: 1
    default: 0.2
outputs:
  model_output:
    type: mlflow_model
  test_data:
    type: uri_folder
code: ./train_src
environment: azureml://registries/<registry-name>/environments/SKLearnEnv/versions/1`
command: >-
  python train.py 
  --training_data ${{inputs.training_data}} 
  --test_data ${{outputs.test_data}} 
  --model_output ${{outputs.model_output}}
  --test_split_ratio ${{inputs.test_split_ratio}}

إذا استخدمت اسما أو إصدارا مختلفا، فإن التمثيل الأكثر عمومية يبدو كما يلي: environment: azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>، لذا تأكد من استبدال <registry-name>، <sklearn-environment-name> <sklearn-environment-version> وبناء على ذلك. ثم قم بتشغيل az ml component create الأمر لإنشاء المكون كما يلي.

az ml component create --file train.yml --registry-name <registry-name>

تلميح

يمكن استخدام نفس أمر az ml component create CLI لإنشاء مكونات في مساحة عمل أو سجل. يؤدي تشغيل الأمر مع --workspace-name الأمر إلى إنشاء المكون في مساحة عمل بينما يؤدي تشغيل الأمر مع --registry-name إلى إنشاء المكون في السجل.

إذا كنت تفضل عدم تحرير train.yml، يمكنك تجاوز اسم البيئة على CLI كما يلي:

az ml component create --file train.yml --registry-name <registry-name>` --set environment=azureml://registries/<registry-name>/environments/SKLearnEnv/versions/1
# or if you used a different name or version, replace `<sklearn-environment-name>` and `<sklearn-environment-version>` accordingly
az ml component create --file train.yml --registry-name <registry-name>` --set environment=azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>

تلميح

إذا تلقيت خطأ بأن اسم المكون موجود بالفعل في السجل، يمكنك إما تحرير الإصدار في train.yml أو تجاوز الإصدار على CLI بإصدار عشوائي.

دون المكون name و من إخراج az ml component create الأمر واستخدمهما مع az ml component show version الأوامر كما يلي. ستحتاج إلى name و version في القسم التالي عند إنشاء إرسال مهمة تدريب في مساحة العمل.

az ml component show --name <component_name> --version <component_version> --registry-name <registry-name>

يمكنك أيضا استخدام az ml component list --registry-name <registry-name> لسرد جميع المكونات في السجل.

يمكنك استعراض جميع المكونات في Azure التعلم الآلي studio. تأكد من الانتقال إلى واجهة المستخدم العمومية والبحث عن إدخال السجلات .

لقطة شاشة للمكونات في السجل.

تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية في مساحة عمل باستخدام مكون من السجل

عند تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية التي تستخدم مكونا من سجل، تكون موارد الحوسبة وبيانات التدريب محلية إلى مساحة العمل. لمزيد من المعلومات حول تشغيل المهام، راجع المقالات التالية:

سنقوم بتشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية باستخدام مكون تدريب Scikit Learn الذي تم إنشاؤه في القسم السابق لتدريب نموذج. تحقق من أنك في المجلد cli/jobs/pipelines-with-components/nyc_taxi_data_regression. توجد مجموعة بيانات التدريب في data_transformed المجلد . قم بتحرير component المقطع في أسفل train_job قسم من single-job-pipeline.yml الملف للإشارة إلى مكون التدريب الذي تم إنشاؤه في القسم السابق. يظهر الناتج single-job-pipeline.yml أدناه.

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset

jobs:
  train_job:
    type: command
    component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
    compute: azureml:cpu-cluster
    inputs:
      training_data: 
        type: uri_folder
        path: ./data_transformed
    outputs:
      model_output: 
        type: mlflow_model
      test_data: 

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

تحذير

  • قبل تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية، تأكد من أن مساحة العمل التي ستقوم بتشغيل المهمة فيها موجودة في منطقة Azure التي يدعمها السجل الذي قمت بإنشاء المكون فيه.
  • تأكد من أن مساحة العمل تحتوي على نظام مجموعة حساب بالاسم cpu-cluster أو قم بتحرير compute الحقل تحت jobs.train_job.compute باسم الحساب الخاص بك.

تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية باستخدام az ml job create الأمر .

az ml job create --file single-job-pipeline.yml 

تلميح

إذا لم تقم بتكوين مساحة العمل الافتراضية ومجموعة الموارد كما هو موضح في قسم المتطلبات الأساسية، فستحتاج إلى تحديد --workspace-name المعلمتين و --resource-group للعمل az ml job create .

بدلا من ذلك، يمكنك تخطي تحرير single-job-pipeline.yml اسم المكون المستخدم في CLI وتجاوزه train_job .

az ml job create --file single-job-pipeline.yml --set jobs.train_job.component=azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1

نظرا لأنه تتم مشاركة المكون المستخدم في مهمة التدريب من خلال سجل، يمكنك إرسال المهمة إلى أي مساحة عمل لديك حق الوصول إليها في مؤسستك، حتى عبر اشتراكات مختلفة. على سبيل المثال، إذا كان لديك dev-workspace، test-workspace و prod-workspace، فإن تشغيل مهمة التدريب في مساحات العمل الثلاثة هذه سهل مثل تشغيل ثلاثة az ml job create أوامر.

az ml job create --file single-job-pipeline.yml --workspace-name dev-workspace --resource-group <resource-group-of-dev-workspace>
az ml job create --file single-job-pipeline.yml --workspace-name test-workspace --resource-group <resource-group-of-test-workspace>
az ml job create --file single-job-pipeline.yml --workspace-name prod-workspace --resource-group <resource-group-of-prod-workspace>

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

لقطة شاشة للبنية الأساسية لبرنامج ربط العمليات التجارية في Azure التعلم الآلي studio.

إنشاء نموذج في السجل

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

في كلا الخيارين، ستقوم بإنشاء نموذج بتنسيق MLflow، والذي سيساعدك على نشر هذا النموذج للاستدلال دون كتابة أي رمز استدلال.

إنشاء نموذج في السجل من الملفات المحلية

قم بتنزيل النموذج، والذي يتوفر كإخراج ل train_job عن طريق استبدال <job-name> بالاسم من الوظيفة من القسم السابق. يجب أن يكون النموذج جنبا إلى جنب مع ملفات بيانات تعريف MLflow متوفرا ./artifacts/model/في .

# fetch the name of the train_job by listing all child jobs of the pipeline job
train_job_name=$(az ml job list --parent-job-name <job-name> --query [0].name | sed 's/\"//g')
# download the default outputs of the train_job
az ml job download --name $train_job_name 
# review the model files
ls -l ./artifacts/model/

تلميح

إذا لم تقم بتكوين مساحة العمل الافتراضية ومجموعة الموارد كما هو موضح في قسم المتطلبات الأساسية، فستحتاج إلى تحديد --workspace-name المعلمتين و --resource-group للعمل az ml model create .

تحذير

يتم تمرير إخراج az ml job list إلى sed. يعمل هذا فقط على Linux shells. إذا كنت تستخدم Windows، فقم بتشغيل az ml job list --parent-job-name <job-name> --query [0].name وتعرية أي علامات اقتباس تراها في اسم مهمة التدريب.

إذا كنت غير قادر على تنزيل النموذج، يمكنك العثور على نموذج MLflow تم تدريبه بواسطة مهمة التدريب في القسم السابق في cli/jobs/pipelines-with-components/nyc_taxi_data_regression/artifacts/model/ المجلد.

إنشاء النموذج في السجل:

# create model in registry
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path ./artifacts/model/ --registry-name <registry-name>

تلميح

  • استخدم رقما عشوائيا للمعلمة version إذا تلقيت خطأ بوجود اسم النموذج وإصداره.
  • يمكن استخدام نفس أمر az ml model create CLI لإنشاء نماذج في مساحة عمل أو سجل. يؤدي تشغيل الأمر باستخدام --workspace-name الأمر إلى إنشاء النموذج في مساحة عمل بينما يؤدي تشغيل الأمر مع --registry-name إلى إنشاء النموذج في السجل.

مشاركة نموذج من مساحة العمل إلى السجل

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

تأكد من أن لديك اسم مهمة البنية الأساسية لبرنامج ربط العمليات التجارية من القسم السابق واستبدل ذلك في الأمر لإحضار اسم مهمة التدريب أدناه. ثم ستقوم بتسجيل النموذج من إخراج مهمة التدريب في مساحة العمل. لاحظ كيف تشير المعلمة --path إلى إخراج الإخراج train_job باستخدام بناء الجملة azureml://jobs/$train_job_name/outputs/artifacts/paths/model .

# fetch the name of the train_job by listing all child jobs of the pipeline job
train_job_name=$(az ml job list --parent-job-name <job-name> --workspace-name <workspace-name> --resource-group <workspace-resource-group> --query [0].name | sed 's/\"//g')
# create model in workspace
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path azureml://jobs/$train_job_name/outputs/artifacts/paths/model 

تلميح

  • استخدم رقما عشوائيا للمعلمة version إذا تلقيت خطأ بوجود اسم النموذج وإصداره."
  • إذا لم تقم بتكوين مساحة العمل الافتراضية ومجموعة الموارد كما هو موضح في قسم المتطلبات الأساسية، فستحتاج إلى تحديد --workspace-name المعلمتين و --resource-group للعمل az ml model create .

دون اسم النموذج وإصداره. يمكنك التحقق مما إذا كان النموذج مسجلا في مساحة العمل عن طريق استعراضه في واجهة مستخدم Studio أو باستخدام az ml model show --name nyc-taxi-model --version $model_version الأمر .

بعد ذلك، ستقوم الآن بمشاركة النموذج من مساحة العمل إلى السجل.

# share model registered in workspace to registry
az ml model share --name nyc-taxi-model --version 1 --registry-name <registry-name> --share-with-name <new-name> --share-with-version <new-version>

تلميح

  • تأكد من استخدام اسم النموذج الصحيح وإصداره إذا قمت بتغييره في az ml model create الأمر .
  • يحتوي الأمر أعلاه على معلمتين اختياريتين "--share-with-name" و"--share-with-version". إذا لم يتم توفيرها، فسيكون للنموذج الجديد نفس اسم النموذج الذي تتم مشاركته وإصداره. لاحظ أسفل name و version النموذج من إخراج az ml model create الأمر واستخدمهما مع az ml model show الأوامر كما يلي. ستحتاج إلى name و version في القسم التالي عند نشر النموذج إلى نقطة نهاية عبر الإنترنت للاستدلال.
az ml model show --name <model_name> --version <model_version> --registry-name <registry-name>

يمكنك أيضا استخدام az ml model list --registry-name <registry-name> لسرد جميع النماذج في السجل أو استعراض جميع المكونات في واجهة مستخدم Azure التعلم الآلي studio. تأكد من الانتقال إلى واجهة المستخدم العمومية والبحث عن مركز السجلات.

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

لقطة شاشة للنماذج في السجل.

نشر نموذج من التسجيل إلى نقطة النهاية عبر الإنترنت في مساحة العمل

في القسم الأخير، ستقوم بنشر نموذج من السجل إلى نقطة نهاية عبر الإنترنت في مساحة عمل. يمكنك اختيار نشر أي مساحة عمل لديك حق الوصول إليها في مؤسستك، شريطة أن يكون موقع مساحة العمل أحد المواقع التي يدعمها السجل. هذه الإمكانية مفيدة إذا قمت بتدريب نموذج في dev مساحة عمل وتحتاج الآن إلى نشر النموذج إلى test أو prod مساحة العمل، مع الحفاظ على معلومات دورة الحياة حول التعليمات البرمجية والبيئة والبيانات المستخدمة لتدريب النموذج.

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

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

az ml online-endpoint create --name reg-ep-1234

قم بتحديث model: السطر deploy.yml المتوفر في cli/jobs/pipelines-with-components/nyc_taxi_data_regression المجلد للإشارة إلى اسم النموذج والإصدار من الخطوة السابقة. إنشاء نشر عبر الإنترنت إلى نقطة النهاية عبر الإنترنت. deploy.yml يظهر أدناه للرجوع إليه.

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: demo
endpoint_name: reg-ep-1234
model: azureml://registries/<registry-name>/models/nyc-taxi-model/versions/1
instance_type: Standard_DS2_v2
instance_count: 1

إنشاء النشر عبر الإنترنت. يستغرق النشر عدة دقائق للاكتمال.

az ml online-deployment create --file deploy.yml --all-traffic

إحضار URI لتسجيل النقاط وإرسال نموذج طلب تسجيل. تتوفر بيانات نموذجية لطلب تسجيل النقاط في scoring-data.json في cli/jobs/pipelines-with-components/nyc_taxi_data_regression المجلد .

ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n reg-ep-1234 -o tsv --query primaryKey)
SCORING_URI=$(az ml online-endpoint show -n reg-ep-1234 -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @./scoring-data.json

تلميح

  • curl يعمل الأمر فقط على Linux.
  • إذا لم تقم بتكوين مساحة العمل الافتراضية ومجموعة الموارد كما هو موضح في قسم المتطلبات الأساسية، فستحتاج إلى تحديد --workspace-name المعلمات و --resource-group للأمرين az ml online-endpoint و az ml online-deployment للعمل.

تنظيف الموارد

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

az ml online-endpoint delete --name reg-ep-1234 --yes --no-wait

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