Eksekusi selektif dari langkah-langkah pipa - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Eksekusi selektif dari langkah-langkah pipa

Saat Anda menggunakan SageMaker Pipelines untuk membuat alur kerja dan mengatur langkah pelatihan ML Anda, Anda mungkin perlu melakukan beberapa fase eksperimen. Alih-alih menjalankan pipeline penuh setiap kali, Anda mungkin hanya ingin mengulangi langkah-langkah tertentu. Dengan SageMaker Pipelines, Anda dapat menjalankan langkah-langkah pipeline secara selektif. Ini membantu mengoptimalkan pelatihan ML Anda. Eksekusi selektif berguna dalam skenario berikut:

  • Anda ingin memulai ulang langkah tertentu dengan jenis instance yang diperbarui, hyperparameters, atau variabel lain sambil menjaga parameter dari langkah hulu.

  • Pipeline Anda gagal dalam langkah perantara. Langkah-langkah sebelumnya dalam eksekusi, seperti persiapan data atau ekstraksi fitur, mahal untuk dijalankan kembali. Anda mungkin perlu memperkenalkan perbaikan dan menjalankan kembali langkah-langkah tertentu secara manual untuk menyelesaikan pipeline.

Dengan menggunakan eksekusi selektif, Anda dapat memilih untuk menjalankan subset langkah apa pun selama mereka terhubung dalam grafik asiklik terarah (DAG) dari pipeline Anda. DAG berikut menunjukkan contoh alur kerja pipeline:

Grafik asiklik terarah (DAG) dari contoh pipa.

Anda dapat memilih langkah-langkah AbaloneTrain dan AbaloneEval dalam eksekusi selektif, tetapi Anda tidak dapat memilih hanya AbaloneTrain dan AbaloneMSECond langkah-langkah karena langkah-langkah ini tidak terhubung di DAG. Untuk langkah-langkah yang tidak dipilih dalam alur kerja, eksekusi selektif menggunakan kembali output dari eksekusi pipeline referensi daripada menjalankan ulang langkah-langkahnya. Juga, langkah-langkah yang tidak dipilih yang hilir dari langkah-langkah yang dipilih tidak berjalan dalam eksekusi selektif.

Jika Anda memilih untuk menjalankan subset langkah perantara dalam pipeline, langkah Anda mungkin bergantung pada langkah sebelumnya. SageMaker membutuhkan eksekusi pipeline referensi untuk sumber daya dependensi ini. Misalnya, jika Anda memilih untuk menjalankan langkah-langkah AbaloneTrain danAbaloneEval, Anda memerlukan output dari AbaloneProcess langkah tersebut. Anda dapat memberikan ARN eksekusi referensi atau langsung SageMaker menggunakan eksekusi pipeline terbaru, yang merupakan perilaku default. Jika Anda memiliki eksekusi referensi, Anda juga dapat membuat parameter runtime dari proses referensi Anda dan menyediakannya ke eksekutif selektif Anda dengan penggantian. Lihat perinciannya di Gunakan kembali nilai parameter runtime dari eksekusi referensi.

Secara detail, Anda menyediakan konfigurasi untuk pipeline eksekusi selektif yang dijalankan. SelectiveExecutionConfig Jika Anda menyertakan ARN untuk eksekusi pipeline referensi (dengan source_pipeline_execution_arn argumen), SageMaker gunakan dependensi langkah sebelumnya dari eksekusi pipeline yang Anda berikan. Jika Anda tidak menyertakan ARN dan eksekusi pipeline terbaru ada, SageMaker gunakan sebagai referensi secara default. Jika Anda tidak menyertakan ARN dan tidak SageMaker ingin menggunakan eksekusi pipeline terbaru Anda, atur reference_latest_execution ke. False Eksekusi pipeline yang SageMaker pada akhirnya digunakan sebagai referensi, apakah yang terbaru atau yang ditentukan pengguna, harus dalam Success atau Failed status.

Tabel berikut merangkum bagaimana SageMaker memilih eksekusi referensi.

Nilai source_pipeline_execution_arn argumen Nilai reference_latest_execution argumen Eksekusi referensi yang digunakan
Sebuah pipa ARN

Trueatau tidak ditentukan

ARN pipa yang ditentukan

Sebuah pipa ARN

False

ARN pipa yang ditentukan

nullatau tidak ditentukan

Trueatau tidak ditentukan

Eksekusi pipeline terbaru

nullatau tidak ditentukan

False

Tidak ada—dalam hal ini, pilih langkah tanpa dependensi upstream

Untuk informasi selengkapnya tentang persyaratan konfigurasi eksekusi selektif, lihat sagemaker.workflow.selective_execution_config. SelectiveExecutionDokumentasi Config.

Diskusi berikut mencakup contoh untuk kasus di mana Anda ingin menentukan eksekusi referensi pipeline, menggunakan eksekusi pipeline terbaru sebagai referensi, atau menjalankan eksekusi selektif tanpa eksekusi pipeline referensi.

Eksekusi selektif dengan referensi pipeline yang ditentukan pengguna

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah AbaloneTrain dan AbaloneEval menggunakan eksekusi pipeline referensi.

from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval"] ) selective_execution = pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Eksekusi selektif dengan eksekusi pipeline terbaru sebagai referensi

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah AbaloneTrain dan AbaloneEval menggunakan eksekusi pipeline terbaru sebagai referensi. Karena SageMaker menggunakan eksekusi pipeline terbaru secara default, Anda dapat mengatur reference_latest_execution argumen secara opsional. True

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneTrain", "AbaloneEval"], # optional reference_latest_execution=True ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Eksekusi selektif tanpa pipa referensi

Contoh berikut menunjukkan eksekusi selektif dari langkah-langkah AbaloneProcess dan AbaloneTrain tanpa memberikan referensi ARN dan mematikan opsi untuk menggunakan pipeline terbaru yang dijalankan sebagai referensi. SageMaker mengizinkan konfigurasi ini karena subset langkah ini tidak bergantung pada langkah sebelumnya.

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneProcess", "AbaloneTrain"], reference_latest_execution=False ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Gunakan kembali nilai parameter runtime dari eksekusi referensi

Anda dapat membuat parameter dari eksekusi pipeline referensi Anda menggunakanbuild_parameters_from_execution, dan memberikan hasilnya ke pipeline eksekusi selektif Anda. Anda dapat menggunakan parameter asli dari eksekusi referensi, atau menerapkan penggantian apa pun menggunakan argumen. parameter_value_overrides

Contoh berikut menunjukkan cara membangun parameter dari eksekusi referensi dan menerapkan override untuk MseThreshold parameter.

# Prepare a new selective execution. selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval", "AbaloneMSECond"], ) # Define a new parameters list to test. new_parameters_mse={ "MseThreshold": 5, } # Build parameters from reference execution and override with new parameters to test. new_parameters = pipeline.build_parameters_from_execution( pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", parameter_value_overrides=new_parameters_mse ) # Start pipeline execution with new parameters. execution = pipeline.start( selective_execution_config=selective_execution_config, parameters=new_parameters )