

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configure una configuración de carga de trabajo para recomendaciones generativas de inferencias de IA
<a name="generative-ai-inference-recommendations-workload-config"></a>

Una configuración de carga de trabajo define los patrones de tráfico y los parámetros de referencia que utiliza la SageMaker IA al evaluar su modelo o punto final. Debe crear una configuración de carga de trabajo antes de ejecutar un trabajo de recomendación o un trabajo de referencia. La misma configuración de carga de trabajo se puede reutilizar en varios trabajos.

Puede definir su carga de trabajo de dos maneras:
+ **Especificación en línea.** Especifique las distribuciones de los tokens y los parámetros de tráfico directamente en la llamada a la API.
+ **Conjunto de datos de Amazon S3.** Proporcione un conjunto de datos representativo de solicitudes reales mediante el `DatasetConfig` parámetro.

## Cree una configuración de carga de trabajo con parámetros en línea
<a name="generative-ai-inference-recommendations-workload-config-inline"></a>

Utilice parámetros en línea para especificar las distribuciones de los tokens cuando no tenga un conjunto de datos 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
```

## Cree una configuración de carga de trabajo con un conjunto de datos
<a name="generative-ai-inference-recommendations-workload-config-dataset"></a>

Si tiene un conjunto de datos representativo de solicitudes reales, envíelo a través de Amazon S3 mediante el `DatasetConfig` parámetro con un `InputDataConfig` 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)}
    },
)
```

De forma predeterminada, se generan solicitudes sintéticas. También puede usar un conjunto de datos público o proporcionar un conjunto de datos personalizado de Amazon S3.

## Configuración de la carga de trabajo para la evaluación comparativa
<a name="generative-ai-inference-recommendations-workload-config-benchmark"></a>

Al crear una configuración de carga de trabajo para realizar una evaluación comparativa de un punto final existente, puede especificar parámetros adicionales, como el tokenizador, la simultaneidad, el recuento de solicitudes y la tasa de solicitudes.

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

## Gestione las configuraciones de la carga
<a name="generative-ai-inference-recommendations-workload-config-manage"></a>

Utilice las siguientes operaciones para gestionar las configuraciones de la carga de trabajo.

```
# 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"
)
```

## Referencia de especificaciones de carga de trabajo
<a name="generative-ai-inference-recommendations-workload-config-reference"></a>

En esta sección se proporciona el esquema completo del documento JSON de especificación de carga de trabajo que se pasa `WorkloadSpec.Inline` sobre el terreno al crear una configuración de carga de trabajo.

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

El siguiente es un ejemplo representativo de una especificación de carga de trabajo con parámetros de uso común. Todos los parámetros se documentan en la siguiente tabla de referencia.

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

### Claves de especificación de la carga
<a name="generative-ai-inference-recommendations-workload-config-keys"></a>

La especificación de la carga de trabajo contiene las siguientes claves de nivel superior. Se rechazan las claves desconocidas.

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

Mapeo obligatorio. Identifica la herramienta de evaluación comparativa que se debe utilizar.

`benchmark/type`  
Obligatorio. El motor de referencia. El único valor válido es `aiperf`.

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

Mapeo opcional. Los parámetros de referencia se transfieren al motor AiPerf. Se rechazan los nombres de parámetros desconocidos. Todos los parámetros son opcionales a menos que se indique lo contrario.

**Distribución de fichas**

`prompt_input_tokens_mean`  
Entero. Número medio de tokens de entrada por solicitud para la generación de señales sintéticas. Alias:`synthetic_input_tokens_mean`,`isl`.

`prompt_input_tokens_stddev`  
Flotar. Desviación estándar del recuento de fichas de entrada. Alias:`synthetic_input_tokens_stddev`,`isl_stddev`.

`output_tokens_mean`  
Entero. Número medio de tokens de salida por solicitud. Alias:`prompt_output_tokens_mean`,`osl`.

`output_tokens_stddev`  
Flotar. Desviación estándar del recuento de fichas de salida. Alias:`prompt_output_tokens_stddev`,`osl_stddev`.

**Modelado del tráfico**

`concurrency`  
Entero. Número de solicitudes simultáneas que se van a enviar durante el punto de referencia.

`request_count`  
Entero. Número total de solicitudes que se van a enviar. Alias: `num_requests`.

`request_rate`  
Flotar. Dirija las solicitudes por segundo.

`benchmark_duration`  
Entero. Duración del punto de referencia en segundos.

`max_concurrency`  
Entero. Número máximo de solicitudes simultáneas permitidas.

`request_rate_mode`  
Cadena. Solicita un patrón de llegada. Alias: `arrival_pattern`.

`arrival_smoothness`  
Flota. Controla la cantidad de solicitudes que llegan. Los valores más altos producen un tráfico más fluido. Alias: `vllm_burstiness`.

`prefill_concurrency`  
Entero. Número de solicitudes de prellenado simultáneas.

**General**

`streaming`  
Booleano. Si se deben utilizar las respuestas en streaming. Predeterminado: `true`.

`tokenizer`  
Cadena. HuggingFace nombre del modelo o ruta del directorio local del tokenizador utilizado para contar los tokens. Ejemplo: `meta-llama/Llama-3.2-1B`.

`hf_token`  
Cadena. Token de acceso Hugging Face para descargar modelos y tokenizadores cerrados. Alias: `HF_TOKEN`. Para valores sensibles, usa la `secrets` sección en lugar de pasar el token en texto plano.

`request_timeout_seconds`  
Entero. Tiempo de espera en segundos para solicitudes individuales.

`benchmark_grace_period`  
Entero. Período de gracia en segundos después de que se complete el punto de referencia para permitir que finalicen las solicitudes durante el vuelo.

`extra_inputs`  
Cadena. JSON-encoded Entradas adicionales para incluir en la carga útil de cada solicitud.

`random_seed`  
Entero. Semilla para la generación de números aleatorios. Predeterminado: `42`.

`verbose`  
Booleano. Habilite el registro detallado. Predeterminado: `false`.

`num_conversations`  
Entero. Número de conversaciones de varios turnos para simular. Alias:`conversation_num`,. `num_sessions`

`model_selection_strategy`  
Cadena. Estrategia para seleccionar modelos cuando hay varios modelos disponibles en el punto final.

**Calentamiento**

Los parámetros de calentamiento controlan una fase de calentamiento opcional que se ejecuta antes del punto de referencia medido. Esto prepara las cachés del servidor modelo y la compilación JIT.

`warmup_duration`  
Entero. Duración de la fase de calentamiento en segundos.

`warmup_request_count`  
Entero. Número de solicitudes de calentamiento. Alias: `num_warmup_requests`.

`warmup_concurrency`  
Entero. Nivel de simultaneidad durante el calentamiento.

`warmup_prefill_concurrency`  
Entero. Prellene la simultaneidad durante el calentamiento.

`warmup_request_rate`  
Flota. Solicita la tarifa durante el calentamiento.

`warmup_arrival_pattern`  
Cadena. Patrón de llegada durante el calentamiento.

`warmup_grace_period`  
Flota. Periodo de gracia en segundos tras finalizar el calentamiento.

`num_warmup_sessions`  
Entero. Número de sesiones de calentamiento.

**Conjunto de datos**

`public_dataset`  
Cadena. Nombre de un conjunto de datos público que se utilizará en las solicitudes de referencia en lugar de en la generación sintética.

`custom_dataset_type`  
Cadena. Formato de un conjunto de datos personalizado proporcionado a través de Amazon S3.

`input_file`  
Cadena. Ruta al archivo del conjunto de datos de entrada dentro del contenedor de referencia. Cuando se proporciona un conjunto de datos a través del `DatasetConfig` parámetro, los datos se montan en`/opt/ml/input/data/{ChannelName}/`. Utilice este parámetro para apuntar a un archivo específico dentro de esa ruta de montaje.

**Entradas de imagen**

Parámetros para la evaluación comparativa de modelos multimodales que aceptan entradas de imágenes.

`image_width_mean`  
Flotar. Ancho medio de las imágenes sintéticas en píxeles.

`image_width_stddev`  
Flotar. Desviación estándar del ancho de la imagen.

`image_height_mean`  
Flotar. Altura media de las imágenes sintéticas en píxeles.

`image_height_stddev`  
Flotar. Desviación estándar de la altura de la imagen.

`image_batch_size`  
Entero. Número de imágenes por solicitud. Alias: `batch_size_image`.

`image_format`  
Cadena. Formato de imagen (por ejemplo,`png`,`jpeg`).

**Entradas de vídeo**

Parámetros para la evaluación comparativa de modelos multimodales que aceptan entradas de vídeo.

`video_batch_size`  
Entero. Número de vídeos por solicitud. Alias: `batch_size_video`.

`video_duration`  
Flotar. Duración de los vídeos sintéticos en segundos.

`video_fps`  
Entero. Fotogramas por segundo para vídeos sintéticos.

`video_width`  
Entero. Ancho de los vídeos sintéticos en píxeles.

`video_height`  
Entero. Altura de los vídeos sintéticos en píxeles.

`video_synth_type`  
Cadena. Tipo de generación de vídeo sintético.

`video_format`  
Cadena. Formato contenedor de vídeo.

`video_codec`  
Cadena. Códec de vídeo.

`video_audio_sample_rate`  
Entero. Frecuencia de muestreo de audio en Hz.

`video_audio_num_channels`  
Entero. Número de canales de audio.

`video_audio_codec`  
Cadena. Códec de audio.

`video_audio_depth`  
Cadena. Profundidad de bits de audio.

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

Mapeo opcional. Usa esta sección para transferir valores confidenciales (como los símbolos de acceso a Hugging Face) haciendo AWS referencia a los secretos de Secrets Manager en lugar de incluirlos como texto sin formato. `parameters`

Cada clave es un nombre de parámetro y el valor es el ARN del secreto de AWS Secrets Manager. Al iniciar el trabajo, el servicio resuelve el secreto e inyecta el valor en el entorno de referencia.

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

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

Mapeo opcional. Especifica el estándar de la API y la versión de la herramienta.

`tooling/api_standard`  
Opcional. El estándar de API utilizado por el punto final. Por ejemplo, `openai`.

`tooling/version`  
Opcional. La versión de la herramienta de evaluación comparativa. De forma predeterminada, es la última versión disponible.