

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
<a name="sagemaker-hyperpod-model-deployment-data-capture"></a>

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 menentukan`s3Uri`, 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
<a name="sagemaker-hyperpod-model-deployment-data-capture-config"></a>

Aktifkan pengambilan data dengan menambahkan `dataCapture` bagian ke `JumpStartModel` CRD `InferenceEndpointConfig` atau Anda. `dataCapture`Blok 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
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier1"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html).

```
    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` atau`Output`. 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
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier2"></a>

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
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier3"></a>

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` atau`Output`. 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
<a name="sagemaker-hyperpod-model-deployment-update-addon"></a>

**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
<a name="sagemaker-hyperpod-model-deployment-data-capture-iam"></a>

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}"
           }
       }
   }
   ```

1. **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}"
           }
       }
   }
   ```

1. **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
<a name="sagemaker-hyperpod-model-deployment-data-capture-perf"></a>
+ 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.