Bagikan melalui


ParallelRunConfig Kelas

Menentukan konfigurasi untuk objek ParallelRunStep.

Untuk contoh penggunaan ParallelRunStep, lihat buku catatan https://aka.ms/batch-inference-notebooks.

Untuk panduan pemecahan masalah, lihat https://aka.ms/prstsg. Anda dapat menemukan lebih banyak referensi di sana.

Menginisialisasi objek konfigurasi.

Warisan
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBase
ParallelRunConfig

Konstruktor

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)

Parameter

Nama Deskripsi
environment
Diperlukan

Definisi lingkungan yang mengonfigurasi lingkungan Python. Ini dapat dikonfigurasi untuk menggunakan lingkungan Python yang ada atau untuk mengatur lingkungan sementara untuk eksperimen. Definisi lingkungan bertanggung jawab untuk menentukan dependensi aplikasi yang diperlukan, seperti paket conda atau pip.

entry_script
Diperlukan
str

Skrip pengguna yang akan dijalankan secara paralel pada beberapa node. Skrip pengguna ini ditentukan sebagai jalur file lokal. Jika source_directory ditentukan, maka entry_script adalah jalur relatif di dalam direktori. Jika tidak, itu bisa menjadi jalur apa pun yang dapat diakses di mesin. entry_script harus berisi dua fungsi: init(): fungsi ini harus digunakan untuk persiapan yang mahal atau umum untuk inferensi berikutnya, misalnya, men-deserialisasi dan memuat model ke dalam objek global. run(mini_batch): Metode yang akan diparalelkan. Setiap pemanggilan akan memiliki satu batch mini. 'mini_batch': Inferensi batch akan memanggil metode eksekusi alur dan lulus daftar atau Pandas DataFrame sebagai argumen bagi metode tersebut. Setiap entri di min_batch akan menjadi filepath jika input adalah FileDataset, Pandas DataFrame jika input adalah TabularDataset. Metode run() harus mengembalikan Pandas DataFrame atau array. Misalnya append_row output_action elemen yang dikembalikan ini ditambahkan ke dalam file output umum. Misalnya summary_only, isi elemen diabaikan. Untuk semua tindakan output, setiap elemen output yang dikembalikan menunjukkan satu inferensi yang berhasil dari elemen input dalam mini-batch input. Setiap proses pekerja paralel akan memanggil init sekali dan kemudian melakukan perulangan fungsi run sampai semua mini-batch diproses.

error_threshold
Diperlukan
int

Jumlah kegagalan baris untuk TabularDataset dan kegagalan file untuk FileDataset yang harus diabaikan selama pemrosesan. Jika jumlah kesalahan di atas nilai ini, maka pekerjaan akan dibatalkan. Ambang kesalahan adalah untuk seluruh input dan bukan untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [-1, int.max]. -1 menunjukkan pengabaian semua kegagalan selama pemrosesan.

output_action
Diperlukan
str

Bagaimana output harus diatur. Nilai yang didukung saat ini adalah 'append_row' dan 'summary_only'.

  1. 'append_row' – Semua nilai yang dihasilkan oleh pemanggilan metode run() akan diagregasi menjadi satu file unik bernama parallel_run_step.txt yang dibuat di lokasi output.
  2. 'summary_only' – Skrip pengguna diharapkan menyimpan output itu sendiri. Baris output masih diharapkan untuk setiap item input yang berhasil diproses. Sistem menggunakan output ini hanya untuk perhitungan ambang kesalahan (mengabaikan nilai sebenarnya dari baris).
compute_target
Diperlukan

Hitung target yang akan digunakan untuk eksekusi ParallelRunStep. Parameter ini dapat ditentukan sebagai objek target komputasi atau nama target komputasi di ruang kerja.

node_count
Diperlukan
int

Jumlah node dalam target komputasi yang digunakan untuk menjalankan ParallelRunStep.

process_count_per_node
int

Jumlah proses pekerja per node untuk menjalankan skrip entri secara paralel. Untuk mesin GPU, nilai defaultnya adalah 1. Untuk mesin CPU, nilai default adalah jumlah core. Proses pekerja akan memanggil run() berulang kali dengan melewati batch mini yang didapatnya. Jumlah total proses pekerja dalam pekerjaan Anda adalah process_count_per_node * node_count, yang memutuskan jumlah maksimum run() untuk dieksekusi secara paralel.

nilai default: None
mini_batch_size

Untuk input FileDataset, bidang ini adalah jumlah file yang dapat diproses oleh skrip pengguna dalam satu panggilan run(). Untuk input TabularDataset, bidang ini adalah perkiraan ukuran data yang dapat diproses oleh skrip pengguna dalam satu panggilan run(). Nilai contoh adalah 1024, 1024KB, 10MB, dan 1GB. (opsional, nilai default adalah 10 file untuk FileDataset dan 1MB untuk TabularDataset.)

nilai default: None
source_directory
str

Jalur ke folder yang berisi entry_script dan file pendukung yang digunakan untuk menjalankan pada target komputasi.

nilai default: None
description
str

Deskripsi untuk layanan batch digunakan untuk tujuan tampilan.

nilai default: None
logging_level
str

Untai nama tingkat pengelogan, yang ditentukan dalam 'pengelogan'. Nilai yang mungkin adalah 'WARNING', 'INFO', dan 'DEBUG'. (opsional, nilai default adalah ‘INFO’.)

nilai default: INFO
run_invocation_timeout
int

Waktu habis dalam hitungan detik untuk setiap pemanggilan metode run(). (opsional, nilai default adalah 60.)

nilai default: 60
run_max_try
int

Jumlah percobaan maksimum untuk batch mini yang gagal atau waktunya habis. Rentangnya adalah [1, int.max]. Nilai defaultnya adalah 3. Batch mini dengan jumlah penghapusan antrean lebih besar dari ini tidak akan diproses kembali dan akan langsung dihapus.

nilai default: 3
append_row_file_name
str

Nama file output jika output_action adalah 'append_row'. (opsional, nilai default adalah 'parallel_run_step.txt')

nilai default: None
allowed_failed_count
int

Jumlah batch mini yang gagal yang harus diabaikan selama pemrosesan. Jika jumlah kegagalan melebihi nilai ini, pekerjaan akan dibatalkan. Ambang ini adalah untuk seluruh input alih-alih untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [-1, int.max]. -1 menunjukkan pengabaian semua kegagalan selama pemrosesan. Batch mini mungkin gagal pada saat pertama kali diproses dan kemudian berhasil pada percobaan kedua. Pemeriksaan antara yang pertama dan kedua kalinya akan dianggap gagal. Pemeriksaan setelah kedua kalinya tidak akan dianggap gagal. Argumen –error_threshold, –allowed_failed_count dan –allowed_failed_percent dapat bekerja bersama. Jika yang ditentukan lebih dari satu, pekerjaan akan dibatalkan jika melebihi salah satu dari mereka.

nilai default: None
allowed_failed_percent

Jumlah batch mini yang gagal yang harus diabaikan selama pemrosesan. Jika persentase gagal melebihi nilai ini, maka pekerjaan akan dibatalkan. Ambang ini adalah untuk seluruh input alih-alih untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [0, 100]. 100 atau 100,0 menunjukkan pengabaian semua kegagalan selama pemrosesan. Pemeriksaan dimulai setelah semua batch mini dijadwalkan. Argumen –error_threshold, –allowed_failed_count dan –allowed_failed_percent dapat bekerja bersama. Jika yang ditentukan lebih dari satu, pekerjaan akan dibatalkan jika melebihi salah satu dari mereka.

nilai default: None
partition_keys

Kunci yang digunakan untuk mempartisi himpunan data menjadi batch-mini. Jika ditentukan, data dengan kunci yang sama akan dipartisi menjadi batch-mini yang sama. Jika partition_keys dan mini_batch_size ditentukan, kesalahan akan muncul. Ini harus berupa daftar elemen str yang masing-masing menjadi kunci yang digunakan untuk mempartisi himpunan data input. Namun, jika dipromosikan ke PipelineParameter, nilai default harus menjadi json dump str dari daftar karena jenis daftar tidak didukung di PipelineParameter untuk saat ini. Input harus berupa himpunan data yang dipartisi, dan partition_keys harus merupakan subset dari kunci dari setiap himpunan data input agar hal ini berfungsi.

nilai default: None
environment_variables

Kamus nama dan nilai variabel lingkungan. Variabel lingkungan ini diatur pada proses saat skrip pengguna sedang dijalankan.

nilai default: None
environment
Diperlukan

Definisi lingkungan yang mengonfigurasi lingkungan Python. Ini dapat dikonfigurasi untuk menggunakan lingkungan Python yang ada atau untuk mengatur lingkungan sementara untuk eksperimen. Definisi lingkungan bertanggung jawab untuk menentukan dependensi aplikasi yang diperlukan, seperti paket conda atau pip.

entry_script
Diperlukan
str

Skrip pengguna yang akan dijalankan secara paralel pada beberapa node. Skrip pengguna ini ditentukan sebagai jalur file lokal. Jika source_directory ditentukan, maka entry_script adalah jalur relatif di dalam direktori. Jika tidak, itu bisa menjadi jalur apa pun yang dapat diakses di mesin. entry_script harus berisi dua fungsi: init(): fungsi ini harus digunakan untuk persiapan yang mahal atau umum untuk inferensi berikutnya, misalnya, men-deserialisasi dan memuat model ke dalam objek global. run(mini_batch): Metode yang akan diparalelkan. Setiap pemanggilan akan memiliki satu batch mini. 'mini_batch': Inferensi batch akan memanggil metode eksekusi alur dan lulus daftar atau Pandas DataFrame sebagai argumen bagi metode tersebut. Setiap entri di min_batch akan menjadi filepath jika input adalah FileDataset, Pandas DataFrame jika input adalah TabularDataset. Metode run() harus mengembalikan Pandas DataFrame atau array. Misalnya append_row output_action elemen yang dikembalikan ini ditambahkan ke dalam file output umum. Misalnya summary_only, isi elemen diabaikan. Untuk semua tindakan output, setiap elemen output yang dikembalikan menunjukkan satu inferensi yang berhasil dari elemen input dalam mini-batch input. Setiap proses pekerja paralel akan memanggil init sekali dan kemudian melakukan perulangan fungsi run sampai semua mini-batch diproses.

error_threshold
Diperlukan
int

Jumlah kegagalan baris untuk TabularDataset dan kegagalan file untuk FileDataset yang harus diabaikan selama pemrosesan. Jika jumlah kesalahan di atas nilai ini, maka pekerjaan akan dibatalkan. Ambang kesalahan adalah untuk seluruh input dan bukan untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [-1, int.max]. -1 menunjukkan pengabaian semua kegagalan selama pemrosesan.

output_action
Diperlukan
str

Bagaimana output harus diatur. Nilai yang didukung saat ini adalah 'append_row' dan 'summary_only'.

  1. 'append_row' – Semua nilai yang dihasilkan oleh pemanggilan metode run() akan diagregasi menjadi satu file unik bernama parallel_run_step.txt yang dibuat di lokasi output.
  2. 'summary_only' – Skrip pengguna diharapkan menyimpan output itu sendiri. Baris output masih diharapkan untuk setiap item input yang berhasil diproses. Sistem menggunakan output ini hanya untuk perhitungan ambang kesalahan (mengabaikan nilai sebenarnya dari baris).
compute_target
Diperlukan

Hitung target yang akan digunakan untuk eksekusi ParallelRunStep. Parameter ini dapat ditentukan sebagai objek target komputasi atau nama target komputasi di ruang kerja.

node_count
Diperlukan
int

Jumlah node dalam target komputasi yang digunakan untuk menjalankan ParallelRunStep.

process_count_per_node
Diperlukan
int

Jumlah proses pekerja per node untuk menjalankan skrip entri secara paralel. Untuk komputer GPU, nilai defaultnya adalah 1. Untuk komputer CPU, nilai defaultnya adalah jumlah inti. Proses pekerja akan memanggil run() berulang kali dengan melewati batch mini yang didapatnya. Jumlah total proses pekerja dalam pekerjaan Anda adalah process_count_per_node * node_count, yang memutuskan jumlah maksimum run() untuk dieksekusi secara paralel.

mini_batch_size
Diperlukan
str atau int

Untuk input FileDataset, bidang ini adalah jumlah file yang dapat diproses oleh skrip pengguna dalam satu panggilan run(). Untuk input TabularDataset, bidang ini adalah perkiraan ukuran data yang dapat diproses oleh skrip pengguna dalam satu panggilan run(). Nilai contoh adalah 1024, 1024KB, 10MB, dan 1GB. (opsional, nilai default adalah 10 file untuk FileDataset dan 1MB untuk TabularDataset.)

source_directory
Diperlukan
str

Jalur ke folder yang berisi entry_script dan file pendukung yang digunakan untuk menjalankan pada target komputasi.

description
Diperlukan
str

Deskripsi untuk layanan batch digunakan untuk tujuan tampilan.

logging_level
Diperlukan
str

Untai nama tingkat pengelogan, yang ditentukan dalam 'pengelogan'. Nilai yang mungkin adalah 'WARNING', 'INFO', dan 'DEBUG'. (opsional, nilai default adalah ‘INFO’.)

run_invocation_timeout
Diperlukan
int

Waktu habis dalam hitungan detik untuk setiap pemanggilan metode run(). (opsional, nilai default adalah 60.)

run_max_try
Diperlukan
int

Jumlah percobaan maksimum untuk batch mini yang gagal atau waktunya habis. Rentangnya adalah [1, int.max]. Nilai defaultnya adalah 3. Batch mini dengan jumlah penghapusan antrean lebih besar dari ini tidak akan diproses kembali dan akan langsung dihapus.

append_row_file_name
Diperlukan
str

Nama file output jika output_action adalah 'append_row'. (opsional, nilai default adalah 'parallel_run_step.txt')

allowed_failed_count
Diperlukan
int

Jumlah batch mini yang gagal yang harus diabaikan selama pemrosesan. Jika jumlah kegagalan melebihi nilai ini, pekerjaan akan dibatalkan. Ambang ini adalah untuk seluruh input alih-alih untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [-1, int.max]. -1 menunjukkan pengabaian semua kegagalan selama pemrosesan. Batch mini mungkin gagal pada saat pertama kali diproses dan kemudian berhasil pada percobaan kedua. Pemeriksaan antara yang pertama dan kedua kalinya akan dianggap gagal. Pemeriksaan setelah kedua kalinya tidak akan dianggap gagal. Argumen –error_threshold, –allowed_failed_count dan –allowed_failed_percent dapat bekerja bersama. Jika yang ditentukan lebih dari satu, pekerjaan akan dibatalkan jika melebihi salah satu dari mereka.

allowed_failed_percent
Diperlukan

Jumlah batch mini yang gagal yang harus diabaikan selama pemrosesan. Jika persentase gagal melebihi nilai ini, maka pekerjaan akan dibatalkan. Ambang ini adalah untuk seluruh input alih-alih untuk batch mini individual yang dikirim ke metode run(). Rentangnya adalah [0, 100]. 100 atau 100,0 menunjukkan pengabaian semua kegagalan selama pemrosesan. Pemeriksaan dimulai setelah semua batch mini dijadwalkan. Argumen –error_threshold, –allowed_failed_count dan –allowed_failed_percent dapat bekerja bersama. Jika yang ditentukan lebih dari satu, pekerjaan akan dibatalkan jika melebihi salah satu dari mereka.

partition_keys
Diperlukan

Kunci yang digunakan untuk mempartisi himpunan data menjadi batch-mini. Jika ditentukan, data dengan kunci yang sama akan dipartisi menjadi batch-mini yang sama. Jika partition_keys dan mini_batch_size ditentukan, kesalahan akan muncul. Ini harus berupa daftar elemen str yang masing-masing menjadi kunci yang digunakan untuk mempartisi himpunan data input. Namun, jika dipromosikan ke PipelineParameter, nilai default harus menjadi json dump str dari daftar karena jenis daftar tidak didukung di PipelineParameter untuk saat ini. Input harus berupa himpunan data yang dipartisi, dan partition_keys harus merupakan subset dari kunci dari setiap himpunan data input agar hal ini berfungsi.

environment_variables
Diperlukan

Kamus nama dan nilai variabel lingkungan. Variabel lingkungan ini diatur pada proses tempat skrip pengguna sedang dijalankan.

Keterangan

Kelas ParallelRunConfig digunakan untuk menyediakan konfigurasi untuk kelas ParallelRunStep. ParallelRunConfig dan ParallelRunStep dapat digunakan bersama untuk memproses sejumlah besar data secara paralel. Kasus penggunaan yang umum adalah saat melatih model ML atau menjalankan inferensi offline untuk menghasilkan prediksi pada suatu batch pengamatan. ParallelRunStep berfungsi dengan memecah data Anda menjadi sejumlah batch yang kemudian diproses secara paralel. Ukuran batch, jumlah node, dan parameter lainnya yang dapat diubah untuk mempercepat pemrosesan paralel Anda dapat dikontrol dengan kelas ParallelRunConfig. ParallelRunStep dapat berfungsi dengan TabularDataset atau FileDataset sebagai input.

Untuk menggunakan ParallelRunStep dan ParallelRunConfig:

  • Buat objek ParallelRunConfig untuk menentukan cara pemrosesan batch dilakukan, dengan parameter untuk mengontrol ukuran batch, jumlah node per target komputasi, dan referensi ke skrip Python kustom Anda.

  • Buat objek ParallelRunStep yang menggunakan objek ParallelRunConfig, menentukan input dan output untuk langkah tersebut.

  • Gunakan objek ParallelRunStep yang dikonfigurasi dalam Pipeline seperti yang Anda lakukan dengan jenis langkah alur lainnya.

Contoh bekerja dengan kelas ParallelRunStep dan ParallelRunConfig untuk inferensi batch dibahas dalam artikel berikut:


   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
   )

Untuk informasi selengkapnya tentang contoh ini, lihat buku catatan https://aka.ms/batch-inference-notebooks.

Metode

load_yaml

Muat data konfigurasi eksekusi paralel dari file YAML.

save_to_yaml

Ekspor data konfigurasi eksekusi paralel ke file YAML.

load_yaml

Muat data konfigurasi eksekusi paralel dari file YAML.

static load_yaml(workspace, path)

Parameter

Nama Deskripsi
workspace
Diperlukan

Ruang kerja untuk membaca data konfigurasi.

path
Diperlukan
str

Jalur untuk memuat konfigurasi.

save_to_yaml

Ekspor data konfigurasi eksekusi paralel ke file YAML.

save_to_yaml(path)

Parameter

Nama Deskripsi
path
Diperlukan
str

Jalur untuk menyimpan file.