por Martin Heller
12 capacidades que toda plataforma de aprendizaje automático en la nube debería proporcionar para respaldar el ciclo de vida completo del aprendizaje automático
Para crear modelos efectivos de aprendizaje automático y aprendizaje profundo , necesita grandes cantidades de datos, una forma de limpiar los datos y realizar ingeniería de características en ellos, y una forma de entrenar modelos en sus datos en un período de tiempo razonable. Luego, necesita una forma de implementar sus modelos, monitorearlos en busca de desviaciones a lo largo del tiempo y reentrenarlos según sea necesario.
Puede hacer todo eso en las instalaciones si ha invertido en recursos informáticos y aceleradores, como las GPU, pero puede encontrar que si sus recursos son adecuados, también están inactivos la mayor parte del tiempo. Por otro lado, a veces puede ser más rentable ejecutar toda la canalización 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, y también varias nubes menores, han realizado un esfuerzo significativo en la construcción de sus plataformas de aprendizaje automático para respaldar 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 determina cuál de estas nubes satisfará sus necesidades? Aquí hay 12 capacidades que toda plataforma de aprendizaje automático de un extremo a otro debe proporcionar.
Esté cerca de sus datos
Si tiene la gran cantidad de datos necesarios para construir modelos precisos, no querrá enviarlos al otro lado del mundo. El problema aquí no es la distancia, sin embargo, es el momento: la velocidad de transmisión de datos está limitada en última instancia por la velocidad de la luz, incluso en una red perfecta con ancho de banda infinito. Las distancias largas significan latencia.
El caso ideal para conjuntos de datos muy grandes es construir el modelo donde los datos ya residen, de modo que no se necesite transmisión masiva de datos. Varias bases de datos lo apoyan de forma limitada.
El siguiente mejor caso es que los datos estén en la misma red de alta velocidad que el software de creación de modelos, lo que normalmente significa dentro del mismo centro de datos. Incluso mover los datos de un centro de datos a otro dentro de una zona de disponibilidad en la nube puede introducir una demora significativa si tiene terabytes (TB) o más. Puede mitigar esto haciendo actualizaciones incrementales.
El peor de los casos sería si tuviera que mover grandes distancias de datos a través de rutas con ancho de banda limitado y alta latencia. Los cables transpacíficos que van a Australia son particularmente atroces a este respecto.
Admite una canalización ETL o ELT
ETL (exportar, transformar y cargar) y ELT (exportar, cargar y transformar) son dos configuraciones de canalización de datos que son comunes en el mundo de las bases de datos. El aprendizaje automático y el aprendizaje profundo amplifican la necesidad de estos, especialmente la parte de transformación. ELT le brinda más flexibilidad cuando sus transformaciones deben cambiar, ya que la fase de carga suele ser la que requiere más tiempo para big data.
En general, los datos en la naturaleza son ruidosos. Eso necesita ser filtrado. 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. Exactamente qué rango estandarizado depende del algoritmo utilizado para el modelo.
Apoyar un entorno en línea para la construcción de modelos
La sabiduría convencional solía ser que debe importar sus datos a su escritorio para la construcción de modelos. La gran cantidad de datos necesarios para crear buenos modelos de aprendizaje automático y aprendizaje profundo cambia el panorama: puede descargar una pequeña muestra de datos en su escritorio para el análisis de datos exploratorios y la construcción de modelos, pero para los modelos de producción debe tener acceso a la datos.
Los entornos de desarrollo basados en web, como Jupyter Notebooks, JupyterLab y Apache Zeppelin, son adecuados para la construcción de modelos. Si sus datos están en la misma nube que el entorno de la computadora portátil, puede llevar el análisis a los datos, minimizando el lento movimiento de datos.
Apoyar la formación de ampliación y ampliación
Los requisitos de computación y memoria de los portátiles son generalmente mínimos, a excepción de los modelos de entrenamiento. Es de gran ayuda si un portátil puede generar trabajos de formación que se ejecuten en varias máquinas virtuales o contenedores grandes. También ayuda mucho si la capacitación puede acceder a aceleradores como GPU, TPU y FPGA; estos pueden convertir días de entrenamiento en horas.
Admite AutoML y la ingeniería de funciones automática
No todo el mundo es bueno para elegir modelos de aprendizaje automático, seleccionar funciones (las variables que utiliza el modelo) e diseñar nuevas funciones a partir de las observaciones sin procesar. Incluso si eres bueno en esas tareas, requieren mucho tiempo y pueden automatizarse en gran medida.
Los sistemas AutoML a menudo prueban muchos modelos para ver cuál da como resultado los mejores valores de función objetivo, por ejemplo, el error mínimo al cuadrado para problemas de regresión. Los mejores sistemas AutoML también pueden realizar ingeniería de funciones y utilizar sus recursos de manera eficaz para buscar los mejores modelos posibles con los mejores conjuntos de funciones posibles.
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 aquellos que prefieren Python, Scikit-learn es a menudo uno de los favoritos para el aprendizaje automático, mientras que TensorFlow , PyTorch , Keras y MXNet suelen ser las mejores opciones para el aprendizaje profundo. En Scala, Spark MLlib tiende a ser preferido para el aprendizaje automático. En R, hay muchos paquetes nativos de aprendizaje automático y una buena interfaz para Python. En Java, H2O.ai tiene una alta calificación, al igual que Java-ML y Deep Java Library.
Las plataformas de aprendizaje automático y aprendizaje profundo en la nube tienden a tener su propia colección de algoritmos y, a menudo, admiten marcos externos en al menos un idioma o como contenedores con puntos de entrada específicos. En algunos casos, puede integrar sus propios algoritmos y métodos estadísticos con las funciones de AutoML de la plataforma, lo cual es bastante conveniente.
Algunas plataformas en la nube también ofrecen sus propias versiones optimizadas de los principales marcos de aprendizaje profundo. Por ejemplo, AWS tiene una versión optimizada de TensorFlow que, según afirma, puede lograr una escalabilidad casi lineal para el entrenamiento profundo de redes neuronales.
Ofrecer modelos previamente entrenados y apoyar el aprendizaje por transferencia
No todo el mundo quiere dedicar el tiempo y los recursos informáticos a entrenar sus propios modelos, ni deberían hacerlo cuando hay modelos previamente entrenados disponibles. Por ejemplo, el conjunto de datos de ImageNet es enorme y entrenar una red neuronal profunda de última generación contra él puede llevar semanas, por lo que tiene sentido utilizar un modelo previamente entrenado para él cuando sea posible.
Por otro lado, es posible que los modelos entrenados previamente no siempre identifiquen los objetos que le interesan. El aprendizaje de transferencia puede ayudarlo a personalizar las últimas capas de la red neuronal para su conjunto de datos específico sin el tiempo y los gastos de entrenamiento de la red completa.
Ofrezca servicios de IA optimizados
Las principales plataformas en la nube ofrecen servicios de IA robustos y ajustados para muchas aplicaciones, no solo identificación de imágenes. Los ejemplos incluyen traducción de idiomas, voz a texto, texto a voz, pronóstico y recomendaciones.
Estos servicios ya se han capacitado y probado con más datos de los que suelen estar disponibles para las empresas. También ya están implementados en puntos finales de servicio con suficientes recursos computacionales, incluidos aceleradores, para garantizar buenos tiempos de respuesta bajo carga mundial.
Gestiona tus experimentos
La única forma de encontrar el mejor modelo para su conjunto de datos es probar todo, ya sea manualmente o usando AutoML. Eso deja otro problema: administrar sus experimentos.
Una buena plataforma de aprendizaje automático en la nube permitirá 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.
Apoyar la implementación del modelo para la predicción
Una vez que tenga una forma de elegir el mejor experimento según sus criterios, también necesita una manera fácil de implementar el modelo. Si implementa varios modelos para el mismo propósito, también necesitará una forma de distribuir el tráfico entre ellos para las pruebas a / b.
Supervisar el rendimiento de la predicción
Desafortunadamente, el mundo tiende a cambiar y los datos cambian con él. Eso significa que no puede implementar un modelo y olvidarlo. En su lugar, debe monitorear los datos enviados para obtener predicciones a lo largo del tiempo. Cuando los datos comiencen a cambiar significativamente desde la línea de base de su conjunto de datos de entrenamiento original, deberá volver a entrenar su modelo.
Control de costos
Finalmente, necesita formas de controlar los costos incurridos por sus modelos. La implementación de modelos para la inferencia de producción a menudo representa el 90% del costo del aprendizaje profundo, mientras que la capacitación representa solo el 10% del costo.
La mejor manera de controlar los costos de predicción depende de su carga y la complejidad de su modelo. Si tiene una carga alta, es posible que pueda usar un acelerador para evitar agregar más instancias de máquinas virtuales. Si tiene una carga variable, es posible que pueda cambiar dinámicamente su tamaño o la cantidad de instancias o contenedores a medida que la carga sube o baja. Y si tiene una carga baja u ocasional, es posible que pueda usar una instancia muy pequeña con un acelerador parcial para manejar las predicciones.
Fuente: https://www.infoworld.com/article/3568889/how-to-choose-a-cloud-machine-learning-platform.html