Piloto automático Amazon SageMaker crea, entrena y ajusta automáticamente los mejores modelos de aprendizaje automático (ML) en función de sus datos, al tiempo que le permite mantener el control y la visibilidad totales. Autopilot también puede implementar modelos entrenados en puntos finales de inferencia en tiempo real automáticamente.
Si tiene cargas de trabajo con patrones de tráfico irregulares o impredecibles que pueden tolerar arranques en frío, sería más rentable implementar el modelo en un extremo de inferencia sin servidor.
Inferencia sin servidor de Amazon SageMaker es una opción de inferencia especialmente diseñada, ideal para cargas de trabajo con patrones de tráfico impredecibles y que pueden tolerar arranques en frío. A diferencia de un punto final de inferencia en tiempo real, que está respaldado por una instancia informática de ejecución prolongada, los puntos finales sin servidor aprovisionan recursos a pedido con escalado automático integrado. Los puntos finales sin servidor escalan automáticamente según la cantidad de solicitudes entrantes y reducen los recursos a cero cuando no hay solicitudes entrantes, lo que lo ayuda a minimizar sus costos.
En esta publicación, mostramos cómo implementar modelos entrenados de Autopilot en puntos finales de inferencia sin servidor usando el Bibliotecas Boto3 para Amazon SageMaker.
Modos de entrenamiento de piloto automático
Antes de crear un experimento de Autopilot, puede dejar que Autopilot seleccione el modo de entrenamiento automáticamente o puede seleccionar el modo de entrenamiento manualmente.
Autopilot actualmente admite tres modos de entrenamiento:
- Auto – Según el tamaño del conjunto de datos, Autopilot elige automáticamente el modo de ensamblaje o HPO. Para conjuntos de datos de más de 100 MB, Autopilot elige HPO; de lo contrario, elige el conjunto.
- Ensamblaje – El piloto automático utiliza el AutoGluón técnica de ensamblaje utilizando el apilamiento de modelos y produce un modelo predictivo óptimo.
- Optimización de hiperparámetros (HPO) – El piloto automático encuentra la mejor versión de un modelo ajustando los hiperparámetros mediante la optimización bayesiana o la optimización de fidelidad múltiple mientras ejecuta trabajos de entrenamiento en su conjunto de datos. El modo HPO selecciona los algoritmos más relevantes para su conjunto de datos y selecciona el mejor rango de hiperparámetros para ajustar sus modelos.
Para obtener más información sobre los modos de entrenamiento del piloto automático, consulte Modos de entrenamiento.
Resumen de la solución
En esta publicación, usamos el Mercadotecnia Bancaria UCI conjunto de datos para predecir si un cliente suscribirá un depósito a plazo ofrecido por el banco. Este es un tipo de problema de clasificación binaria.
Lanzamos dos trabajos de Autopilot usando el Bibliotecas de Boto3 para SageMaker. El primer trabajo utiliza el ensamblaje como modo de entrenamiento elegido. Luego implementamos el modelo de conjunto único generado en un punto final sin servidor y enviamos solicitudes de inferencia a este punto final alojado.
El segundo trabajo usa el modo de entrenamiento HPO. Para los tipos de problemas de clasificación, Autopilot genera tres contenedores de inferencia. Extraemos estos tres contenedores de inferencia y los implementamos en puntos finales sin servidor separados. Luego, enviamos solicitudes de inferencia a estos puntos finales alojados.
Para obtener más información sobre los tipos de problemas de regresión y clasificación, consulte Definiciones de contenedores de inferencia para tipos de problemas de regresión y clasificación.
También podemos lanzar trabajos de Autopilot desde el Estudio Amazon SageMaker interfaz de usuario Si inicia trabajos desde la interfaz de usuario, asegúrese de apagar el Implementación automática opción en el Implementación y configuración avanzada sección. De lo contrario, Autopilot implementará el mejor candidato en un punto final en tiempo real.
Requisitos previos
Asegúrese de tener instalada la última versión de Boto3 y los paquetes SageMaker Python:
pip install -U boto3 sagemaker
Necesitamos la versión del paquete de SageMaker >= 2.110.0
y versión Boto3 >= boto3-1.24.84.
Inicie un trabajo de Autopilot con el modo de ensamblaje
Para iniciar un trabajo de Autopilot usando las bibliotecas de SageMaker Boto3, usamos el crear_auto_ml_trabajo API. Luego pasamos AutoMLJobConfig
, InputDataConfig
y AutoMLJobObjective
como entradas a la create_auto_ml_job
. Ver el siguiente código:
El piloto automático devuelve el BestCandidate
objeto modelo que tiene la InferenceContainers
necesarios para implementar los modelos en puntos finales de inferencia. Para obtener el BestCandidate
para el trabajo anterior, usamos el describe_automl_job
función:
Implementar el modelo entrenado
Ahora implementamos el contenedor de inferencia anterior en un punto final sin servidor. El primer paso es crear un modelo desde el contenedor de inferencia, luego crear una configuración de punto final en la que especificamos el MemorySizeInMB
y MaxConcurrency
valores para el extremo sin servidor junto con el nombre del modelo. Finalmente, creamos un punto final con la configuración de punto final creada anteriormente.
Recomendamos elegir su tamaño de la memoria del punto final Según el tamaño de tu modelo. El tamaño de la memoria debe ser al menos tan grande como el tamaño de su modelo. Su terminal sin servidor tiene un tamaño mínimo de RAM de 1024 MB (1 GB) y el tamaño máximo de RAM que puede elegir es de 6144 MB (6 GB).
Los tamaños de memoria que puede elegir son 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB o 6144 MB.
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, le recomendamos que consulte la 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.
Tenga en cuenta que los puntos finales sin servidor solo aceptan SingleModel
para contenedores de inferencia. El piloto automático en el modo de ensamblaje genera un solo modelo, por lo que podemos implementar este contenedor de modelo tal como está en el punto final. Ver el siguiente código:
Cuando el punto final de inferencia sin servidor es InService
, podemos probar el punto final enviando una solicitud de inferencia y observando las predicciones. El siguiente diagrama ilustra la arquitectura de esta configuración.
Tenga en cuenta que podemos enviar datos sin procesar como carga útil al punto final. El modelo de conjunto generado por Autopilot incorpora automáticamente todos los pasos requeridos de transformación de características y transformación de etiquetas inversas, junto con el modelo de algoritmo y los paquetes, en un solo modelo.
Enviar solicitud de inferencia al modelo entrenado
Use el siguiente código para enviar inferencias sobre su modelo entrenado usando el modo de ensamblaje:
Iniciar un trabajo de piloto automático con el modo HPO
En el modo HPO, para CompletionCriteria
además MaxRuntimePerTrainingJobInSeconds
y MaxAutoMLJobRuntimeInSeconds,
También podríamos especificar el MaxCandidates
para limitar el número de candidatos que generará un trabajo de Autopilot. Tenga en cuenta que estos son parámetros opcionales y solo se configuran para limitar el tiempo de ejecución del trabajo para la demostración. Ver el siguiente código:
Para obtener el BestCandidate
para el trabajo anterior, podemos volver a utilizar el describe_automl_job
función:
Implementar el modelo entrenado
El piloto automático en modo HPO para el tipo de problema de clasificación genera tres contenedores de inferencia.
El primer contenedor maneja los pasos de transformación de características. A continuación, el contenedor del algoritmo genera el predicted_label
con la mayor probabilidad. Finalmente, el contenedor de inferencia de posprocesamiento realiza una transformación inversa en la etiqueta predicha y la asigna a la etiqueta original. Para obtener más información, consulte Definiciones de contenedores de inferencia para tipos de problemas de regresión y clasificación.
Extraemos estos tres contenedores de inferencia y los implementamos en puntos finales independientes sin servidor. Para la inferencia, invocamos los puntos finales en secuencia enviando la carga útil primero al contenedor de transformación de características, luego pasando la salida de este contenedor al contenedor del algoritmo y finalmente pasando la salida del contenedor de inferencia anterior al contenedor de posprocesamiento. que genera la etiqueta predicha.
El siguiente diagrama ilustra la arquitectura de esta configuración.
Extraemos los tres contenedores de inferencia del BestCandidate
con el siguiente código:
Enviar solicitud de inferencia al modelo entrenado
Para la inferencia, enviamos la carga útil en secuencia: primero al contenedor de transformación de características, luego al contenedor de modelo y finalmente al contenedor de transformación de etiqueta inversa.
Ver el siguiente código:
La implementación completa de este ejemplo está disponible en el siguiente jupyter cuaderno.
Limpiar
Para limpiar los recursos, puede eliminar los puntos finales sin servidor creados, las configuraciones de puntos finales y los modelos:
Conclusión
En esta publicación, mostramos cómo podemos implementar modelos generados por Autopilot tanto en modo conjunto como HPO en puntos finales de inferencia sin servidor. Esta solución puede acelerar su capacidad de usar y aprovechar los servicios de ML rentables y totalmente administrados como Autopilot para generar modelos rápidamente a partir de datos sin procesar y luego implementarlos en puntos finales de inferencia sin servidor totalmente administrados con escalado automático incorporado para reducir costos. .
Lo alentamos a que pruebe esta solución con un conjunto de datos relevante para los KPI de su negocio. Puede consultar la solución implementada en un cuaderno Jupyter en el Repositorio GitHub.
Referencias adicionales
Sobre la autora
Praveen chamarthi es un especialista sénior en inteligencia artificial y aprendizaje automático de Amazon Web Services. Le apasiona la IA/ML y todo lo relacionado con AWS. Ayuda a los clientes de América a escalar, innovar y operar cargas de trabajo de ML de manera eficiente en AWS. En su tiempo libre, a Praveen le encanta leer y disfruta de las películas de ciencia ficción.
- Avanzado (300)
- AI
- arte ai
- generador de arte ai
- robot ai
- Amazon SageMaker
- Piloto automático Amazon SageMaker
- inteligencia artificial
- certificación de inteligencia artificial
- inteligencia artificial en banca
- robots de inteligencia artificial
- robots de inteligencia artificial
- software de inteligencia artificial
- Aprendizaje automático de AWS
- blockchain
- conferencia blockchain ai
- Coingenius
- inteligencia artificial conversacional
- criptoconferencia ai
- de dall
- deep learning
- google ai
- máquina de aprendizaje
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- escala ia
- sintaxis
- Procedimientos técnicos
- zephyrnet