Aracılığıyla paylaş


ParallelRunConfig Sınıf

Bir ParallelRunStep nesnenin yapılandırmasını tanımlar.

ParallelRunStep kullanma örneği için not defterine https://aka.ms/batch-inference-notebooksbakın.

Sorun giderme kılavuzu için bkz https://aka.ms/prstsg. . Burada daha fazla başvuru bulabilirsiniz.

Yapılandırma nesnesini başlatın.

Devralma
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBase
ParallelRunConfig

Oluşturucu

ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)

Parametreler

Name Description
environment
Gerekli

Python ortamını yapılandıran ortam tanımı. Mevcut bir Python ortamını kullanacak veya deneme için geçici bir ortam ayarlanacak şekilde yapılandırılabilir. Ortam tanımı conda veya pip paketleri gibi gerekli uygulama bağımlılıklarını tanımlamakla sorumludur.

entry_script
Gerekli
str

Birden çok düğümde paralel olarak çalıştırılacak kullanıcı betiği. Bu, yerel dosya yolu olarak belirtilir. belirtilirse source_directory , entry_script dizinin içindeki göreli bir yoldur. Aksi takdirde, makinede erişilebilen herhangi bir yol olabilir. entry_script iki işlev içermelidir: init()bu işlev, modeli seri durumdan çıkarma ve genel bir nesneye yükleme gibi sonraki çıkarımlar için herhangi bir maliyetli veya ortak hazırlık için kullanılmalıdır. run(mini_batch): Paralelleştirilecek yöntem. Her çağrıda bir mini toplu iş bulunur. 'mini_batch': Batch çıkarımı çalıştırma yöntemini çağırır ve yönteme bağımsız değişken olarak bir liste veya Pandas DataFrame geçirir. min_batch'daki her giriş filepath , input bir FileDataset ise dosya yolu, giriş tabularDataset ise Pandas DataFrame olacaktır. run() yöntemi bir Pandas DataFrame veya dizi döndürmelidir. append_row output_action için, döndürülen bu öğeler ortak çıkış dosyasına eklenir. summary_only için öğelerin içeriği yoksayılır. Tüm çıkış eylemleri için döndürülen her çıkış öğesi, giriş mini toplu işlemindeki giriş öğesinin başarılı bir çıkarımını gösterir. Her paralel çalışan işlemi bir kez init çağrısı yapacak ve ardından tüm mini toplu işlemler işlenene kadar çalıştırma işlevi üzerinde döngü yapacaktır.

error_threshold
Gerekli
int

bunun için TabularDataset kayıt hatası sayısı ve bunun için FileDataset dosya hataları işleme sırasında yoksayılmalıdır. Hata sayısı bu değerin üzerine çıkarsa iş durdurulacaktır. Hata eşiği, run() yöntemine gönderilen tek tek mini toplu işlemler için değil girişin tamamı içindir. Aralık :[-1, int.max]. -1, işleme sırasında tüm hataları yoksaymak olduğunu gösterir.

output_action
Gerekli
str

Çıkışın nasıl düzenlenmesi gerektiği. Geçerli desteklenen değerler 'append_row' ve 'summary_only'dır.

  1. 'append_row' – run() yöntemi çağrıları tarafından oluşturulan tüm değerler, çıkış konumunda oluşturulan parallel_run_step.txt adlı benzersiz bir dosyada toplanır.
  2. 'summary_only' – Kullanıcı betiğinin çıkışın kendisini depolaması beklenir. İşlenen her başarılı giriş öğesi için yine de bir çıkış satırı beklenir. Sistem bu çıkışı yalnızca hata eşiği hesaplaması için kullanır (satırın gerçek değeri yoksayılarak).
compute_target
Gerekli

ParallelRunStep yürütmesi için kullanılacak işlem hedefi. Bu parametre, çalışma alanında işlem hedefi nesnesi veya işlem hedefi adı olarak belirtilebilir.

node_count
Gerekli
int

ParallelRunStep çalıştırmak için kullanılan işlem hedefindeki düğüm sayısı.

process_count_per_node
int

Giriş betiğini paralel olarak çalıştırmak için düğüm başına çalışan işlemlerinin sayısı. GPU makinesi için varsayılan değer 1'dir. CPU makinesi için varsayılan değer çekirdek sayısıdır. Çalışan işlemi, aldığı mini toplu işlemi geçirerek art arda çağrısı run() yapacaktır. İşinizdeki çalışan işlemlerinin toplam sayısı, paralel olarak yürütülecek en fazla çalışan sayısına run() karar veren değeridirprocess_count_per_node * node_count.

varsayılan değer: None
mini_batch_size

FileDataset girişi için bu alan, bir kullanıcı betiğinin tek bir run() çağrısında işleyebileceği dosya sayısıdır. TabularDataset girişi için bu alan, kullanıcı betiğinin tek bir run() çağrısında işleyebileceği yaklaşık veri boyutudur. Örnek değerler 1024, 1024 KB, 10 MB ve 1 GB'tır. (isteğe bağlı, varsayılan değer FileDataset için 10 dosya ve TabularDataset için 1 MB'tır.)

varsayılan değer: None
source_directory
str

İşlem hedefinde entry_script yürütmek için kullanılan ve destekleyen dosyaları içeren klasörün yolu.

varsayılan değer: None
description
str

Görüntüleme amacıyla kullanılan toplu iş hizmetine vermek için bir açıklama.

varsayılan değer: None
logging_level
str

'Günlüğe kaydetme' içinde tanımlanan günlük düzeyi adı dizesi. Olası değerler 'UYARI', 'BİlGİ' ve 'DEBUG' değerleridir. (isteğe bağlı, varsayılan değer 'BİlGİ'dir.)

varsayılan değer: INFO
run_invocation_timeout
int

run() yönteminin her çağrısı için saniye olarak zaman aşımı. (isteğe bağlı, varsayılan değer 60'tır.)

varsayılan değer: 60
run_max_try
int

Başarısız veya zaman aşımı mini toplu işlemi için en fazla deneme sayısı. Aralık : [1, int.max]. Varsayılan değer 3'dür. Bu değerden büyük olan kuyruktan çıkarma sayısı olan bir mini toplu iş yeniden işlenmez ve doğrudan silinir.

varsayılan değer: 3
append_row_file_name
str

'append_row' ise çıkış dosyasının output_action adı. (isteğe bağlı, varsayılan değer 'parallel_run_step.txt')

varsayılan değer: None
allowed_failed_count
int

İşleme sırasında yoksayılması gereken başarısız mini toplu işlemlerin sayısı. Başarısız olan sayı bu değerin üzerine çıkarsa iş durdurulacaktır. Bu eşik, run() yöntemine gönderilen tek tek mini toplu iş yerine girişin tamamına yöneliktir. Aralık :[-1, int.max]. -1, işleme sırasında tüm hataları yoksaymak olduğunu gösterir. Mini toplu işlem ilk kez işlenip ikinci denemede başarılı olabilir. İlk ve ikinci kez arasındaki denetim başarısız olarak sayılır. İkinci seferden sonra yapılan denetim başarısız olarak sayılmaz. –error_threshold, –allowed_failed_count ve –allowed_failed_percent bağımsız değişkeni birlikte çalışabilir. Birden fazla belirtilmişse, iş bunlardan herhangi birini aşarsa durdurulacaktır.

varsayılan değer: None
allowed_failed_percent

İşleme sırasında yoksayılması gereken başarısız mini toplu işlemlerin yüzdesi. Başarısız yüzde değeri bu değerin üzerine çıkarsa iş durdurulacaktır. Bu eşik, run() yöntemine gönderilen tek tek mini toplu iş yerine girişin tamamına yöneliktir. Aralık :[0, 100]. 100 veya 100.0, işleme sırasındaki tüm hataları yoksaymaya işaret eder. Denetim, tüm mini toplu işlemler zamanlandıktan sonra başlar. –error_threshold, –allowed_failed_count ve –allowed_failed_percent bağımsız değişkeni birlikte çalışabilir. Birden fazla belirtilmişse, iş bunlardan herhangi birini aşarsa durdurulacaktır.

varsayılan değer: None
partition_keys

Veri kümesini mini toplu işlere bölmek için kullanılan anahtarlar. Belirtilirse, aynı anahtara sahip veriler aynı mini toplu iş olarak bölümlenir. Hem partition_keys hem de mini_batch_size belirtilirse hata oluşur. Her biri giriş veri kümesini bölümlemede kullanılan bir anahtar olan str öğelerinin listesi olmalıdır. Ancak PipelineParameter'a yükseltilirse, liste türü şimdilik PipelineParameter'da desteklenmediğinden varsayılan değerler listenin json dökümü adımı olmalıdır. Girişlerin bölümlenmiş veri kümeleri olması ve partition_keys bunun çalışması için her giriş veri kümesinin anahtarlarının bir alt kümesi olması gerekir.

varsayılan değer: None
environment_variables

Ortam değişkenlerinin adlarını ve değerlerini içeren bir sözlük. Bu ortam değişkenleri, kullanıcı betiğinin yürütüldüğü işlemde ayarlanır.

varsayılan değer: None
environment
Gerekli

Python ortamını yapılandıran ortam tanımı. Mevcut bir Python ortamını kullanacak veya deneme için geçici bir ortam ayarlanacak şekilde yapılandırılabilir. Ortam tanımı conda veya pip paketleri gibi gerekli uygulama bağımlılıklarını tanımlamakla sorumludur.

entry_script
Gerekli
str

Birden çok düğümde paralel olarak çalıştırılacak kullanıcı betiği. Bu, yerel dosya yolu olarak belirtilir. belirtilirse source_directory , entry_script dizinin içindeki göreli bir yoldur. Aksi takdirde, makinede erişilebilen herhangi bir yol olabilir. entry_script iki işlev içermelidir: init()bu işlev, modeli seri durumdan çıkarma ve genel bir nesneye yükleme gibi sonraki çıkarımlar için herhangi bir maliyetli veya ortak hazırlık için kullanılmalıdır. run(mini_batch): Paralelleştirilecek yöntem. Her çağrıda bir mini toplu iş bulunur. 'mini_batch': Toplu çıkarım çalıştırma yöntemini çağırır ve yöntemine bağımsız değişken olarak bir liste veya Pandas DataFrame geçirir. girdi bir FileDataset ise min_batch içindeki her giriş bir dosya yolu, giriş bir TabularDataset ise Pandas DataFrame olacaktır. run() yöntemi bir Pandas DataFrame veya dizi döndürmelidir. append_row output_action için, döndürülen bu öğeler ortak çıkış dosyasına eklenir. summary_only için öğelerin içeriği yoksayılır. Tüm çıkış eylemleri için, döndürülen her çıkış öğesi giriş mini toplu işlemindeki giriş öğesinin başarılı bir çıkarımını gösterir. Her paralel çalışan işlemi bir kez init'i çağırır ve ardından tüm mini toplu işlemler işlenene kadar çalıştırma işlevi üzerinde döngü oluşturur.

error_threshold
Gerekli
int

bunun için TabularDataset kayıt hatası sayısı ve bunun için FileDataset dosya hataları işleme sırasında yoksayılmalıdır. Hata sayısı bu değerin üzerine çıkarsa iş durdurulacaktır. Hata eşiği, run() yöntemine gönderilen tek tek mini toplu işlemler için değil, girişin tamamı içindir. Aralık :[-1, int.max]. -1, işleme sırasında tüm hataları yoksaymak olduğunu gösterir.

output_action
Gerekli
str

Çıkışın nasıl düzenlenmesi gerektiği. Geçerli desteklenen değerler 'append_row' ve 'summary_only'dır.

  1. 'append_row' – run() yöntemi çağrıları tarafından oluşturulan tüm değerler, çıkış konumunda oluşturulan parallel_run_step.txt adlı benzersiz bir dosyada toplanır.
  2. 'summary_only' – Kullanıcı betiğinin çıkışın kendisini depolaması beklenir. İşlenen her başarılı giriş öğesi için yine de bir çıkış satırı beklenir. Sistem bu çıkışı yalnızca hata eşiği hesaplaması için kullanır (satırın gerçek değeri yoksayılarak).
compute_target
Gerekli

ParallelRunStep yürütmesi için kullanılacak işlem hedefi. Bu parametre bir işlem hedefi nesnesi veya çalışma alanında işlem hedefinin adı olarak belirtilebilir.

node_count
Gerekli
int

ParallelRunStep çalıştırmak için kullanılan işlem hedefindeki düğümlerin sayısı.

process_count_per_node
Gerekli
int

Girdi betiğini paralel olarak çalıştırmak için düğüm başına çalışan işlemlerinin sayısı. GPU makinesi için varsayılan değer 1'dir. BIR CPU makinesi için varsayılan değer çekirdek sayısıdır. Çalışan işlemi, aldığı mini toplu işlemi geçirerek art arda çağrısı run() yapacaktır. İşinizdeki toplam çalışan işlemi sayısı, paralel olarak yürütülecek en fazla çalışan sayısına run() karar veren değeridirprocess_count_per_node * node_count.

mini_batch_size
Gerekli
str veya int

FileDataset girişi için bu alan, bir kullanıcı betiğinin tek bir run() çağrısında işleyebileceği dosya sayısıdır. TabularDataset girişi için bu alan, kullanıcı betiğinin tek bir run() çağrısında işleyebileceği yaklaşık veri boyutudur. Örnek değerler 1024, 1024 KB, 10 MB ve 1 GB'tır. (isteğe bağlı, varsayılan değer FileDataset için 10 dosya ve TabularDataset için 1 MB'tır.)

source_directory
Gerekli
str

İşlem hedefinde entry_script yürütmek için kullanılan ve destekleyici dosyaları içeren klasörün yolu.

description
Gerekli
str

Görüntüleme amacıyla kullanılan toplu iş hizmetine vermek için bir açıklama.

logging_level
Gerekli
str

'Günlüğe kaydetme' içinde tanımlanan günlük düzeyi adı dizesi. Olası değerler 'UYARI', 'BİlGİ' ve 'HATA AYıKLAMA' değerleridir. (isteğe bağlı, varsayılan değer 'BİlGİ'dir.)

run_invocation_timeout
Gerekli
int

run() yönteminin her çağrısı için saniye olarak zaman aşımı. (isteğe bağlı, varsayılan değer 60'tır.)

run_max_try
Gerekli
int

Başarısız veya zaman aşımı mini toplu işlemi için en fazla deneme sayısı. Aralık :[1, int.max]. Varsayılan değer 3'dür. Bu değerden büyük olan bir diziden kaldırma sayısı olan mini toplu iş yeniden işlenmez ve doğrudan silinir.

append_row_file_name
Gerekli
str

'append_row' ise çıkış dosyasının output_action adı. (isteğe bağlı, varsayılan değer 'parallel_run_step.txt')

allowed_failed_count
Gerekli
int

İşleme sırasında yoksayılması gereken başarısız mini toplu işlemlerin sayısı. Başarısız sayı bu değerin üzerine çıkarsa, iş durdurulacaktır. Bu eşik, run() yöntemine gönderilen tek tek mini toplu iş yerine girişin tamamına yöneliktir. Aralık :[-1, int.max]. -1, işleme sırasında tüm hataları yoksaymak olduğunu gösterir. Mini toplu işlem ilk kez işlenirken başarısız olabilir ve ardından ikinci denemede başarılı olabilir. İlk ve ikinci zaman arasındaki denetim başarısız olarak sayılır. İkinci seferden sonra yapılan denetim başarısız olarak sayılmaz. –error_threshold, –allowed_failed_count ve –allowed_failed_percent bağımsız değişkeni birlikte çalışabilir. Birden fazla belirtilmişse, herhangi birini aşarsa iş durdurulacaktır.

allowed_failed_percent
Gerekli

İşlem sırasında yoksayılması gereken başarısız mini toplu işlemlerin yüzdesi. Başarısız yüzde değeri bu değerin üzerine çıkarsa, iş durdurulacaktır. Bu eşik, run() yöntemine gönderilen tek tek mini toplu iş yerine girişin tamamına yöneliktir. Aralık :[0, 100]. 100 veya 100.0, işleme sırasındaki tüm hataları yoksayar. Denetim, tüm mini toplu işlemler zamanlandıktan sonra başlar. –error_threshold, –allowed_failed_count ve –allowed_failed_percent bağımsız değişkeni birlikte çalışabilir. Birden fazla belirtilmişse, herhangi birini aşarsa iş durdurulacaktır.

partition_keys
Gerekli

Veri kümesini mini toplu işlere bölmek için kullanılan anahtarlar. Belirtilirse, aynı anahtara sahip veriler aynı mini toplu işleme bölümlenir. Hem partition_keys hem de mini_batch_size belirtilirse hata oluşur. Her biri giriş veri kümesini bölümlendirmek için kullanılan bir anahtar olan str öğelerinin listesi olmalıdır. Ancak PipelineParameter'a yükseltilirse, liste türü şimdilik PipelineParameter'da desteklenmediğinden varsayılan değerler listenin json dökümü adımı olmalıdır. Girişlerin bölümlenmiş veri kümeleri olması ve bunun çalışması için partition_keys her giriş veri kümesinin anahtarlarının bir alt kümesi olması gerekir.

environment_variables
Gerekli

Ortam değişkenlerinin adlarını ve değerlerini içeren bir sözlük. Bu ortam değişkenleri, kullanıcı betiğinin yürütüldüğü işlemde ayarlanır.

Açıklamalar

ParallelRunConfig sınıfı, sınıfı için yapılandırma sağlamak için ParallelRunStep kullanılır. ParallelRunConfig ve ParallelRunStep, büyük miktarlardaki verileri paralel olarak işlemek için birlikte kullanılabilir. Yaygın kullanım örnekleri bir dizi gözlem üzerinde tahminler oluşturmak için bir ML modelini eğitmek veya çevrimdışı çıkarım çalıştırmaktır. ParallelRunStep verilerinizi paralel çalıştırılan toplu işlere bölerek çalışır. Paralel işlemenizi hızlandırmak için toplu iş boyutu, düğüm sayısı ve diğer ayarlanabilir parametreler sınıfıyla ParallelRunConfig denetlenebilir. ParallelRunStep giriş olarak veya FileDataset ile TabularDataset çalışabilir.

ParallelRunStep ve ParallelRunConfig kullanmak için:

  • ParallelRunConfig Toplu işlem boyutunu, işlem hedefi başına düğüm sayısını ve özel Python betiğinize başvuruyu denetleme parametreleriyle toplu işlemenin nasıl gerçekleştirileceğini belirtmek için bir nesne oluşturun.

  • ParallelRunConfig nesnesini kullanan, adım için girişleri ve çıkışları tanımlayan bir ParallelRunStep nesnesi oluşturun.

  • Yapılandırılmış ParallelRunStep nesnesini diğer işlem hattı adım türlerinde Pipeline olduğu gibi kullanın.

Toplu çıkarım için ParallelRunStep ve ParallelRunConfig sınıflarıyla çalışma örnekleri aşağıdaki makalelerde açıklanmaktadır:


   from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig

   parallel_run_config = ParallelRunConfig(
       source_directory=scripts_folder,
       entry_script=script_file,
       mini_batch_size="5",        # or partition_keys=["key1", "key2"], which is another way to partition the
                                   # input to mini-batches, refer to the parameter description for details
       error_threshold=10,         # Optional, allowed failed count on mini batch items
       allowed_failed_count=15,    # Optional, allowed failed count on mini batches
       allowed_failed_percent=10,  # Optional, allowed failed percent on mini batches
       run_max_try=3,
       output_action="append_row",
       environment=batch_env,
       compute_target=compute_target,
       node_count=2)

   parallelrun_step = ParallelRunStep(
       name="predict-digits-mnist",
       parallel_run_config=parallel_run_config,
       inputs=[ named_mnist_ds ],
       output=output_dir,
       arguments=[ "--extra_arg", "example_value" ],
       allow_reuse=True
   )

Bu örnek hakkında daha fazla bilgi için not defterine https://aka.ms/batch-inference-notebooksbakın.

Yöntemler

load_yaml

YAML dosyasından paralel çalıştırma yapılandırma verilerini yükleyin.

save_to_yaml

Paralel çalıştırma yapılandırma verilerini bir YAML dosyasına aktarın.

load_yaml

YAML dosyasından paralel çalıştırma yapılandırma verilerini yükleyin.

static load_yaml(workspace, path)

Parametreler

Name Description
workspace
Gerekli

Yapılandırma verilerinin okunduğu çalışma alanı.

path
Gerekli
str

Yapılandırmanın yük kaynak yolu.

save_to_yaml

Paralel çalıştırma yapılandırma verilerini bir YAML dosyasına aktarın.

save_to_yaml(path)

Parametreler

Name Description
path
Gerekli
str

Dosyanın kaydedilecek yol.