Share via


CLI (v2) komut bileşeni YAML şeması

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

Kaynak JSON şeması adresinde https://azuremlschemas.azureedge.net/latest/commandComponent.schema.jsonbulunabilir.

Not

Bu belgede ayrıntılarıyla belirtilen YAML söz dizimi, ML CLI v2 uzantısının en son sürümü için JSON şemasını temel alır. Bu söz diziminin yalnızca ML CLI v2 uzantısının en son sürümüyle çalışacağı garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.

YAML söz dizimi

Anahtar Tür Açıklama İzin verilen değerler Varsayılan değer
$schema string YAML şeması. YAML dosyasını yazmak için Azure Machine Learning VS Code uzantısını kullanırsanız, dosyanızın üst kısmı da dahil olmak üzere $schema şema ve kaynak tamamlamalarını çağırmanıza olanak tanır.
type const Bileşenin türü. command command
name string Gereklidir. Bileşenin adı. Küçük harfle başlamalıdır. İzin verilen karakterler küçük harf, sayı ve alt çizgidir(_). Uzunluk üst sınırı 255 karakterdir.
version string Bileşenin sürümü. Belirtilmezse Azure Machine Learning bir sürümü otomatik olarak oluşturur.
display_name string Studio kullanıcı arabiriminde bileşenin görünen adı. Çalışma alanı içinde benzersiz olmayabilir.
description string Bileşenin açıklaması.
tags object Bileşen için etiket sözlüğü.
is_deterministic boolean Bu seçenek, bileşenin aynı giriş verileri için aynı çıkışı üretip üretmeyeceğini belirler. Bunu genellikle URL'den veri içeri aktarma gibi dış kaynaklardan veri yükleyen bileşenler için olarak ayarlamanız false gerekir. Bunun nedeni URL'deki verilerin zaman içinde değişebileceğindendir. true
command string Gereklidir. Yürütülecek komut.
code string Yüklenecek ve bileşen için kullanılacak kaynak kodu dizininin yerel yolu.
environment dize veya nesne Gereklidir. Bileşen için kullanılacak ortam. Bu değer, çalışma alanında var olan bir sürüme sahip ortama başvuru veya satır içi ortam belirtimi olabilir.

Var olan bir ortama başvurmak için söz dizimini azureml:<environment-name>:<environment-version> kullanın.

Bir ortamı satır içinde tanımlamak için Ortam şemasını izleyin. Satır içi ortamlar name için desteklenmediğinden ve version özelliklerini hariç tutun.
distribution object Dağıtılmış eğitim senaryoları için dağıtım yapılandırması. MpiConfiguration, PyTorchConfiguration veya TensorFlowConfiguration'lardan biri.
resources.instance_count tamsayı İş için kullanılacak düğüm sayısı. 1
inputs object Bileşen girişlerinin sözlüğü. Anahtar, bileşen bağlamında girişin adı ve değer de bileşen giriş tanımıdır.

ifadesini command kullanarak ${{ inputs.<input_name> }} girişlere başvurulabilir.
inputs.<input_name> object Bileşen giriş tanımı. Yapılandırılabilir özellikler kümesi için bkz . Bileşen girişi .
outputs object Bileşen çıkışlarının sözlüğü. Anahtar, bileşenin bağlamındaki çıkışın adı ve değer de bileşen çıkış tanımıdır.

İfade kullanılarak çıkışlara başvurulabilir command${{ outputs.<output_name> }} .
outputs.<output_name> object Bileşen çıkış tanımı. Yapılandırılabilir özellikler kümesi için bkz . Bileşen çıkışı .

Dağıtım yapılandırmaları

MpiConfiguration

Anahtar Tür Açıklama İzin verilen değerler
type const Gereklidir. Dağıtım türü. mpi
process_count_per_instance tamsayı Gereklidir. İş için başlatacak düğüm başına işlem sayısı.

PyTorchConfiguration

Anahtar Tür Açıklama İzin verilen değerler Varsayılan değer
type const Gereklidir. Dağıtım türü. pytorch
process_count_per_instance tamsayı İş için başlatacak düğüm başına işlem sayısı. 1

TensorFlowConfiguration

Anahtar Tür Açıklama İzin verilen değerler Varsayılan değer
type const Gereklidir. Dağıtım türü. tensorflow
worker_count tamsayı İş için başlatacak çalışan sayısı. varsayılan olarak resources.instance_countayarlanır.
parameter_server_count tamsayı İş için başlatacak parametre sunucularının sayısı. 0

Bileşen girişi

Anahtar Tür Açıklama İzin verilen değerler Varsayılan değer
type string Gereklidir. Bileşen girişinin türü. Veri erişimi hakkında daha fazla bilgi edinin number, integer, boolean, string, uri_file, uri_folder, mltable, mlflow_model
description string Girişin açıklaması.
default sayı, tamsayı, boole veya dize Giriş için varsayılan değer.
optional boolean Girişin gerekli olup olmadığı. olarak ayarlanırsa trueile isteğe bağlı girişler içeren komutunu kullanmanız gerekir $[[]] false
min tamsayı veya sayı Giriş için kabul edilen en düşük değer. Bu alan yalnızca veya integerise typenumber belirtilebilir.
max tamsayı veya sayı Giriş için kabul edilen maksimum değer. Bu alan yalnızca veya integerise typenumber belirtilebilir.
enum array Giriş için izin verilen değerlerin listesi. Yalnızca alan ise typestringgeçerlidir.

Bileşen çıkışı

Anahtar Tür Açıklama İzin verilen değerler Varsayılan değer
type string Gereklidir. Bileşen çıkışının türü. uri_file, uri_folder, mltable, mlflow_model
description string Çıkışın açıklaması.

Açıklamalar

Komutlar az ml component Azure Machine Learning bileşenlerini yönetmek için kullanılabilir.

Örnekler

Komut bileşeni örnekleri, örnek GitHub deposunda bulunabilir. için seçme örnekleri aşağıda gösterilmiştir.

Örnekler GitHub deposunda bulunabilir. Aşağıda birkaçı gösterilmiştir.

YAML: Merhaba dünya komut bileşeni

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command

name: hello_python_world
display_name: Hello_Python_World
version: 1

code: ./src

environment: 
  image: python

command: >-
  python hello.py

YAML: Farklı giriş türlerine sahip bileşen

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
  author: azureml-sdk-team
version: 9
type: command
inputs:
  training_data: 
    type: uri_folder
  max_epocs:
    type: integer
    optional: true
  learning_rate: 
    type: number
    default: 0.01
    optional: true
  learning_rate_schedule: 
    type: string
    default: time-based
    optional: true
outputs:
  model_output:
    type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
command: >-
  python train.py 
  --training_data ${{inputs.training_data}} 
  $[[--max_epocs ${{inputs.max_epocs}}]]
  $[[--learning_rate ${{inputs.learning_rate}}]]
  $[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
  --model_output ${{outputs.model_output}}

Komut satırında isteğe bağlı girişleri tanımlama

Giriş olarak optional = trueayarlandığında, komut satırını girişlerle kucaklamak için kullanmanız $[[]] gerekir. Örneğin, $[[--input1 ${{inputs.input1}}]. Çalışma zamanındaki komut satırında farklı girişler olabilir.

  • Yalnızca gerekli training_data ve model_output parametreleri belirtiyorsanız komut satırı şöyle görünür:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Çalışma zamanında learning_rate hiçbir değer belirtilmezse ve learning_rate_schedule varsayılan değeri kullanır.

  • Tüm girişler/çıkışlar çalışma zamanı sırasında değer sağlarsa komut satırı şöyle görünür:
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Yaygın hatalar ve öneriler

Aşağıda bazı yaygın hatalar ve bir bileşen tanımlarken önerilen öneriler yer alır.

Anahtar Hatalar Öneri
command 1. Yalnızca isteğe bağlı girişler $[[]]
2. \ Komutta yeni satır oluşturmak için kullanılması desteklenmez.
3. Girişler veya çıkışlar bulunamadı.
1. komutunda kullanılan tüm girişlerin veya çıkışların ve outputs bölümlerinde zaten tanımlandığını inputs denetleyin ve isteğe bağlı girişler veya gerekli olanlar $[[]]${{}}için doğru biçimi kullanın.
2. Yeni bir satır oluşturmak için kullanmayın \ .
ortam 1. Ortam {envName} sürümü {envVersion}için tanım yok.
2. Adı {envName}, sürümü {envVersion}için ortam yok.
3. Kimliği {envAssetId}olan varlık bulunamadı.
1. Bileşen tanımında başvurabileceğiniz ortam adının ve sürümünün mevcut olduğundan emin olun.
2. Kayıtlı bir ortama başvuruda bulunursanız sürümü belirtmeniz gerekir.
girişler/çıkışlar 1. Giriş/çıkış adları sistem ayrılmış parametreleriyle çakışıyor.
2. Girişlerin veya çıkışların yinelenen adları.
1. Bu ayrılmış parametrelerin hiçbirini giriş/çıkış adı olarak kullanmayın: , , , , , home, pwd. shelllognameuserld_library_pathpath
2. Giriş ve çıkış adlarının yinelenmediğinden emin olun.

Sonraki adımlar