العمل باستخدام البيانات في التعلم الآلي من Microsoft Azure

ينطبق على:ملحق التعلم الآلي من Azure CLI v2 (الحالي)Python SDK azure-ai-ml v2 (الحالي)

يسمح لك التعلم الآلي من Microsoft Azure بالعمل مع أنواع مختلفة من النماذج. في هذه المقالة، ستتعرف على استخدام التعلم الآلي من Microsoft Azure للعمل مع أنواع نماذج مختلفة، مثل Custom وMLflow وTriton. تتعلم أيضًا كيفية تسجيل نموذج من مواقع مختلفة، وكيفية استخدام Azure Machine Learning SDK وواجهة المستخدم (UI) وAzure Machine Learning CLI لإدارة نماذجك.

تلميح

إذا كان لديك أصول نموذج تم إنشاؤها باستخدام SDK/ CLI إصدار 1، فلا يزال بإمكانك استخدام تلك الأصول مع SDK/ CLI إصدار 2. يتم توفير توافق الإصدارات السابقة الكامل. يتم تخصيص النوع custom لجميع النماذج المسجلة في SDK إصدار 1.

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

بالإضافة إلى ذلك، ستحتاج إلى:

المسارات المدعومة

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

‏‏الموقع أمثلة
مسار على الكمبيوتر المحلي mlflow-model/model.pkl
مسار على مخزن بيانات التعلم الآلي من Microsoft Azure azureml://datastores/<datastore-name>/paths/<path_on_datastore>
مسار من مهمة التعلم الآلي من Microsoft Azure azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
مسار من مهمة MLflow runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
مسار من أصل نموذج في مساحة عمل التعلم الآلي من Microsoft Azure azureml:<model-name>:<version>
مسار من أصل نموذج في Azure Machine Learning Registry azureml://registries/<registry-name>/models/<model-name>/versions/<version>

أوضاع معتمدة

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

النوع إدخال/إخراج upload download ro_mount rw_mount direct
ملف custom إدخال
custom مجلد إدخال
mlflow إدخال
ملف custom المخرجات
custom مجلد المخرجات
mlflow المخرجات

المتابعة في Jupyter Notebooks

يمكنك متابعة هذه العينة في Jupyter Notebook. في مستودع azureml-examples ، افتح دفتر الملاحظات: model.ipynb.

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

Model registrationيمكنك تخزين نماذجك وإصدارها في سحابة Azure، في مساحة العمل الخاصة بك. يساعدك سجل النموذج في تنظيم وتتبع نماذجك المدربة.

تغطي القصاصات البرمجية في هذا القسم طريقة ما يلي:

  • تسجيل نموذجك كأصل في التعلم الآلي باستخدام CLI.
  • تسجيل نموذجك كأصل في التعلم الآلي باستخدام SDK.
  • تسجيل نموذجك كأصل في التعلم الآلي باستخدام واجهة المستخدم.

تستخدم هذه القصاصات البرمجية custom و mlflow.

  • custom هو نوع يشير إلى ملف نموذج أو مجلد مدرب باستخدام معيار مخصص غير مدعوم حاليا من قبل التعلم الآلي من Microsoft Azure.
  • mlflow هو نوع يشير إلى نموذج مدرب باستخدام mlflow. توجد نماذج MLflow المدربة في مجلد يحتوي على ملف MLmodel وملف model وملف conda dependencies وملف requirements.txt.

اتصل بمساحة العمل الخاصة بك

أولا، دعنا نتصل بمساحة عمل التعلم الآلي من Microsoft Azure حيث سنعمل عليها.

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

تسجيل نموذجك كأصل في التعلم الآلي باستخدام CLI

استخدم علامات التبويب التالية لتحديد موقع نموذجك.

$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
name: local-file-example
path: mlflow-model/model.pkl
description: Model created from local file.
az ml model create -f <file-name>.yml

للحصول على مثال كامل، راجع نموذج YAML.

تسجيل نموذجك كأصل في التعلم الآلي باستخدام SDK

استخدم علامات التبويب التالية لتحديد موقع نموذجك.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

file_model = Model(
    path="mlflow-model/model.pkl",
    type=AssetTypes.CUSTOM_MODEL,
    name="local-file-example",
    description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)

تسجيل نموذجك كأصل في التعلم الآلي باستخدام واجهة المستخدم

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

لقطة شاشة لواجهة المستخدم لتسجيل نموذج.


إدارة النماذج

يسمح لك SDK وCLI (الإصدار 2) أيضا بإدارة دورة حياة أصول نموذج التعلم الآلي من Microsoft Azure.

قائمة

سرد جميع النماذج في مساحة العمل الخاصة بك:

az ml model list

سرد جميع إصدارات النموذج تحت اسم معين:

az ml model list --name run-model-example

‏‏إظهار

احصل على تفاصيل نموذج معين:

az ml model show --name run-model-example --version 1

Update

تحديث الخصائص القابلة للتغيير لنموذج معين:

az ml model update --name  run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"

هام

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

أرشيف

سيؤدي أرشفة نموذج إلى إخفائه بشكل افتراضي من استعلامات القائمة (az ml model list). لا يزال بإمكانك الاستمرار في الرجوع إلى نموذج مؤرشف واستخدامه في مهام سير العمل. يمكنك أرشفة جميع إصدارات النموذج أو إصدار معين فقط.

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

أرشفة جميع إصدارات النموذج:

az ml model archive --name run-model-example

أرشفة إصدار نموذج معين:

az ml model archive --name run-model-example --version 1

استخدام نموذج للتدريب

يسمح لك SDK وCLI (v2) أيضا باستخدام نموذج في مهمة تدريب كمدخل أو إخراج.

استخدام النموذج كإدخل في وظيفة

إنشاء ملف YAML لمواصفات الوظيفة (<file-name>.yml). حدد في inputs قسم الوظيفة:

  1. type؛ سواء كان النموذج هو mlflow_model،custom_model أو triton_model.
  2. من path حيث توجد بياناتك؛ يمكن أن يكون أي من المسارات الموضحة في قسم المسارات المدعومة .
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json

# Possible Paths for models:
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>

command: |
  ls ${{inputs.my_model}}
inputs:
  my_model:
    type: mlflow_model # List of all model types here: https://learn.microsoft.com/azure/machine-learning/reference-yaml-model#yaml-syntax
    path: ../../assets/model/mlflow-model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest

بعد ذلك، قم بتشغيل في CLI

az ml job create -f <file-name>.yml

للحصول على مثال كامل، راجع مستودع GitHub النموذجي.

استخدام النموذج كإخراج في وظيفة

في وظيفتك، يمكنك كتابة نموذج إلى التخزين المستند إلى السحابة باستخدام المخرجات.

إنشاء ملف YAML لمواصفات الوظيفة (<file-name>.yml)، مع outputs ملء القسم بنوع ومسار المكان الذي ترغب في كتابة بياناتك إليه:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json

# Possible Paths for Model:
# Local path: mlflow-model/model.pkl
# AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore>
# MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
# Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location>
# Model Asset: azureml:<my_model>:<version>

code: src
command: >-
  python hello-model-as-output.py 
  --input_model ${{inputs.input_model}} 
  --custom_model_output ${{outputs.output_folder}}
inputs:
  input_model: 
    type: mlflow_model # mlflow_model,custom_model, triton_model
    path: ../../assets/model/mlflow-model
outputs:
  output_folder: 
    type: custom_model # mlflow_model,custom_model, triton_model
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest

بعد ذلك، أنشئ وظيفة باستخدام CLI:

az ml job create --file <file-name>.yml

للحصول على مثال كامل، راجع مستودع GitHub النموذجي.

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