CLI (v2) اكتساح وظيفة مخطط YAML

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

يمكن العثور على مخطط JSON المصدر في https://azuremlschemas.azureedge.net/latest/sweepJob.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 كونست مطلوب نوع الوظيفة. sweep sweep
name سلسلة اسم الوظيفة. يجب أن تكون فريدة من نوعها في جميع الوظائف في مساحة العمل. إذا تم حذفه، فسيقوم Azure ML تلقائيا بإنشاء GUID للاسم.
display_name سلسلة اسم العرض للمهمة في واجهة مستخدم الاستوديو. يمكن أن تكون غير فريدة من نوعها داخل مساحة العمل. إذا تم حذفه، فسيقوم Azure ML تلقائيا بإنشاء معرف اسم صفة قابل للقراءة من قبل الإنسان لاسم العرض.
experiment_name سلسلة اسم التجربة لتنظيم المهمة تحتها. سيتم تنظيم سجل تشغيل كل وظيفة ضمن التجربة المقابلة في علامة التبويب "التجارب" في الاستوديو. إذا تم حذفه، فسيقوم Azure ML بتعيينه افتراضيا إلى اسم دليل العمل حيث تم إنشاء المهمة.
description سلسلة وصف الوظيفة.
tags كائن قاموس العلامات لهذه المهمة.
sampling_algorithm كائن مطلوب خوارزمية أخذ العينات ذات المعلمات الفائقة لاستخدامها فوق search_space. واحدة من RandomSamplingAlgorithm أو GridSamplingAlgorithm أو BayesianSamplingAlgorithm.
search_space كائن مطلوب قاموس مساحة البحث عن المعلمة الفائقة. المفتاح هو اسم المعلمة الفائقة والقيمة هي تعبير المعلمة.

يمكن الرجوع إلى المعلمات التشعبية في trial.command استخدام ${{ search_space.<hyperparameter> }} التعبير.
search_space.<hyperparameter> كائن راجع تعبيرات المعلمات للحصول على مجموعة التعبيرات المحتملة للاستخدام.
objective.primary_metric سلسلة مطلوب اسم المقياس الأساسي الذي تم الإبلاغ عنه بواسطة كل وظيفة تجريبية. يجب تسجيل المقياس في البرنامج النصي للتدريب الخاص بالمستخدم باستخدام mlflow.log_metric() نفس اسم المقياس المقابل.
objective.goal سلسلة مطلوب هدف التحسين ل objective.primary_metric. maximize, minimize
early_termination كائن سياسة الإنهاء المبكر للاستخدام. يتم إلغاء وظيفة تجريبية عند استيفاء معايير السياسة المحددة. إذا تم حذفها، فلن يتم تطبيق سياسة الإنهاء المبكر. واحدة من BanditPolicy أوMedianStoppingPolicy أو TruncationSelectionPolicy.
limits كائن حدود مهمة الاجتياح. راجع سمات المفتاحlimits.
compute سلسلة مطلوب اسم هدف الحساب لتنفيذ المهمة عليه، باستخدام بناء الجملة azureml:<compute_name> .
trial كائن مطلوب قالب الوظيفة لكل إصدار تجريبي. سيتم تزويد كل مهمة تجريبية بمزيج مختلف من قيم المعلمات الفائقة التي يقوم النظام بأخذ عينات منها search_space. راجع سمات المفتاحtrial.
inputs كائن قاموس المدخلات للوظيفة. المفتاح هو اسم للإدخال في سياق المهمة والقيمة هي قيمة الإدخال.

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

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

خوارزميات أخذ العينات

خوارزمية أخذ العينات العشوائية

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع خوارزمية أخذ العينات. random
seed عدد صحيح بذرة عشوائية لاستخدامها في تهيئة توليد الأرقام العشوائية. إذا تم حذفها، فستكون قيمة البذور الافتراضية فارغة.
rule سلسلة نوع أخذ العينات العشوائية للاستخدام. الافتراضي ، random، سيستخدم أخذ عينات عشوائية بسيطة موحدة ، بينما sobol سيستخدم تسلسل Sobol شبه العشوائي. random, sobol random

GridSamplingAlgorithm

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع خوارزمية أخذ العينات. grid

BayesianSamplingAlgorithm

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع خوارزمية أخذ العينات. bayesian

سياسات الإنهاء المبكر

سياسة اللصوصية

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع السياسة. bandit
slack_factor العدد النسبة المستخدمة لحساب المسافة المسموح بها من التجربة الأفضل أداء. واحد من slack_factor أو slack_amount مطلوب.
slack_amount العدد المسافة المطلقة المسموح بها من المحاكمة الأفضل أداء. واحد من slack_factor أو slack_amount مطلوب.
evaluation_interval عدد صحيح تواتر تطبيق السياسة. 1
delay_evaluation عدد صحيح عدد الفترات الزمنية التي يمكن من خلالها تأخير التقييم الأول للسياسات. إذا تم تحديدها، تنطبق السياسة على كل مضاعف من evaluation_interval ذلك أكبر من أو يساوي delay_evaluation. 0

سياسة الإيقاف الوسطي

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع السياسة. median_stopping
evaluation_interval عدد صحيح تواتر تطبيق السياسة. 1
delay_evaluation عدد صحيح عدد الفترات الزمنية التي يمكن من خلالها تأخير التقييم الأول للسياسات. إذا تم تحديدها، تنطبق السياسة على كل مضاعف من evaluation_interval ذلك أكبر من أو يساوي delay_evaluation. 0

الاقتطاعالاختيارسياسة

المفتاح النوع الوصف القيم المسموح بها القيمة الافتراضية
type كونست مطلوب نوع السياسة. truncation_selection
truncation_percentage عدد صحيح مطلوب النسبة المئوية للوظائف التجريبية التي سيتم إلغاؤها في كل فترة تقييم.
evaluation_interval عدد صحيح تواتر تطبيق السياسة. 1
delay_evaluation عدد صحيح عدد الفترات الزمنية التي يمكن من خلالها تأخير التقييم الأول للسياسات. إذا تم تحديدها، تنطبق السياسة على كل مضاعف من evaluation_interval ذلك أكبر من أو يساوي delay_evaluation. 0

تعبيرات المعلمات

اختيار

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. choice
values صفيف مطلوب قائمة القيم المنفصلة للاختيار من بينها.

راندينت

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. randint
upper عدد صحيح مطلوب الحد العلوي الحصري لمجموعة الأعداد الصحيحة.

qlognormal, qnormal

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. qlognormal, qnormal
mu العدد مطلوب متوسط التوزيع الطبيعي.
sigma العدد مطلوب الانحراف المعياري للتوزيع الطبيعي.
q عدد صحيح مطلوب عامل التنعيم.

qloguniform, quniform

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. qloguniform, quniform
min_value العدد مطلوب الحد الأدنى للقيمة في النطاق (شامل).
max_value العدد مطلوب القيمة القصوى في النطاق (شاملة).
q عدد صحيح مطلوب عامل التنعيم.

لوغاريتال، عادي

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. lognormal, normal
mu العدد مطلوب متوسط التوزيع الطبيعي.
sigma العدد مطلوب الانحراف المعياري للتوزيع الطبيعي.

loguniform

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. loguniform
min_value العدد مطلوب سيكون exp(min_value) الحد الأدنى للقيمة في النطاق (شاملا).
max_value العدد مطلوب ستكون exp(max_value) القيمة القصوى في النطاق (شاملة).

منتظم

المفتاح النوع الوصف القيم المسموح بها
type كونست مطلوب نوع التعبير. uniform
min_value العدد مطلوب الحد الأدنى للقيمة في النطاق (شامل).
max_value العدد مطلوب القيمة القصوى في النطاق (شاملة).

سمات limits المفتاح

المفتاح النوع الوصف القيمة الافتراضية
max_total_trials عدد صحيح الحد الأقصى للوقت بالثواني المسموح به لتشغيل المهمة. بمجرد الوصول إلى هذا الحد ، سيقوم النظام بإلغاء المهمة. 1000
max_concurrent_trials عدد صحيح الإعدادات الافتراضية لـ max_total_trials.
timeout عدد صحيح الحد الأقصى للوقت بالدقائق يسمح بتشغيل مهمة الاجتياح بأكملها. بمجرد الوصول إلى هذا الحد ، سيقوم النظام بإلغاء مهمة الاجتياح ، بما في ذلك جميع التجارب. 10080
trial_timeout عدد صحيح يسمح بتشغيل الحد الأقصى للوقت بالثواني لكل مهمة تجريبية. بمجرد الوصول إلى هذا الحد ، سيقوم النظام بإلغاء الإصدار التجريبي.

سمات trial المفتاح

المفتاح النوع الوصف القيمة الافتراضية
command سلسلة مطلوب الأمر بالتنفيذ.
code سلسلة المسار المحلي إلى دليل التعليمات البرمجية المصدر ليتم تحميله واستخدامه لهذه المهمة.
environment سلسلة أو كائن مطلوب البيئة لاستخدامها في الوظيفة. يمكن أن يكون هذا إما مرجعا إلى بيئة تم إصدارها موجودة في مساحة العمل أو مواصفات بيئة مضمنة.

للإشارة إلى بيئة موجودة، استخدم بناء الجملة azureml:<environment-name>:<environment-version> .

لتحديد بيئة مضمنة، يرجى اتباع مخطط البيئة. استبعاد name والخصائص version لأنها غير معتمدة للبيئات المضمنة.
environment_variables كائن قاموس أزواج متغير اسم متغير البيئة لتعيينه على العملية حيث يتم تنفيذ الأمر.
distribution كائن تكوين التوزيع لسيناريوهات التدريب الموزعة. واحدة من MpiConfiguration أو PyTorchConfiguration أو TensorFlowConfiguration.
resources.instance_count عدد صحيح عدد العقد التي يجب استخدامها لهذه المهمة. 1

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

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 wil حل الإدخال إلى المسار الذي تم تنزيله.

إذا كنت تريد فقط عنوان 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/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
inputs:
  A: 0.5
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: ضبط المعلمات الفائقة الأساسية لنموذج بايثون

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

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