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.
Ejecutar una prueba de carga personalizada
Las pruebas de carga de Amazon SageMaker Inference Recommender realizan exhaustivos análisis basados en los requisitos de producción en cuanto a latencia y rendimiento, patrones de tráfico personalizados y puntos de enlace sin servidor o instancias en tiempo real (hasta 10) que usted seleccione.
En las siguientes secciones se muestra cómo crear, describir y detener una prueba de carga mediante programación con AWS SDK for Python (Boto3) y la consola AWS CLI, o de forma interactiva con Amazon SageMaker Studio Classic o la consola. SageMaker
Crear un trabajo de prueba de carga
Cree una prueba de carga mediante programación mediante AWS SDK for Python (Boto3), con o de forma interactiva con AWS CLI Studio Classic o la consola. SageMaker Al igual que con las recomendaciones de inferencias de Inference Recommender, especifique un nombre de trabajo para la prueba de carga, un AWS IAM rolARN, una configuración de entrada y el paquete de modelos ARN desde el momento en que registró el modelo en el registro de modelos. Las pruebas de carga requieren también que especifique un patrón de tráfico y las condiciones de parada.
- AWS SDK for Python (Boto3)
-
Úselo
CreateInferenceRecommendationsJob
API para crear una prueba de carga de Inference Recommender. EspecifiqueAdvanced
para el campoJobType
y proporcione:-
Un nombre de trabajo para la prueba de carga (
JobName
). El nombre del trabajo debe ser único en su AWS región y en su AWS cuenta. -
El nombre del recurso de Amazon (ARN) de una IAM función que permite a Inference Recommender realizar tareas en su nombre. Defina esto para el campo
RoleArn
. -
Un diccionario de configuración de punto de conexión (
InputConfig
) en el que especifique lo siguiente:-
Para
TrafficPattern
, especifique las fases o el patrón de tráfico de escaleras. Con el patrón de tráfico por fases, aparecen nuevos usuarios cada minuto a la velocidad que especifique. Con el patrón de tráfico de la escaleras, los nuevos usuarios aparecen a intervalos cronometrados (o escalones) al ritmo que especifique. Seleccione una de las siguientes opciones:-
En
TrafficType
, especifiquePHASES
. A continuación, para la matrizPhases
, especifiqueInitialNumberOfUsers
(con cuántos usuarios simultáneos empezar, con un mínimo de 1 y un máximo de 3),SpawnRate
(el número de usuarios que se generarán en un minuto para una fase específica de la prueba de carga, con un mínimo de 0 y un máximo de 3) yDurationInSeconds
(la duración de la fase de tráfico, con un mínimo de 120 y un máximo de 3600). -
En
TrafficType
, especifiqueSTAIRS
. Luego, para la matrizStairs
, especifique laDurationInSeconds
(cuánto debe durar la fase de tráfico, con un mínimo de 120 y un máximo de 3600),NumberOfSteps
(cuántos intervalos se utilizan durante la fase) yUsersPerStep
(cuántos usuarios se agregan durante cada intervalo). Tenga en cuenta que la longitud de cada escalón es el valor deDurationInSeconds / NumberOfSteps
. Por ejemplo, siDurationInSeconds
es600
y especifica5
escalones, cada escalón durará 120 segundos.nota
Un usuario se define como un actor generado por el sistema que se ejecuta en bucle e invoca solicitudes a un punto de conexión como parte del Recomendador de inferencias. Para un XGBoost contenedor típico que se ejecuta en una
ml.c5.large
instancia, los puntos de conexión pueden alcanzar las 30 000 invocaciones por minuto (500 tps) con solo 15 a 20 usuarios.
-
-
Para
ResourceLimit
, especifiqueMaxNumberOfTests
(el número máximo de pruebas de carga de evaluación comparativa para un trabajo de recomendación de inferencias, con un mínimo de 1 y un máximo de 10) yMaxParallelOfTests
(el número máximo de pruebas de carga de evaluación comparativa paralelas para un trabajo de recomendación de inferencias, con un mínimo de 1 y un máximo de 10). -
Para
EndpointConfigurations
, puede especificar uno de los siguientes:-
El campo
InstanceType
en el que se especifica el tipo de instancia en el que se van a ejecutar las pruebas de carga. -
La
ServerlessConfig
, en la que se especifican los valores ideales paraMaxConcurrency
yMemorySizeInMB
para un punto de conexión sin servidor. Para obtener más información, consulte Documentación de inferencias sin servidor.
-
-
-
Un diccionario de condiciones de parada (
StoppingConditions
), en el que, si se cumple alguna de las condiciones, se detiene el trabajo del Recomendador de Inferencias. Para este ejemplo, especifique los siguientes campos en el diccionario:-
Para
MaxInvocations
, especifique el número máximo de solicitudes por minuto esperado para el punto de conexión, con un mínimo de 1 y un máximo de 30 000. -
Para
ModelLatencyThresholds
, especifiquePercentile
(el umbral del percentil de latencia del modelo) yValueInMilliseconds
(el valor del percentil de latencia del modelo en milisegundos). -
(Opcional) Pues
FlatInvocations
, puedes especificar si deseas continuar con la prueba de carga cuando la tasa TPS (de invocaciones por minuto) se estabilice. Por lo general, una TPS velocidad plana significa que el punto final ha alcanzado su capacidad máxima. Sin embargo, es posible que desee continuar supervisando el punto de conexión en condiciones de plena capacidad. Para continuar con la prueba de carga cuando esto ocurra, especifique este valor comoContinue
. De lo contrario, el valor predeterminado esStop
.
-
# Create a low-level SageMaker service client. import boto3 aws_region=
<INSERT>
sagemaker_client=boto3.client('sagemaker', region=aws_region) # Provide a name to your recommendation based on load testing load_test_job_name="<INSERT>"
# Provide the name of the sagemaker instance type instance_type="<INSERT>"
# Provide the IAM Role that gives SageMaker permission to access AWS services role_arn='arn:aws:iam::<account>:role/*
' # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*
' sagemaker_client.create_inference_recommendations_job( JobName=load_test_job_name, JobType="Advanced", RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, "JobDurationInSeconds": 7200, 'TrafficPattern' : { # Replace PHASES with STAIRS to use the stairs traffic pattern 'TrafficType': 'PHASES', 'Phases': [ { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 }, { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, 'ResourceLimit': { 'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3 }, "EndpointConfigurations" : [{ 'InstanceType': 'ml.c5.xlarge' }, { 'InstanceType': 'ml.m5.xlarge' }, { 'InstanceType': 'ml.r5.xlarge' }] # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint # "ServerlessConfig": { # "MaxConcurrency":value
, # "MemorySizeInMB":value
# } }, StoppingConditions={ 'MaxInvocations': 1000, 'ModelLatencyThresholds':[{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 'FlatInvocations': 'Stop' } )Consulta la Guía de SageMaker API referencia de Amazon para obtener una lista completa de los argumentos opcionales y obligatorios a los que puedes pasárselos
CreateInferenceRecommendationsJob
. -
- AWS CLI
-
Utilícela
create-inference-recommendations-job
API para crear una prueba de carga del Recomendador de Inferencias. EspecifiqueAdvanced
para el campoJobType
y proporcione:-
Un nombre de trabajo para la prueba de carga (
job-name
). El nombre del trabajo debe ser único en su AWS región y en su AWS cuenta. -
El nombre del recurso de Amazon (ARN) de una IAM función que permite a Inference Recommender realizar tareas en su nombre. Defina esto para el campo
role-arn
. -
Un diccionario de configuración de punto de conexión (
input-config
) en el que especifique lo siguiente:-
Para
TrafficPattern
, especifique las fases o el patrón de tráfico de escaleras. Con el patrón de tráfico por fases, aparecen nuevos usuarios cada minuto a la velocidad que especifique. Con el patrón de tráfico de la escaleras, los nuevos usuarios aparecen a intervalos cronometrados (o escalones) al ritmo que especifique. Seleccione una de las siguientes opciones:-
En
TrafficType
, especifiquePHASES
. A continuación, para la matrizPhases
, especifiqueInitialNumberOfUsers
(con cuántos usuarios simultáneos empezar, con un mínimo de 1 y un máximo de 3),SpawnRate
(el número de usuarios que se generarán en un minuto para una fase específica de la prueba de carga, con un mínimo de 0 y un máximo de 3) yDurationInSeconds
(la duración de la fase de tráfico, con un mínimo de 120 y un máximo de 3600). -
En
TrafficType
, especifiqueSTAIRS
. Luego, para la matrizStairs
, especifique laDurationInSeconds
(cuánto debe durar la fase de tráfico, con un mínimo de 120 y un máximo de 3600),NumberOfSteps
(cuántos intervalos se utilizan durante la fase) yUsersPerStep
(cuántos usuarios se agregan durante cada intervalo). Tenga en cuenta que la longitud de cada escalón es el valor deDurationInSeconds / NumberOfSteps
. Por ejemplo, siDurationInSeconds
es600
y especifica5
escalones, cada escalón durará 120 segundos.nota
Un usuario se define como un actor generado por el sistema que se ejecuta en bucle e invoca solicitudes a un punto de conexión como parte del Recomendador de inferencias. Para un XGBoost contenedor típico que se ejecuta en una
ml.c5.large
instancia, los puntos de conexión pueden alcanzar las 30 000 invocaciones por minuto (500 tps) con solo 15 a 20 usuarios.
-
-
Para
ResourceLimit
, especifiqueMaxNumberOfTests
(el número máximo de pruebas de carga de evaluación comparativa para un trabajo de recomendación de inferencias, con un mínimo de 1 y un máximo de 10) yMaxParallelOfTests
(el número máximo de pruebas de carga de evaluación comparativa paralelas para un trabajo de recomendación de inferencias, con un mínimo de 1 y un máximo de 10). -
Para
EndpointConfigurations
, puede especificar uno de los siguientes:-
El campo
InstanceType
en el que se especifica el tipo de instancia en el que se van a ejecutar las pruebas de carga. -
La
ServerlessConfig
, en la que se especifican los valores ideales paraMaxConcurrency
yMemorySizeInMB
para un punto de conexión sin servidor.
-
-
-
Un diccionario de condiciones de parada (
stopping-conditions
), en el que, si se cumple alguna de las condiciones, se detiene el trabajo del Recomendador de Inferencias. Para este ejemplo, especifique los siguientes campos en el diccionario:-
Para
MaxInvocations
, especifique el número máximo de solicitudes por minuto esperado para el punto de conexión, con un mínimo de 1 y un máximo de 30 000. -
Para
ModelLatencyThresholds
, especifiquePercentile
(el umbral del percentil de latencia del modelo) yValueInMilliseconds
(el valor del percentil de latencia del modelo en milisegundos). -
(Opcional) Pues
FlatInvocations
, puedes especificar si deseas continuar con la prueba de carga cuando la tasa TPS (de invocaciones por minuto) se estabilice. Por lo general, una TPS velocidad plana significa que el punto final ha alcanzado su capacidad máxima. Sin embargo, es posible que desee continuar supervisando el punto de conexión en condiciones de plena capacidad. Para continuar con la prueba de carga cuando esto ocurra, especifique este valor comoContinue
. De lo contrario, el valor predeterminado esStop
.
-
aws sagemaker create-inference-recommendations-job\ --region
<region>
\ --job-name<job-name>
\ --job-type ADVANCED\ --role-arn arn:aws:iam::<account>:role/*
\ --input-config \"{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*
\", \"JobDurationInSeconds\": 7200, \"TrafficPattern\" : { # Replace PHASES with STAIRS to use the stairs traffic pattern \"TrafficType\": \"PHASES\", \"Phases\": [ { \"InitialNumberOfUsers\": 1, \"SpawnRate\": 60, \"DurationInSeconds\": 300 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, \"ResourceLimit\": { \"MaxNumberOfTests\": 10, \"MaxParallelOfTests\": 3 }, \"EndpointConfigurations\" : [ { \"InstanceType\": \"ml.c5.xlarge\" }, { \"InstanceType\": \"ml.m5.xlarge\" }, { \"InstanceType\": \"ml.r5.xlarge\" } # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint # \"ServerlessConfig\": { # \"MaxConcurrency\":value
, # \"MemorySizeInMB\":value
# } ] }\" --stopping-conditions \"{ \"MaxInvocations\": 1000, \"ModelLatencyThresholds\":[ { \"Percentile\": \"P95\", \"ValueInMilliseconds\": 100 } ], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten \"FlatInvocations\": \"Stop\" }\" -
- Amazon SageMaker Studio Classic
-
Cree una prueba de carga con Studio Classic.
-
En la aplicación Studio Classic, selecciona el icono de inicio (
).
-
En la barra lateral izquierda de Studio Classic, selecciona Implementaciones.
-
Elija Recomendador de inferencias en la lista desplegable.
-
Elija Create inference recommender job (Crear trabajo de recomendación de inferencias). Se abre una nueva pestaña titulada Create inference recommender job (Crear trabajo de recomendación de inferencias).
-
Seleccione el nombre de su grupo de modelos en el campo desplegable Model group (Grupo de modelos). La lista incluye todos los grupos de modelos registrados en el registro de modelos de su cuenta, incluidos los modelos registrados fuera de Studio Classic.
-
Seleccione una versión del modelo en el campo desplegable Model version (Versión del modelo).
-
Elija Continuar.
-
Proporcione un nombre para el trabajo en el campo Name (Nombre).
-
(Opcional) Proporcione una descripción de su trabajo en el campo Description (Descripción).
-
Elija un IAM rol que conceda permiso al Recomendador de Inferencias para acceder AWS a los servicios. Para ello, puede crear un rol y adjuntar la política
AmazonSageMakerFullAccess
IAM gestionada, o bien puede dejar que Studio Classic cree un rol por usted. -
Seleccione Stopping Conditions (Condiciones de parada) para ampliar los campos de entrada disponibles. Proporcione un conjunto de condiciones para detener una recomendación de implementación.
-
Especifique el número máximo de solicitudes por minuto esperado para el punto de conexión en el campo Max Invocations Per Minute (Invocaciones máximas por minuto).
-
Especifique el umbral de latencia del modelo en microsegundos en el campo Model Latency Threshold (Umbral de latencia del modelo). El umbral de latencia del modelo representa el intervalo de tiempo que tarda un modelo en responder según lo visto en el Recomendador de inferencias. El intervalo incluye el tiempo de comunicación local empleado en el envío de la solicitud y la recuperación de la respuesta del contenedor del modelo, así como el tiempo que se tarda en completar la inferencia en el contenedor.
-
-
Seleccione Traffic Pattern (Patrón de tráfico) para ampliar los campos de entrada disponibles.
-
Establezca el número inicial de usuarios virtuales especificando un número entero en el campo Initial Number of Users (Número inicial de usuarios).
-
Proporcione un número entero para el campo Spawn Rate (Velocidad de generación). La velocidad de generación establece el número de usuarios creados por segundo.
-
Establezca la duración de la fase en segundos especificando un número entero en el campo Duration (Duración).
-
(Opcional) Añada patrones de tráfico adicionales. Para ello, elija Add (Añadir).
-
-
Elija el ajuste Additional (Adicional) para mostrar el campo Max test duration (Duración máxima de la prueba). Especifique, en segundos, el tiempo máximo que puede durar una prueba durante un trabajo. Los nuevos trabajos no se programan después de la duración definida. Esto ayuda a garantizar que los trabajos en curso no se detengan y que solo se vean los trabajos finalizados.
-
Elija Continuar.
-
Elija Select Instances (Seleccionar instancias).
-
En el campo Instances for benchmarking (Instancias para la evaluación comparativa), seleccione Add instances to test (Añadir instancias a prueba. Seleccione hasta 10 instancias para que el Recomendador de inferencias las utilice en las pruebas de carga.
-
Elija Additional settings (Configuración adicional).
-
Proporcione un número entero que establezca un límite superior en la cantidad de pruebas que puede realizar un trabajo para el campo Max number of tests field (Número máximo de pruebas). Tenga en cuenta que cada configuración de punto de conexión da como resultado una nueva prueba de carga.
-
Proporcione un número entero para el campo de prueba Max parallel (Máx. en paralelo). Esta configuración define un límite superior en el número de pruebas de carga que se pueden ejecutar en paralelo.
-
-
Elija Enviar.
La prueba de carga puede tardar hasta dos horas.
aviso
No cierre esta pestaña. Si cierra esta pestaña, cancela el trabajo de prueba de carga del Recomendador de inferencias.
-
- SageMaker console
-
Cree una prueba de carga personalizada a través de la SageMaker consola de la siguiente manera:
-
Ve a la SageMaker consola en https://console.aws.amazon.com/sagemaker/
. -
En el panel de navegación de la izquierda, elija Inference (Interferencia) y, a continuación, elija Interference recommender (Reomendador de inferencia.
-
En la página Trabajos de recomendador de inferencias, elija Crear trabajo.
-
Para Step 1: Model configuration (Paso 1: Configuración del modelo), haga lo siguiente:
-
Para Job type (Tipo de trabajo), seleccione Advanced recommender job (Trabajo de recomendador avanzado).
-
Si utiliza un modelo registrado en el registro de SageMaker modelos, active la opción Elegir un modelo del registro de modelos y haga lo siguiente:
-
En la lista desplegable Grupo de modelos, selecciona el grupo de modelos en el registro de SageMaker modelos donde se encuentra tu modelo.
-
En la lista desplegable Model version (Versión del modelo), elija la versión que desee del modelo.
-
-
Si está utilizando un modelo que ha creado SageMaker, desactive la opción Elegir un modelo del registro de modelos y haga lo siguiente:
-
En el campo Nombre del modelo, introduce el nombre de tu SageMaker modelo.
-
-
Para IAMel rol, puede seleccionar un AWS IAM rol existente que tenga los permisos necesarios para crear un trabajo de recomendación de instancias. Como alternativa, si no tienes un rol existente, puedes elegir Crear un nuevo rol para abrir la ventana emergente de creación del rol y SageMaker añadir los permisos necesarios al nuevo rol que crees.
-
Para Bucket S3 para la evaluación comparativa de la carga útil, introduzca la ruta de Amazon S3 al archivo de carga útil de muestra, que debe contener los archivos de carga útil de muestra que el Recomendador de inferencias utiliza para comparar su modelo en diferentes tipos de instancias.
-
En el tipo de contenido de carga útil, introduce los MIME tipos de datos de carga útil de muestra.
-
Para Traffic pattern (Patrón de tráfico), configure las fases de la prueba de carga de la siguiente manera:
-
En Initial number of users (Número inicial de usuarios), especifique con cuántos usuarios simultáneos quiere empezar (con un mínimo de 1 y un máximo de 3).
-
Para Spawn rate (Velocidad de generación), especifique la cantidad de usuarios que se generarán en un minuto durante la fase (con un mínimo de 0 y un máximo de 3).
-
En Duration (seconds) (Duración (segundos)), especifique lo baja que debe ser la fase de tráfico en segundos (con un mínimo de 120 y un máximo de 3600).
-
-
(Opcional) Si ha desactivado la opción Elegir un modelo del registro de modelos y ha especificado un SageMaker modelo, en la configuración del contenedor, haga lo siguiente:
-
En la lista desplegable Domain (Dominio), seleccione el dominio de machine learning del modelo, como visión artificial, procesamiento del lenguaje natural o machine learning.
-
En la lista desplegable Framework, seleccione el framework de su contenedor, por ejemplo, o. TensorFlow XGBoost
-
Para Framework version (Versión de marco), introduzca la versión de marco de la image de contenedor.
-
En la lista desplegable Nearest model name (Nombre del modelo más cercano), seleccione el modelo previamente entrenado que más se parezca al suyo.
-
En la lista desplegable Task (Tarea), seleccione la tarea de machine learning que realiza el modelo, como la clasificación de imágenes o la regresión.
-
-
(Opcional) Para la compilación de modelos con SageMaker Neo, puede configurar el trabajo de recomendación para un modelo que haya compilado con SageMaker Neo. Para Data input configuration (Configuración de la entrada de datos), introduzca la forma de datos de entrada correcta para el modelo en un formato similar a
{'input':[1,1024,1024,3]}
. -
Elija Next (Siguiente).
-
-
Para Step 2: Instances and environment parameters (Paso 2: Instancias y parámetros del entorno), haga lo siguiente:
-
En Select instances for benchmarking (Seleccionar instancias para evaluación comparativa), seleccione hasta 8 tipos de instancias con los que desee compararlas.
-
(Opcional) Para Environment parameter ranges (Rangos de parámetros del entorno), puede especificar los parámetros del entorno que ayuden a optimizar el modelo. Especifique los parámetros como pares de clave y valor.
-
Elija Next (Siguiente).
-
-
En Step 3: Job parameters (Paso 3: Parámetros de trabajo), haga lo siguiente:
-
(Opcional) Pâra el campo Job name (Nombre del trabajo), introduzca un nombre para su trabajo de recomendación de instancia. Al crear el trabajo, SageMaker añade una marca de tiempo al final de este nombre.
-
(Opcional) âra el campo Job description (Descripción de trabajo), introduzca una descripción para el trabajo.
-
(Opcional) En la lista desplegable de claves de cifrado, elija una AWS KMS clave por nombre o introdúzcala ARN para cifrar los datos.
-
(Opcional) Para Max number of tests (Número máximo de pruebas), introduzca el número de pruebas que desea ejecutar durante el trabajo de recomendación.
-
(Opcional) Para Max parallel tests (Máx. de p`ruebas en paralelo), introduzca el número máximo de pruebas en paralelo que desea ejecutar durante el trabajo de recomendación.
-
Para Max test duration (s) (Duración máxima de prueb (s)), introduzca el número máximo de segundos durante el que desea que se ejecute cada prueba.
-
Para Max invocations per minute (Máx. invocaciones por minuto), introduzca el número máximo de solicitudes por minuto al que puede acceder el punto de conexión antes de detener el trabajo de recomendación. Tras alcanzar este límite, SageMaker finaliza el trabajo.
-
Para P99 Model latency threshold (ms) (Umbral de latencia del modelo P99 (ms)), introduzca el percentil de latencia del modelo en milisegundos.
-
Elija Next (Siguiente).
-
-
Para Step 4: Review job (Paso 4: Revisar trabajo), revise las configuraciones y, a continuación, seleccione Submit (Enviar).
-
Obtener los resultados de la prueba de carga
Puede recopilar las métricas de todas las pruebas de carga mediante programación una vez finalizadas las pruebas de carga con AWS SDK for Python (Boto3) Studio Classic o la SageMaker consola. AWS CLI
- AWS SDK for Python (Boto3)
-
Recopile métricas con.
DescribeInferenceRecommendationsJob
API Especifique el nombre del trabajo de la prueba de carga para el campoJobName
:load_test_response = sagemaker_client.describe_inference_recommendations_job( JobName=load_test_job_name )
Imprima el objeto de respuesta.
load_test_response['Status']
Esto devuelve una JSON respuesta similar a la del siguiente ejemplo. Tenga en cuenta que este ejemplo muestra los tipos de instancias recomendados para la inferencia en tiempo real (para ver un ejemplo que muestra recomendaciones de inferencia sin servidor, consulte el ejemplo siguiente).
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100} ]}, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0} }Las primeras líneas proporcionan información sobre el trabajo de prueba de carga en sí. Esto incluye el nombre del trabajo, la función ARN y la hora de creación y eliminación.
El diccionario
InferenceRecommendations
contiene una lista de recomendaciones de inferencias del Recomendador de Inferencias.El diccionario
EndpointConfiguration
anidado contiene la recomendación del tipo de instancia (InstanceType
) junto con el punto final y el nombre de la variante (un modelo de aprendizaje AWS automático implementado) utilizado durante el trabajo de recomendación. Puedes usar el punto de enlace y el nombre de la variante para monitorizar en Amazon CloudWatch Events. Para obtener más información, consulte Supervisa Amazon SageMaker con Amazon CloudWatch.El diccionario anidado
EndpointConfiguration
también contiene la recomendación del número de instancias (InitialInstanceCount
). Este es el número de instancias que debes aprovisionar en el punto de conexión para cumplir con lasMaxInvocations
especificadas en lasStoppingConditions
. Por ejemplo, siInstanceType
esml.m5.large
yInitialInstanceCount
es2
, debe aprovisionar 2ml.m5.large
instancias para su punto de conexión, de modo que pueda gestionar lo TPS especificado en la condición deMaxInvocations
parada.El diccionario
Metrics
anidado contiene información sobre el coste estimado por hora (CostPerHour
) del punto final en tiempo real en dólares estadounidenses, el coste estimado por inferencia (CostPerInference
) del punto final en tiempo real, el número máximo deInvokeEndpoint
solicitudes enviadas al punto final y la latencia del modelo (ModelLatency
), que es el intervalo de tiempo (en microsegundos) que el modelo tardó en responder SageMaker. La latencia del modelo incluye el tiempo de comunicación local empleado en el envío de la solicitud y la recuperación de la respuesta del contenedor del modelo, así como el tiempo que se tarda en completar la inferencia en el contenedor.En el siguiente ejemplo se muestra la parte
InferenceRecommendations
de la respuesta de un trabajo de prueba de carga que se configuró para devolver recomendaciones de inferencia sin servidor:"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "
value
", "InitialInstanceCount":value
, "InstanceType": "value
", "VariantName": "value
", "ServerlessConfig": { "MaxConcurrency":value
, "MemorySizeInMb":value
} }, "InvocationEndTime":value
, "InvocationStartTime":value
, "Metrics": { "CostPerHour":value
, "CostPerInference":value
, "CpuUtilization":value
, "MaxInvocations":value
, "MemoryUtilization":value
, "ModelLatency":value
, "ModelSetupTime":value
}, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value
" }, "RecommendationId": "value
" } ]Puede interpretar las recomendaciones para la inferencia sin servidor de forma similar a los resultados para la inferencia en tiempo real, con la excepción de la
ServerlessConfig
, que indica los valores especcificados paraMaxConcurrency
yMemorySizeInMB
al configurar la prueba de carga. Las recomendaciones sin servidor también miden la métricaModelSetupTime
, que mide (en microsegundos) el tiempo que se tarda en lanzar los recursos de computación en un punto de conexión sin servidor. Para obtener más información sobre la configuración de los puntos de conexión sin servidor, consulte la documentación de Inferencia sin servidor. - AWS CLI
-
Recopile métricas con el.
describe-inference-recommendations-job
API Especifique el nombre del trabajo de la prueba de carga para el indicadorjob-name
:aws sagemaker describe-inference-recommendations-job --job-name
<job-name>
Esto devuelve una respuesta similar a la del siguiente ejemplo. Tenga en cuenta que este ejemplo muestra los tipos de instancias recomendados para la inferencia en tiempo real (para ver un ejemplo que muestra las recomendaciones de inferencia sin servidor, consulte el ejemplo siguiente).
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }] }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0 } }Las primeras líneas proporcionan información sobre el trabajo de prueba de carga en sí. Esto incluye el nombre del trabajo, la función y el ARN tiempo de creación y eliminación.
El diccionario
InferenceRecommendations
contiene una lista de recomendaciones de inferencias del Recomendador de Inferencias.El diccionario
EndpointConfiguration
anidado contiene la recomendación del tipo de instancia (InstanceType
) junto con el punto final y el nombre de la variante (un modelo de aprendizaje AWS automático implementado) utilizado durante el trabajo de recomendación. Puedes usar el punto de enlace y el nombre de la variante para monitorizar en Amazon CloudWatch Events. Para obtener más información, consulte Supervisa Amazon SageMaker con Amazon CloudWatch.El diccionario
Metrics
anidado contiene información sobre el coste estimado por hora (CostPerHour
) del punto final en tiempo real en dólares estadounidenses, el coste estimado por inferencia (CostPerInference
) del punto final en tiempo real, el número máximo deInvokeEndpoint
solicitudes enviadas al punto final y la latencia del modelo (ModelLatency
), que es el intervalo de tiempo (en microsegundos) que el modelo tardó en responder. SageMaker La latencia del modelo incluye el tiempo de comunicación local empleado en el envío de la solicitud y la recuperación de la respuesta del contenedor del modelo, así como el tiempo que se tarda en completar la inferencia en el contenedor.En el siguiente ejemplo se muestra la parte
InferenceRecommendations
de la respuesta de un trabajo de prueba de carga que se configuró para devolver recomendaciones de inferencia sin servidor:"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "
value
", "InitialInstanceCount":value
, "InstanceType": "value
", "VariantName": "value
", "ServerlessConfig": { "MaxConcurrency":value
, "MemorySizeInMb":value
} }, "InvocationEndTime":value
, "InvocationStartTime":value
, "Metrics": { "CostPerHour":value
, "CostPerInference":value
, "CpuUtilization":value
, "MaxInvocations":value
, "MemoryUtilization":value
, "ModelLatency":value
, "ModelSetupTime":value
}, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value
" }, "RecommendationId": "value
" } ]Puede interpretar las recomendaciones para la inferencia sin servidor de forma similar a los resultados para la inferencia en tiempo real, con la excepción de la
ServerlessConfig
, que indica los valores especcificados paraMaxConcurrency
yMemorySizeInMB
al configurar la prueba de carga. Las recomendaciones sin servidor también miden la métricaModelSetupTime
, que mide (en microsegundos) el tiempo que se tarda en lanzar los recursos informáticos en un punto de conexión sin servidor. Para obtener más información sobre la configuración de los puntos de conexión sin servidor, consulte la documentación de Inferencia sin servidor. - Amazon SageMaker Studio Classic
-
Las recomendaciones se rellenan en una nueva pestaña llamada Recomendaciones de inferencia en Studio Classic. Los resultados pueden tardar hasta dos horas en aparecer. Esta pestaña contiene las columnas Results (Resultados) y Details (Detalles).
La columna Details (Detalles) proporciona información sobre el trabajo de prueba de carga, como el nombre que se le ha dado al trabajo de prueba de carga, cuándo se creó el trabajo (hora de creación) y más. También contiene información sobre la configuración, como el número máximo de invocaciones que se produjeron por minuto e información sobre los nombres de los recursos de Amazon utilizados.
La columna de resultados proporciona ventanas de objetivos y SageMakerrecomendaciones de despliegue en las que puede ajustar el orden en que se muestran los resultados en función de la importancia de la implementación. Hay tres menús desplegables en los que puede indicar el nivel de importancia de Cost (Coste), Latency (Latencia) y Throughput (Rendimiento) para su caso de uso. Para cada objetivo (coste, latencia y rendimiento), puede establecer el nivel de importancia: Lowest Importance (Importancia mínima), Low Importance (Importancia baja), Moderate importance (Importancia moderada), High importance (Importancia alta) o Highest importance (Importancia máxima).
En función de las selecciones de importancia para cada objetivo, Inference Recommender muestra su recomendación principal en el campo de SageMakerrecomendaciones de la derecha del panel, junto con el coste estimado por hora y la solicitud de inferencia. También proporciona información sobre la latencia esperada del modelo, el número máximo de invocaciones y el número de instancias.
Además de la recomendación principal que se muestra, también puede ver la misma información para todas las instancias que el Recomendador de inferencias probó en la sección Todas las ejecuciones.
- SageMaker console
-
Puede ver los resultados de su trabajo de prueba de carga personalizado en la SageMaker consola de la siguiente manera:
-
Ve a la SageMaker consola en https://console.aws.amazon.com/sagemaker/
. -
En el panel de navegación de la izquierda, elija Inference (Interferencia) y, a continuación, elija Interference recommender (Reomendador de inferencia.
-
En la página Trabajos de recomendador de inferencias, elija el nombre de su trabajo de recomendación de inferencias.
En la página de detalles de su trabajo, puede ver las recomendaciones de inferencia, que son los tipos de instancias recomendados para SageMaker su modelo, como se muestra en la siguiente captura de pantalla.
En esta sección, puede comparar los tipos de instancias en función de varios factores, como la latencia del modelo, el coste por hora, el coste por inferencia y las invocaciones por minuto.
En esta página, también puede ver las configuraciones que especificó para su trabajo. En la sección Supervisar, puedes ver las CloudWatch métricas de Amazon que se registraron para cada tipo de instancia. Para obtener más información sobre la interpretación de estas métricas, consulte Interpretar los resultados.
-
Detener la prueba de carga
Es posible que desee detener un trabajo que se está ejecutando actualmente si lo inició por error o si ya no necesita ejecutarlo. Detenga los trabajos de prueba de carga mediante programación con Studio Classic o la consola StopInferenceRecommendationsJob
API, o a través de SageMaker ella.
- AWS SDK for Python (Boto3)
-
Especifique el nombre del trabajo de la prueba de carga para el campo
JobName
:sagemaker_client.stop_inference_recommendations_job( JobName=
'<INSERT>'
) - AWS CLI
-
Especifique el nombre del trabajo de la prueba de carga para el indicador
job-name
:aws sagemaker stop-inference-recommendations-job --job-name
<job-name>
- Amazon SageMaker Studio Classic
-
Cierre la pestaña en la que inició el trabajo de carga personalizado para detener la prueba de carga del Recomendador de inferencias.
- SageMaker console
-
Para detener el trabajo de prueba de carga a través de la SageMaker consola, haga lo siguiente:
-
Ve a la SageMaker consola en https://console.aws.amazon.com/sagemaker/
. -
En el panel de navegación de la izquierda, elija Inference (Interferencia) y, a continuación, elija Interference recommender (Reomendador de inferencia.
-
En la página Trabajos de recomendador de inferencias, seleccione su trabajo de prueba de carga.
-
Elija Stop run (Parar trabajo).
-
En el cuadro de diálogo que aparece, elija Confirm (Confirmar).
Tras detener el trabajo, Status (Estado) del trabajo debería cambiar a Stopping (Parando).
-