العمل مع النماذج المسجلة في Azure التعلم الآلي
ينطبق على:ملحق ML Azure CLI v2 (الحالي)
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، ستتعلم التسجيل والعمل مع النماذج في Azure التعلم الآلي باستخدام:
- واجهة مستخدم Azure التعلم الآلي studio.
- Azure التعلم الآلي V2 CLI.
- Python Azure التعلم الآلي V2 SDK.
ستتعلم كيفية:
- إنشاء نماذج مسجلة في سجل النموذج من الملفات المحلية أو مخازن البيانات أو مخرجات الوظائف.
- العمل مع أنواع مختلفة من النماذج، مثل custom وMLflow وTriton.
- استخدم النماذج كمدخلات أو مخرجات في وظائف التدريب.
- إدارة دورة حياة أصول النموذج.
تسجيل النموذج
يتيح لك تسجيل النموذج تخزين النماذج وإصدارها في مساحة العمل الخاصة بك في سحابة Azure. يساعدك سجل النموذج في تنظيم وتتبع نماذجك المدربة. يمكنك تسجيل النماذج كأصول في Azure التعلم الآلي باستخدام Azure CLI أو Python SDK أو واجهة مستخدم استوديو التعلم الآلي.
المسارات المدعومة
لتسجيل نموذج، تحتاج إلى تحديد مسار يشير إلى البيانات أو موقع الوظيفة. يعرض الجدول التالي مواقع البيانات المختلفة التي يدعمها Azure التعلم الآلي وبناء جملة المعلمةpath
:
الموقع | بناء الجملة |
---|---|
الكمبيوتر المحلي | <model-folder>/<model-filename> |
مخزن بيانات Azure التعلم الآلي | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
مهمة 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> |
أصل النموذج في مساحة عمل التعلم الآلي | azureml:<model-name>:<version> |
أصل النموذج في سجل التعلم الآلي | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
أوضاع معتمدة
عند استخدام النماذج للمدخلات أو المخرجات، يمكنك تحديد أحد الأوضاع التالية. على سبيل المثال، يمكنك تحديد ما إذا كان يجب تحميل النموذج للقراءة فقط أو تنزيله إلى هدف الحساب.
ro_mount
: قم بتحميل البيانات إلى هدف الحساب للقراءة فقط.rw_mount
: تحميل البيانات للقراءة والكتابة.download
: قم بتنزيل البيانات إلى هدف الحساب.upload
: تحميل البيانات من هدف الحساب.direct
: قم بتمرير URI كسلسلة.
يعرض الجدول التالي خيارات الوضع المتوفرة لإدخالات ومخرجات نوع النموذج المختلفة.
نوع | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
custom إدخال الملف |
|||||
custom إدخال المجلد |
✓ | ✓ | ✓ | ||
mlflow الادخال |
✓ | ✓ | |||
custom إخراج الملف |
✓ | ✓ | ✓ | ||
custom إخراج المجلد |
✓ | ✓ | ✓ | ||
mlflow الناتج |
✓ | ✓ | ✓ |
المتطلبات الأساسية
- اشتراك Azure مع إصدار مجاني أو مدفوع من Azure التعلم الآلي. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
- مساحة عمل للتعلم الآلي من Microsoft Azure.
لتشغيل نماذج التعليمات البرمجية في هذه المقالة والعمل مع Azure التعلم الآلي V2 CLI أو Python Azure التعلم الآلي V2 SDK، تحتاج أيضا إلى:
تم تثبيت الإصدار 2.38.0 أو أحدث من Azure CLI.
V2 من الملحق
ml
المثبت عن طريق تشغيل الأمر التالي. لمزيد من المعلومات، راجع تثبيت وإعداد واستخدام واجهة مستوى الاستدعاء (CLI) (الإصدار 2).az extension add -n ml
إشعار
يوفر الإصدار 2 توافقا كاملا مع الإصدارات السابقة. لا يزال بإمكانك استخدام أصول النموذج من v1 SDK أو CLI. يتم تعيين النوع custom
لجميع النماذج المسجلة مع v1 CLI أو SDK .
تسجيل نموذج باستخدام واجهة مستخدم الاستوديو
لتسجيل نموذج باستخدام واجهة مستخدم Azure التعلم الآلي studio:
في مساحة العمل الخاصة بك في الاستوديو، حدد Models من التنقل الأيسر.
في صفحة قائمة النماذج، حدد تسجيل، وحدد أحد المواقع التالية من القائمة المنسدلة:
- من الملفات المحلية
- من مخرجات الوظيفة
- من مخزن البيانات
- من الملفات المحلية (استنادا إلى إطار العمل)
في شاشة نموذج التسجيل الأولى:
- انتقل إلى الملف المحلي أو مخزن البيانات أو إخراج الوظيفة للنموذج الخاص بك.
- حدد نوع نموذج الإدخال: MLflow أو Triton أو نوع غير محدد.
في شاشة إعدادات النموذج، قم بتوفير اسم وإعدادات اختيارية أخرى للنموذج المسجل، وحدد التالي.
في شاشة Review، راجع التكوين ثم حدد Register.
تسجيل نموذج باستخدام Azure CLI أو Python SDK
تغطي القصاصات البرمجية التالية كيفية تسجيل نموذج كأصل في Azure التعلم الآلي باستخدام Azure CLI أو Python SDK. تستخدم custom
هذه القصاصات البرمجية mlflow
وأنواع النماذج.
custom
يشير النوع إلى ملف نموذج أو مجلد تم تدريبه باستخدام معيار مخصص لا يدعمه Azure التعلم الآلي حاليا.mlflow
يشير النوع إلى نموذج مدرب باستخدام MLflow. توجد نماذج MLflow المدربة في مجلد يحتوي على ملف MLmodel وملف model وملف conda dependencies وملف requirements.txt.
تلميح
يمكنك المتابعة مع إصدارات Python من العينات التالية عن طريق تشغيل دفتر الملاحظات model.ipynb في مستودع أمثلة azureml.
الاتصال بمساحة العمل
مساحة العمل هي المورد ذو المستوى الأعلى للتعلم الآلي من Microsoft Azure، حيث توفر مكانًا مركزيًا للعمل مع جميع البيانات الاصطناعية التي تنشئها عند استخدام التعلم الآلي من Microsoft Azure. في هذا القسم، يمكنك الاتصال بمساحة عمل Azure التعلم الآلي لإنشاء النموذج المسجل.
سجل الدخول إلى Azure عن طريق تشغيل
az login
المطالبات واتباعها.في الأوامر التالية، استبدل
<subscription-id>
العناصر<workspace-name>
<resource-group>
النائبة و<location>
بقيم البيئة الخاصة بك.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
إنشاء النموذج المسجل
يمكنك إنشاء نموذج مسجل من نموذج:
- موجود على الكمبيوتر المحلي.
- يقع على مخزن بيانات Azure التعلم الآلي.
- الإخراج من مهمة التعلم الآلي Azure.
ملف محلي أو مجلد محلي
إنشاء اسم> ملف <YAML.yml. في الملف، أدخل اسما للنموذج المسجل، ومسارا إلى ملف النموذج المحلي، ووصفا. على سبيل المثال:
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
قم بتشغيل الأمر التالي، باستخدام اسم ملف YAML الخاص بك:
az ml model create -f <file-name>.yml
للحصول على مثال كامل، راجع نموذج YAML.
مخزن بيانات
يمكنك إنشاء نموذج من مسار سحابة باستخدام أي من تنسيقات URI المدعومة.
يستخدم المثال التالي نظام الاختصار azureml
للإشارة إلى مسار على مخزن البيانات باستخدام بناء الجملة azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
للحصول على مثال كامل، راجع مرجع CLI.
Job Output
إذا كانت بيانات النموذج تأتي من إخراج وظيفة، فلديك خياران لتحديد مسار النموذج. يمكنك استخدام تنسيق MLflow runs:
URI أو azureml://jobs
تنسيق URI.
إشعار
تمثل الكلمة الأساسية المحجوزة للبيانات الاصطناعية الإخراج من موقع البيانات الاصطناعية الافتراضي.
عمليات تشغيل MLflow: تنسيق URI
تم تحسين هذا الخيار لمستخدمي MLflow، الذين ربما كانوا على دراية بالفعل بتنسيق MLflow
runs:
URI. ينشئ هذا الخيار نموذجا من البيانات الاصطناعية في موقع البيانات الاصطناعية الافتراضي، حيث توجد جميع النماذج والبيانات الاصطناعية المسجلة في MLflow. ينشئ هذا الخيار أيضا دورة حياة بين نموذج مسجل وتشغيل النموذج الذي جاء منه.تنسيق:
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
مثال:
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
azureml://jobs تنسيق URI
azureml://jobs
يتيح لك خيار URI المرجعي تسجيل نموذج من البيانات الاصطناعية في أي من مسارات إخراج الوظيفة. يتوافق هذا التنسيق معazureml://datastores
تنسيق URI المرجعي، ويدعم أيضا الرجوع إلى البيانات الاصطناعية من المخرجات المسماة بخلاف موقع البيانات الاصطناعية الافتراضي.إذا لم تقم بتسجيل النموذج الخاص بك مباشرة ضمن البرنامج النصي للتدريب باستخدام MLflow، يمكنك استخدام هذا الخيار لإنشاء دورة حياة بين نموذج مسجل والمهمة التي تم تدريبه منها.
تنسيق:
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- موقع البيانات الاصطناعية الافتراضي:
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
. هذا الموقع يعادل MLflowruns:/<run-id>/<model>
. - مجلد الإخراج المسمى:
azureml://jobs/<run-id>/outputs/<named-output-folder>
- ملف محدد داخل مجلد الإخراج المسمى:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- مسار مجلد محدد داخل مجلد الإخراج المسمى:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
مثال:
حفظ نموذج من مجلد إخراج مسمى:
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
للحصول على مثال كامل، راجع مرجع CLI.
- موقع البيانات الاصطناعية الافتراضي:
استخدام نماذج للتدريب
يتيح لك v2 Azure CLI وPython SDK أيضا استخدام النماذج كمدخلات أو مخرجات في مهام التدريب.
استخدام نموذج كمدخل في مهمة تدريبية
إنشاء ملف YAML لمواصفات الوظيفة، <اسم> الملف.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
- النموذج
قم بتشغيل الأمر التالي، واستبدال اسم ملف YAML الخاص بك.
az ml job create -f <file-name>.yml
للحصول على مثال كامل، راجع مستودع GitHub النموذجي.
كتابة نموذج كإخراج لوظيفة
يمكن لمهمتك كتابة نموذج إلى التخزين المستند إلى السحابة باستخدام المخرجات.
إنشاء اسم ملف> ملف <YAML لمواصفات الوظيفة.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 النموذجي.
إدارة النماذج
يسمح لك Azure CLI وPython SDK أيضا بإدارة دورة حياة أصول نموذج Azure التعلم الآلي.
List
سرد جميع النماذج في مساحة العمل الخاصة بك:
az ml model list
سرد جميع إصدارات النموذج تحت اسم معين:
az ml model list --name run-model-example
إظهار
احصل على تفاصيل نموذج معين:
az ml model show --name run-model-example --version 1
Update
تحديث الخصائص القابلة للتغيير لنموذج معين:
هام
بالنسبة للنماذج، فقط description
tags
ويمكن تحديثها. جميع الخصائص الأخرى غير قابلة للتغيير، وإذا كنت بحاجة إلى تغييرها، يجب عليك إنشاء إصدار جديد من النموذج.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
أرشيف
أرشفة نموذج يخفيه من استعلامات القائمة بشكل az ml model list
افتراضي. يمكنك الاستمرار في الرجوع إلى نموذج مؤرشف واستخدامه في مهام سير العمل.
يمكنك أرشفة جميع الإصدارات أو إصدارات محددة فقط من النموذج. إذا لم تحدد إصدارا، يتم أرشفة جميع إصدارات النموذج. إذا قمت بإنشاء إصدار نموذج جديد ضمن حاوية نموذج مؤرشف، يتم أيضا تعيين الإصدار الجديد تلقائيا على أنه مؤرشف.
أرشفة جميع إصدارات النموذج:
az ml model archive --name run-model-example
أرشفة إصدار نموذج معين:
az ml model archive --name run-model-example --version 1
المحتوى ذو الصلة
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ