CLI (v2) مهمة الأمر مخطط YAML

APPLY TO: Azure CLI ml extension v1 v2 (معاينة)

يمكن العثور على مخطط JSON المصدر في https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.

هام

تُعد هذه الميزة قيد المعاينة العامة في الوقت الحالي. يجري توفير إصدار المعاينة هذا من دون اتفاقية على مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

ملاحظة

يستند بناء جملة YAML المفصل في هذا المستند إلى مخطط JSON لأحدث إصدار من ملحق ML CLI v2. يتم ضمان بناء الجملة هذا فقط للعمل مع أحدث إصدار من ملحق ML CLI v2. يمكنك العثور على مخططات الإصدارات الملحقة القديمة في https://azuremlschemasprod.azureedge.net/.

بناء جملة YAML

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
$schema سلسلة مخطط YAML. إذا كنت تستخدم ملحق Azure التعلم الآلي VS Code لتأليف ملف YAML، بما في ذلك $schema في الجزء العلوي من الملف يمكنك من استدعاء المخطط وإكمال الموارد.
type كونست نوع الوظيفة. command command
name سلسلة اسم الوظيفة. يجب أن تكون فريدة من نوعها في جميع الوظائف في مساحة العمل. إذا تم حذفه، فسيقوم Azure ML تلقائيا بإنشاء GUID للاسم.
display_name سلسلة اسم العرض للمهمة في واجهة مستخدم الاستوديو. يمكن أن تكون غير فريدة من نوعها داخل مساحة العمل. إذا تم حذفه، فسيقوم Azure ML تلقائيا بإنشاء معرف اسم صفة قابل للقراءة من قبل الإنسان لاسم العرض.
experiment_name سلسلة اسم التجربة لتنظيم المهمة تحتها. سيتم تنظيم سجل تشغيل كل وظيفة ضمن التجربة المقابلة في علامة التبويب "التجارب" في الاستوديو. إذا تم حذفه، فسيقوم Azure ML بتعيينه افتراضيا إلى اسم دليل العمل حيث تم إنشاء المهمة.
description سلسلة وصف الوظيفة.
tags كائن قاموس العلامات لهذه المهمة.
command سلسلة مطلوب (إن لم يكن باستخدام component الحقل). الأمر بالتنفيذ.
code سلسلة المسار المحلي إلى دليل التعليمات البرمجية المصدر ليتم تحميله واستخدامه لهذه المهمة.
environment سلسلة أو كائن مطلوب (إن لم يكن باستخدام component الحقل). البيئة لاستخدامها في الوظيفة. يمكن أن يكون هذا إما مرجعا إلى بيئة تم إصدارها موجودة في مساحة العمل أو مواصفات بيئة مضمنة.

للإشارة إلى بيئة موجودة، azureml:<environment_name>:<environment_version> استخدم بناء الجملة أو azureml:<environment_name>@latest (للإشارة إلى أحدث إصدار من بيئة).

لتحديد بيئة مضمنة، يرجى اتباع مخطط البيئة. استبعاد name والخصائص version لأنها غير معتمدة للبيئات المضمنة.
environment_variables كائن قاموس أزواج القيم الرئيسية متغيرة البيئة لتعيينها على العملية حيث يتم تنفيذ الأمر.
distribution كائن تكوين التوزيع لسيناريوهات التدريب الموزعة. واحدة من MpiConfiguration أو PyTorchConfiguration أو TensorFlowConfiguration.
compute سلسلة اسم هدف الحساب لتنفيذ المهمة عليه. يمكن أن يكون هذا إما مرجعا إلى حساب موجود في مساحة العمل (باستخدام بناء الجملة azureml:<compute_name> ) أو local لتعيين التنفيذ المحلي. local
resources.instance_count عدد صحيح عدد العقد التي يجب استخدامها لهذه المهمة. 1
resources.instance_type سلسلة نوع المثيل المطلوب استخدامه للمهمة. قابل للتطبيق على المهام التي تعمل على حساب Kubernetes الذي تم تمكين Azure Arc (حيث يكون هدف الحوسبة المحدد في الحقل compute هو type: kubernentes). إذا تم حذفه، تعيين هذا بشكل افتراضي إلى نوع المثيل الافتراضي لنظام المجموعة Kubernetes. لمزيد من المعلومات، راجع إنشاء أنواع مثيلات Kubernetes وتحديدها.
limits.timeout عدد صحيح الحد الأقصى للوقت بالثواني المسموح به لتشغيل المهمة. بمجرد الوصول إلى هذا الحد ، سيقوم النظام بإلغاء المهمة.
inputs كائن قاموس المدخلات للوظيفة. المفتاح هو اسم للإدخال في سياق المهمة والقيمة هي قيمة الإدخال.

يمكن الرجوع إلى المدخلات في command استخدام ${{ inputs.<input_name> }} التعبير.
inputs.<input_name> رقم أو عدد صحيح أو منطقي أو سلسلة أو كائن واحدة من قيمة حرفية (من رقم النوع أو عدد صحيح أو منطقي أو سلسلة) أو كائن يحتوي على مواصفات بيانات إدخال المهمة.
outputs كائن قاموس تكوينات الإخراج للوظيفة. المفتاح هو اسم للإخراج في سياق المهمة والقيمة هي تكوين الإخراج.

يمكن الرجوع إلى المخرجات في command استخدام ${{ outputs.<output_name> }} التعبير.
outputs.<output_name> كائن يمكنك ترك الكائن فارغا ، وفي هذه الحالة سيكون الإخراج افتراضيا من النوع uri_folder وسيقوم Azure ML بإنشاء موقع إخراج للإخراج. سيتم كتابة الملف (الملفات) إلى دليل الإخراج عبر حامل القراءة والكتابة. إذا كنت تريد تحديد وضع مختلف للإخراج، فقم بتوفير كائن يحتوي على مواصفات مخرج المهمة.

تكوينات التوزيع

MpiConfiguration

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التوزيع. mpi
process_count_per_instance عدد صحيح مطلوب عدد العمليات لكل عقدة لإطلاقها للوظيفة.

PyTorchConfiguration

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع التوزيع. pytorch
process_count_per_instance عدد صحيح عدد العمليات لكل عقدة لإطلاقها للوظيفة. 1

TensorFlowConfiguration

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع التوزيع. tensorflow
worker_count عدد صحيح عدد العمال الذين سيتم إطلاقهم للوظيفة. الإعدادات الافتراضية لـ resources.instance_count.
parameter_server_count عدد صحيح عدد خوادم المعلمات التي سيتم إطلاقها لهذه المهمة. 0

مدخلات الوظيفة

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type سلسلة نوع إدخال الوظيفة. حدد لبيانات الإدخال التي تشير إلى مصدر ملف واحد، أو uri_folder لبيانات الإدخال uri_file التي تشير إلى مصدر مجلد. uri_file, uri_folder uri_folder
path سلسلة المسار إلى البيانات لاستخدامها كمدخلات. يمكن تحديد ذلك بعدة طرق:

- مسار محلي إلى ملف أو مجلد مصدر البيانات ، على سبيل المثال path: ./iris.csv. سيتم تحميل البيانات أثناء تقديم الوظيفة.

- عنوان URI لمسار سحابي إلى الملف أو المجلد لاستخدامه كمدخل. أنواع عناوين URI المدعومة هي azureml, , , wasbsabfss, httpsadl. راجع بناء جملة Core yaml لمزيد من المعلومات حول كيفية استخدام azureml:// تنسيق URI.

- أصل بيانات Azure ML مسجل موجود لاستخدامه كمدخل. للإشارة إلى أصل بيانات مسجل ، استخدم بناء الجملة أو (للإشارة إلى أحدث إصدار من أصل البيانات هذا) ، azureml:<data_name>:<data_version> على سبيل المثال path: azureml:cifar10-data:1 أو azureml:<data_name>@latestpath: azureml:cifar10-data@latest.
mode سلسلة طريقة كيفية تسليم البيانات إلى هدف الحساب.

بالنسبة للتحميل للقراءة فقط (ro_mount) ، سيتم استهلاك البيانات كمسار تحميل. سيتم تحميل مجلد كمجلد وسيتم تحميل ملف كملف. سيقوم Azure ML بحل الإدخال إلى مسار التحميل.

بالنسبة للوضع download ، سيتم تنزيل البيانات إلى هدف الحوسبة. سيقوم Azure ML بحل الإدخال إلى المسار الذي تم تنزيله.

إذا كنت تريد فقط عنوان URL لموقع التخزين الخاص بقطعة (قطع) البيانات بدلا من تركيب البيانات نفسها أو تنزيلها، فيمكنك استخدام الوضع direct . سيتم تمرير هذا في عنوان URL لموقع التخزين كإدخال للمهمة. لاحظ أنك في هذه الحالة تتحمل المسؤولية الكاملة عن التعامل مع بيانات الاعتماد للوصول إلى وحدة التخزين.
ro_mount, download, direct ro_mount

مخرجات المهمة

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type سلسلة نوع ناتج الوظيفة. بالنسبة للنوع الافتراضي uri_folder ، سيتوافق الإخراج مع مجلد. uri_folder uri_folder
mode سلسلة وضع كيفية تسليم ملف (ملفات) الإخراج إلى وحدة التخزين الوجهة. بالنسبة لوضع التحميل للقراءة والكتابة (rw_mount) ، سيكون دليل الإخراج دليلا محمولا. بالنسبة لوضع التحميل ، سيتم تحميل الملف (الملفات) المكتوبة في نهاية المهمة. rw_mount, upload rw_mount

الملاحظات

az ml job يمكن استخدام الأمر لإدارة وظائف Azure التعلم الآلي.

أمثلة

تتوفر أمثلة في الأمثلة GitHub المستودع. ويرد أدناه العديد منها.

YAML: مرحبا بالعالم

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/python:latest
compute: azureml:cpu-cluster

YAML: اسم العرض واسم التجربة والوصف والعلامات

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/python:latest
compute: azureml:cpu-cluster
tags:
  hello: world
display_name: hello-world-example
experiment_name: hello-world-example
description: |
  # Azure Machine Learning "hello world" job

  This is a "hello world" job running in the cloud via Azure Machine Learning!

  ## Description

  Markdown is supported in the studio for job descriptions! You can edit the description there or via CLI.

YAML: متغيرات البيئة

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo $hello_env_var
environment:
  image: library/python:latest
compute: azureml:cpu-cluster
environment_variables:
  hello_env_var: "hello world"

YAML: شفرة المصدر

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
  image: library/python:latest
compute: azureml:cpu-cluster

YAML: المدخلات الحرفية

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo ${{inputs.hello_string}}
  echo ${{inputs.hello_number}}
environment:
  image: library/python:latest
inputs:
  hello_string: "hello world"
  hello_number: 42
compute: azureml:cpu-cluster

YAML: الكتابة إلى المخرجات الافتراضية

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
  image: library/python:latest
compute: azureml:cpu-cluster

YAML: الكتابة إلى إخراج البيانات المسمى

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ${{outputs.hello_output}}/helloworld.txt
outputs:
  hello_output:
environment:
  image: python
compute: azureml:cpu-cluster

YAML: إدخال ملف URI مخزن البيانات

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo "--iris-csv: ${{inputs.iris_csv}}"
  python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
  iris_csv:
    type: uri_file 
    path: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: مخزن البيانات إدخال مجلد URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  ls ${{inputs.data_dir}}
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
  data_dir:
    type: uri_folder 
    path: azureml://datastores/workspaceblobstore/paths/example-data/
    mode: rw_mount
environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: إدخال ملف URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo "--iris-csv: ${{inputs.iris_csv}}"
  python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
  iris_csv:
    type: uri_file 
    path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: إدخال مجلد URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  ls ${{inputs.data_dir}}
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
  data_dir:
    type: uri_folder 
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/
environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: دفتر ملاحظات عبر مطحنة الورق

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  pip install ipykernel papermill
  papermill hello-notebook.ipynb outputs/out.ipynb -k python
code: src
environment:
  image: library/python:latest
compute: azureml:cpu-cluster

YAML: التدريب الأساسي على نموذج بايثون

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --iris-csv ${{inputs.iris_csv}}
  --C ${{inputs.C}}
  --kernel ${{inputs.kernel}}
  --coef0 ${{inputs.coef0}}
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
  C: 0.8
  kernel: "rbf"
  coef0: 0.1
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
display_name: sklearn-iris-example
experiment_name: sklearn-iris-example
description: Train a scikit-learn SVM on the Iris dataset.

YAML: التدريب الأساسي على نموذج R مع سياق بناء Docker المحلي

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
  Rscript train.R 
  --data_folder ${{inputs.iris}}
code: src
inputs:
  iris: 
    type: uri_file
    path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  build:
    path: docker-context
compute: azureml:cpu-cluster
display_name: r-iris-example
experiment_name: r-iris-example
description: Train an R model on the Iris dataset.

YAML: توزيع PyTorch

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python train.py 
  --epochs ${{inputs.epochs}}
  --learning-rate ${{inputs.learning_rate}}
  --data-dir ${{inputs.cifar}}
inputs:
  epochs: 1
  learning_rate: 0.2
  cifar: 
     type: uri_folder
     path: azureml:cifar-10-example:1
environment: azureml:AzureML-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu@latest
compute: azureml:gpu-cluster
distribution:
  type: pytorch 
  process_count_per_instance: 1
resources:
  instance_count: 2
display_name: pytorch-cifar-distributed-example
experiment_name: pytorch-cifar-distributed-example
description: Train a basic convolutional neural network (CNN) with PyTorch on the CIFAR-10 dataset, distributed via PyTorch.

YAML: توزيع TensorFlow

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python train.py 
  --epochs ${{inputs.epochs}}
  --model-dir ${{inputs.model_dir}}
inputs:
  epochs: 1
  model_dir: outputs/keras-model
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu@latest
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: tensorflow
  worker_count: 2
display_name: tensorflow-mnist-distributed-example
experiment_name: tensorflow-mnist-distributed-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via TensorFlow.

YAML: MPI الموزعة

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python train.py
  --epochs ${{inputs.epochs}}
inputs:
  epochs: 1
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu@latest
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: mpi
  process_count_per_instance: 2
display_name: tensorflow-mnist-distributed-horovod-example
experiment_name: tensorflow-mnist-distributed-horovod-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via Horovod.

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