View a markdown version of this page

Pengambilan data untuk inferensi pada HyperPod - Amazon SageMaker AI

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

Pengambilan data untuk inferensi pada HyperPod

Pengambilan data SageMaker HyperPod inferensi Amazon memungkinkan Anda merekam permintaan inferensi dan data respons untuk pemantauan model, debugging, dan peningkatan model. Permintaan inferensi mengalir dari titik akhir SageMaker AI ke Application Load Balancer dan kemudian ke pod model. Anda dapat mengaktifkan penangkapan secara independen di setiap level, dari lapisan terluar (Tier 1, titik akhir SageMaker AI) hingga lapisan terdalam (Tier 3, model pod):

Tingkatan pengambilan data
Tingkat Titik tangkap Apa yang ditangkap Jalur Amazon S3
Tingkat 1 SageMaker Titik akhir AI Muatan input dan output, pengambilan sampel, enkripsi AWS KMS {s3Uri}/{hash}/sme/
Tingkat 2 Penyeimbang Beban Aplikasi Akses log (jalur permintaan, IP klien, latensi) {s3Uri}/{hash}/alb/
Tingkat 3 Model pod Muatan input dan output inferensi dengan batas ukuran sampling, buffering, dan payload yang dapat dikonfigurasi. Mendukung AWS KMS enkripsi saat Anda memberikan kunci. Menangkap data yang paling dekat dengan model untuk visibilitas terdalam. {s3Uri}/{hash}/pod/

Tier 1 menangkap muatan penuh pada batas SageMaker AI Runtime API dan memerlukan pendaftaran endpoint. Gunakan Tier 1 saat Anda membutuhkan kompatibilitas dengan SageMaker AI Model Monitor. Tier 3 menangkap muatan penuh pada wadah inferensi dengan batas buffering, sampling, dan payload yang dapat dikonfigurasi, dan berfungsi tanpa registrasi titik akhir AI. SageMaker Gunakan Tier 3 saat Anda membutuhkan visibilitas terdalam yang paling dekat dengan model. Aktifkan kombinasi apa pun — setiap tingkatan menangkap pada titik yang berbeda dalam alur permintaan.

Semua tingkatan menulis ke bucket Amazon S3 Anda. Jika Anda tidak menentukans3Uri, data disimpan dalam bucket sertifikat TLS di bawah /data-capture/ awalan secara default. Di dalam bucket, setiap penerapan mendapatkan jalur unik berdasarkan hash yang berasal dari ARN cluster, namespace, tipe CRD, dan nama penerapan. Penerapan yang sama selalu menghasilkan awalan yang sama, sehingga artefak menangkap data dari beberapa pengiriman CRD yang menargetkan aliran penerapan yang sama ke subfolder Amazon S3 yang sama.

Untuk menonaktifkan pengambilan data untuk suatu tingkatan, atur enabled bidangnya ke false atau hapus bagian tier dari CRD Anda. Untuk menonaktifkan semua pengambilan data, hapus dataCapture bagian seluruhnya.

Mengkonfigurasi pengambilan data

Aktifkan pengambilan data dengan menambahkan dataCapture bagian ke JumpStartModel CRD InferenceEndpointConfig atau Anda. dataCaptureBlok berisi konfigurasi tingkat tunggal s3Uri (opsional) dan satu atau lebih. Contoh berikut menunjukkan struktur keseluruhan dengan ketiga tingkatan diaktifkan:

dataCapture: s3Uri: s3://my-capture-bucket/captures/ # Optional. Defaults to TLS bucket. sagemakerEndpoint: enabled: true # Tier 1 fields... loadBalancer: enabled: true modelPod: enabled: true # Tier 3 fields...
dataCapture.s3Uri(Opsional, String)

URI Amazon S3 tempat data yang diambil disimpan. Jika tidak ditentukan, bucket sertifikat TLS digunakan dengan /data-capture/ awalan. Panjang maksimum: 512 karakter. Bucket harus berada di akun yang sama dengan cluster.

Tingkat 1: SageMaker Penangkapan titik akhir AI

Tier 1 menggunakan SageMaker AI asli DataCaptureConfig untuk menangkap input inferensi dan muatan output di tingkat titik akhir. Ini adalah titik pengambilan terluar dan kompatibel dengan SageMaker AI Model Monitor untuk pemantauan kualitas data otomatis. Untuk informasi selengkapnya tentang pengambilan data SageMaker AI, lihat Menangkap data dari titik akhir waktu nyata.

sagemakerEndpoint: enabled: true initialSamplingPercentage: 100 kmsKeyId: arn:aws:kms:us-east-2:123456789012:key/my-key-id captureOptions: - captureMode: Input - captureMode: Output captureContentTypeHeader: jsonContentTypes: - application/json
sagemakerEndpoint.enabled(Diperlukan, Boolean)

Setel true untuk mengaktifkan penangkapan Tingkat 1.

sagemakerEndpoint.initialSamplingPercentage(Opsional, Integer, 0-100)

Persentase permintaan inferensi untuk ditangkap. Default: 100 (semua permintaan ditangkap).

sagemakerEndpoint.captureOptions(Opsional, Daftar)

Menentukan apakah untuk menangkap permintaan inferensi payload (Input), inferensi respon payload (Output), atau keduanya. Setiap item memiliki captureMode bidang yang disetel ke Input atauOutput. Default: [Input, Output] (permintaan dan respons ditangkap). Maksimal: 32 item.

sagemakerEndpoint.kmsKeyId(Opsional, String)

ARN, ID kunci, nama alias, atau alias ARN dari AWS KMS kunci untuk mengenkripsi data yang diambil saat istirahat. Ketika ditentukan, data yang diambil dienkripsi dengan kunci ini. Saat dihilangkan, data dienkripsi dengan pengaturan enkripsi bucket Amazon S3 default. Panjang maksimum: 2048 karakter.

sagemakerEndpoint.captureContentTypeHeader (Opsional)

Menentukan bagaimana menafsirkan jenis konten payloads ditangkap. Mendukung jsonContentTypes dan csvContentTypes array. Maksimal: 10 item masing-masing.

Tingkat 2: Penangkapan penyeimbang beban

Tier 2 memungkinkan log akses ALB, menangkap metadata permintaan seperti IP klien, jalur permintaan, dan latensi.

loadBalancer: enabled: true
loadBalancer.enabled(Diperlukan, Boolean)

Setel true untuk mengaktifkan penangkapan Tingkat 2.

catatan

Log akses ALB menangkap metadata permintaan termasuk URL dan parameter kueri. Gunakan badan permintaan POST daripada parameter kueri untuk input sensitif. Log ALB tidak mendukung AWS KMS enkripsi dan hanya menggunakan enkripsi default Amazon S3.

Tingkat 3: Penangkapan pod model

Tier 3 menangkap muatan input dan output inferensi pada tingkat pod model, memberikan visibilitas terdalam ke lalu lintas inferensi. Gunakan tingkat ini saat Anda membutuhkan kontrol halus atas buffering, batas ukuran muatan, dan tangkapan yang paling dekat dengan model.

modelPod: enabled: true initialSamplingPercentage: 100 kmsKeyId: arn:aws:kms:us-east-2:123456789012:key/my-key-id captureOptions: - captureMode: Input - captureMode: Output bufferConfig: batchSize: 100 flushIntervalSeconds: 60 payloadConfig: maxPayloadSizeKB: 1024
modelPod.enabled(Diperlukan, Boolean)

Setel true untuk mengaktifkan penangkapan Tingkat 3.

modelPod.initialSamplingPercentage(Opsional, Integer, 0-100)

Persentase permintaan inferensi untuk ditangkap. Default: 100 (semua permintaan ditangkap).

modelPod.captureOptions(Opsional, Daftar)

Menentukan apakah untuk menangkap permintaan inferensi payload (Input), inferensi respon payload (Output), atau keduanya. Setiap item memiliki captureMode bidang yang disetel ke Input atauOutput. Default: [Input, Output] (permintaan dan respons ditangkap). Maksimal: 32 item.

modelPod.kmsKeyId(Opsional, String)

ARN, ID kunci, nama alias, atau alias ARN dari AWS KMS kunci untuk mengenkripsi data yang diambil saat istirahat. Ketika ditentukan, data yang diambil dienkripsi dengan kunci ini. Saat dihilangkan, data dienkripsi dengan setelan enkripsi bucket Amazon S3 default. Panjang maksimum: 2048 karakter.

modelPod.bufferConfig.batchSize(Opsional, Integer, 1-1000)

Jumlah permintaan inferensi untuk batch sebelum pembilasan. Default: 10.

modelPod.bufferConfig.flushIntervalSeconds(Opsional, Integer, 10-300)

Waktu maksimum dalam hitungan detik batch ditahan sebelum dibilas, terlepas dari apakah ukuran batch telah tercapai. Default: 60.

modelPod.payloadConfig.maxPayloadSizeKB(Opsional, Integer)

Ukuran muatan maksimum dalam KB per permintaan. Muatan yang melebihi batas ini terpotong. Jika tidak diatur, seluruh muatan ditangkap.

Perbarui Addon

Prasyarat: Otentikasi dan sambungkan ke kluster EKS Anda

Otentikasi ke AWS akun Anda. Sebelum menghubungkan, kumpulkan nama cluster EKS, wilayah, dan HyperPod ARN cluster:

CLUSTER=EKS_CLUSTER_NAME REGION=REGION HP_ARN=HYPERPOD_CLUSTER_ARN

Connect ke kluster EKS Anda:

aws eks update-kubeconfig --region REGION --name EKS_CLUSTER_NAME

Perbarui konfigurasi addon:

VERSION=$(aws eks describe-addon --cluster-name $CLUSTER --addon-name amazon-sagemaker-hyperpod-inference --region $REGION --query 'addon.addonVersion' --output text) CURRENT_CONFIG=$(aws eks describe-addon --cluster-name $CLUSTER --addon-name amazon-sagemaker-hyperpod-inference --region $REGION --query 'addon.configurationValues' --output text) NEW_CONFIG=$(echo "$CURRENT_CONFIG" | jq --arg arn "$HP_ARN" '. + {hyperpodClusterArn: $arn}') aws eks update-addon \ --cluster-name $CLUSTER \ --addon-name amazon-sagemaker-hyperpod-inference \ --addon-version "$VERSION" \ --configuration-values "$NEW_CONFIG" \ --resolve-conflicts OVERWRITE \ --region $REGION

Tunggu hingga Addon aktif dan kemudian terapkan modelnya

Memperbarui izin untuk cluster yang ada

Untuk mengaktifkan pengambilan data pada penerapan HyperPod Inferensi Anda, konfigurasikan izin IAM berikut.

  1. Peran Eksekusi Operator Inferensi

    Tambahkan izin S3 berikut:

    { "Sid": "DataCaptureS3Access", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }

    Tambahkan nama bucket Anda jika Anda ingin menggunakan bucket S3 khusus.

    Jika Anda menggunakan kunci KMS yang dikelola pelanggan, tambahkan juga:

    { "Sid": "DataCaptureKmsAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::hyperpod-tls*" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }
  2. Peran Driver S3 CSI

    Tambahkan izin S3 berikut:

    { "Sid": "DataCaptureWriteAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }

    Jika Anda menggunakan kunci KMS yang dikelola pelanggan, tambahkan juga:

    { "Sid": "DataCaptureKmsAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:*:*:key/*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }
  3. Kebijakan Bucket S3

    Tambahkan kebijakan bucket ini hanya jika Anda mengaktifkan pengambilan data penyeimbang beban (Tingkat 2) untuk memungkinkan ALB menulis log akses. Ganti $ACCOUNT_ID dengan ID AWS akun Anda.

    { "Sid": "AllowALBAccessLogDelivery", "Effect": "Allow", "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::hyperpod-tls*/data-capture/*", "Condition": { "StringEquals": { "aws:SourceAccount": "$ACCOUNT_ID" } } }

Praktik terbaik

  • Gunakan initialSamplingPercentage untuk mengontrol volume data yang diambil. Mulailah dengan persentase produksi yang lebih rendah dan tingkatkan sesuai kebutuhan.

  • Gunakan payloadConfig.maxPayloadSizeKB (Tingkat 3) untuk membatasi ukuran muatan yang ditangkap dan mengontrol biaya penyimpanan.

  • Tentukan kmsKeyId untuk Tier 1 dan Tier 3 jika beban kerja Anda memerlukan enkripsi saat istirahat dengan AWS KMS kunci Anda sendiri.