View a markdown version of this page

Configure una configuración de carga de trabajo para recomendaciones generativas de inferencias de IA - Amazon SageMaker AI

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

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

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

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

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

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

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

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

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

referencia

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

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

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

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.