العمل باستخدام البيانات في التعلم الآلي من 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.
المتطلبات الأساسية
- اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ. تجربة الإصدار المجاني أو المدفوع من التعلم الآلي من Microsoft Azure.
- مساحة عمل Azure التعلم الآلي.
- التعلم الآلي من Microsoft Azure عدة تطوير البرامج v2 لـ Python.
- التعلم الآلي من Microsoft Azureواجهة سطر الأوامر v2.
بالإضافة إلى ذلك، ستحتاج إلى:
- قم بتثبيت Azure CLI وملحق التعلم الآلي إلى Azure CLI. لمزيدٍ من المعلومات، راجع تثبيت وإعداد واستخدام واجهة مستوى الاستدعاء (CLI) (الإصدار 2).
المسارات المدعومة
عند توفير نموذج تريد تسجيله، فستحتاج إلى تحديد معلمة 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"
هام
بالنسبة للنموذج، فقط description
tags
ويمكن تحديثه. جميع الخصائص الأخرى غير قابلة للتغيير؛ إذا كنت بحاجة إلى تغيير أي من هذه الخصائص، فيجب عليك إنشاء إصدار جديد من النموذج.
أرشيف
سيؤدي أرشفة نموذج إلى إخفائه بشكل افتراضي من استعلامات القائمة (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
قسم الوظيفة:
type
؛ سواء كان النموذج هوmlflow_model
،custom_model
أوtriton_model
.- من
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 النموذجي.
الخطوات التالية
- تثبيت Python SDK v2 وإعداده
- توزيع بدون تعليمة برمجية لنماذج Mlflow
- تعرف على مزيد من المعلومات حول ONNX and التعلم الآلي من Microsoft Azure