

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á.

# Defina uma configuração de carga de trabalho para recomendações generativas de inferência de IA
<a name="generative-ai-inference-recommendations-workload-config"></a>

A configuração da carga de trabalho define os padrões de tráfego e os parâmetros de referência que a SageMaker IA usa ao avaliar seu modelo ou endpoint. Você cria uma configuração de carga de trabalho antes de executar um trabalho de recomendação ou um trabalho de benchmark. A mesma configuração de carga de trabalho pode ser reutilizada em vários trabalhos.

Você pode definir sua carga de trabalho de duas maneiras:
+ **Especificação em linha.** Especifique as distribuições de tokens e os parâmetros de tráfego diretamente na chamada da API.
+ **Conjunto de dados do Amazon S3.** Forneça um conjunto de dados representativo de solicitações reais usando o `DatasetConfig` parâmetro.

## Crie uma configuração de carga de trabalho com parâmetros embutidos
<a name="generative-ai-inference-recommendations-workload-config-inline"></a>

Use parâmetros embutidos para especificar as distribuições de tokens quando você não tiver um conjunto de dados representativo.

**Python (boto3)**

```
import boto3
import json

client = boto3.client("sagemaker", region_name="us-west-2")

workload_spec = {
    "benchmark": {"type": "aiperf"},
    "parameters": {
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150,
        "output_tokens_mean": 150,
        "output_tokens_stddev": 50,
    },
}

response = client.create_ai_workload_config(
    AIWorkloadConfigName="my-workload-config",
    AIWorkloadConfigs={
        "WorkloadSpec": {"Inline": json.dumps(workload_spec)}
    },
)
print(response["AIWorkloadConfigArn"])
```

**AWS CLI**

```
aws sagemaker create-ai-workload-config \
  --ai-workload-config-name "my-workload-config" \
  --ai-workload-configs '{"WorkloadSpec": {"Inline": "{\"benchmark\": {\"type\": \"aiperf\"}, \"parameters\": {\"prompt_input_tokens_mean\": 550, \"output_tokens_mean\": 150}}"}}' \
  --region us-west-2
```

## Crie uma configuração de carga de trabalho com um conjunto de dados
<a name="generative-ai-inference-recommendations-workload-config-dataset"></a>

Se você tiver um conjunto de dados representativo de solicitações reais, forneça-o por meio do Amazon S3 usando `DatasetConfig` o parâmetro com `InputDataConfig` um canal.

```
response = client.create_ai_workload_config(
    AIWorkloadConfigName="my-dataset-workload",
    DatasetConfig={
        "InputDataConfig": [
            {
                "ChannelName": "traffic",
                "DataSource": {
                    "S3DataSource": {
                        "S3Uri": "s3://DOC-EXAMPLE-BUCKET/datasets/traffic-trace/"
                    }
                }
            }
        ]
    },
    AIWorkloadConfigs={
        "WorkloadSpec": {"Inline": json.dumps(workload_spec)}
    },
)
```

Por padrão, solicitações sintéticas são geradas. Você também pode usar um conjunto de dados público ou fornecer um conjunto de dados personalizado do Amazon S3.

## Configuração da carga de trabalho para benchmarking
<a name="generative-ai-inference-recommendations-workload-config-benchmark"></a>

Ao criar uma configuração de carga de trabalho para comparar um endpoint existente, você pode especificar parâmetros adicionais, como tokenizador, simultaneidade, contagem de solicitações e taxa de solicitações.

```
workload_spec = {
    "benchmark": {"type": "aiperf"},
    "parameters": {
        "tokenizer": "TinyLlama/TinyLlama-1.1B-Chat-v1.0",
        "concurrency": 1,
        "request_count": 10,
        "streaming": True,
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150,
        "output_tokens_mean": 50,
        "output_tokens_stddev": 10,
        "request_rate": 1.0,
        "benchmark_duration": 60,
    },
    "tooling": {"api_standard": "openai", "version": "0.6.0"},
}
```

## Gerenciar configurações de carga de trabalho
<a name="generative-ai-inference-recommendations-workload-config-manage"></a>

Use as operações a seguir para gerenciar suas configurações de carga de trabalho.

```
# List workload configurations
response = client.list_ai_workload_configs(MaxResults=10)
for config in response["AIWorkloadConfigs"]:
    print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}")

# Describe a workload configuration
response = client.describe_ai_workload_config(
    AIWorkloadConfigName="my-workload-config"
)

# Delete a workload configuration
client.delete_ai_workload_config(
    AIWorkloadConfigName="my-workload-config"
)
```

## Referência de especificação da carga de trabalho
<a name="generative-ai-inference-recommendations-workload-config-reference"></a>

Esta seção fornece o esquema completo para o documento JSON de especificação de carga de trabalho que você passa no `WorkloadSpec.Inline` campo ao criar uma configuração de carga de trabalho.

### Sintaxe
<a name="generative-ai-inference-recommendations-workload-config-syntax"></a>

Veja a seguir um exemplo representativo de uma especificação de carga de trabalho com parâmetros comumente usados. Todos os parâmetros estão documentados na tabela de referência abaixo.

```
{
    "benchmark": {
        "type": "aiperf"
    },
    "parameters": {
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150.0,
        "output_tokens_mean": 150,
        "output_tokens_stddev": 50.0,
        "concurrency": 10,
        "request_count": 100,
        "request_rate": 5.0,
        "benchmark_duration": 120,
        "streaming": true,
        "tokenizer": "meta-llama/Llama-3.2-1B"
    },
    "secrets": {
        "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf"
    },
    "tooling": {
        "api_standard": "openai"
    }
}
```

### Chaves de especificação da carga de trabalho
<a name="generative-ai-inference-recommendations-workload-config-keys"></a>

A especificação da carga de trabalho contém as seguintes chaves de nível superior. Chaves desconhecidas são rejeitadas.

#### referência
<a name="workload-config-ref-benchmark"></a>

Mapeamento necessário. Identifica a ferramenta de benchmarking a ser usada.

`benchmark/type`  
Obrigatório. O motor de referência. O único valor válido é `aiperf`.

#### parameters
<a name="workload-config-ref-parameters"></a>

Mapeamento opcional. Parâmetros de referência passados para o mecanismo AiPerf. Nomes de parâmetros desconhecidos são rejeitados. Todos os parâmetros são opcionais, salvo indicação em contrário.

**Distribuição de tokens**

`prompt_input_tokens_mean`  
Inteiro. Número médio de tokens de entrada por solicitação para geração de prompt sintético. Pseudônimos:`synthetic_input_tokens_mean`,`isl`.

`prompt_input_tokens_stddev`  
Flutuar. Desvio padrão da contagem de tokens de entrada. Pseudônimos:`synthetic_input_tokens_stddev`,`isl_stddev`.

`output_tokens_mean`  
Inteiro. Número médio de tokens de saída por solicitação. Pseudônimos:`prompt_output_tokens_mean`,`osl`.

`output_tokens_stddev`  
Flutuar. Desvio padrão da contagem de tokens de saída. Pseudônimos:`prompt_output_tokens_stddev`,`osl_stddev`.

**Modelagem de tráfego**

`concurrency`  
Inteiro. Número de solicitações simultâneas a serem enviadas durante o benchmark.

`request_count`  
Inteiro. Número total de solicitações a serem enviadas. Alias: `num_requests`.

`request_rate`  
Flutuar. Solicitações alvo por segundo.

`benchmark_duration`  
Inteiro. Duração do benchmark em segundos.

`max_concurrency`  
Inteiro. Número máximo de solicitações simultâneas permitidas.

`request_rate_mode`  
String. Padrão de chegada da solicitação. Alias: `arrival_pattern`.

`arrival_smoothness`  
Flutuar. Controla a intensidade das chegadas de solicitações. Valores mais altos produzem um tráfego mais suave. Alias: `vllm_burstiness`.

`prefill_concurrency`  
Inteiro. Número de solicitações simultâneas de pré-preenchimento.

**Geral**

`streaming`  
Booliano. Se deve usar respostas de streaming. Padrão: `true`.

`tokenizer`  
Corda. HuggingFace nome do modelo ou caminho do diretório local para o tokenizador usado para contar tokens. Exemplo: `meta-llama/Llama-3.2-1B`.

`hf_token`  
String. Token de acesso Hugging Face para baixar modelos e tokenizadores fechados. Alias: `HF_TOKEN`. Para valores confidenciais, use a `secrets` seção em vez de passar o token em texto simples.

`request_timeout_seconds`  
Inteiro. Tempo limite em segundos para solicitações individuais.

`benchmark_grace_period`  
Inteiro. Período de carência em segundos após a conclusão do benchmark para permitir que as solicitações em voo sejam concluídas.

`extra_inputs`  
String. JSON-encoded Entradas adicionais a serem incluídas em cada carga de solicitação.

`random_seed`  
Inteiro. Semente para geração de números aleatórios. Padrão: `42`.

`verbose`  
Booliano. Ative o registro detalhado. Padrão: `false`.

`num_conversations`  
Inteiro. Número de conversas em vários turnos para simular. Pseudônimos:`conversation_num`,`num_sessions`.

`model_selection_strategy`  
String. Estratégia para selecionar modelos quando vários modelos estão disponíveis no endpoint.

**Aquecimento**

Os parâmetros de aquecimento controlam uma fase de aquecimento opcional que é executada antes do benchmark medido. Isso prepara os caches do servidor de modelos e a compilação JIT.

`warmup_duration`  
Inteiro. Duração da fase de aquecimento em segundos.

`warmup_request_count`  
Inteiro. Número de solicitações de aquecimento. Alias: `num_warmup_requests`.

`warmup_concurrency`  
Inteiro. Nível de simultaneidade durante o aquecimento.

`warmup_prefill_concurrency`  
Inteiro. Preencha previamente a concorrência durante o aquecimento.

`warmup_request_rate`  
Flutuar. Taxa de solicitação durante o aquecimento.

`warmup_arrival_pattern`  
String. Padrão de chegada durante o aquecimento.

`warmup_grace_period`  
Flutuar. Período de carência em segundos após a conclusão do aquecimento.

`num_warmup_sessions`  
Inteiro. Número de sessões de aquecimento.

**Conjunto de dados**

`public_dataset`  
String. Nome de um conjunto de dados público a ser usado para solicitações de benchmark em vez de geração sintética.

`custom_dataset_type`  
String. Formato de um conjunto de dados personalizado fornecido pelo Amazon S3.

`input_file`  
String. Caminho para o arquivo do conjunto de dados de entrada dentro do contêiner de benchmark. Quando você fornece um conjunto de dados por meio do `DatasetConfig` parâmetro, os dados são montados em`/opt/ml/input/data/{ChannelName}/`. Use esse parâmetro para apontar para um arquivo específico dentro desse caminho de montagem.

**Entradas de imagem**

Parâmetros para comparar modelos multimodais que aceitam entradas de imagem.

`image_width_mean`  
Flutuar. Largura média das imagens sintéticas em pixels.

`image_width_stddev`  
Flutuar. Desvio padrão da largura da imagem.

`image_height_mean`  
Flutuar. Altura média das imagens sintéticas em pixels.

`image_height_stddev`  
Flutuar. Desvio padrão da altura da imagem.

`image_batch_size`  
Inteiro. Número de imagens por solicitação. Alias: `batch_size_image`.

`image_format`  
String. Formato da imagem (por exemplo,`png`,`jpeg`).

**Entradas de vídeo**

Parâmetros para comparar modelos multimodais que aceitam entradas de vídeo.

`video_batch_size`  
Inteiro. Número de vídeos por solicitação. Alias: `batch_size_video`.

`video_duration`  
Flutuar. Duração dos vídeos sintéticos em segundos.

`video_fps`  
Inteiro. Quadros por segundo para vídeos sintéticos.

`video_width`  
Inteiro. Largura dos vídeos sintéticos em pixels.

`video_height`  
Inteiro. Altura dos vídeos sintéticos em pixels.

`video_synth_type`  
String. Tipo de geração de vídeo sintético.

`video_format`  
String. Formato de contêiner de vídeo.

`video_codec`  
String. Codec de vídeo.

`video_audio_sample_rate`  
Inteiro. Taxa de amostragem de áudio em Hz.

`video_audio_num_channels`  
Inteiro. O número de canais de áudio.

`video_audio_codec`  
String. Codec de áudio.

`video_audio_depth`  
String. Profundidade de bits de áudio.

#### segredos
<a name="workload-config-ref-secrets"></a>

Mapeamento opcional. Use esta seção para transmitir valores confidenciais (como tokens de acesso do Hugging Face) referenciando os segredos do Secrets AWS Manager em vez de incluí-los como texto simples. `parameters`

Cada chave é um nome de parâmetro e o valor é o ARN do segredo no AWS Secrets Manager. No horário de início do trabalho, o serviço resolve o segredo e injeta o valor no ambiente de referência.

```
"secrets": {
    "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf"
}
```

#### ferramental
<a name="workload-config-ref-tooling"></a>

Mapeamento opcional. Especifica o padrão da API e a versão da ferramenta.

`tooling/api_standard`  
Opcional. O padrão de API usado pelo endpoint. Por exemplo, .`openai`

`tooling/version`  
Opcional. A versão da ferramenta de benchmarking. O padrão é a versão mais recente disponível.