Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tambahkan langkah
Berikut ini menjelaskan persyaratan dari setiap jenis langkah dan memberikan contoh implementasi langkah, serta cara menambahkan langkah ke Pipelines. Ini bukan implementasi yang berfungsi karena mereka tidak menyediakan sumber daya dan input yang dibutuhkan. Untuk tutorial yang mengimplementasikan langkah-langkah ini, lihatTindakan saluran pipa.
catatan
Anda juga dapat membuat langkah dari kode pembelajaran mesin lokal Anda dengan mengubahnya menjadi langkah Pipelines dengan dekorator. @step
Untuk informasi selengkapnya, lihat @step dekorator.
Amazon SageMaker Pipelines mendukung jenis langkah berikut:
@step dekorator
Jika Anda ingin mengatur pekerjaan ML khusus yang memanfaatkan fitur SageMaker AI tingkat lanjut atau AWS layanan lain di UI drag-and-drop Pipelines, gunakan file. Jalankan langkah kode
Anda dapat membuat langkah dari kode pembelajaran mesin lokal menggunakan @step
dekorator. Setelah menguji kode, Anda dapat mengonversi fungsi menjadi langkah pipeline SageMaker AI dengan membubuhi keterangan dengan dekorator. @step
Pipelines membuat dan menjalankan pipa ketika Anda melewati output dari fungsi @step
-decorated sebagai langkah ke pipeline Anda. Anda juga dapat membuat pipeline DAG multi-langkah yang mencakup satu atau lebih fungsi @step
yang didekorasi serta langkah-langkah pipa SageMaker AI tradisional. Untuk detail selengkapnya tentang cara membuat langkah dengan @step
dekorator, lihatLift-and-shift Kode Python dengan dekorator @step.
Di drag-and-drop UI Pipelines, Anda dapat menggunakan langkah kode Execute untuk menjalankan kode Anda sendiri sebagai langkah pipeline. Anda dapat mengunggah fungsi, skrip, atau buku catatan Python untuk dieksekusi sebagai bagian dari pipeline Anda. Anda harus menggunakan langkah ini jika Anda ingin mengatur pekerjaan HTML khusus yang memanfaatkan fitur SageMaker AI canggih atau layanan lainnya. AWS
Langkah Execute Code mengunggah file ke bucket Amazon S3 default Anda untuk Amazon SageMaker AI. Bucket ini mungkin tidak memiliki izin Cross-Origin Resource Sharing (CORS) yang diperlukan. Untuk mempelajari lebih lanjut tentang mengonfigurasi izin CORS, lihat. Persyaratan CORS untuk Data Gambar Input
Langkah Execute Code menggunakan pekerjaan SageMaker pelatihan Amazon untuk menjalankan kode Anda. Pastikan peran IAM Anda memiliki izin sagemaker:CreateTrainingJob
API sagemaker:DescribeTrainingJob
dan. Untuk mempelajari lebih lanjut tentang semua izin yang diperlukan untuk Amazon SageMaker AI dan cara mengaturnya, lihatIzin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya.
Untuk menambahkan langkah kode eksekusi ke pipeline menggunakan Pipeline Designer, lakukan hal berikut:
-
Buka konsol Amazon SageMaker Studio dengan mengikuti petunjuk diLuncurkan Amazon SageMaker Studio.
-
Di panel navigasi kiri, pilih Pipelines.
-
Pilih Buat.
-
Pilih Kosong.
-
Di bilah sisi kiri, pilih Jalankan kode dan seret ke kanvas.
-
Di kanvas, pilih langkah Execute code yang Anda tambahkan.
-
Di bilah sisi kanan, lengkapi formulir di tab Pengaturan dan Detail.
-
Anda dapat mengunggah satu file untuk mengeksekusi atau mengunggah folder terkompresi yang berisi beberapa artefak.
-
Untuk unggahan file tunggal, Anda dapat memberikan parameter opsional untuk notebook, fungsi python, atau skrip.
-
Saat menyediakan fungsi Python, handler harus disediakan dalam format
file.py:
<function_name>
-
Untuk unggahan folder terkompresi, jalur relatif ke kode Anda harus disediakan, dan Anda dapat secara opsional memberikan jalur ke
requirements.txt
file atau skrip inisialisasi di dalam folder terkompresi. -
Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah Execute code yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah Execute code untuk membuat edge.
-
Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah Execute code yang Anda tambahkan, klik dan seret kursor dari langkah Execute code ke langkah untuk membuat edge. Output dari langkah-langkah kode Execute dapat direferensikan untuk fungsi Python.
Gunakan langkah pemrosesan untuk membuat pekerjaan pemrosesan untuk pemrosesan data. Untuk informasi selengkapnya tentang pekerjaan pemrosesan, lihat Memproses Data dan Mengevaluasi Model.
Anda menggunakan langkah pelatihan untuk membuat pekerjaan pelatihan untuk melatih model. Untuk informasi lebih lanjut tentang pekerjaan pelatihan, lihat Melatih Model dengan Amazon SageMaker AI.
Langkah pelatihan membutuhkan estimator, serta input data pelatihan dan validasi.
Anda menggunakan langkah tuning untuk membuat pekerjaan tuning hyperparameter, juga dikenal sebagai optimasi hyperparameter (HPO). Pekerjaan tuning hyperparameter menjalankan beberapa pekerjaan pelatihan, dengan setiap pekerjaan menghasilkan versi model. Untuk informasi lebih lanjut tentang penyetelan hyperparameter, lihat. Penyetelan model otomatis dengan AI SageMaker
Pekerjaan penyetelan dikaitkan dengan eksperimen SageMaker AI untuk pipa, dengan pekerjaan pelatihan yang dibuat sebagai uji coba. Untuk informasi selengkapnya, lihat Integrasi Eksperimen.
Langkah penyetelan membutuhkan input HyperparameterTunerwarm_start_config
parameter. HyperparameterTuner
Untuk informasi lebih lanjut tentang penyetelan hyperparameter dan start hangat, lihat. Jalankan Pekerjaan Tuning Hyperparameter Mulai yang Hangat
Anda menggunakan metode get_top_model_s3_uri dari sagemaker.workflow.steps
penting
Langkah-langkah penyetelan diperkenalkan di Amazon SageMaker Python SDK v2.48.0 dan Amazon Studio Classic v3.8.0. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan langkah penyetelan atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihatMatikan dan Perbarui SageMaker Studio Classic.
Contoh berikut menunjukkan cara membuat TuningStep
definisi.
from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.tuner import HyperparameterTuner from sagemaker.inputs import TrainingInput from sagemaker.workflow.steps import TuningStep tuner = HyperparameterTuner(..., sagemaker_session=PipelineSession()) step_tuning = TuningStep( name = "HPTuning", step_args = tuner.fit(inputs=TrainingInput(s3_data="s3://
amzn-s3-demo-bucket/my-data
")) )
Dapatkan versi model terbaik
Contoh berikut menunjukkan cara mendapatkan versi model terbaik dari pekerjaan penyetelan menggunakan get_top_model_s3_uri
metode ini. Paling-paling, 50 versi berkinerja teratas tersedia berdasarkan peringkat HyperParameterTuningJobObjective. top_k
Argumennya adalah indeks ke dalam versi, di mana top_k=0
versi berkinerja terbaik dan top_k=49
merupakan versi berkinerja terburuk.
best_model = Model( image_uri=image_uri, model_data=step_tuning.get_top_model_s3_uri( top_k=0, s3_bucket=sagemaker_session.default_bucket() ), ... )
Untuk informasi selengkapnya tentang persyaratan langkah penyetelan, lihat sagemaker.workflow.steps. TuningStep
Fine-tuning melatih model fondasi terlatih dari Amazon SageMaker JumpStart pada dataset baru. Proses ini, juga dikenal sebagai pembelajaran transfer, dapat menghasilkan model yang akurat dengan kumpulan data yang lebih kecil dan waktu pelatihan yang lebih sedikit. Saat Anda menyempurnakan model, Anda dapat menggunakan kumpulan data default atau memilih data Anda sendiri. Untuk mempelajari lebih lanjut tentang menyempurnakan model pondasi dari JumpStart, lihat. Sempurnakan Model
Langkah fine-tuning menggunakan pekerjaan SageMaker pelatihan Amazon untuk menyesuaikan model Anda. Pastikan peran IAM Anda memiliki izin sagemaker:CreateTrainingJob
API sagemaker:DescribeTrainingJob
dan untuk menjalankan tugas fine-tuning di pipeline Anda. Untuk mempelajari lebih lanjut tentang izin yang diperlukan untuk Amazon SageMaker AI dan cara mengaturnya, lihatIzin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya.
Untuk menambahkan langkah model Fine-tune ke pipeline Anda menggunakan drag-and-drop editor, ikuti langkah-langkah berikut:
-
Buka konsol Studio dengan mengikuti petunjuk diLuncurkan Amazon SageMaker Studio.
-
Di panel navigasi kiri, pilih Pipelines.
-
Pilih Buat.
-
Pilih Kosong.
-
Di bilah sisi kiri, pilih Fine-tune model dan seret ke kanvas.
-
Di kanvas, pilih langkah model Fine-tune yang Anda tambahkan.
-
Di bilah sisi kanan, lengkapi formulir di tab Pengaturan dan Detail.
-
Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah model Fine-tune yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah model Fine-tune untuk membuat tepi.
-
Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah model Fine-tune yang Anda tambahkan, klik dan seret kursor dari langkah model Fine-tune ke langkah untuk membuat tepi.
Gunakan AutoML
catatan
Saat ini, langkah AutoML hanya mendukung mode pelatihan ensembling.
Contoh berikut menunjukkan cara membuat definisi menggunakanAutoMLStep
.
from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.automl_step import AutoMLStep pipeline_session = PipelineSession() auto_ml = AutoML(..., role="
<role>
", target_attribute_name="my_target_attribute_name
", mode="ENSEMBLING
", sagemaker_session=pipeline_session) input_training = AutoMLInput( inputs="s3://amzn-s3-demo-bucket/my-training-data
", target_attribute_name="my_target_attribute_name
", channel_type="training", ) input_validation = AutoMLInput( inputs="s3://amzn-s3-demo-bucket/my-validation-data
", target_attribute_name="my_target_attribute_name
", channel_type="validation", ) step_args = auto_ml.fit( inputs=[input_training, input_validation] ) step_automl = AutoMLStep( name="AutoMLStep", step_args=step_args, )
Dapatkan versi model terbaik
Langkah AutoML secara otomatis melatih beberapa kandidat model. Dapatkan model dengan metrik objektif terbaik dari pekerjaan AutoML menggunakan get_best_auto_ml_model
metode sebagai berikut. Anda juga harus menggunakan IAM role
untuk mengakses artefak model.
best_model = step_automl.get_best_auto_ml_model(
role=<role>
)
Untuk informasi selengkapnya, lihat langkah AutoML
Gunakan a ModelStep
untuk membuat atau mendaftarkan model SageMaker AI. Untuk informasi selengkapnya tentang ModelStep
persyaratan, lihat sagemaker.workflow.model_step. ModelStep
Buat model
Anda dapat menggunakan a ModelStep
untuk membuat model SageMaker AI. A ModelStep
membutuhkan artefak model dan informasi tentang jenis instance SageMaker AI yang perlu Anda gunakan untuk membuat model. Untuk informasi selengkapnya tentang model SageMaker AI, lihat Melatih Model dengan Amazon SageMaker AI.
Contoh berikut menunjukkan cara membuat ModelStep
definisi.
from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.model import Model from sagemaker.workflow.model_step import ModelStep step_train = TrainingStep(...) model = Model( image_uri=pytorch_estimator.training_image_uri(), model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts, sagemaker_session=PipelineSession(), role=role, ) step_model_create = ModelStep( name="MyModelCreationStep", step_args=model.create(instance_type="ml.m5.xlarge"), )
Daftarkan model
Anda dapat menggunakan a ModelStep
untuk mendaftarkan a sagemaker.model.Model
atau sagemaker.pipeline.PipelineModel
dengan Amazon SageMaker Model Registry. A PipelineModel
mewakili pipa inferensi, yang merupakan model yang terdiri dari urutan linier kontainer yang memproses permintaan inferensi. Untuk informasi selengkapnya tentang cara mendaftarkan model, lihatPenerapan Registrasi Model dengan Model Registry.
Contoh berikut menunjukkan cara membuat ModelStep
yang mendaftarkan aPipelineModel
.
import time from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.sklearn import SKLearnModel from sagemaker.xgboost import XGBoostModel pipeline_session = PipelineSession() code_location = 's3://{0}/{1}/code'.format(
bucket_name
, prefix) sklearn_model = SKLearnModel( model_data=processing_step.properties.ProcessingOutputConfig.Outputs['model'].S3Output.S3Uri, entry_point='inference.py', source_dir='sklearn_source_dir/', code_location=code_location, framework_version='1.0-1', role=role, sagemaker_session=pipeline_session, py_version='py3' ) xgboost_model = XGBoostModel( model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts, entry_point='inference.py', source_dir='xgboost_source_dir/', code_location=code_location, framework_version='0.90-2', py_version='py3', sagemaker_session=pipeline_session, role=role ) from sagemaker.workflow.model_step import ModelStep from sagemaker import PipelineModel pipeline_model = PipelineModel( models=[sklearn_model, xgboost_model], role=role,sagemaker_session=pipeline_session, ) register_model_step_args = pipeline_model.register( content_types=["application/json"], response_types=["application/json"], inference_instances=["ml.t2.medium", "ml.m5.xlarge"], transform_instances=["ml.m5.xlarge"], model_package_group_name='sipgroup', ) step_model_registration = ModelStep( name="AbaloneRegisterModel", step_args=register_model_step_args, )
Anda menggunakan langkah Buat model untuk membuat model SageMaker AI. Untuk informasi lebih lanjut tentang model SageMaker AI, lihatLatih Model dengan Amazon SageMaker.
Langkah membuat model memerlukan artefak model dan informasi tentang jenis instans SageMaker AI yang perlu Anda gunakan untuk membuat model. Contoh berikut menunjukkan cara membuat definisi langkah model Create. Untuk informasi selengkapnya tentang Membuat persyaratan langkah model, lihat sagemaker.workflow.steps. CreateModelStep
Langkah model Register mendaftarkan model ke dalam SageMaker Model Registry.
Di Pipeline Designer, gunakan langkah Deploy model (endpoint) untuk menerapkan model Anda ke titik akhir. Anda dapat membuat endpoint baru atau menggunakan endpoint yang sudah ada. Inferensi real-time sangat ideal untuk beban kerja inferensi di mana Anda memiliki persyaratan real-time, interaktif, latensi rendah. Anda dapat menerapkan model Anda ke layanan SageMaker AI Hosting dan mendapatkan titik akhir real-time yang dapat digunakan untuk inferensi. Titik akhir ini dikelola sepenuhnya dan mendukung auto-scaling. Untuk mempelajari lebih lanjut tentang inferensi real-time di SageMaker AI, lihatInferensi waktu nyata.
Sebelum menambahkan langkah model penerapan ke pipeline Anda, pastikan peran IAM Anda memiliki izin berikut:
-
sagemaker:CreateModel
-
sagemaker:CreateEndpointConfig
-
sagemaker:CreateEndpoint
-
sagemaker:UpdateEndpoint
-
sagemaker:DescribeModel
-
sagemaker:DescribeEndpointConfig
-
sagemaker:DescribeEndpoint
Untuk mempelajari lebih lanjut tentang semua izin yang diperlukan untuk SageMaker AI dan cara mengaturnya, lihatIzin Amazon SageMaker AI API: Tindakan, Izin, dan Referensi Sumber Daya.
Untuk menambahkan langkah penerapan model ke Pipeline Anda di drag-and-drop editor, selesaikan langkah-langkah berikut:
-
Buka konsol Studio dengan mengikuti petunjuk diLuncurkan Amazon SageMaker Studio.
-
Di panel navigasi kiri, pilih Pipelines.
-
Pilih Buat.
-
Pilih Kosong.
-
Di sidebar kiri, pilih Deploy model (endpoint) dan seret ke kanvas.
-
Di kanvas, pilih langkah Deploy model (endpoint) yang Anda tambahkan.
-
Di bilah sisi kanan, lengkapi formulir di tab Pengaturan dan Detail.
-
Jika kanvas menyertakan langkah apa pun yang segera mendahului langkah Deploy model (endpoint) yang Anda tambahkan, klik dan seret kursor dari langkah ke langkah Deploy model (endpoint) untuk membuat edge.
-
Jika kanvas menyertakan langkah apa pun yang segera menggantikan langkah Deploy model (endpoint) yang Anda tambahkan, klik dan seret kursor dari langkah Deploy model (endpoint) ke langkah untuk membuat edge.
Anda menggunakan langkah transformasi untuk transformasi batch untuk menjalankan inferensi pada seluruh kumpulan data. Untuk informasi selengkapnya tentang transformasi batch, lihatBatch berubah dengan pipa inferensi.
Langkah transformasi membutuhkan transformator dan data untuk menjalankan transformasi batch. Contoh berikut menunjukkan cara membuat definisi langkah Transform. Untuk informasi selengkapnya tentang persyaratan langkah Transform, lihat sagemaker.workflow.steps. TransformStep
Anda menggunakan langkah kondisi untuk mengevaluasi kondisi properti langkah untuk menilai tindakan mana yang harus diambil selanjutnya dalam pipeline.
Langkah kondisi membutuhkan:
-
Daftar kondisi.
-
Daftar langkah-langkah yang harus dijalankan jika kondisi dievaluasi.
true
-
Daftar langkah-langkah yang harus dijalankan jika kondisi dievaluasi.
false
Gunakan Callback
langkah untuk menambahkan proses dan AWS layanan tambahan ke dalam alur kerja Anda yang tidak langsung disediakan oleh Amazon SageMaker Pipelines. Ketika sebuah Callback
langkah berjalan, prosedur berikut terjadi:
-
Pipelines mengirimkan pesan ke antrean Amazon Simple Queue Service (Amazon SQS) yang ditentukan pelanggan. Pesan tersebut berisi token yang dihasilkan pipeline dan daftar parameter input yang disediakan pelanggan. Setelah mengirim pesan, Pipelines menunggu tanggapan dari pelanggan.
-
Pelanggan mengambil pesan dari antrian Amazon SQS dan memulai proses kustom mereka.
-
Ketika proses selesai, pelanggan memanggil salah satu dari yang berikut APIs dan mengirimkan token yang dihasilkan pipeline:
-
SendPipelineExecutionStepSuccess, bersama dengan daftar parameter output
-
SendPipelineExecutionStepFailure, bersama dengan alasan kegagalan
-
-
Panggilan API menyebabkan Pipelines melanjutkan proses pipeline atau gagal dalam proses.
Untuk informasi selengkapnya tentang persyaratan Callback
langkah, lihat sagemaker.workflow.callback_step. CallbackStep
penting
Callback
langkah-langkah diperkenalkan di Amazon SageMaker Python SDK v2.45.0 dan Amazon Studio Classic v3.6.2. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan Callback
langkah atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihatMatikan dan Perbarui SageMaker Studio Classic.
Sampel berikut menunjukkan implementasi dari prosedur sebelumnya.
from sagemaker.workflow.callback_step import CallbackStep step_callback = CallbackStep( name="MyCallbackStep", sqs_queue_url="https://sqs.us-east-2.amazonaws.com/012345678901/MyCallbackQueue", inputs={...}, outputs=[...] ) callback_handler_code = ' import boto3 import json def handler(event, context): sagemaker_client=boto3.client("sagemaker") for record in event["Records"]: payload=json.loads(record["body"]) token=payload["token"] # Custom processing # Call SageMaker AI to complete the step sagemaker_client.send_pipeline_execution_step_success( CallbackToken=token, OutputParameters={...} ) '
catatan
Parameter keluaran untuk tidak CallbackStep
boleh bersarang. Misalnya, jika Anda menggunakan kamus bersarang sebagai parameter keluaran Anda, maka kamus diperlakukan sebagai string tunggal (mis. {"output1": "{\"nested_output1\":\"my-output\"}"}
). Jika Anda memberikan nilai bersarang, maka ketika Anda mencoba merujuk ke parameter keluaran tertentu, SageMaker AI melempar kesalahan klien yang tidak dapat dicoba ulang.
Menghentikan perilaku
Proses pipeline tidak berhenti saat Callback
langkah sedang berjalan.
Saat Anda memanggil StopPipelineExecutionproses pipeline dengan Callback
langkah yang sedang berjalan, Pipelines mengirimkan pesan Amazon SQS ke antrean SQS. Tubuh pesan SQS berisi bidang Status, yang diatur keStopping
. Berikut ini menunjukkan contoh badan pesan SQS.
{ "token": "26vcYbeWsZ", "pipelineExecutionArn": "arn:aws:sagemaker:us-east-2:012345678901:pipeline/callback-pipeline/execution/7pinimwddh3a", "arguments": { "number": 5, "stringArg": "some-arg", "inputData": "s3://sagemaker-us-west-2-012345678901/abalone/abalone-dataset.csv" }, "status": "Stopping" }
Anda harus menambahkan logika ke konsumen pesan Amazon SQS Anda untuk mengambil tindakan apa pun yang diperlukan (misalnya, pembersihan sumber daya) setelah menerima pesan. Kemudian tambahkan panggilan ke SendPipelineExecutionStepSuccess
atauSendPipelineExecutionStepFailure
.
Hanya ketika Pipelines menerima salah satu panggilan ini barulah ia menghentikan proses pipeline.
Anda menggunakan langkah Lambda untuk menjalankan fungsi. AWS Lambda Anda dapat menjalankan fungsi Lambda yang ada, atau SageMaker AI dapat membuat dan menjalankan fungsi Lambda baru. Untuk buku catatan yang menunjukkan cara menggunakan langkah Lambda dalam pipeline SageMaker AI, lihat sagemaker-pipelines-lambda-step .ipynb.
penting
Langkah-langkah Lambda diperkenalkan di Amazon SageMaker Python SDK v2.51.0 dan Amazon Studio Classic v3.9.1. SageMaker Anda harus memperbarui Studio Classic sebelum menggunakan langkah Lambda atau DAG pipeline tidak ditampilkan. Untuk memperbarui Studio Classic, lihatMatikan dan Perbarui SageMaker Studio Classic.
SageMaker AI menyediakan kelas SageMaker.lambda_helper.Lambda untuk membuat, memperbarui, memanggil, dan menghapus fungsi LambdaLambda
memiliki tanda tangan berikut.
Lambda( function_arn, # Only required argument to invoke an existing Lambda function # The following arguments are required to create a Lambda function: function_name, execution_role_arn, zipped_code_dir, # Specify either zipped_code_dir and s3_bucket, OR script s3_bucket, # S3 bucket where zipped_code_dir is uploaded script, # Path of Lambda function script handler, # Lambda handler specified as "lambda_script.lambda_handler" timeout, # Maximum time the Lambda function can run before the lambda step fails ... )
Sagemaker.workflow.lambda_step. LambdaSteplambda_func
argumen tipeLambda
. Untuk menjalankan fungsi Lambda yang ada, satu-satunya persyaratan adalah menyediakan Nama Sumber Daya Amazon (ARN) dari fungsi tersebut. function_arn
Jika Anda tidak memberikan nilai untukfunction_arn
, Anda harus menentukan handler
dan salah satu dari berikut ini:
-
zipped_code_dir
— Jalur fungsi Lambda yang di-zips3_bucket
- Bucket Amazon S3 tempat akanzipped_code_dir
diunggah -
script
— Jalur file skrip fungsi Lambda
Contoh berikut menunjukkan cara membuat definisi Lambda
langkah yang memanggil fungsi Lambda yang ada.
from sagemaker.workflow.lambda_step import LambdaStep from sagemaker.lambda_helper import Lambda step_lambda = LambdaStep( name="ProcessingLambda", lambda_func=Lambda( function_arn="arn:aws:lambda:us-west-2:012345678910:function:split-dataset-lambda" ), inputs={ s3_bucket = s3_bucket, data_file = data_file }, outputs=[ "train_file", "test_file" ] )
Contoh berikut menunjukkan cara membuat definisi Lambda
langkah yang membuat dan memanggil fungsi Lambda menggunakan skrip fungsi Lambda.
from sagemaker.workflow.lambda_step import LambdaStep from sagemaker.lambda_helper import Lambda step_lambda = LambdaStep( name="ProcessingLambda", lambda_func=Lambda( function_name="split-dataset-lambda", execution_role_arn=execution_role_arn, script="lambda_script.py", handler="lambda_script.lambda_handler", ... ), inputs={ s3_bucket = s3_bucket, data_file = data_file }, outputs=[ "train_file", "test_file" ] )
Input dan output
Jika Lambda
fungsi Anda memiliki input atau output, ini juga harus didefinisikan dalam langkah AndaLambda
.
catatan
Parameter input dan output tidak boleh bersarang. Misalnya, jika Anda menggunakan kamus bersarang sebagai parameter keluaran Anda, maka kamus diperlakukan sebagai string tunggal (mis. {"output1": "{\"nested_output1\":\"my-output\"}"}
). Jika Anda memberikan nilai bersarang dan mencoba merujuknya nanti, kesalahan klien yang tidak dapat dicoba ulang akan dilemparkan.
Saat mendefinisikan Lambda
langkah, inputs
harus kamus pasangan kunci-nilai. Setiap nilai inputs
kamus harus berupa tipe primitif (string, integer, atau float). Objek bersarang tidak didukung. Jika dibiarkan tidak terdefinisi, inputs
nilai defaultnya. None
outputs
Nilai harus berupa daftar kunci. Kunci-kunci ini mengacu pada kamus yang didefinisikan dalam output Lambda
fungsi. Sepertiinputs
, kunci ini harus tipe primitif, dan objek bersarang tidak didukung.
Timeout dan menghentikan perilaku
Lambda
Kelas memiliki timeout
argumen yang menentukan waktu maksimum bahwa fungsi Lambda dapat berjalan. Nilai default adalah 120 detik dengan nilai maksimum 10 menit. Jika fungsi Lambda berjalan saat batas waktu terpenuhi, langkah Lambda gagal; Namun, fungsi Lambda terus berjalan.
Proses pipeline tidak dapat dihentikan saat langkah Lambda berjalan karena fungsi Lambda yang dipanggil oleh langkah Lambda tidak dapat dihentikan. Jika Anda menghentikan proses saat fungsi Lambda sedang berjalan, pipeline menunggu fungsi selesai atau sampai batas waktu tercapai. Ini tergantung pada mana yang terjadi lebih dulu. Prosesnya kemudian berhenti. Jika fungsi Lambda selesai, status proses pipeline adalah. Stopped
Jika batas waktu tercapai, status proses pipeline adalahFailed
.
Anda dapat menggunakan ClarifyCheck
langkah untuk melakukan pemeriksaan penyimpangan dasar terhadap garis dasar sebelumnya untuk analisis bias dan penjelasan model. Anda kemudian dapat membuat dan mendaftarkan baseline Anda dengan model.register()
metode dan meneruskan output dari metode itu untuk Langkah model digunakan. step_args
Garis dasar untuk pemeriksaan drift ini dapat digunakan oleh Amazon SageMaker Model Monitor untuk titik akhir model Anda. Akibatnya, Anda tidak perlu melakukan saran dasar secara terpisah.
ClarifyCheck
Langkah ini juga dapat menarik garis dasar untuk pemeriksaan drift dari registri model. ClarifyCheck
Langkah ini menggunakan Container Prebuilt SageMaker Clarify. Wadah ini menyediakan berbagai kemampuan pemantauan model, termasuk saran kendala dan validasi kendala terhadap garis dasar yang diberikan. Untuk informasi selengkapnya, lihat Kontainer SageMaker Klarifikasi Prebuilt.
Mengkonfigurasi langkahnya ClarifyCheck
Anda dapat mengonfigurasi ClarifyCheck
langkah untuk melakukan hanya satu dari jenis pemeriksaan berikut setiap kali digunakan dalam pipeline.
-
Pemeriksaan bias data
-
Pemeriksaan bias model
-
Pemeriksaan penjelasan model
Untuk melakukan ini, atur clarify_check_config
parameter dengan salah satu nilai jenis cek berikut:
-
DataBiasCheckConfig
-
ModelBiasCheckConfig
-
ModelExplainabilityCheckConfig
ClarifyCheck
Langkah ini meluncurkan pekerjaan pemrosesan yang menjalankan wadah prebuilt SageMaker AI Clarify dan memerlukan konfigurasi khusus untuk pemeriksaan dan pekerjaan pemrosesan. ClarifyCheckConfig
dan CheckJobConfig
merupakan fungsi pembantu untuk konfigurasi ini. Fungsi pembantu ini selaras dengan bagaimana pekerjaan pemrosesan SageMaker Clarify menghitung untuk memeriksa bias model, bias data, atau penjelasan model. Untuk informasi selengkapnya, lihat Jalankan Pekerjaan Pemrosesan SageMaker Klarifikasi untuk Analisis Bias dan Penjelasan.
Mengontrol perilaku langkah untuk pemeriksaan drift
ClarifyCheck
Langkah ini membutuhkan dua flag boolean berikut untuk mengontrol perilakunya:
-
skip_check
: Parameter ini menunjukkan apakah pemeriksaan drift terhadap baseline sebelumnya dilewati atau tidak. Jika disetel keFalse
, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi harus tersedia. -
register_new_baseline
: Parameter ini menunjukkan apakah baseline yang baru dihitung dapat diakses melalui properti langkah.BaselineUsedForDriftCheckConstraints
Jika disetel keFalse
, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi juga harus tersedia. Ini dapat diakses melaluiBaselineUsedForDriftCheckConstraints
properti.
Untuk informasi selengkapnya, lihat Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker .
Bekerja dengan baseline
Anda dapat secara opsional menentukan model_package_group_name
untuk menemukan baseline yang ada. Kemudian, ClarifyCheck
langkah tersebut DriftCheckBaselines
menarik paket model terbaru yang disetujui dalam grup paket model.
Atau, Anda dapat memberikan baseline sebelumnya melalui parameter. supplied_baseline_constraints
Jika Anda menentukan kedua model_package_group_name
dansupplied_baseline_constraints
, ClarifyCheck
langkah menggunakan garis dasar yang ditentukan oleh parameter. supplied_baseline_constraints
Untuk informasi selengkapnya tentang penggunaan persyaratan ClarifyCheck
langkah, lihat sagemaker.workflow.steps. ClarifyCheckStepClarifyCheck
step di Pipelines, lihat sagemaker-pipeline-model-monitor-clarify-steps.ipynb
contoh Buat ClarifyCheck
langkah untuk pemeriksaan bias data
from sagemaker.workflow.check_job_config import CheckJobConfig from sagemaker.workflow.clarify_check_step import DataBiasCheckConfig, ClarifyCheckStep from sagemaker.workflow.execution_variables import ExecutionVariables check_job_config = CheckJobConfig( role=role, instance_count=1, instance_type="
ml.c5.xlarge
", volume_size_in_gb=120
, sagemaker_session=sagemaker_session, ) data_bias_data_config = DataConfig( s3_data_input_path=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri, s3_output_path=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'databiascheckstep
']), label=0, dataset_type="text/csv
", s3_analysis_config_output_path=data_bias_analysis_cfg_output_path, ) data_bias_config = BiasConfig( label_values_or_threshold=[15.0
], facet_name=[8
], facet_values_or_threshold=[[0.5
]] ) data_bias_check_config = DataBiasCheckConfig( data_config=data_bias_data_config, data_bias_config=data_bias_config, )h data_bias_check_step = ClarifyCheckStep( name="DataBiasCheckStep
", clarify_check_config=data_bias_check_config, check_job_config=check_job_config, skip_check=False, register_new_baseline=False supplied_baseline_constraints="s3://sagemaker-us-west-2-111122223333/baseline/analysis.json
", model_package_group_name="MyModelPackageGroup
" )
Gunakan QualityCheck
langkah untuk melakukan saran dasar dan pemeriksaan drift terhadap baseline sebelumnya untuk kualitas data atau kualitas model dalam pipeline. Anda kemudian dapat membuat dan mendaftarkan baseline Anda dengan model.register()
metode dan meneruskan output dari metode itu untuk Langkah model digunakanstep_args
.]
Model Monitor dapat menggunakan garis dasar ini untuk pemeriksaan drift untuk titik akhir model Anda sehingga Anda tidak perlu melakukan saran dasar secara terpisah. QualityCheck
Langkah ini juga dapat menarik garis dasar untuk pemeriksaan drift dari registri model. QualityCheck
Langkah ini memanfaatkan wadah prebuilt Amazon SageMaker AI Model Monitor. Wadah ini memiliki berbagai kemampuan pemantauan model termasuk saran kendala, pembuatan statistik, dan validasi kendala terhadap baseline. Untuk informasi selengkapnya, lihat Amazon SageMaker Model Monitor wadah bawaan.
Mengkonfigurasi langkahnya QualityCheck
Anda dapat mengonfigurasi QualityCheck
langkah untuk menjalankan hanya satu dari jenis pemeriksaan berikut setiap kali digunakan dalam pipeline.
-
Pemeriksaan kualitas data
-
Pemeriksaan kualitas model
Anda melakukan ini dengan mengatur quality_check_config
parameter dengan salah satu nilai jenis cek berikut:
-
DataQualityCheckConfig
-
ModelQualityCheckConfig
QualityCheck
Langkah ini meluncurkan pekerjaan pemrosesan yang menjalankan wadah bawaan Model Monitor dan memerlukan konfigurasi khusus untuk pemeriksaan dan pekerjaan pemrosesan. Fungsi QualityCheckConfig
dan CheckJobConfig
pembantu untuk konfigurasi ini. Fungsi pembantu ini selaras dengan bagaimana Model Monitor membuat garis dasar untuk kualitas model atau pemantauan kualitas data. Untuk informasi selengkapnya tentang saran dasar Model Monitor, lihat Buat Baseline dan. Buat baseline kualitas model
Mengontrol perilaku langkah untuk pemeriksaan drift
QualityCheck
Langkah ini membutuhkan dua flag Boolean berikut untuk mengontrol perilakunya:
-
skip_check
: Parameter ini menunjukkan apakah pemeriksaan drift terhadap baseline sebelumnya dilewati atau tidak. Jika disetel keFalse
, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi harus tersedia. -
register_new_baseline
: Parameter ini menunjukkan apakah baseline yang baru dihitung dapat diakses melalui propertiBaselineUsedForDriftCheckConstraints
langkah dan.BaselineUsedForDriftCheckStatistics
Jika disetel keFalse
, baseline sebelumnya dari jenis pemeriksaan yang dikonfigurasi juga harus tersedia. Ini dapat diakses melaluiBaselineUsedForDriftCheckConstraints
danBaselineUsedForDriftCheckStatistics
properti.
Untuk informasi selengkapnya, lihat Perhitungan dasar, deteksi drift, dan siklus hidup dengan serta langkah-langkah di Amazon Pipelines ClarifyCheck QualityCheck SageMaker .
Bekerja dengan baseline
Anda dapat menentukan garis dasar sebelumnya secara langsung melalui parameter supplied_baseline_statistics
dansupplied_baseline_constraints
. Anda juga dapat menentukan model_package_group_name
dan QualityCheck
langkah menarik paket model terbaru yang disetujui dalam grup paket model. DriftCheckBaselines
Saat Anda menentukan yang berikut ini, QualityCheck
langkah menggunakan garis dasar yang ditentukan oleh supplied_baseline_constraints
dan supplied_baseline_statistics
pada jenis pemeriksaan langkah. QualityCheck
-
model_package_group_name
-
supplied_baseline_constraints
-
supplied_baseline_statistics
Untuk informasi selengkapnya tentang penggunaan persyaratan QualityCheck
langkah, lihat sagemaker.workflow.steps. QualityCheckStepQualityCheck
step di Pipelines, lihat sagemaker-pipeline-model-monitor-clarify-steps.ipynb
contoh Buat QualityCheck
langkah untuk pemeriksaan kualitas data
from sagemaker.workflow.check_job_config import CheckJobConfig from sagemaker.workflow.quality_check_step import DataQualityCheckConfig, QualityCheckStep from sagemaker.workflow.execution_variables import ExecutionVariables check_job_config = CheckJobConfig( role=role, instance_count=1, instance_type="
ml.c5.xlarge
", volume_size_in_gb=120
, sagemaker_session=sagemaker_session, ) data_quality_check_config = DataQualityCheckConfig( baseline_dataset=step_process.properties.ProcessingOutputConfig.Outputs["train
"].S3Output.S3Uri, dataset_format=DatasetFormat.csv(header=False, output_columns_position="START"), output_s3_uri=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'dataqualitycheckstep']) ) data_quality_check_step = QualityCheckStep( name="DataQualityCheckStep", skip_check=False, register_new_baseline=False, quality_check_config=data_quality_check_config, check_job_config=check_job_config, supplied_baseline_statistics="s3://sagemaker-us-west-2-555555555555/baseline/statistics.json
", supplied_baseline_constraints="s3://sagemaker-us-west-2-555555555555/baseline/constraints.json
", model_package_group_name="MyModelPackageGroup
" )
Gunakan langkah EMR Amazon SageMaker Pipelines untuk:
-
Memproses langkah-langkah Amazon EMR pada klaster EMR Amazon yang sedang berjalan.
-
Mintalah pipeline membuat dan mengelola cluster EMR Amazon untuk Anda.
Untuk informasi selengkapnya tentang Amazon EMR, lihat Memulai dengan Amazon EMR.
Langkah EMR mengharuskan EMRStepConfig
menyertakan lokasi file JAR yang digunakan oleh cluster EMR Amazon dan argumen apa pun yang akan diteruskan. Anda juga memberikan ID cluster EMR Amazon jika Anda ingin menjalankan langkah pada cluster EMR yang sedang berjalan. Anda juga dapat meneruskan konfigurasi cluster untuk menjalankan langkah EMR pada cluster yang dibuat, dikelola, dan diakhiri untuk Anda. Bagian berikut mencakup contoh dan tautan ke notebook sampel yang menunjukkan kedua metode.
catatan
-
Langkah-langkah EMR mengharuskan peran yang diteruskan ke pipeline Anda memiliki izin tambahan. Lampirkan kebijakan AWS terkelola:
AmazonSageMakerPipelinesIntegrations
ke peran pipeline Anda, atau pastikan peran tersebut menyertakan izin dalam kebijakan tersebut. -
Langkah EMR tidak didukung pada EMR tanpa server. Itu juga tidak didukung di Amazon EMR di EKS.
-
Jika Anda memproses langkah EMR pada cluster yang sedang berjalan, Anda hanya dapat menggunakan cluster yang berada di salah satu status berikut:
-
STARTING
-
BOOTSTRAPPING
-
RUNNING
-
WAITING
-
-
Jika Anda memproses langkah-langkah EMR pada cluster yang sedang berjalan, Anda dapat memiliki paling banyak 256 langkah EMR dalam keadaan di cluster EMR.
PENDING
Langkah-langkah EMR yang diajukan di luar batas ini mengakibatkan kegagalan eksekusi pipeline. Anda dapat mempertimbangkan untuk menggunakanCoba lagi Kebijakan untuk Langkah-langkah Pipa. -
Anda dapat menentukan ID cluster atau konfigurasi cluster, tetapi tidak keduanya.
-
Langkah EMR bergantung pada Amazon EventBridge untuk memantau perubahan dalam langkah EMR atau status cluster. Jika Anda memproses pekerjaan EMR Amazon di klaster yang sedang berjalan, langkah EMR menggunakan aturan
SageMakerPipelineExecutionEMRStepStatusUpdateRule
untuk memantau status langkah EMR. Jika Anda memproses pekerjaan Anda di klaster yang dibuat oleh langkah EMR, langkah tersebut menggunakanSageMakerPipelineExecutionEMRClusterStatusRule
aturan untuk memantau perubahan status klaster. Jika Anda melihat salah satu dari EventBridge aturan ini di AWS akun Anda, jangan menghapusnya atau langkah EMR Anda mungkin tidak selesai.
Luncurkan pekerjaan baru di klaster EMR Amazon yang sedang berjalan
Untuk meluncurkan pekerjaan baru di klaster EMR Amazon yang sedang berjalan, teruskan ID cluster sebagai string ke cluster_id
argumen. EMRStep
Contoh berikut menunjukkan prosedur ini.
from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig emr_config = EMRStepConfig( jar="
jar-location
", # required, path to jar file used args=["--verbose", "--force"], # optional list of arguments to pass to the jar main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest properties=[ # optional list of Java properties that are set when the step runs { "key": "mapred.tasktracker.map.tasks.maximum", "value": "2" }, { "key": "mapreduce.map.sort.spill.percent", "value": "0.90" }, { "key": "mapreduce.tasktracker.reduce.tasks.maximum", "value": "5" } ] ) step_emr = EMRStep ( name="EMRSampleStep", # required cluster_id="j-1ABCDEFG2HIJK", # include cluster_id to use a running cluster step_config=emr_config, # required display_name="My EMR Step", description="Pipeline step to execute EMR job" )
Untuk contoh buku catatan yang memandu Anda melalui contoh lengkap, lihat Pipelines EMR Step With Running EMR Cluster
Luncurkan pekerjaan baru di cluster EMR Amazon baru
Untuk meluncurkan pekerjaan baru di klaster baru yang EMRStep
membuat untuk Anda, berikan konfigurasi klaster Anda sebagai kamus. Kamus harus memiliki struktur yang sama dengan RunJobFlowpermintaan. Namun, jangan sertakan bidang berikut dalam konfigurasi klaster Anda:
-
[
Name
] -
[
Steps
] -
[
AutoTerminationPolicy
] -
[
Instances
][KeepJobFlowAliveWhenNoSteps
] -
[
Instances
][TerminationProtected
]
Semua RunJobFlow
argumen lain tersedia untuk digunakan dalam konfigurasi cluster Anda. Untuk detail tentang sintaks permintaan, lihat RunJobFlow.
Contoh berikut meneruskan konfigurasi cluster ke definisi langkah EMR. Ini mendorong langkah untuk meluncurkan pekerjaan baru di cluster EMR baru. Konfigurasi cluster EMR dalam contoh ini mencakup spesifikasi untuk node cluster EMR primer dan inti. Untuk informasi selengkapnya tentang jenis node EMR Amazon, lihat Memahami tipe node: node primer, inti, dan tugas.
from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig emr_step_config = EMRStepConfig( jar="
jar-location
", # required, path to jar file used args=["--verbose", "--force"], # optional list of arguments to pass to the jar main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest properties=[ # optional list of Java properties that are set when the step runs { "key": "mapred.tasktracker.map.tasks.maximum", "value": "2" }, { "key": "mapreduce.map.sort.spill.percent", "value": "0.90" }, { "key": "mapreduce.tasktracker.reduce.tasks.maximum", "value": "5" } ] ) # include your cluster configuration as a dictionary emr_cluster_config = { "Applications": [ { "Name": "Spark", } ], "Instances":{ "InstanceGroups":[ { "InstanceRole": "MASTER", "InstanceCount": 1, "InstanceType": "m5.2xlarge" }, { "InstanceRole": "CORE", "InstanceCount": 2, "InstanceType": "m5.2xlarge" } ] }, "BootstrapActions":[], "ReleaseLabel": "emr-6.6.0", "JobFlowRole": "job-flow-role
", "ServiceRole": "service-role
" } emr_step = EMRStep( name="emr-step", cluster_id=None, display_name="emr_step", description="MyEMRStepDescription", step_config=emr_step_config, cluster_config=emr_cluster_config )
Untuk contoh buku catatan yang memandu Anda melalui contoh lengkap, lihat Pipelines EMR Step With Cluster
Gunakan a NotebookJobStep
untuk menjalankan Job SageMaker Notebook Anda secara non-interaktif sebagai langkah pipeline. Jika Anda membangun pipeline di drag-and-drop UI Pipelines, gunakan file Jalankan langkah kode untuk menjalankan notebook Anda. Untuk informasi selengkapnya tentang Pekerjaan SageMaker Notebook, lihatSageMaker Lowongan Notebook.
A NotebookJobStep
membutuhkan minimal notebook input, URI gambar dan nama kernel. Untuk informasi selengkapnya tentang persyaratan langkah Job Notebook dan parameter lain yang dapat Anda atur untuk menyesuaikan langkah Anda, lihat sagemaker.workflow.steps. NotebookJobStep
Contoh berikut menggunakan argumen minimum untuk mendefinisikan aNotebookJobStep
.
from sagemaker.workflow.notebook_job_step import NotebookJobStep notebook_job_step = NotebookJobStep( input_notebook=
input_notebook
, image_uri=image_uri
, kernel_name=kernel_name
)
Langkah NotebookJobStep
pipeline Anda diperlakukan sebagai pekerjaan SageMaker notebook. Akibatnya, lacak status eksekusi di dasbor pekerjaan notebook UI Studio Classic dengan menyertakan tag tertentu dengan tags
argumen. Untuk detail selengkapnya tentang tag yang akan disertakan, lihatMelihat pekerjaan notebook Anda di dasbor Studio UI.
Selain itu, jika Anda menjadwalkan pekerjaan notebook menggunakan SageMaker Python SDK, Anda hanya dapat menentukan gambar tertentu untuk menjalankan pekerjaan notebook Anda. Untuk informasi selengkapnya, lihat Kendala gambar untuk pekerjaan notebook AI SageMaker Python SDK.
Gunakan langkah Gagal untuk menghentikan eksekusi Amazon SageMaker Pipelines jika kondisi atau status yang diinginkan tidak tercapai. Langkah Gagal juga memungkinkan Anda memasukkan pesan kesalahan khusus, yang menunjukkan penyebab kegagalan eksekusi pipeline.
catatan
Ketika langkah Gagal dan langkah pipeline lainnya dijalankan pada saat yang sama, pipeline tidak berakhir sampai semua langkah bersamaan selesai.
Batasan untuk menggunakan langkah Gagal
-
Anda tidak dapat menambahkan langkah Gagal ke
DependsOn
daftar langkah lainnya. Untuk informasi selengkapnya, lihat Ketergantungan khusus antar langkah. -
Langkah-langkah lain tidak dapat mereferensikan langkah Gagal. Itu selalu merupakan langkah terakhir dalam eksekusi pipeline.
-
Anda tidak dapat mencoba lagi eksekusi pipeline yang diakhiri dengan langkah Gagal.
Anda dapat membuat pesan kesalahan langkah Gagal dalam bentuk string teks statis. Atau, Anda juga dapat menggunakan Parameter Pipeline, operasi Gabung