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):
| 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
trueuntuk 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 memilikicaptureModebidang yang disetel keInputatauOutput. 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
jsonContentTypesdancsvContentTypesarray. 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
trueuntuk 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
trueuntuk 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 memilikicaptureModebidang yang disetel keInputatauOutput. 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_NAMEREGION=REGIONHP_ARN=HYPERPOD_CLUSTER_ARN
Connect ke kluster EKS Anda:
aws eks update-kubeconfig --regionREGION--nameEKS_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.
-
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}" } } } -
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}" } } } -
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_IDdengan 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
initialSamplingPercentageuntuk 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
kmsKeyIduntuk Tier 1 dan Tier 3 jika beban kerja Anda memerlukan enkripsi saat istirahat dengan AWS KMS kunci Anda sendiri.