Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah-langkah saluran pipa
Pipa terdiri dari langkah-langkah. Langkah-langkah ini menentukan tindakan yang diambil pipeline dan hubungan antara langkah-langkah menggunakan properti. Halaman berikut menjelaskan jenis langkah, propertinya, dan hubungan di antara mereka.
Topik
Properti langkah
Gunakan properties
atribut untuk menambahkan dependensi data di antara langkah-langkah dalam pipeline. Pipelines menggunakan dependensi data ini untuk membangun DAG dari definisi pipeline. Properti ini dapat direferensikan sebagai nilai placeholder dan diselesaikan saat runtime.
properties
Atribut langkah Pipelines cocok dengan objek yang dikembalikan oleh Describe
panggilan untuk jenis SageMaker pekerjaan yang sesuai. Untuk setiap jenis pekerjaan, Describe
panggilan mengembalikan objek respons berikut:
-
ProcessingStep
– DescribeProcessingJob -
TrainingStep
– DescribeTrainingJob -
TransformStep
– DescribeTransformJob
Untuk memeriksa properti mana yang dapat direferensikan untuk setiap tipe langkah selama pembuatan dependensi data, lihat Ketergantungan Data - Referensi Properti
Paralelisme langkah
Ketika sebuah langkah tidak bergantung pada langkah lain, itu berjalan segera setelah eksekusi pipeline. Namun, mengeksekusi terlalu banyak langkah pipeline secara paralel dapat dengan cepat menghabiskan sumber daya yang tersedia. Kontrol jumlah langkah bersamaan untuk eksekusi pipeline denganParallelismConfiguration
.
Contoh berikut digunakan ParallelismConfiguration
untuk mengatur batas langkah bersamaan ke lima.
pipeline.create( parallelism_config=ParallelismConfiguration(5), )
Ketergantungan data antar langkah
Anda menentukan struktur Anda DAG dengan menentukan hubungan data antar langkah. Untuk membuat dependensi data antar langkah, berikan properti dari satu langkah sebagai input ke langkah lain dalam pipeline. Langkah menerima input tidak dimulai sampai setelah langkah menyediakan input selesai berjalan.
Ketergantungan data menggunakan JsonPath notasi dalam format berikut. Format ini melintasi file JSON properti. Ini berarti Anda dapat menambahkan sebanyak <property>
instance yang diperlukan untuk mencapai properti bersarang yang diinginkan dalam file. Untuk informasi lebih lanjut tentang JsonPath notasi, lihat JsonPath repo
<step_name>
.properties.<property>
.<property>
Berikut ini menunjukkan cara menentukan bucket Amazon S3 menggunakan ProcessingOutputConfig
properti langkah pemrosesan.
step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri
Untuk membuat ketergantungan data, teruskan bucket ke langkah pelatihan sebagai berikut.
from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )
Untuk memeriksa properti mana yang dapat direferensikan untuk setiap tipe langkah selama pembuatan dependensi data, lihat Ketergantungan Data - Referensi Properti
Ketergantungan khusus antar langkah
Saat Anda menentukan ketergantungan data, Pipelines menyediakan koneksi data di antara langkah-langkah. Atau, satu langkah dapat mengakses data dari langkah sebelumnya tanpa langsung menggunakan Pipelines. Dalam hal ini, Anda dapat membuat dependensi khusus yang memberi tahu Pipelines untuk tidak memulai langkah sampai setelah langkah lain selesai berjalan. Anda membuat dependensi kustom dengan menentukan atribut step. DependsOn
Sebagai contoh, berikut ini mendefinisikan langkah C
yang dimulai hanya setelah kedua langkah A
dan langkah B
selesai berjalan.
{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }
Pipelines melempar pengecualian validasi jika ketergantungan akan membuat ketergantungan siklik.
Contoh berikut membuat langkah pelatihan yang dimulai setelah langkah pemrosesan selesai berjalan.
processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])
Contoh berikut membuat langkah pelatihan yang tidak dimulai sampai dua langkah pemrosesan yang berbeda selesai berjalan.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])
Berikut ini menyediakan cara alternatif untuk membuat ketergantungan kustom.
training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])
Contoh berikut membuat langkah pelatihan yang menerima masukan dari satu langkah pemrosesan dan menunggu langkah pemrosesan yang berbeda untuk selesai berjalan.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])
Contoh berikut menunjukkan bagaimana untuk mengambil daftar string dari dependensi kustom langkah.
custom_dependencies = training_step.depends_on
Gambar khusus dalam satu langkah
Anda dapat menggunakan salah satu gambar SageMaker Deep Learning Container
Anda juga dapat menggunakan wadah Anda sendiri dengan langkah-langkah pipa. Karena Anda tidak dapat membuat gambar dari dalam Studio Classic, Anda harus membuat gambar menggunakan metode lain sebelum menggunakannya dengan Pipelines.
Untuk menggunakan penampung Anda sendiri saat membuat langkah-langkah untuk pipeline Anda, sertakan gambar URI dalam definisi estimator. Untuk informasi selengkapnya tentang menggunakan kontainer Anda sendiri SageMaker, lihat Menggunakan Kontainer Docker dengan SageMaker.