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.