Jalankan saluran pipa menggunakan mode lokal - Amazon SageMaker

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

Jalankan saluran pipa menggunakan mode lokal

SageMaker Mode lokal pipeline adalah cara mudah untuk menguji skrip pelatihan, pemrosesan, dan inferensi Anda, serta kompatibilitas runtime parameter pipeline sebelum Anda menjalankan pipeline pada layanan terkelola. SageMaker Dengan menggunakan mode lokal, Anda dapat menguji SageMaker pipeline secara lokal menggunakan kumpulan data yang lebih kecil. Hal ini memungkinkan debugging cepat dan mudah kesalahan dalam skrip pengguna dan definisi pipeline itu sendiri tanpa menimbulkan biaya menggunakan layanan terkelola. Topik berikut menunjukkan cara mendefinisikan dan menjalankan pipeline secara lokal.

Pipelines mode lokal memanfaatkan SageMaker pekerjaan mode lokal di bawah tenda. Ini adalah fitur di SageMaker Python SDK yang memungkinkan Anda menjalankan gambar SageMaker bawaan atau kustom secara lokal menggunakan wadah Docker. Pipelines mode lokal dibangun di atas modus SageMaker pekerjaan lokal. Oleh karena itu, Anda dapat mengharapkan untuk melihat hasil yang sama seolah-olah Anda menjalankan pekerjaan itu secara terpisah. Misalnya, mode lokal masih menggunakan Amazon S3 untuk mengunggah artefak model dan output pemrosesan. Jika Anda ingin data yang dihasilkan oleh pekerjaan lokal berada di disk lokal, Anda dapat menggunakan pengaturan yang disebutkan dalam Mode Lokal.

Mode lokal pipa saat ini mendukung jenis langkah berikut:

Berbeda dengan layanan Pipelines terkelola yang memungkinkan beberapa langkah untuk dijalankan secara paralel menggunakan Parallelism Configuration, pelaksana pipeline lokal menjalankan langkah-langkah secara berurutan. Oleh karena itu, kinerja eksekusi keseluruhan dari pipa lokal mungkin lebih buruk daripada yang berjalan di cloud - ini sebagian besar tergantung pada ukuran dataset, algoritma, serta kekuatan komputer lokal Anda. Perhatikan juga bahwa Pipelines berjalan dalam mode lokal tidak direkam dalam SageMaker Eksperimen.

catatan

Pipelines mode lokal tidak kompatibel dengan SageMaker algoritma seperti. XGBoost Jika Anda ingin menggunakan algoritma ini, Anda harus menggunakannya dalam mode skrip.

Untuk menjalankan pipa secara lokal, sagemaker_session bidang yang terkait dengan langkah-langkah pipa dan pipa itu sendiri harus bertipeLocalPipelineSession. Contoh berikut menunjukkan bagaimana Anda dapat menentukan SageMaker pipeline untuk mengeksekusi secara lokal.

from sagemaker.workflow.pipeline_context import LocalPipelineSession from sagemaker.pytorch import PyTorch from sagemaker.workflow.steps import TrainingStep from sagemaker.workflow.pipeline import Pipeline local_pipeline_session = LocalPipelineSession() pytorch_estimator = PyTorch( sagemaker_session=local_pipeline_session, role=sagemaker.get_execution_role(), instance_type="ml.c5.xlarge", instance_count=1, framework_version="1.8.0", py_version="py36", entry_point="./entry_point.py", ) step = TrainingStep( name="MyTrainingStep", step_args=pytorch_estimator.fit( inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data/train"), ) ) pipeline = Pipeline( name="MyPipeline", steps=[step], sagemaker_session=local_pipeline_session ) pipeline.create( role_arn=sagemaker.get_execution_role(), description="local pipeline example" ) // pipeline will execute locally execution = pipeline.start() steps = execution.list_steps() training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn'] step_outputs = pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)

Setelah Anda siap untuk menjalankan pipeline pada layanan SageMaker Pipelines terkelola, Anda dapat melakukannya dengan mengganti LocalPipelineSession cuplikan kode sebelumnya dengan PipelineSession (seperti yang ditunjukkan pada contoh kode berikut) dan menjalankan ulang kode.

from sagemaker.workflow.pipeline_context import PipelineSession pipeline_session = PipelineSession()