AWS SageMaker
AWS SageMaker
Amazon SageMaker es un servicio totalmente administrado que lo ayuda a crear e implementar rápidamente modelos de aprendizaje automático. Ya sea que se esté comenzando con ML o sea un profesional experimentado, encontrará funciones de SageMaker para mejorar la agilidad de sus flujos de trabajo, así como el rendimiento de sus modelos. Podrá concentrarse al 100% en el problema de ML en cuestión, sin perder tiempo instalando, administrando y escalando las herramientas y la infraestructura de ML.
Amazon SageMaker se lanzó en AWS re: Invent 2017. Desde entonces, se han agregado muchas funciones nuevas: puede ver la lista completa (y en constante crecimiento) en https://aws.amazon.com/about-aws/ whats-new / machine-learning.
Principales capacidades de SageMaker
En el núcleo de Amazon SageMaker se encuentra la capacidad de crear, entrenar, optimizar e implementar modelos en una infraestructura completamente administrada y a cualquier escala. Esto le permite concentrarse en estudiar y resolver el problema de aprendizaje automático en cuestión, en lugar de dedicar tiempo y recursos a la creación y administración de la infraestructura. En pocas palabras, puede pasar de la construcción a la capacitación y la implementación más rápidamente. Acerquémonos a cada paso y resaltemos las capacidades relevantes de SageMaker.
Construcción
Amazon SageMaker le proporciona dos entornos de desarrollo:
- Instancias de notebook: instancias de Amazon EC2 completamente administradas que vienen preinstaladas con las herramientas y bibliotecas más populares: Jupyter, Anaconda, etc.
- Amazon SageMaker Studio: un entorno de desarrollo integrado completo para proyectos de aprendizaje automático.
Cuando se trata de experimentar con algoritmos, puede elegir entre los siguientes:
- Una colección de 17 algoritmos integrados para ML y aprendizaje profundo, ya implementados y optimizados para ejecutarse de manera eficiente en AWS. ¡No hay código ML para escribir!
- Una colección de marcos de trabajo de código abierto integrados (TensorFlow, PyTorch, Apache MXNet, scikit-learn y más), donde simplemente trae su propio código.
- Su propio código que se ejecuta en su propio contenedor: Python personalizado, R, C ++, Java, etc.
- Algoritmos y modelos previamente entrenados de AWS Marketplace para ML (https://aws.amazon.com/marketplace/solutions/machine-learning).
Además, Amazon SageMaker Autopilot usa AutoML para crear, entrenar y optimizar modelos automáticamente sin la necesidad de escribir una sola línea de código ML.
Amazon SageMaker también incluye dos capacidades principales que ayudan a crear y preparar conjuntos de datos:
- Amazon SageMaker Ground Truth: anota conjuntos de datos a cualquier escala. Los flujos de trabajo para casos de uso populares están integrados (detección de imágenes, extracción de entidades y más), y puede implementar los suyos propios. Los trabajos de anotación se pueden distribuir a los workers que pertenecen a la workforce privada, de terceros o pública.
- Procesamiento de Amazon SageMaker: Ejecute trabajos por lotes de procesamiento de datos y evaluación de modelos, utilizando scikit-learn o Spark.
Entrenamiento
Como se mencionó anteriormente, Amazon SageMaker se encarga de aprovisionar y administrar su infraestructura de entrenamiento. Nunca pasará tiempo administrando servidores y podrá concentrarse en ML. Además de esto, SageMaker ofrece capacidades avanzadas como las siguientes:
- Almacenamiento administrado mediante Amazon S3, Amazon EFS o Amazon FSx para Lustre, según sus requisitos de rendimiento.
- Capacitación puntual administrada, utilizando instancias puntuales de Amazon EC2 para la capacitación a fin de reducir los costos hasta en un 80%.
- El entrenamiento distribuido distribuye automáticamente trabajos de entrenamiento a gran escala en un clúster de instancias administradas.
- El modo de canalización transmite conjuntos de datos infinitamente grandes desde Amazon S3 a las instancias de entrenamiento, lo que evita la necesidad de copiar datos.
- El ajuste automático del modelo ejecuta la optimización de hiperparámetros para ofrecer modelos de alta precisión con mayor rapidez.
- Amazon SageMaker Experiments rastrea, organiza y compara fácilmente todos sus trabajos de SageMaker.
- Amazon SageMaker Debugger captura el estado del modelo interno durante el entrenamiento, lo inspecciona para observar cómo aprende el modelo y detecta condiciones no deseadas que perjudican la precisión.
Despliegue
Al igual que con la capacitación, Amazon SageMaker se encarga de toda su infraestructura de implementación y ofrece una gran cantidad de funciones adicionales:
- Puntos finales en tiempo real: esto crea una API HTTPS que ofrece predicciones de su modelo. Como era de esperar, el ajuste de escala automático está disponible.
- Transformación por lotes: utiliza un modelo para predecir datos en modo por lotes.
- Supervisión de la infraestructura con Amazon CloudWatch: esto le ayuda a ver métricas en tiempo real y realizar un seguimiento del rendimiento de la infraestructura.
- Monitor de modelo de Amazon SageMaker: captura los datos enviados a un punto final y los compara con una línea de base para identificar y alertar sobre problemas de calidad de los datos (funciones faltantes, deriva de datos y más).
- Amazon SageMaker Neo: compila modelos para una arquitectura de hardware específica, incluidas las plataformas integradas, e implementa una versión optimizada con un tiempo de ejecución ligero.
- Inferencia de Amazon Elastic: Esto agrega aceleración de GPU fraccional a instancias basadas en CPU para encontrar la mejor relación costo / rendimiento para su infraestructura de predicción.
La API de Amazon SageMaker
Al igual que todos los demás servicios de AWS, Amazon SageMaker se basa en API que se implementan en los SDK de idiomas admitidos por AWS (https://aws.amazon.com/tools/). Además, también está disponible un SDK de Python dedicado, también conocido como 'SageMaker SDK'. Veamos ambos y analicemos sus respectivos beneficios.
Los SDK de AWS para los lenguajes de programación
Los SDK de los lenguajes implementan API específicas del servicio para todos los servicios de AWS: S3, EC2, etc. Por supuesto, también incluyen las API de SageMaker, que están documentadas en https://docs.aws.amazon.com/sagemaker/latest/dg/api-and-sdk-reference.html.
Cuando se trata de ciencia de datos y aprendizaje automático, Python es el lenguaje más popular, así que echemos un vistazo a las API de SageMaker disponibles en boto3, el AWS SDK para el lenguaje Python. Estas API son de nivel bastante bajo y detalladas: por ejemplo, create_training_job () tiene muchos parámetros JSON que no parecen muy obvios.
El Amazon SageMaker SDK
Comentarios
Publicar un comentario