Jalankan Skrip dengan Container Pemrosesan Anda Sendiri - Amazon SageMaker

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

Jalankan Skrip dengan Container Pemrosesan Anda Sendiri

Anda dapat menggunakan skrip scikit-learn untuk memproses data sebelumnya dan mengevaluasi model Anda. Untuk melihat cara menjalankan skrip scikit-learn untuk menjalankan tugas ini, lihat contoh buku catatan Pemrosesan scikit-learn. Notebook ini menggunakan ScriptProcessor kelas dari Amazon SageMaker Python SDK for Processing.

Contoh berikut menunjukkan alur kerja umum untuk menggunakan ScriptProcessor kelas dengan wadah pemrosesan Anda sendiri. Alur kerja menunjukkan cara membuat gambar Anda sendiri, membangun wadah Anda, dan menggunakan ScriptProcessor kelas untuk menjalankan skrip preprocessing Python dengan container. Pekerjaan pemrosesan memproses data input Anda dan menyimpan data yang diproses di Amazon Simple Storage Service (Amazon S3).

Sebelum menggunakan contoh berikut, Anda harus memiliki data input Anda sendiri dan skrip Python yang disiapkan untuk memproses data Anda. Untuk contoh yang end-to-end dipandu dari proses ini, lihat kembali ke buku catatan sampel Pemrosesan scikit-learn.

  1. Buat direktori Docker dan tambahkan Dockerfile yang digunakan untuk membuat wadah pemrosesan. Instal panda dan scikit-pelajari ke dalamnya. (Anda juga dapat menginstal dependensi Anda sendiri dengan RUN perintah serupa.)

    mkdir docker %%writefile docker/Dockerfile FROM python:3.7-slim-buster RUN pip3 install pandas==0.25.3 scikit-learn==0.21.3 ENV PYTHONUNBUFFERED=TRUE ENTRYPOINT ["python3"]
  2. Buat wadah menggunakan perintah docker, buat repositori Amazon Elastic Container Registry (Amazon ECR), dan dorong gambar ke Amazon ECR.

    import boto3 account_id = boto3.client('sts').get_caller_identity().get('Account') region = boto3.Session().region_name ecr_repository = 'sagemaker-processing-container' tag = ':latest' processing_repository_uri = '{}.dkr.ecr.{}.amazonaws.com/{}'.format(account_id, region, ecr_repository + tag) # Create ECR repository and push docker image !docker build -t $ecr_repository docker !aws ecr get-login-password --region {region} | docker login --username AWS --password-stdin {account_id}.dkr.ecr.{region}.amazonaws.com !aws ecr create-repository --repository-name $ecr_repository !docker tag {ecr_repository + tag} $processing_repository_uri !docker push $processing_repository_uri
  3. Siapkan ScriptProcessor dari SDK SageMaker Python untuk menjalankan skrip. Ganti image_uri dengan URI untuk gambar yang Anda buat, dan ganti role_arn dengan ARN untuk peran yang memiliki akses ke bucket Amazon AWS Identity and Access Management S3 target Anda.

    from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput script_processor = ScriptProcessor(command=['python3'], image_uri='image_uri', role='role_arn', instance_count=1, instance_type='ml.m5.xlarge')
  4. Jalankan penulisan. Ganti preprocessing.py dengan nama skrip pemrosesan Python Anda sendiri, dan ganti s3://path/to/my/input-data.csv dengan jalur Amazon S3 ke data input Anda.

    script_processor.run(code='preprocessing.py', inputs=[ProcessingInput( source='s3://path/to/my/input-data.csv', destination='/opt/ml/processing/input')], outputs=[ProcessingOutput(source='/opt/ml/processing/output/train'), ProcessingOutput(source='/opt/ml/processing/output/validation'), ProcessingOutput(source='/opt/ml/processing/output/test')])

Anda dapat menggunakan prosedur yang sama dengan pustaka atau dependensi sistem lainnya. Anda juga dapat menggunakan gambar Docker yang ada. Ini termasuk gambar yang Anda jalankan di platform lain seperti Kubernetes.