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 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 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:

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 AI 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 mengarahkan SageMaker AI untuk 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. Untuk detailnya, lihat Gunakan kembali nilai parameter runtime dari eksekusi referensi.
Secara detail, Anda menyediakan konfigurasi untuk pipeline eksekusi selektif yang Anda gunakanSelectiveExecutionConfig
. Jika Anda menyertakan ARN untuk eksekusi pipeline referensi (dengan source_pipeline_execution_arn
argumen), SageMaker AI menggunakan dependensi langkah sebelumnya dari eksekusi pipeline yang Anda berikan. Jika Anda tidak menyertakan ARN dan eksekusi pipeline terbaru ada, SageMaker AI menggunakannya sebagai referensi secara default. Jika Anda tidak menyertakan ARN dan tidak ingin SageMaker AI menggunakan eksekusi pipeline terbaru Anda, atur reference_latest_execution
ke. False
Eksekusi pipeline yang akhirnya digunakan SageMaker AI sebagai referensi, baik yang terbaru atau yang ditentukan pengguna, harus dalam Success
atau Failed
status.
Tabel berikut merangkum bagaimana SageMaker AI memilih eksekusi referensi.
Nilai source_pipeline_execution_arn argumen |
Nilai reference_latest_execution argumen |
Eksekusi referensi yang digunakan |
---|---|---|
Sebuah pipa ARN |
|
ARN pipa yang ditentukan |
Sebuah pipa ARN |
|
ARN pipa yang ditentukan |
null atau tidak ditentukan |
|
Eksekusi pipeline terbaru |
null atau tidak ditentukan |
|
Tidak ada—dalam hal ini, pilih langkah tanpa dependensi upstream |
Untuk informasi selengkapnya tentang persyaratan konfigurasi eksekusi selektif, lihat sagemaker.workflow.selective_execution_config. SelectiveExecutionConfig
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 AI 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 AI 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 )