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._ParallelRunConfigBaseParallelRunConfig
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
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
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
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
Çıkışın nasıl düzenlenmesi gerektiği. Geçerli desteklenen değerler 'append_row' ve 'summary_only'dır.
- '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.
- '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
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.
- 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
.
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
İşlem hedefinde entry_script
yürütmek için kullanılan ve destekleyen dosyaları içeren klasörün yolu.
- description
- str
Görüntüleme amacıyla kullanılan toplu iş hizmetine vermek için bir açıklama.
- 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.)
- 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.)
- 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.
- 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')
- 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.
- allowed_failed_percent
- float
İş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.
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.
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
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
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
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
Çıkışın nasıl düzenlenmesi gerektiği. Geçerli desteklenen değerler 'append_row' ve 'summary_only'dır.
- '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.
- '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
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
ParallelRunStep çalıştırmak için kullanılan işlem hedefindeki düğümlerin sayısı.
- process_count_per_node
- 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
.
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
İşlem hedefinde entry_script
yürütmek için kullanılan ve destekleyici dosyaları içeren klasörün yolu.
- description
- str
Görüntüleme amacıyla kullanılan toplu iş hizmetine vermek için bir açıklama.
- 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 'HATA AYıKLAMA' değerleridir. (isteğe bağlı, varsayılan değer 'BİlGİ'dir.)
- 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.)
- 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 bir diziden kaldırma sayısı olan mini toplu iş yeniden işlenmez ve doğrudan silinir.
- 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')
- 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 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
İş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.
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.
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:
Öğretici: Toplu puanlama için Azure Machine Learning işlem hattı oluşturma. Bu makalede işlem hattında zaman uyumsuz toplu puanlama için bu iki sınıfın nasıl kullanılacağı ve işlem hattını çalıştırmak için REST uç noktasının nasıl etkinleştirileceği gösterilir.
Azure Machine Learning kullanarak büyük miktarlarda veri üzerinde toplu çıkarım çalıştırma. Bu makalede özel çıkarım betiğiyle ve MNIST veri kümesi temelinde önceden eğitilmiş bir görüntü sınıflandırma modeliyle büyük miktarlarda verinin zaman uyumsuz ve paralel olarak nasıl işleneceği gösterilir.
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
save_to_yaml
Paralel çalıştırma yapılandırma verilerini bir YAML dosyasına aktarın.
save_to_yaml(path)
Parametreler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin