View a markdown version of this page

Cara Membangun Wadah Pemrosesan Anda Sendiri (Skenario Lanjutan) - Amazon SageMaker AI

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

Cara Membangun Wadah Pemrosesan Anda Sendiri (Skenario Lanjutan)

Anda dapat menyediakan Amazon Proc SageMaker essing dengan image Docker yang memiliki kode dan dependensi Anda sendiri untuk menjalankan beban kerja pemrosesan data, rekayasa fitur, dan evaluasi model. Berikut ini memberikan informasi tentang cara membangun wadah pemrosesan Anda sendiri.

Contoh Dockerfile berikut membangun wadah dengan pustaka Python scikit-learn dan pandas, yang dapat Anda jalankan sebagai pekerjaan pemrosesan.

FROM python:3.7-slim-buster # Install scikit-learn and pandas RUN pip3 install pandas==0.25.3 scikit-learn==0.21.3 # Add a Python script and configure Docker to run it ADD processing_script.py / ENTRYPOINT ["python3", "/processing_script.py"]

Untuk contoh skrip pemrosesan, lihat Mem ulai dengan Pemro SageMaker sesan.

Buat dan dorong gambar Docker ini ke repositori Amazon Elastic Container Registry (Amazon ECR) dan pastikan bahwa peran IAM SageMaker AI Anda dapat menarik gambar dari Amazon ECR. Kemudian Anda dapat menjalankan gambar ini di Amazon Proc SageMaker essing.

Bagaimana Pemro SageMaker sesan Amazon Mengkonfigurasi Wadah Pemrosesan Anda

Amazon SageMaker Processing menyediakan informasi konfigurasi ke wadah pemrosesan Anda melalui variabel lingkungan dan dua file JSON— /opt/ml/config/processingjobconfig.json dan /opt/ml/config/resourceconfig.json — di lokasi yang telah ditentukan dalam wadah.

Ketika pekerjaan pemrosesan dimulai, ia menggunakan variabel lingkungan yang Anda tentukan dengan Environment peta dalam CreateProcessingJob permintaan. /opt/ml/config/processingjobconfig.jsonFile berisi informasi tentang nama host dari wadah pemrosesan Anda, dan juga ditentukan dalam CreateProcessingJob permintaan.

Contoh berikut menunjukkan format /opt/ml/config/processingjobconfig.json file.

{ "ProcessingJobArn": "<processing_job_arn>", "ProcessingJobName": "<processing_job_name>", "AppSpecification": { "ImageUri": "<image_uri>", "ContainerEntrypoint": null, "ContainerArguments": null }, "Environment": { "KEY": "VALUE" }, "ProcessingInputs": [ { "InputName": "input-1", "S3Input": { "LocalPath": "/opt/ml/processing/input/dataset", "S3Uri": "<s3_uri>", "S3DataDistributionType": "FullyReplicated", "S3DataType": "S3Prefix", "S3InputMode": "File", "S3CompressionType": "None", "S3DownloadMode": "StartOfJob" } } ], "ProcessingOutputConfig": { "Outputs": [ { "OutputName": "output-1", "S3Output": { "LocalPath": "/opt/ml/processing/output/dataset", "S3Uri": "<s3_uri>", "S3UploadMode": "EndOfJob" } } ], "KmsKeyId": null }, "ProcessingResources": { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 30, "VolumeKmsKeyId": null } }, "RoleArn": "<IAM role>", "StoppingCondition": { "MaxRuntimeInSeconds": 86400 } }

/opt/ml/config/resourceconfig.jsonFile berisi informasi tentang nama host dari wadah pemrosesan Anda. Gunakan nama host berikut saat membuat atau menjalankan kode pemrosesan terdistribusi.

{ "current_host": "algo-1", "hosts": ["algo-1","algo-2","algo-3"] }

Jangan gunakan informasi tentang nama host yang terkandung dalam /etc/hostname atau /etc/hosts karena mungkin tidak akurat.

Informasi nama host mungkin tidak segera tersedia untuk wadah pemrosesan. Sebaiknya tambahkan kebijakan coba ulang pada operasi resolusi nama host saat node tersedia di cluster.