Cómo elegir una plataforma de machine learning en la nube

12 características que toda plataforma de machine learning en la nube debe proporcionar para soportar el ciclo de vida completo del aprendizaje automático.

by Janeth Kent Date: 26-04-2021 machinelearning IA aprendizaje-automático

Para crear modelos eficaces de aprendizaje automático y aprendizaje profundo, se necesitan grandes cantidades de datos, una forma de limpiarlos y realizar ingeniería en ellos, junto a un modelo de entrenamiento de datos en un tiempo razonable.

También es imprescindible disponer de una forma para implementar modelos, supervisar su evolución a lo largo del tiempo y volver a entrenarlos cuando sea necesario.

Todo esto se puede hacer in situ si se ha invertido en recursos informáticos y aceleradores, como las GPU, pero es posible que, si los recursos son adecuados, también estén inactivos la mayor parte del tiempo. Por otro lado, a veces puede ser más rentable ejecutar todo el pipeline en la nube, utilizando grandes cantidades de recursos informáticos y aceleradores según sea necesario, y luego liberándolos.

Los principales proveedores de la nube, han realizado un esfuerzo considerable para crear sus plataformas de aprendizaje automático con el fin de apoyar el ciclo de vida completo del aprendizaje automático, desde la planificación de un proyecto hasta el mantenimiento de un modelo en producción.

¿Cómo determinar cuál de estas nubes satisfará nuestras necesidades? Vamos a mencionar 12 características que toda plataforma de aprendizaje automático integral debería ofrecer.

1. Cercania de los datos

Si disponemos de una gran cantidad de datos necesarios para construir modelos precisos, no queremos enviarlos al otro lado del mundo. Pero el problema no es la distancia, sino el tiempo: La velocidad de transmisión de los datos está limitada en última instancia por la velocidad de la luz, incluso en una red perfecta con un ancho de banda infinito. Las largas distancias implican latencia.

El caso ideal para conjuntos de datos muy grandes es construir el modelo donde ya residen los datos, de modo que no sea necesaria la transmisión masiva de datos. Varias bases de datos lo permiten hasta cierto punto.

El siguiente caso ideal es que los datos estén en la misma red de alta velocidad que el software de creación de modelos, lo que suele significar que se encuentran en el mismo centro de datos. Incluso el traslado de los datos de un centro de datos a otro dentro de una zona de disponibilidad de la nube puede introducir un retraso significativo si tiene terabytes (TB) o más. Esto se puede mitigar realizando actualizaciones progresivas.

El peor caso sería el de tener que trasladar grandes datos a largas distancias por rutas con un ancho de banda limitado y una alta latencia. Los cables transpacíficos que van a Australia son particularmente atroces en este sentido.

2. Respaldar una canalización ETL o ELT

ETL (exportar, transformar y cargar) y ELT (exportar, cargar y transformar) son dos configuraciones de tuberías de datos que son comunes en el mundo de las bases de datos. El aprendizaje automático y el aprendizaje profundo amplían la necesidad de estos, especialmente la parte de transformación. ELT te da más flexibilidad cuando tus transformaciones necesitan cambiar, ya que la fase de carga suele ser la que más tiempo consume para el big data.

En general, los datos en la naturaleza son algo ruidosos y desordenados. Hay que filtrarlos. Además, los datos en la naturaleza tienen rangos variables: Una variable puede tener un máximo de millones, mientras que otra puede tener un rango de -0,1 a -0,001. Para el aprendizaje automático, las variables deben transformarse en rangos estandarizados para evitar que las que tienen rangos grandes dominen el modelo. El rango estandarizado exacto depende del algoritmo utilizado para el modelo.

3. Apoyar un entorno en línea para la construcción de modelos

La sabiduría convencional solía ser que había que importar los datos al escritorio para la construcción de modelos. La gran cantidad de datos necesarios para construir buenos modelos de aprendizaje automático y aprendizaje profundo cambia el panorama: Puedes descargar una pequeña muestra de datos a tu escritorio para el análisis exploratorio de datos y la construcción de modelos, pero para los modelos de producción necesitas tener acceso a los datos completos.

Los entornos de desarrollo basados en la web, como Jupyter Notebooks, JupyterLab y Apache Zeppelin, son muy adecuados para la creación de modelos. Si tus datos están en la misma nube que el entorno de cuadernos, puedes llevar el análisis a los datos, minimizando el lento movimiento de datos.

4. Admite el entrenamiento a escala y a escala reducida

Los requisitos de computación y memoria de los portátiles son generalmente mínimos, excepto para los modelos de entrenamiento. Es de gran ayuda que un portátil pueda generar trabajos de formación que se ejecuten en múltiples máquinas virtuales o contenedores de gran tamaño. También ayuda mucho si la formación puede acceder a aceleradores como GPUs, TPUs y FPGAs; estos pueden convertir días de formación en horas.

5. Soportar AutoML y la ingeniería automática

No todo el mundo es bueno en la elección de modelos de aprendizaje automático, la selección de características (las variables que son utilizadas por el modelo), y la ingeniería de nuevas características de las observaciones en bruto.

Los sistemas AutoML suelen probar muchos modelos para ver cuál da lugar a los mejores valores de la función objetivo, por ejemplo el error cuadrático mínimo para los problemas de regresión.

Los mejores sistemas AutoML también pueden realizar ingeniería de características y utilizar sus recursos de forma eficaz para buscar los mejores modelos posibles con los mejores conjuntos de características posibles.

6. Apoye los mejores marcos de aprendizaje automático y aprendizaje profundo

La mayoría de los científicos de datos tienen marcos y lenguajes de programación favoritos para el aprendizaje automático y el aprendizaje profundo. Para los que prefieren Python, Scikit-learn suele ser el favorito para el aprendizaje automático, mientras que TensorFlow, PyTorch, Keras y MXNet suelen ser los más elegidos para el aprendizaje profundo. En Scala, Spark MLlib tiende a ser el preferido para el aprendizaje automático. En R, hay muchos paquetes nativos de aprendizaje automático y una buena interfaz con Python. En Java, H2O.ai tiene una alta valoración, al igual que Java-ML y Deep Java Library.

Las plataformas de aprendizaje automático en la nube y de aprendizaje profundo suelen tener su propia colección de algoritmos, y a menudo admiten marcos externos en al menos un lenguaje o como contenedores con puntos de entrada específicos. En algunos casos puedes integrar tus propios algoritmos y métodos estadísticos con las facilidades de AutoML de la plataforma, lo cual es bastante conveniente.

Algunas plataformas en la nube también ofrecen sus propias versiones ajustadas de los principales marcos de aprendizaje profundo. Por ejemplo, AWS tiene una versión optimizada de TensorFlow que, según afirma, puedemos lograr una escalabilidad casi lineal para el entrenamiento de redes neuronales profundas.

7. Ofrecer modelos preformados y apoyar el aprendizaje por transferencia

No todo el mundo quiere dedicar el tiempo y los recursos informáticos necesarios para entrenar sus propios modelos, ni debería hacerlo cuando hay modelos preentrenados disponibles. Por ejemplo, el conjunto de datos de ImageNet es enorme, y entrenar una red neuronal profunda de última generación con él puede llevar semanas, por lo que tiene sentido utilizar un modelo preentrenado cuando se pueda.

Por otro lado, es posible que los modelos preentrenados no siempre identifiquen los objetos que le interesan. El aprendizaje por transferencia puede ayudarnos a personalizar las últimas capas de la red neuronal para su conjunto de datos específico sin el tiempo y el gasto de entrenar la red completa.

8. Ofrecer servicios de IA ajustados

Las principales plataformas en la nube ofrecen servicios de IA sólidos y ajustados para muchas aplicaciones, no sólo para la identificación de imágenes. Algunos ejemplos son la traducción de idiomas, la conversión de voz en texto, la predicción y las recomendaciones.

Estos servicios ya han sido entrenados y probados con más datos de los que suelen tener las empresas. Además, ya están desplegados en puntos finales de servicio con suficientes recursos informáticos, incluidos aceleradores, para garantizar buenos tiempos de respuesta bajo carga mundial.

9. Gestionar los experimentos

La única manera de encontrar el mejor modelo para su conjunto de datos es probarlo todo, ya sea manualmente o utilizando AutoML. Eso deja otro problema: la gestión de los experimentos.

Una buena plataforma de aprendizaje automático en la nube tendrá una forma de ver y comparar los valores de la función objetivo de cada experimento tanto para los conjuntos de entrenamiento como para los datos de prueba, así como el tamaño del modelo y la matriz de confusión. Ser capaz de graficar todo eso es una ventaja definitiva.

10. Apoyar el desarrollo del modelo de predicción

Una vez que tengamos una forma de elegir el mejor experimento en función de nuestros criterios, también necesitaremos una forma sencilla de implementar el modelo. Si se implementan varios modelos para el mismo propósito, también se necesitará una forma de repartir el tráfico entre ellos para las pruebas a/b.

11. Supervisar el rendimiento de las predicciones

Por desgracia, el mundo tiende a cambiar, y los datos cambian con él. Esto significa que no se puede implementar un modelo y olvidarse de él. En su lugar, debe supervisar los datos enviados para las predicciones a lo largo del tiempo. Cuando los datos empiecen a cambiar significativamente con respecto a la línea de base de su conjunto de datos de entrenamiento original, necesitaremos volver a entrenar su modelo.

12. Controlar los costes

Por último, es necesario controlar los costes en los que incurren los modelos. La implementación de modelos para la inferencia de producción a menudo representa el 90% del coste del aprendizaje profundo, mientras que la formación representa solo el 10% del coste.

La mejor manera de controlar los costes de predicción dependerá de su carga y de la complejidad de del modelo. Si tenemos una carga alta, podríamos utilizar un acelerador para evitar añadir más instancias de máquinas virtuales. Si tenemos una carga variable, podemos cambiar dinámicamente el tamaño o el número de instancias o contenedores a medida que la carga aumenta o disminuye.

Y si tenemos una carga baja u ocasional, podríamos utilizar una instancia muy pequeña con un acelerador parcial para manejar las predicciones.

Education vector created by vectorjuice - www.freepik.com
 
by Janeth Kent Date: 26-04-2021 machinelearning IA aprendizaje-automático visitas : 2674  
 
Janeth Kent

Janeth Kent

Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.

 
 
 

Artículos relacionados

El Fediverso, la nueva frontera sin limites de las redes sociales

La gente quiere comunicarse por Internet con la misma facilidad que en la vida real, con protecciones similares pero, potencialmente, con mayor alcance. En otras palabras, la gente quiere poder…

GnuPG, el software libre de cifrado y firma digital

En criptografía, el cifrado es el proceso de codificación de la información. En este proceso convierte la representación original de la información, conocida como texto plano, en una forma alternativa…

¿Cómo facilitar tu vida con ChatGPT?

Ya hemos escrito varios articulos sobre la inteligencia artificial que está revolucionando el mundo, pero esta vez hablaremos de cómo te puede ayudar con tareas diarias y así ahorrarte tiempo…

Top herramientas para la gestión de redes sociales

A día de hoy sabemos que tener presencia en las redes sociales es cada vez más importante si quieres impulsar tu negocio y llegar a mucha más audiencia Pero primero de todo, ¿Qué…

El futuro laboral bajo la sombra de la automatización

La automatización y el avance de la tecnología han generado preocupación en algunos sectores sobre la posibilidad de que los robots quiten el trabajo a los humanos. Si bien es…

¿La inteligencia artificial dejará sin trabajo a los programadores?

Uno de los temas más debatidos en relación a la inteligencia artificial es la posibilidad de que los puestos de trabajo sean reemplazados debido a la automatización de los procesos…

Las cinco leyes de la Ingeniería de Software aplicadas a la Inteligencia Artificial

En su artículo titulado The Five Laws of SE for AI (Cinco leyes de la Ingeniería de Software para la Inteligencia Artificial), Tim Menzies reflexiona sobre el papel que desempeña…

Es sexista la IA? Una perspectiva de género en la robótica y en la inteligencia artificial

En su artículo, Maria Antonia Huertas Sánchez de la UOC - Universitat Oberta de Catalunya, nos brinda una explicación sobre por qué deberíamos incorporar una visión de género en la…

Qué es Docker y cómo empezar a usarlo.

Docker es una plataforma creada con el fin de desarrollar, implementar y ejecutar aplicaciones dentro de contenedores, lo cual permite a los desarrolladores hacer el empaquetado de dichas aplicaciones junto…

Metaverso vs. multiverso vs. omniverso: Diferencias clave

A medida que aumenta el interés por el metaverso, también se acelera el debate sobre la terminología utilizada para describir el concepto de entornos digitales tridimensionales inmersivos. A veces se…

Nuevas herramientas de inteligencia artificial que debes conocer

Nuevas herramientas de inteligencia artificial que debes conocer Estamos muy cerca de 2023 y todos esperamos una explosión de herramientas basadas en IA en el nuevo año y con razón... Si…

Herramientas alternativas de diseño web open source

Hay muchas herramientas de creación de prototipos, de diseño de interfaz de usuario o aplicaciones de gráficos vectoriales. Pero la mayoría son de pago o de código cerrado. Así que…

Clicky