Empresa de Machine Learning partner de Amazon SageMaker
Somos partners de Amazon y te acercamos sus ventajas desde el minuto cero
Desarrollo de proyectos de Machine Learning con AWS SageMaker
by Overstand, 21/01/2022
Lo primero que nos viene a la mente es, ¿qué es Sagemaker? Y luego, ¿cómo nuestra empresa puede beneficiarse del Aprendizaje Automático con esta herramienta de AWS?
Acompáñanos y te explicaremos cómo nuestra empresa de Machine Learning de Barcelona te ayudará a poner en marcha tu proyecto de IA. Además, somos partners oficiales de Amazon Web Services y SageMaker, con lo cual gozarás de todas las ventajas que ello supone.
Amazon Sagemaker es una rama o parte de Amazon Web Services y básicamente es un servicio modular de machine learning, una rama de inteligencia artificial, totalmente administrado que permite tanto a desarrolladores y data scientists el poder crear, entrenar e implementar modelos de aprendizaje automático de forma fácil y rápida.
¿Qué podemos hacer con Amazon SageMaker?
AWS Sagemaker sirve para crear y poder usar modelos de aprendizaje automático o “machine learning”, para ello disponemos de notebooks o blocs de notas donde desarrollaremos nuestro código.
Todo ello con entornos previamente preinstalados, con fácil acceso a los datos – Data Lake (almacenados normalmente en S3, que es nuestro directorio o "bucket" en la nube de Amazon), sin tener que gestionar los servidores (ya que elegimos el servidor a lanzar en el momento de la creación del bloc) y totalmente escalable.
Entremos un poco más en profundidad y observemos las opciones que nos da Sagemaker para trabajar en este campo de la Inteligencia Artificial conocido como Machine Learning.
SageMaker Studio
Amazon SageMaker Studio es un entorno de desarrollo integrado (IDE) para aprendizaje automático que nos permite crear, entrenar, depurar, implementar y monitorizar modelos de aprendizaje automático.
SageMaker Studio nos proporciona todas las herramientas que necesitamos para llevar nuestros modelos desde la experimentación hasta la producción al tiempo que aumenta su productividad.
En una única interfaz visual unificada, los clientes pueden realizar las siguientes tareas:
- Escribir y ejecutar código en blocs de notas de Jupyter
- Crear y entrenar modelos de aprendizaje automático
- Implementar los modelos y monitorizar el rendimiento de nuestras predicciones
- Realizar el seguimiento y depurar los modelos de aprendizaje automático
Ground Truth
Esta es la primera opción que nos da Sagemaker y se trata de trabajos de etiquetado, es decir existen diversos tipos de etiquetado, ya sea de imágenes, vídeo etc.
Una de las ventajas de Ground Truth es que tiene integrado un algoritmo de "active learning", es básicamente un algoritmo especializado para entrenarse en tiempo real conforme le van llegando datos nuevos, conforme más etiquetas hay, va mejorando el modelo y va aprendiendo a etiquetar automáticamente.
Dentro de Ground Truth podemos ver 3 opciones disponibles:
- Labeling jobs: Aquí podemos crear un trabajo de etiquetado con un dataset, subir imágenes de nuestro dataset a nuestro directorio S3, y decirle las tareas a realizar
- Como opción nos da poder etiquetar una muestra o el dataset entero
- Las tareas que tenemos como opción son:
• imagen, texto, video, nube de puntos
- imagen:
- Clasificación de imágenes con etiqueta única
- Clasificación de imágenes con varias etiquetas
- Cuadro delimitador
- Segmentación semántica
- Texto:
- Clasificación de textos con etiqueta única
- Clasificación de textos con varias etiquetas
- Reconocimiento de entidades con nombre
- Vídeo:
- Detección de objetos
- Seguimiento de objetos
- Clasificación
- Nube de puntos:
- Detección de objetos en la nube de puntos
- Seguimiento de objetos en la nube de puntos
- Segmentación semántica de la nube de puntos
- Personalizado:
- Aquí podemos personalizar las tareas para que se etiquete el dataset
Una vez tengamos la tarea resuelta, nos quedará seleccionar y configurar la herramienta, eligiendo quien realiza el trabajo de etiquetado, las opciones disponibles serian:
- Privado, por ejemplo, cualquier usuario de Amazon
- Proveedores específicos, empresas que se registran en Amazon para etiquetar datos (debes suscribirte al marketplace)
- Mechanical Turk, es gente aleatoria que se contrata para realizar el etiquetado, donde nosotros indicamos el precio a pagar por tiempo de etiquetado.
Notebook o Bloc de notas
El "alma mater" de Sagemaker, un bloc de notas donde vamos a ir desarrollando nuestro código sobre inteligencia artificial, preparar y procesar los datos de nuestro dataset, escribir nuestro código e implementar, probar y validar el modelo de aprendizaje automático que usemos.
Las 3 opciones que nos da Sagemaker son:
? Crear una instancia de bloc de notas.
Aquí tenemos la opción de elegir, al momento de crearlo, la máquina virtual que queremos levantar existe diversos tipos incluido algunos servidores con GPU más específicos, con diversos precios dependiendo de la cantidad de servidores que queramos levantar.
La opción de Elastic Inference es simplemente para poder añadir un procesador extra para darle más potencia, esto en el caso que lo necesitemos por nuestro modelo de entrenamiento o si la cantidad de datos o "dataset" es elevada.
Seguidamente deberemos seleccionar un Rol de Iam, básicamente serán los permisos que este notebook dispondrá para poder acceder a nuestros datos de almacenamiento en S3 por ejemplo etc.
Seguidamente nos da 3 opciones algo menos utilizadas como usar VPC, importar algún repositorio o utilizar etiquetas.
Una vez creado, y tras pasar un par de minutos para levantar el servidor de Amazon, nos llevará a un bloc de notas en entorno Jupyter, donde nos vienen preinstalados varios kernels
Normalmente el más usado seria en este caso anaconda python 3, una vez creado ya se nos abriría el bloc de notas y comenzaríamos el desarrollo de nuestro modelo de aprendizaje automático.
Processing
En esta opción nos aparecerán todos los trabajos de procesamiento que hayamos ejecutado en nuestro bloc de notas, aquí cabe destacar que Amazon solo nos cobra lo que tarda en realizarse dicho trabajo de procesamiento.
Training
La parte más importante de esta opción reside en los trainings jobs o trabajos de entrenamiento, normalmente se suele crear en el propio código en el bloc de notas, pero aquí tenemos la opción de crear los nuestros propios a mano indicando dentro de las opciones que nos da sagemaker, el algoritmo, métricas, máquina virtual a usar, etc e indicándole los hiperparametros y demás opciones disponibles.
Una vez creemos en nuestro bloc nuestro código, y lleguemos a la parte del fit, podremos visualizar aquí nuestra parte de entrenamiento.
La parte de algoritmos, aquí tenemos la opción, desde crear y poder vender nuestros propios algoritmos de machine learning o aprendizaje automático, a encontrar y buscar algoritmos en AWSMarket o el mercado donde tenemos a la venta distintos tipos en Sagemaker
Hyperparameter tuning jobs, para realizar jobs más complejos y configurar los hiperparametros.
Inference
Lo más destacable en esta opción la tenemos claramente en los puntos de enlace o "endpoints", que se produce al lanzar en nuestro bloc de notas con el “deploy”, y nos levanta un servidor nuevo donde desplegará nuestro modelo de machine learning.
Hay que tener en cuenta que este servidor hay que apagarlo después de su uso ya que no es como el servidor de entrenamiento, el cual solo se cobra el tiempo que tarda en hacer el "fit" o entrenamiento del modelo, sino que sigue activo hasta que lo apaguemos.
Dentro de cada endpoint nos monitoriza la cantidad de cpu usada, uso de memoria etc, y podemos configurarlo para, por ejemplo si llega a 75% uso de CPU, levante otro servidor o viceversa en el caso que el uso sea más bajo.
También podemos usar el modelo en modo "batch" o por lotes, que es la siguiente opción que tenemos en inferencia, simplemente es pasarle un csv al modelo y te lo escribe en nuestro directorio s3 en la columna prediction.
Augmented AI
Permite poner un umbral, cuando un modelo no este seguro de la predicción, hay una app o vía email y le llega un correo electrónico a un equipo con los datos y se tiene que etiquetar a mano
Suele ser cuando ese modelo de aprendizaje automático no funciona especialmente bien y que el propio desarrollador valide el etiquetado y compruebe si todo esta correctamente.
MarketPlace
Permite desde intercambiar, comprar, vender, etc, datos, modelos de machine learning o aprendizaje automático y algoritmos.
En la opción de AWS Data Exchange podemos acceder a muchísimos datasets, los cuales pueden estar o no ya preparados para su uso.
Model Packages: una parte realmente interesante ya que te venden el modelo ya preparado y entrenado con el dataset y el algoritmo, también destacar que es la parte más cara del marketplace dado que ya te lo dan todo listo para funcionar
Una vez te suscribes al modelo ya lo puedes configurar, le indicamos la región y la versión del software y el nombre del modelo y el del endpoint y creamos el endpoint y ya nos crearía ese punto de enlace para poder usar las predicciones de ese modelo de aprendizaje automático o machine learning
AWS Data Exchange: Conjuntos de datos o datasets a los que se pueden acceder, los hay de forma gratuita y de pago como por ejemplo los datos de IMDB, como curiosidad destacar que no todos los datasets vienen ya preparados para trabajar sobre ellos, sino que vienen en “crudo “.
Algorithms: Algoritmos de machine learning ya preparados para su compra o incluso podemos poner a la venta el nuestro propio.
La ventaja de esta parte es que el comprador no ve el código fuente del algoritmo, por lo que el cliente, al usar el algoritmo en su cuenta, tampoco dona sus datos, protegiendo los datos por ambas partes.
Los precios de los algoritmos de aprendizaje automático se cuantifican por hora, por lo que puede resultar interesante contratar un servidor potente para que tarde lo menos posible.
Conclusión
Incorporar Machine Learning en tu proyecto pondrá un nuevo universo de posibilidades a tu alcance. En Overstand, tenemos una gran experiencia en el desarrollo de soluciones de Aprendizaje Automático e Inteligencia Artificial y, además, somos partners de Amazon Web Services y SageMaker. Pídenos presupuesto sin compromiso para poner en marcha tu proyecto de ML, seremos uno más de tu equipo.