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

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

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

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

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
AmlCompute atau str
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
int
Diperlukan

Jumlah node dalam target komputasi yang digunakan untuk menjalankan ParallelRunStep.

process_count_per_node
int
nilai default: None

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.

mini_batch_size
Union[str, int]
nilai default: None

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
str
nilai default: None

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

description
str
nilai default: None

Deskripsi untuk layanan batch digunakan untuk tujuan tampilan.

logging_level
str
nilai default: INFO

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

run_invocation_timeout
int
nilai default: 60

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

run_max_try
int
nilai default: 3

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
str
nilai default: None

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

allowed_failed_count
int
nilai default: None

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
float
nilai default: None

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
List[str]
nilai default: None

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
Dict[str, str]
nilai default: None

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

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

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

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

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
AmlCompute atau str
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
int
Diperlukan

Jumlah node dalam target komputasi yang digunakan untuk menjalankan ParallelRunStep.

process_count_per_node
int
Diperlukan

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
str atau int
Diperlukan

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

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

description
str
Diperlukan

Deskripsi untuk layanan batch digunakan untuk tujuan tampilan.

logging_level
str
Diperlukan

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

run_invocation_timeout
int
Diperlukan

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

run_max_try
int
Diperlukan

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

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

allowed_failed_count
int
Diperlukan

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

workspace
Workspace
Diperlukan

Ruang kerja untuk membaca data konfigurasi.

path
str
Diperlukan

Jalur untuk memuat konfigurasi.

save_to_yaml

Ekspor data konfigurasi eksekusi paralel ke file YAML.

save_to_yaml(path)

Parameter

path
str
Diperlukan

Jalur untuk menyimpan file.