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

environment
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
str
Gerekli

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
int
Gerekli

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
str
Gerekli

Çı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
AmlCompute veya str
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
int
Gerekli

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

process_count_per_node
int
varsayılan değer: None

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.

mini_batch_size
Union[str, int]
varsayılan değer: None

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
str
varsayılan değer: None

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

description
str
varsayılan değer: None

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

logging_level
str
varsayılan değer: INFO

'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.)

run_invocation_timeout
int
varsayılan değer: 60

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
int
varsayılan değer: 3

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.

append_row_file_name
str
varsayılan değer: None

'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
int
varsayılan değer: None

İş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.

allowed_failed_percent
float
varsayılan değer: None

İş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.

partition_keys
List[str]
varsayılan değer: None

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.

environment_variables
Dict[str, str]
varsayılan değer: None

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.

environment
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
str
Gerekli

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
int
Gerekli

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
str
Gerekli

Çı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
AmlCompute veya str
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
int
Gerekli

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

process_count_per_node
int
Gerekli

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
str veya int
Gerekli

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
str
Gerekli

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

description
str
Gerekli

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

logging_level
str
Gerekli

'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
int
Gerekli

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
int
Gerekli

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
str
Gerekli

'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
int
Gerekli

İş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
float
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
List[str]
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
Dict[str, str]
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

workspace
Workspace
Gerekli

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

path
str
Gerekli

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

path
str
Gerekli

Dosyanın kaydedilecek yol.