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
DatasetConfigpará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 lasecretssecció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
DatasetConfigpará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.