العمل مع النماذج المسجلة في 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 التعلم الآلي V2 CLI أو Python Azure التعلم الآلي V2 SDK، تحتاج أيضا إلى:

إشعار

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

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

لتسجيل نموذج باستخدام واجهة مستخدم Azure التعلم الآلي studio:

  1. في مساحة العمل الخاصة بك في الاستوديو، حدد Models من التنقل الأيسر.

  2. في صفحة قائمة النماذج، حدد تسجيل، وحدد أحد المواقع التالية من القائمة المنسدلة:

    • من الملفات المحلية
    • من مخرجات الوظيفة
    • من مخزن البيانات
    • من الملفات المحلية (استنادا إلى إطار العمل)
  3. في شاشة نموذج التسجيل الأولى:

    1. انتقل إلى الملف المحلي أو مخزن البيانات أو إخراج الوظيفة للنموذج الخاص بك.
    2. حدد نوع نموذج الإدخال: MLflow أو Triton أو نوع غير محدد.
  4. في شاشة إعدادات النموذج، قم بتوفير اسم وإعدادات اختيارية أخرى للنموذج المسجل، وحدد التالي.

  5. في شاشة 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 التعلم الآلي لإنشاء النموذج المسجل.

  1. سجل الدخول إلى Azure عن طريق تشغيل az login المطالبات واتباعها.

  2. في الأوامر التالية، استبدل <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.

ملف محلي أو مجلد محلي

  1. إنشاء اسم> ملف <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.
    
  2. قم بتشغيل الأمر التالي، باستخدام اسم ملف 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>/. هذا الموقع يعادل MLflow runs:/<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 أيضا استخدام النماذج كمدخلات أو مخرجات في مهام التدريب.

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

  1. إنشاء ملف 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
    
  2. قم بتشغيل الأمر التالي، واستبدال اسم ملف YAML الخاص بك.

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

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

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

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

  1. إنشاء اسم ملف> ملف <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
    
  2. إنشاء وظيفة باستخدام 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