Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker

Inferencia sin servidor de Amazon SageMaker es una opción de inferencia especialmente diseñada que le facilita implementar y escalar modelos de aprendizaje automático (ML). Proporciona un modelo de pago por uso, que es ideal para servicios donde las invocaciones de puntos finales son poco frecuentes e impredecibles. A diferencia de un punto final de alojamiento en tiempo real, que está respaldado por una instancia de ejecución prolongada, los recursos informáticos para los puntos finales sin servidor se aprovisionan a pedido, lo que elimina la necesidad de elegir tipos de instancias o administrar políticas de escalado.

La siguiente arquitectura de alto nivel ilustra cómo funciona un punto final sin servidor. Un cliente invoca un punto de enlace, que está respaldado por una infraestructura administrada por AWS.

Sin embargo, los puntos finales sin servidor son propensos a inicios en frío del orden de segundos y, por lo tanto, son más adecuados para cargas de trabajo intermitentes o impredecibles.

Para ayudar a determinar si un punto final sin servidor es la opción de implementación correcta desde una perspectiva de costo y rendimiento, hemos desarrollado el Kit de herramientas de evaluación comparativa de inferencia sin servidor de SageMaker, que prueba diferentes configuraciones de puntos finales y compara la más óptima con una instancia de alojamiento en tiempo real comparable.

En esta publicación, presentamos el kit de herramientas y brindamos una descripción general de su configuración y resultados.

Resumen de la solución

Puede descargar el kit de herramientas e instalarlo desde el Repositorio GitHub. Comenzar es fácil: simplemente instale la biblioteca, cree un modelo de SageMakery proporciona el nombre de tu modelo junto con un archivo con formato de líneas JSON que contiene un conjunto de muestra de parámetros de invocación, incluido el cuerpo de la carga útil y el tipo de contenido. Se proporciona una función conveniente para convertir una lista de argumentos de invocación de muestra en un archivo de líneas JSON o un archivo pickle para cargas binarias como imágenes, video o audio.

Instalar el juego de herramientas

Primero instale la biblioteca de evaluación comparativa en su entorno de Python usando pip:

pip install sm-serverless-benchmarking

Puede ejecutar el siguiente código desde un Estudio Amazon SageMaker ejemplo, Instancia de cuaderno de SageMaker, o cualquier instancia con acceso programático a AWS y el apropiado Gestión de identidades y accesos de AWS (IAM) permisos. Los permisos de IAM necesarios se documentan en el Repositorio GitHub. Para obtener orientación adicional y políticas de ejemplo para IAM, consulte Cómo funciona Amazon SageMaker con IAM. Este código ejecuta un punto de referencia con un conjunto predeterminado de parámetros en un modelo que espera una entrada CSV con dos registros de ejemplo. Es una buena práctica proporcionar un conjunto representativo de ejemplos para analizar cómo funciona el punto final con diferentes cargas útiles de entrada.

from sm_serverless_benchmarking import benchmark
from sm_serverless_benchmarking.utils import convert_invoke_args_to_jsonl
model_name = ""
example_invoke_args = [
        {'Body': '1,2,3,4,5', "ContentType": "text/csv"},
        {'Body': '6,7,8,9,10', "ContentType": "text/csv"}
        ]
example_args_file = convert_invoke_args_to_jsonl(example_invoke_args,
output_path=".")
r = benchmark.run_serverless_benchmarks(model_name, example_args_file)

Además, puede ejecutar el punto de referencia como un trabajo de procesamiento de SageMaker, que puede ser una opción más confiable para puntos de referencia de ejecución más larga con una gran cantidad de invocaciones. Ver el siguiente código:

from sm_serverless_benchmarking.sagemaker_runner import run_as_sagemaker_job
run_as_sagemaker_job(
                    role="",
                    model_name="",
                    invoke_args_examples_file="",
                    )

Tenga en cuenta que esto generará un costo adicional por ejecutar una instancia de procesamiento de SageMaker ml.m5.large durante la duración de la evaluación comparativa.

Ambos métodos aceptan una serie de parámetros para configurar, como una lista de configuraciones de memoria para comparar y la cantidad de veces que se invocará cada configuración. En la mayoría de los casos, las opciones predeterminadas deberían ser suficientes como punto de partida, pero consulte la Repositorio GitHub para obtener una lista completa y descripciones de cada parámetro.

Configuración de evaluación comparativa

Antes de profundizar en lo que hace el punto de referencia y qué resultados produce, es importante comprender algunos conceptos clave cuando se trata de configurar puntos finales sin servidor.

Existen dos opciones de configuración clave: MemorySizeInMB y MaxConcurrency. MemorySizeInMB configura la cantidad de memoria que se asigna a la instancia y puede ser 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB o 6144 MB. La cantidad de vCPU también se escala proporcionalmente a la cantidad de memoria asignada. los MaxConcurrency El parámetro ajusta cuántas solicitudes simultáneas puede atender un punto final. Con un MaxConcurrency de 1, un punto final sin servidor solo puede procesar una única solicitud a la vez.

Para resumir, el MemorySizeInMB El parámetro proporciona un mecanismo para la escalabilidad vertical, lo que le permite ajustar la memoria y los recursos informáticos para servir modelos más grandes, mientras que MaxConcurrency proporciona un mecanismo para la escalabilidad horizontal, lo que permite que su terminal procese más solicitudes simultáneas.

El costo de operar un punto final está determinado en gran medida por el tamaño de la memoria y no hay ningún costo asociado con el aumento de la simultaneidad máxima. Sin embargo, existe un límite de cuenta por región para la simultaneidad máxima en todos los puntos finales. Referirse a Puntos finales y cuotas de SageMaker para los últimos límites.

Resultados de evaluación comparativa

Teniendo esto en cuenta, el objetivo de evaluar comparativamente un extremo sin servidor es determinar la configuración de tamaño de memoria más rentable y confiable, y la simultaneidad máxima mínima que puede manejar sus patrones de tráfico esperados.

De forma predeterminada, la herramienta ejecuta dos puntos de referencia. El primero es un punto de referencia de estabilidad, que implementa un punto final para cada una de las configuraciones de memoria especificadas e invoca cada punto final con las cargas útiles de muestra proporcionadas. El objetivo de este punto de referencia es determinar la configuración de MemorySizeInMB más efectiva y estable. El punto de referencia captura las latencias de invocación y calcula el costo esperado por invocación para cada punto final. Luego compara el costo con una instancia de alojamiento en tiempo real similar.

Cuando se completa la evaluación comparativa, la herramienta genera varios resultados en el especificado result_save_path directorio con la siguiente estructura de directorios:

├── benchmarking_report
├── concurrency_benchmark_raw_results
├── concurrency_benchmark_summary_results
├── cost_analysis_summary_results
├── stability_benchmark_raw_results
├── stability_benchmark_summary_results

El benchmarking_report El directorio contiene un informe consolidado con todos los resultados resumidos que describimos en esta publicación. Los directorios adicionales contienen resultados brutos e intermedios que puede utilizar para análisis adicionales. Referirse a Repositorio GitHub para obtener una descripción más detallada de cada artefacto de salida.

Examinemos algunos resultados de evaluación comparativa reales para un punto final que sirve un modelo TensorFlow MobileNetV2 de visión por computadora. Si desea reproducir este ejemplo, consulte el ejemplo cuadernos directorio en el repositorio de GitHub.

El primer resultado dentro del informe consolidado es una tabla de resumen que proporciona las métricas de latencia mínima, media, media y máxima para cada MemorySizeInMB configuración exitosa del tamaño de la memoria. Como se muestra en la siguiente tabla, la latencia de invocación promedio (invocation_latency_mean) continuó mejorando a medida que la configuración de la memoria se incrementó a 3072 MB, pero dejó de mejorar a partir de entonces.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Además de las estadísticas descriptivas de alto nivel, se proporciona un gráfico que muestra la distribución de la latencia observada desde el cliente para cada una de las configuraciones de memoria. Nuevamente, podemos observar que la configuración de 1024 MB no tiene el mismo rendimiento que las otras opciones, pero no hay una diferencia sustancial en el rendimiento en las configuraciones de 2048 y superiores.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Reloj en la nube de Amazon también se proporcionan métricas asociadas con cada configuración de punto final. Una métrica clave aquí es ModelSetupTime, que mide cuánto tiempo se tardó en cargar el modelo cuando se invocó el punto final en un estado frío. Es posible que la métrica no siempre aparezca en el informe, ya que un punto final se inicia en un estado tibio. A cold_start_delay El parámetro está disponible para especificar la cantidad de segundos de suspensión antes de iniciar la evaluación comparativa en un punto final implementado. Establecer este parámetro en un número más alto, como 600 segundos, debería aumentar la probabilidad de una invocación de estado frío y mejorar las posibilidades de capturar esta métrica. Además, es mucho más probable que esta métrica se capture con el punto de referencia de invocación simultánea, que trataremos más adelante en esta sección.

La siguiente tabla muestra las métricas capturadas por CloudWatch para cada configuración de memoria.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El siguiente gráfico muestra las ventajas y desventajas de rendimiento y costo de diferentes configuraciones de memoria. Una línea muestra el costo estimado de invocar el punto final 1 millón de veces y la otra muestra la latencia de respuesta promedio. Estas métricas pueden informar su decisión sobre qué configuración de punto final es más rentable. En este ejemplo, vemos que la latencia promedio se aplana después de 2048 MB, mientras que el costo continúa aumentando, lo que indica que para este modelo una configuración de tamaño de memoria de 2048 sería la más óptima.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado final de la evaluación comparativa de costos y estabilidad es una configuración de memoria recomendada, junto con una tabla que compara el costo de operar un punto final sin servidor con una instancia de alojamiento comparable de SageMaker. Según los datos recopilados, la herramienta determinó que la configuración de 2048 MB es la más óptima para este modelo. Aunque la configuración 3072 proporciona aproximadamente 10 milisegundos de mejor latencia, eso conlleva un aumento del 30 % en el costo, de $4.55 a $5.95 por millón de solicitudes. Además, el resultado muestra que un punto final sin servidor proporcionaría ahorros de hasta un 1 % en comparación con una instancia de alojamiento en tiempo real comparable cuando hay menos de 88.72 millón de solicitudes de invocación mensuales, y se equilibra con un punto final en tiempo real después de 1 millones de solicitudes.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El segundo tipo de benchmark es opcional y prueba varios MaxConcurency ajustes bajo diferentes patrones de tráfico. Este punto de referencia generalmente se ejecuta utilizando el óptimo MemorySizeInMB configuración del benchmark de estabilidad. Los dos parámetros clave para este punto de referencia es una lista de MaxConcurency configuración para probar junto con una lista de multiplicadores de clientes, que determinan la cantidad de clientes simultáneos simulados con los que se prueba el punto final.

Por ejemplo, al configurar el concurrency_benchmark_max_conc parameter a [4, 8] y concurrency_num_clients_multiplier a [1, 1.5, 2], se lanzan dos puntos finales: uno con MaxConcurency de 4 y el otro 8. Luego, cada punto final se compara con un (MaxConcurency x multiplicador) número de clientes simultáneos simulados, que para el punto final con una simultaneidad de 4 se traduce en pruebas comparativas de carga con 4, 6 y 8 clientes simultáneos.

El primer resultado de este punto de referencia es una tabla que muestra las métricas de latencia, las excepciones de limitación y las métricas de transacciones por segundo (TPS) asociadas con cada MaxConcurrency configuración con diferente número de clientes concurrentes. Estas métricas ayudan a determinar el MaxConcurrency ajuste para manejar la carga de tráfico esperada. En la siguiente tabla, podemos ver que un punto final configurado con una simultaneidad máxima de 8 pudo manejar hasta 16 clientes simultáneos con solo dos excepciones de limitación de 2,500 invocaciones realizadas en un promedio de 24 transacciones por segundo.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El siguiente conjunto de resultados proporciona un gráfico para cada MaxConcurrency configuración que muestra la distribución de la latencia bajo diferentes cargas. En este ejemplo, podemos ver que un punto final con un MaxConcurrency la configuración de 4 pudo procesar con éxito todas las solicitudes con hasta 8 clientes simultáneos con un aumento mínimo en la latencia de invocación.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El resultado final proporciona una tabla con métricas de CloudWatch para cada MaxConcurrency configuración. A diferencia de la tabla anterior que muestra la distribución de la latencia para cada configuración de memoria, que puede no mostrar siempre el arranque en frío ModelSetupTime métrica, es mucho más probable que esta métrica aparezca en esta tabla debido a la mayor cantidad de solicitudes de invocación y una mayor MaxConcurrency.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Conclusión

En esta publicación, presentamos SageMaker Serverless Inference Benchmarking Toolkit y brindamos una descripción general de su configuración y resultados. La herramienta puede ayudarlo a tomar una decisión más informada con respecto a la inferencia sin servidor al realizar pruebas de carga de diferentes configuraciones con patrones de tráfico realistas. Pruebe el kit de herramientas de evaluación comparativa con sus propios modelos para ver por sí mismo el rendimiento y el ahorro de costos que puede esperar al implementar un punto final sin servidor. por favor refiérase a Repositorio GitHub para obtener documentación adicional y cuadernos de ejemplo.

Recursos adicionales


Sobre los autores

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Simón Zamarin es un arquitecto de soluciones de IA / ML cuyo objetivo principal es ayudar a los clientes a extraer valor de sus activos de datos. En su tiempo libre, a Simon le gusta pasar tiempo con la familia, leer ciencia ficción y trabajar en varios proyectos de bricolaje.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Patel Dhawal es Arquitecto Principal de Aprendizaje Automático en AWS. Ha trabajado con organizaciones que van desde grandes empresas hasta empresas emergentes medianas en problemas relacionados con la computación distribuida y la inteligencia artificial. Se enfoca en el aprendizaje profundo, incluidos los dominios de PNL y visión por computadora. Ayuda a los clientes a lograr una inferencia de modelos de alto rendimiento en SageMaker.

Presentamos el kit de herramientas de evaluación comparativa de inferencia sin servidor de Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Rishabh Ray Chaudhury es gerente sénior de productos en Amazon SageMaker y se enfoca en la inferencia de aprendizaje automático. Le apasiona innovar y crear nuevas experiencias para los clientes de aprendizaje automático en AWS para ayudarlos a escalar sus cargas de trabajo. En su tiempo libre le gusta viajar y cocinar. Puedes encontrarlo en Etiqueta LinkedIn.

Sello de tiempo:

Mas de Aprendizaje automático de AWS