CLI (الإصدار 2) مخطط YAML لوظيفة الأمر
ينطبق على:ملحق Azure CLI ml الإصدار 2 (الحالي)
يمكن إيجاد مخطط المصدر JSON في https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
ملاحظة
يعتمد بناء YAML المفصل في هذا المستند على مخطط JSON لأحدث إصدار من ملحق الإصدار الثاني من واجهة مستوى الاستدعاء للتعليم الآلي. إن هذا البناء مضمون للعمل فقط مع أحدث إصدار من ملحق الإصدار الثاني من واجهة مستوى الاستدعاء للتعليم الآلي. بإمكانك العثور على مخططات إصدارات الملحق الأقدم في https://azuremlschemasprod.azureedge.net/.
بناء YAML
المفتاح | النوع | الوصف | القيم المسموح بها | القيمة الافتراضية |
---|---|---|---|---|
$schema |
سلسلة | مخطط YAML. إذا كنت تستخدم ملحق التعلم الآلي من Microsoft Azure VS Code لتأليف ملف YAML، بما في ذلك $schema في الجزء العلوي من ملفك، يمكنك من استدعاء المخطط وإكمال الموارد. |
||
type |
const | نوع الوظيفة. | command |
command |
name |
سلسلة | اسم الوظيفة. يجب أن يكون فريداً في جميع الوظائف في مساحة العمل. إذا تم حذفه، سيقوم التعلم الآلي من Microsoft Azure بإنشاء GUID تلقائيا للاسم. | ||
display_name |
سلسلة | عرض اسم الوظيفة في أستوديو "واجهة المستخدم" UI. يمكن أن يكون غير فريد داخل مساحة العمل. إذا تم حذفه، سيقوم التعلم الآلي من Microsoft Azure بإنشاء معرف صفة-اسم قابل للقراءة من قبل الإنسان تلقائيا لاسم العرض. | ||
experiment_name |
سلسلة | اسم التجربة لتنظيم الوظيفة تحته. سيتم تنظيم سجل تشغيل كل وظيفة ضمن التجربة المقابلة في علامة تبويب "التجارب" الخاصة بالاستوديو. إذا تم حذفه، فسيعمل التعلم الآلي من Microsoft Azure على تعيينه افتراضيا إلى اسم دليل العمل حيث تم إنشاء المهمة. | ||
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 ك compute |
local |
|
resources.instance_count |
عدد صحيح | عدد العقد المطلوب استخدامها للوظيفة. | 1 |
|
resources.instance_type |
سلسلة | نوع المثيل المراد استخدامه للوظيفة. قابل للتطبيق على المهام التي يتم تشغيلها على حساب Kubernetes الذي يدعم Azure Arc (حيث يكون هدف الحساب المحدد في الحقل compute هو type: kubernentes ). إذا تم حذفه، فسيتم تعيينه افتراضياً على نوع المثيل الافتراضي لنظام مجموعة Kubernetes. لمزيد من المعلومات، راجع إنشاء وتحديد أنواع مثيلات Kubernetes. |
||
resources.shm_size |
سلسلة | حجم كتلة الذاكرة المشتركة لحاوية docker. يجب أن يكون هذا بتنسيق <number><unit> حيث يجب أن يكون الرقم أكبر من 0 ويمكن أن تكون الوحدة واحدة من b (بايت) k أو (كيلوبايت) m أو (ميغابايت) أو g (غيغابايت). |
2g |
|
limits.timeout |
عدد صحيح | الحد الأقصى للوقت بالثواني المسموح بتشغيل المهمة. بمجرد الوصول إلى هذا الحد، سيقوم النظام بإلغاء المهمة. | ||
inputs |
كائن | قاموس مدخلات الوظيفة. المفتاح هو اسم للإدخال ضمن سياق الوظيفة والقيمة هي قيمة الإدخال. يمكن الإشارة إلى المدخلات في command باستخدام التعبير ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
رقم أو عدد صحيح أو منطقي أو سلسلة أو عنصر | قيمة حرفية (من نوع رقم، أو عدد صحيح، أو منطقي، أو سلسلة) أو عنصر يحتوي على مواصفات بيانات إدخال المهمة. | ||
outputs |
كائن | قاموس تكوينات إخراج الوظيفة. المفتاح هو اسم الإخراج ضمن سياق الوظيفة والقيمة هي تكوين الإخراج. يمكن الإشارة إلى المخرجات في command باستخدام التعبير ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
كائن | يمكنك ترك الكائن فارغا، وفي هذه الحالة بشكل افتراضي سيكون الإخراج من النوع uri_folder وسيقوم التعلم الآلي من Microsoft Azure بإنشاء موقع إخراج للإخراج. ستتم كتابة الملف (الملفات) إلى دليل الإخراج عبر تثبيت إدخال القراءة والكتابة. إذا كنت تريد تحديد وضع مختلف للمخرجات، فقدم عنصراً يحتوي على مواصفات مخرجات الوظيفة. |
||
identity |
كائن | يتم استخدام الهوية للوصول إلى البيانات. يمكن أن يكون UserIdentityConfiguration أو ManagedIdentityConfiguration أو None. إذا كان UserIdentityConfiguration، فسيتم استخدام هوية مقدم الوظيفة للوصول إلى بيانات الإدخال وكتابة النتيجة إلى مجلد الإخراج، وإلا، فسيتم استخدام الهوية المدارة لهدف الحساب. |
تكوينات التوزيع
تكوين MpiConfiguration
المفتاح | النوع | الوصف | القيم المسموح بها |
---|---|---|---|
type |
const | مطلوب نوع النشر. | mpi |
process_count_per_instance |
عدد صحيح | مطلوب عدد العمليات لكل عقدة لإطلاقها للوظيفة. |
تكوين PyTorchConfiguration
المفتاح | النوع | الوصف | القيم المسموح بها | القيمة الافتراضية |
---|---|---|---|---|
type |
const | مطلوب نوع النشر. | pytorch |
|
process_count_per_instance |
عدد صحيح | عدد العمليات لكل عقدة لإطلاقها للوظيفة. | 1 |
تكوين TensorFlowConfiguration
المفتاح | النوع | الوصف | القيم المسموح بها | القيمة الافتراضية |
---|---|---|---|---|
type |
const | مطلوب نوع النشر. | tensorflow |
|
worker_count |
عدد صحيح | عدد العمال الذين سيتم إطلاقهم للوظيفة. | الإعدادات الافتراضية لـ resources.instance_count . |
|
parameter_server_count |
عدد صحيح | عدد خوادم المعلمات التي سيتم تشغيلها للمهمة. | 0 |
مدخلات الوظيفة
المفتاح | النوع | الوصف | القيم المسموح بها | القيمة الافتراضية |
---|---|---|---|---|
type |
سلسلة | نوع إدخال الوظيفة. حدد uri_file لبيانات الإدخال التي تشير إلى مصدر البيانات بملف واحد، أو uri_folder لبيانات الإدخال التي تشير إلى مصدر المجلد. |
uri_file , uri_folder , mlflow_model , custom_model |
uri_folder |
path |
سلسلة | المسار إلى البيانات المراد استخدامها كمدخلات. يمكن تحديد ذلك بعدة طرق: - مسار محلي لملف أو مجلد مصدر البيانات، على سبيل المثال path: ./iris.csv . سيتم تحميل البيانات أثناء تقديم الوظيفة. - معرّف URI لمسار السحابة إلى الملف أو المجلد لاستخدامه كمدخل. أنواع URI المتوافقة هي azureml ، https ، wasbs ، abfss ، adl . راجع بنية yaml الأساسية لمزيد من المعلومات حول كيفية استخدام تنسيق URIazureml:// . - أصل بيانات Azure Machine Learning مسجل موجود لاستخدامه كمدخل. للإشارة إلى أصل بيانات مسجل، استخدم azureml:<data_name>:<data_version> البنية أو azureml:<data_name>@latest (للإشارة إلى أحدث إصدار من أصل البيانات)، على سبيل المثال path: azureml:cifar10-data:1 أو path: azureml:cifar10-data@latest . |
||
mode |
سلسلة | طريقة كيفية تسليم البيانات إلى هدف الحساب. بالنسبة للقراءة فقط ( ro_mount )، سيتم استهلاك البيانات كمسار تحميل. سيتم تحميل المجلد كمجلد وسيتم تحميل الملف كملف. سيقوم التعلم الآلي من Microsoft Azure بحل الإدخال إلى مسار التحميل. بالنسبة للوضع download ، سيتم تنزيل البيانات إلى هدف الحساب. سيقوم التعلم الآلي من Microsoft Azure بحل الإدخال إلى المسار الذي تم تنزيله. إذا كنت تريد فقط عنوان URL الخاص بموقع تخزين عنصر (عناصر) البيانات بدلاً من تحميل البيانات نفسها أو تنزيلها، يمكنك استخدام الوضع direct . سيؤدي هذا إلى تمرير عنوان URL الخاص بموقع التخزين باعتباره مدخل الوظيفة. لاحظ أنه في هذه الحالة، أنت مسؤول مسؤولية كاملة عن التعامل مع بيانات الاعتماد للوصول إلى التخزين. eval_mount الأوضاع و eval_download فريدة من نوعها ل MLTable، وإما تحميل البيانات كمسار أو تنزيل البيانات إلى هدف الحساب. لمزيد من المعلومات حول الأوضاع، راجع الوصول إلى البيانات في وظيفة |
ro_mount , download , direct , eval_download , eval_mount |
ro_mount |
مخرجات المهمة
المفتاح | النوع | الوصف | القيم المسموح بها | القيمة الافتراضية |
---|---|---|---|---|
type |
سلسلة | نوع مخرجات الوظيفة. بالنسبة للنوع الافتراضيuri_folder ، سيتوافق الإخراج مع مجلد. |
uri_folder , mlflow_model , custom_model |
uri_folder |
mode |
سلسلة | وضع كيفية تسليم ملف (ملفات) الإخراج إلى وحدة التخزين الوجهة. بالنسبة لوضع تحميل القراءة والكتابة (rw_mount )، سيكون دليل الإخراج دليلاً مُثبتاً. بالنسبة لوضع التحميل، سيتم تحميل الملف (الملفات) المكتوبة في نهاية المهمة. |
rw_mount , upload |
rw_mount |
تكوينات الهوية
تكوين معرف المستخدم
المفتاح | النوع | الوصف | القيم المسموح بها |
---|---|---|---|
type |
const | مطلوب نوع الهوية. | user_identity |
تكوين ManagedIdentity
المفتاح | النوع | الوصف | القيم المسموح بها |
---|---|---|---|
type |
const | مطلوب نوع الهوية. | managed أو managed_identity |
الملاحظات
يمكن استخدام الأمر az ml job
لإدارة وظائف التعلم الآلي من Microsoft Azure.
أمثلة
الأمثلة متوفرة في مستودع أمثلة GitHub. يتم عرض العديد أدناه.
YAML: أهلاً بالعالم
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: الاسم المعروض، واسم التجربة، والوصف، والعلامات
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
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
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
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
YAML: الكتابة إلى النواتج الافتراضية
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
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
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://registries/azureml/environments/sklearn-1.0/labels/latest
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/
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
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://registries/azureml/environments/sklearn-1.0/labels/latest
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://registries/azureml/environments/sklearn-1.0/labels/latest
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:3.11.6
YAML: تدريب نموذج Python الأساسي
$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://registries/azureml/environments/sklearn-1.0/labels/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@latest
environment: azureml:AzureML-acpt-pytorch-1.13-cuda11.7@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.12-cuda11@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.12-cuda11@latest
compute: azureml:gpu-cluster
resources:
instance_count: 2
distribution:
type: mpi
process_count_per_instance: 1
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.