Menangkap data dari pekerjaan transformasi batch - Amazon SageMaker

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

Menangkap data dari pekerjaan transformasi batch

Langkah-langkah yang diperlukan untuk mengaktifkan pengambilan data untuk pekerjaan transformasi batch Anda serupa apakah Anda menggunakan AWS SDK for Python (Boto) atau SageMaker PythonSDK. Jika Anda menggunakan AWS SDK, tentukan DataCaptureConfigkamus, bersama dengan bidang yang diperlukan, dalam CreateTransformJob metode untuk mengaktifkan pengambilan data. Jika Anda menggunakan SageMaker PythonSDK, impor BatchDataCaptureConfig kelas dan inisialisasi instance dari kelas ini. Kemudian, berikan objek ini ke batch_data_capture_config parameter instance pekerjaan transformasi Anda.

Untuk menggunakan cuplikan kode berikut, ganti italicized placeholder text dalam kode contoh dengan informasi Anda sendiri.

Cara mengaktifkan pengambilan data

Tentukan konfigurasi pengambilan data saat Anda meluncurkan pekerjaan transformasi. Apakah Anda menggunakan AWS SDK for Python (Boto3) atau SageMaker PythonSDK, Anda harus memberikan DestinationS3Uri argumen, yang merupakan direktori tempat Anda ingin pekerjaan transformasi mencatat data yang diambil. Secara opsional, Anda juga dapat mengatur parameter berikut:

  • KmsKeyId: The AWS KMS kunci yang digunakan untuk mengenkripsi data yang diambil.

  • GenerateInferenceId: Bendera Boolean yang, saat menangkap data, menunjukkan apakah Anda ingin pekerjaan transformasi menambahkan ID inferensi dan waktu ke output Anda. Ini berguna untuk pemantauan kualitas model, di mana Anda perlu menelan data Ground Truth. ID inferensi dan waktu membantu mencocokkan data yang diambil dengan data Ground Truth Anda.

AWS SDK for Python (Boto3)

Konfigurasikan data yang ingin Anda tangkap dengan DataCaptureConfigkamus saat Anda membuat pekerjaan transformasi menggunakan CreateTransformJob metode ini.

input_data_s3_uri = "s3://input_S3_uri" output_data_s3_uri = "s3://output_S3_uri" data_capture_destination = "s3://captured_data_S3_uri" model_name = "model_name" sm_client.create_transform_job( TransformJobName="transform_job_name", MaxConcurrentTransforms=2, ModelName=model_name, TransformInput={ "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": input_data_s3_uri, } }, "ContentType": "text/csv", "CompressionType": "None", "SplitType": "Line", }, TransformOutput={ "S3OutputPath": output_data_s3_uri, "Accept": "text/csv", "AssembleWith": "Line", }, TransformResources={ "InstanceType": "ml.m4.xlarge", "InstanceCount": 1, }, DataCaptureConfig={ "DestinationS3Uri": data_capture_destination, "KmsKeyId": "kms_key", "GenerateInferenceId": True, } )
SageMaker Python SDK

Impor BatchDataCaptureConfig kelas dari sagemaker.model_monitor.

from sagemaker.transformer import Transformer from sagemaker.inputs import BatchDataCaptureConfig # Optional - The S3 URI of where to store captured data in S3 data_capture_destination = "s3://captured_data_S3_uri" model_name = "model_name" transformer = Transformer(model_name=model_name, ...) transform_arg = transformer.transform( batch_data_capture_config=BatchDataCaptureConfig( destination_s3_uri=data_capture_destination, kms_key_id="kms_key", generate_inference_id=True, ), ... )

Cara melihat data yang ditangkap

Setelah tugas transformasi selesai, data yang diambil akan dicatat di bawah yang DestinationS3Uri Anda berikan dengan konfigurasi pengambilan data. Ada dua subdirektori di bawahDestinationS3Uri, /input dan. /output Jika DestinationS3Uri yas3://my-data-capture, maka pekerjaan transformasi membuat direktori berikut:

  • s3://my-data-capture/input: Data input yang diambil untuk pekerjaan transformasi.

  • s3://my-data-capture/output: Data keluaran yang diambil untuk pekerjaan transformasi.

Untuk menghindari duplikasi data, data yang diambil di bawah dua direktori sebelumnya adalah manifes. Setiap manifes adalah JSONL file yang berisi lokasi Amazon S3 dari objek sumber. File manifes mungkin terlihat seperti contoh berikut:

# under "/input" directory [ {"prefix":"s3://input_S3_uri/"}, "dummy_0.csv", "dummy_1.csv", "dummy_2.csv", ... ] # under "/output" directory [ {"prefix":"s3://output_S3_uri/"}, "dummy_0.csv.out", "dummy_1.csv.out", "dummy_2.csv.out", ... ]

Pekerjaan transformasi mengatur dan melabeli manifes ini dengan yyyy/mm/dd/hh Awalan S3 untuk menunjukkan kapan mereka ditangkap. Ini membantu monitor model menentukan bagian data yang tepat untuk dianalisis. Misalnya, jika Anda memulai pekerjaan transformasi pada 2022-8-26 13PMUTC, maka data yang diambil diberi label dengan string awalan. 2022/08/26/13/

InferenceId Generasi

Saat Anda mengonfigurasi DataCaptureConfig untuk pekerjaan transformasi, Anda dapat mengaktifkan bendera GenerateInferenceId Boolean. Ini sangat berguna ketika Anda perlu menjalankan kualitas model dan pekerjaan pemantauan bias model, di mana Anda memerlukan data Ground Truth yang dicerna pengguna. Monitor model mengandalkan ID inferensi untuk mencocokkan data yang diambil dan data Ground Truth. Untuk detail tambahan tentang konsumsi Ground Truth, lihat. Menelan label Ground Truth dan menggabungkannya dengan prediksi Saat GenerateInferenceId aktif, output transformasi menambahkan ID inferensi (acakUUID) serta waktu mulai pekerjaan transformasi UTC untuk setiap catatan. Anda memerlukan dua nilai ini untuk menjalankan kualitas model dan pemantauan bias model. Saat Anda membuat data Ground Truth, Anda perlu memberikan ID inferensi yang sama agar sesuai dengan data keluaran. Saat ini, fitur ini mendukung transformasi output dalamCSV,JSON, dan JSONL format.

Jika output transformasi Anda dalam CSV format, file output terlihat seperti contoh berikut:

0, 1f1d57b1-2e6f-488c-8c30-db4e6d757861,2022-08-30T00:49:15Z 1, 22445434-0c67-45e9-bb4d-bd1bf26561e6,2022-08-30T00:49:15Z ...

Dua kolom terakhir adalah ID inferensi dan waktu mulai pekerjaan transformasi. Jangan memodifikasinya. Kolom yang tersisa adalah output pekerjaan transformasi Anda.

Jika output transformasi Anda dalam JSON atau JSONL format, file output terlihat seperti contoh berikut:

{"output": 0, "SageMakerInferenceId": "1f1d57b1-2e6f-488c-8c30-db4e6d757861", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} {"output": 1, "SageMakerInferenceId": "22445434-0c67-45e9-bb4d-bd1bf26561e6", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} ...

Ada dua bidang tambahan yang dicadangkan, SageMakerInferenceId danSageMakerInferenceTime. Jangan memodifikasi bidang ini jika Anda perlu menjalankan kualitas model atau pemantauan bias model — Anda memerlukannya untuk pekerjaan gabungan.