

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Captura de dados para inferência sobre HyperPod
<a name="sagemaker-hyperpod-model-deployment-data-capture"></a>

A captura de dados de SageMaker HyperPod inferência da Amazon permite que você registre dados de solicitação e resposta de inferência para monitoramento, depuração e melhoria do modelo. As solicitações de inferência fluem do endpoint de SageMaker IA para o Application Load Balancer e depois para o pod do modelo. Você pode ativar a captura de forma independente em cada nível, da camada mais externa (Nível 1, ponto final de SageMaker IA) até a camada mais profunda (Nível 3, pod modelo):


**Níveis de captura de dados**  

| Tier | Ponto de captura | O que é capturado | Caminho do Amazon S3 | 
| --- | --- | --- | --- | 
| Nível 1 | SageMaker Endpoint de IA | Cargas de entrada e saída, amostragem, criptografia AWS KMS  | {s3Uri}/{hash}/sme/ | 
| Nível 2 | Application Load Balancer | Registros de acesso (caminhos de solicitação, IPs de clientes, latências) | {s3Uri}/{hash}/alb/ | 
| Nível 3 | Modelo de cápsula | Cargas úteis de entrada e saída de inferência com limites configuráveis de amostragem, buffer e tamanho da carga útil. Oferece suporte à AWS KMS criptografia quando você fornece uma chave. Captura os dados mais próximos do modelo para uma visibilidade mais profunda. | {s3Uri}/{hash}/pod/ | 

O nível 1 captura cargas completas no limite da API SageMaker AI Runtime e exige o registro do endpoint. Use o Nível 1 quando precisar de compatibilidade com o SageMaker AI Model Monitor. O nível 3 captura cargas úteis completas no contêiner de inferência com limites configuráveis de buffer, amostragem e carga útil, e funciona sem registro de endpoint de IA. SageMaker Use o Nível 3 quando precisar da visibilidade mais profunda mais próxima do modelo. Habilite qualquer combinação — cada camada captura em um ponto diferente no fluxo de solicitações.

Todos os níveis gravam em seu bucket do Amazon S3. Se você não especificar um`s3Uri`, os dados serão armazenados no bucket de certificados TLS sob um `/data-capture/` prefixo por padrão. Dentro do bucket, cada implantação recebe um caminho exclusivo com base em um hash derivado do ARN do cluster, do namespace, do tipo de CRD e do nome da implantação. A mesma implantação sempre gera o mesmo prefixo, portanto, artefatos de captura de dados de vários envios de CRD direcionados ao mesmo fluxo de implantação para a mesma subpasta do Amazon S3.

Para desativar a captura de dados de uma camada, defina seu `enabled` campo como `false` ou remova a seção da camada do seu CRD. Para desativar toda a captura de dados, remova totalmente a `dataCapture` seção.

## Configurando a captura de dados
<a name="sagemaker-hyperpod-model-deployment-data-capture-config"></a>

Ative a captura de dados adicionando uma `dataCapture` seção ao seu CRD `InferenceEndpointConfig` ou ao `JumpStartModel` CRD. O `dataCapture` bloco contém uma configuração única `s3Uri` (opcional) e uma ou mais camadas. O exemplo a seguir mostra a estrutura geral com os três níveis habilitados:

```
  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`(Opcional, Cadeia de caracteres)  
O URI do Amazon S3 em que os dados capturados são armazenados. Se não for especificado, o bucket de certificados TLS será usado com um `/data-capture/` prefixo. Tamanho máximo: 512 caracteres. O bucket deve estar na mesma conta do cluster.

### Nível 1: captura de endpoints de SageMaker IA
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier1"></a>

O nível 1 usa a SageMaker IA nativa `DataCaptureConfig` para capturar cargas úteis de entrada e saída de inferência no nível do endpoint. Esse é o ponto de captura mais externo e é compatível com o SageMaker AI Model Monitor para monitoramento automatizado da qualidade dos dados. Para obter mais informações sobre a captura de dados de SageMaker IA, consulte [Capturar dados do endpoint em tempo real](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`(Obrigatório, booleano)  
Defina como `true` para ativar a captura de nível 1.

`sagemakerEndpoint.initialSamplingPercentage`(Opcional, número inteiro, 0—100)  
Porcentagem de solicitações de inferência a serem capturadas. Padrão: `100` (todas as solicitações são capturadas).

`sagemakerEndpoint.captureOptions`(Opcional, Lista)  
Especifica se a carga útil da solicitação de inferência (`Input`), a carga útil da resposta da inferência (`Output`) ou ambas. Cada item tem um `captureMode` campo definido como `Input` ou`Output`. Padrão: `[Input, Output]` (tanto a solicitação quanto a resposta são capturadas). Máximo: 32 itens.

`sagemakerEndpoint.kmsKeyId`(Opcional, Cadeia de caracteres)  
ARN, ID da chave, nome do alias ou ARN do alias de uma AWS KMS chave para criptografar dados capturados em repouso. Quando especificados, os dados capturados são criptografados com essa chave. Quando omitidos, os dados são criptografados com as configurações padrão de criptografia de bucket do Amazon S3. Tamanho máximo: 2048 caracteres.

`sagemakerEndpoint.captureContentTypeHeader` (Opcional)  
Especifica como interpretar o tipo de conteúdo das cargas capturadas. Suportes `jsonContentTypes` e `csvContentTypes` matrizes. Máximo: 10 itens cada.

### Nível 2: captura do balanceador de carga
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier2"></a>

O nível 2 permite registros de acesso ao ALB, capturando metadados de solicitações, como IPs de clientes, caminhos de solicitação e latências.

```
    loadBalancer:
      enabled: true
```

`loadBalancer.enabled`(Obrigatório, booleano)  
Defina como `true` para ativar a captura de nível 2.

**nota**  
Os registros de acesso do ALB capturam os metadados da solicitação, incluindo URLs e parâmetros de consulta. Use corpos de solicitação POST em vez de parâmetros de consulta para entradas confidenciais. Os logs do ALB não oferecem suporte à AWS KMS criptografia e usam somente a criptografia padrão do Amazon S3.

### Nível 3: captura de pod de modelo
<a name="sagemaker-hyperpod-model-deployment-data-capture-tier3"></a>

O nível 3 captura cargas de entrada e saída de inferência no nível do pod do modelo, fornecendo a visibilidade mais profunda do tráfego de inferência. Use esse nível quando precisar de um controle refinado sobre o buffer, os limites de tamanho da carga útil e a captura mais próxima do modelo.

```
    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`(Obrigatório, booleano)  
Defina como `true` para ativar a captura de nível 3.

`modelPod.initialSamplingPercentage`(Opcional, número inteiro, 0—100)  
Porcentagem de solicitações de inferência a serem capturadas. Padrão: `100` (todas as solicitações são capturadas).

`modelPod.captureOptions`(Opcional, Lista)  
Especifica se a carga útil da solicitação de inferência (`Input`), a carga útil da resposta da inferência (`Output`) ou ambas. Cada item tem um `captureMode` campo definido como `Input` ou`Output`. Padrão: `[Input, Output]` (tanto a solicitação quanto a resposta são capturadas). Máximo: 32 itens.

`modelPod.kmsKeyId`(Opcional, Cadeia de caracteres)  
ARN, ID da chave, nome do alias ou ARN do alias de uma AWS KMS chave para criptografar dados capturados em repouso. Quando especificados, os dados capturados são criptografados com essa chave. Quando omitidos, os dados são criptografados com as configurações padrão de criptografia de bucket do Amazon S3. Tamanho máximo: 2048 caracteres.

`modelPod.bufferConfig.batchSize`(Opcional, número inteiro, 1—1000)  
Número de solicitações de inferência em lote antes da descarga. Padrão: `10`.

`modelPod.bufferConfig.flushIntervalSeconds`(Opcional, número inteiro, 10—300)  
Tempo máximo em segundos em que um lote é retido antes de ser lavado, independentemente de o tamanho do lote ter sido atingido. Padrão: `60`.

`modelPod.payloadConfig.maxPayloadSizeKB` (opcional, inteiro)  
Tamanho máximo da carga útil em KB por solicitação. As cargas que excedem esse limite são truncadas. Se não for definido, toda a carga útil será capturada.

## Atualizar complemento
<a name="sagemaker-hyperpod-model-deployment-update-addon"></a>

**Pré-requisitos: Autenticar e conectar-se ao seu cluster EKS**

Autentique-se em sua AWS conta. Antes de se conectar, colete o nome do cluster EKS, a região e o ARN HyperPod do cluster:

```
CLUSTER={{EKS_CLUSTER_NAME}}
REGION={{REGION}}
HP_ARN={{HYPERPOD_CLUSTER_ARN}}
```

Conecte-se ao seu cluster EKS:

```
aws eks update-kubeconfig --region {{REGION}} --name {{EKS_CLUSTER_NAME}}
```

Atualize a configuração do complemento:

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

**Aguarde até que o complemento esteja ativo e, em seguida, implante os modelos**

## Atualização de permissões para clusters existentes
<a name="sagemaker-hyperpod-model-deployment-data-capture-iam"></a>

Para habilitar a captura de dados em suas implantações de HyperPod inferência, configure as seguintes permissões do IAM.

1. **Função de execução do operador de inferência**

   Adicione a seguinte permissão do S3:

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

   Adicione o nome do seu bucket se quiser usar um bucket S3 personalizado.

   Se você usa uma chave KMS gerenciada pelo cliente, adicione também:

   ```
   {
       "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. **Função do driver S3 CSI**

   Adicione a seguinte permissão do S3:

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

   Se você usa uma chave KMS gerenciada pelo cliente, adicione também:

   ```
   {
       "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. **Política do S3 Bucket**

   Adicione essa política de bucket somente se você habilitar a captura de dados do balanceador de carga (Nível 2) para permitir que o ALB grave registros de acesso. `$ACCOUNT_ID`Substitua pelo ID AWS da sua conta.

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

## Práticas recomendadas
<a name="sagemaker-hyperpod-model-deployment-data-capture-perf"></a>
+ Use `initialSamplingPercentage` para controlar o volume de dados capturados. Comece com uma porcentagem menor na produção e aumente conforme necessário.
+ Use `payloadConfig.maxPayloadSizeKB` (Nível 3) para limitar o tamanho das cargas capturadas e controlar os custos de armazenamento.
+ Especifique um `kmsKeyId` para os níveis 1 e 3 se sua carga de trabalho exigir criptografia em repouso com sua própria AWS KMS chave.