Minimiza la latencia de inferencia en tiempo real utilizando las estrategias de enrutamiento de Amazon SageMaker
Reducción de la latencia de inferencia en tiempo real mediante las estrategias de enrutamiento de Amazon SageMaker
Amazon SageMaker hace que sea sencillo implementar modelos de aprendizaje automático (ML) para inferencia en tiempo real y ofrece una amplia selección de instancias de ML que abarcan CPUs y aceleradores como AWS Inferentia. Como servicio completamente gestionado, puedes escalar tus implementaciones de modelos, minimizar los costos de inferencia y administrar tus modelos de manera más efectiva en producción con una carga operacional reducida. Un punto final de inferencia en tiempo real de SageMaker consta de un punto de enlace de HTTPs e instancias de ML que se implementan en múltiples zonas de disponibilidad para garantizar alta disponibilidad. El escalado automático de aplicaciones de SageMaker puede ajustar dinámicamente la cantidad de instancias de ML provisionadas para un modelo en respuesta a los cambios en la carga de trabajo. El punto final distribuye de manera uniforme las solicitudes entrantes a las instancias de ML utilizando un algoritmo de round-robin.
Cuando los modelos de ML implementados en instancias reciben llamadas de API de un gran número de clientes, una distribución aleatoria de las solicitudes puede funcionar muy bien cuando no hay mucha variabilidad en las solicitudes y respuestas. Pero en sistemas con cargas de trabajo de IA generativas, las solicitudes y respuestas pueden ser extremadamente variables. En estos casos, a menudo es deseable equilibrar la carga teniendo en cuenta la capacidad y la utilización de la instancia en lugar de la carga equilibrada aleatoria.
En esta publicación, discutimos la estrategia de enrutamiento de Least Outstanding Requests (LOR) de SageMaker y cómo puede minimizar la latencia para ciertos tipos de cargas de trabajo de inferencia en tiempo real teniendo en cuenta la capacidad y utilización de las instancias de ML. Hablamos sobre sus beneficios en comparación con el mecanismo de enrutamiento predeterminado y cómo puedes activar LOR para tus implementaciones de modelos. Finalmente, presentamos un análisis comparativo de las mejoras de latencia con LOR en comparación con la estrategia de enrutamiento predeterminado de enrutamiento aleatorio.
Estrategia de LOR de SageMaker
Por defecto, los puntos finales de SageMaker tienen una estrategia de enrutamiento aleatorio. SageMaker ahora admite una estrategia de LOR, que permite a SageMaker enrutar de manera óptima las solicitudes a la instancia que sea la más adecuada para atender esa solicitud. SageMaker hace esto posible al monitorear la carga de las instancias detrás de tu punto final, y los modelos o componentes de inferencia que se implementan en cada instancia.
- Empaqueta e implementa fácilmente modelos de ML clásicos y LLMs con Amazon SageMaker, parte 2 Experiencias interactivas para usuarios en SageMaker Studio
- Llega ‘Call of Duty’ a GeForce NOW
- La IA detecta emisiones de metano desde el espacio
El siguiente diagrama interactivo muestra la política de enrutamiento predeterminada donde las solicitudes que llegan a los puntos finales del modelo se envían de manera aleatoria a las instancias de ML.
El siguiente diagrama interactivo muestra la estrategia de enrutamiento donde SageMaker enrutará la solicitud a la instancia que tenga el menor número de solicitudes pendientes.
En general, el enrutamiento LOR funciona bien para modelos fundamentales o modelos de IA generativos cuando tu modelo responde en cientos de milisegundos a minutos. Si la latencia de respuesta de tu modelo es más baja (hasta cientos de milisegundos), es posible que obtengas mayores beneficios de un enrutamiento aleatorio. Independientemente, recomendamos que pruebes e identifiques el mejor algoritmo de enrutamiento para tus cargas de trabajo.
Cómo establecer las estrategias de enrutamiento de SageMaker
Ahora, SageMaker te permite establecer el parámetro RoutingStrategy
al crear la EndpointConfiguration
para los puntos finales. Los diferentes valores de RoutingStrategy
que son admitidos por SageMaker son:
LEAST_OUTSTANDING_REQUESTS
RANDOM
A continuación se muestra un ejemplo de implementación de un modelo en un punto final de inferencia que tiene LOR activado:
-
Crea la configuración del punto final estableciendo
RoutingStrategy
comoLEAST_OUTSTANDING_REQUESTS
:endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName": "variant1", "ModelName": model_name, "InstanceType": "instance_type", "InitialInstanceCount": initial_instance_count, ….. "RoutingConfig": { 'RoutingStrategy': 'LEAST_OUTSTANDING_REQUESTS'} }, ],)
-
Crea el punto final usando la configuración del punto final (sin cambios):
create_endpoint_response = sm_client.create_endpoint( EndpointName="endpoint_name", EndpointConfigName="endpoint_config_name")
Resultados de rendimiento
Ejecutamos pruebas de rendimiento para medir la latencia y el rendimiento de inferencia de extremo a extremo del modelo codegen2-7B alojado en instancias ml.g5.24xl con enrutamiento predeterminado y puntos finales de enrutamiento inteligente. El modelo CodeGen2 pertenece a la familia de modelos de lenguaje autoregresivos y genera código ejecutable cuando se le dan indicaciones en inglés.
En nuestro análisis, aumentamos el número de instancias ml.g5.24xl detrás de cada punto final para cada ejecución de prueba a medida que se aumentaba el número de usuarios concurrentes, como se muestra en la siguiente tabla.
Prueba | Número de Usuarios Concurrentes | Número de Instancias |
1 | 4 | 1 |
2 | 20 | 5 |
3 | 40 | 10 |
4 | 60 | 15 |
5 | 80 | 20 |
Medimos la latencia P99 de extremo a extremo para ambos puntos finales y observamos una mejora del 4-33% en la latencia cuando el número de instancias se incrementó de 5 a 20, como se muestra en el siguiente gráfico.
De manera similar, observamos una mejora del 15-16% en el rendimiento por minuto por instancia cuando el número de instancias se aumentó de 5 a 20.
Esto demuestra que el enrutamiento inteligente puede mejorar la distribución del tráfico entre los puntos finales, lo que conduce a mejoras en la latencia de extremo a extremo y el rendimiento general.
Conclusión
En esta publicación, explicamos las estrategias de enrutamiento de SageMaker y la nueva opción para habilitar el enrutamiento LOR. Explicamos cómo habilitar LOR y cómo puede beneficiar a sus implementaciones de modelos. Nuestras pruebas de rendimiento mostraron mejoras en la latencia y el rendimiento durante la inferencia en tiempo real. Para obtener más información sobre las funciones de enrutamiento de SageMaker, consulte la documentación. Le recomendamos que evalúe su carga de trabajo de inferencia y determine si está configurado de manera óptima con la estrategia de enrutamiento.
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- La cámara detiene los deepfakes al disparar
- Robot puede ordenar la ropa en un dormitorio desordenado
- Científicos desarrollan una forma más eficiente de transmitir datos entre dispositivos
- Bias, Toxicidad y Desbloqueo de Grandes Modelos de Lenguaje (LLMs)
- Leonardo AI El Nuevo Competidor de Midjourney
- Pandas cut vs qcut explicado claramente (por fin)
- Difusión estable de videos Modelos de difusión de video latente para conjuntos de datos grandes