12 capacidades que toda plataforma de aprendizaje automático en la nube debe proporcionar para respaldar el ciclo de vida completo del aprendizaje automático, y qué plataformas de aprendizaje automático en la nube las proporcionan.
por Martín Heller
- Estar cerca de sus datos
- Admite una tubería ETL o ELT
- Admite un entorno en línea para la construcción de modelos
- Apoyar la capacitación de escalamiento vertical y horizontal
- Compatibilidad con AutoML y la ingeniería de funciones automatizada
- Admita los mejores marcos de trabajo de aprendizaje automático y aprendizaje profundo
- Ofrezca modelos pre-entrenados y apoye el aprendizaje de transferencia
- Ofrezca servicios de IA ajustados y preentrenados
- Administra tus experimentos
- Despliegue de modelo de soporte para predicción
- Supervisar el rendimiento de la predicción
- Controlar los costos
Para crear modelos efectivos de aprendizaje automático y aprendizaje profundo , necesita una gran cantidad de datos, una forma de limpiar los datos y realizar ingeniería de funciones en ellos, y una forma de entrenar modelos en sus datos en una cantidad de tiempo razonable. Luego, necesita una forma de implementar sus modelos, monitorearlos para ver si se desvían con el tiempo y volver a entrenarlos según sea necesario.
Puede hacer todo eso en las instalaciones si ha invertido en recursos informáticos y aceleradores como 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 para desarrollar 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 extremo a extremo debería proporcionar, con notas sobre qué nubes las proporcionan.
Estar 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, sino el tiempo: la latencia de transmisión de 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 significan latencia.
El caso ideal para conjuntos de datos muy grandes es construir el modelo donde ya residen los datos, de modo que no se necesite una transmisión masiva de datos. Varias bases de datos lo respaldan.
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 generalmente significa dentro del mismo centro de datos. Incluso mover los datos de un centro de datos a otro dentro de una zona de disponibilidad de la nube puede generar un retraso significativo si tiene terabytes (TB) o más. Puede mitigar esto haciendo actualizaciones incrementales.
El peor de los casos sería si tiene 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.
Los principales proveedores de la nube han estado abordando este problema de varias maneras. Una es agregar aprendizaje automático y aprendizaje profundo a sus servicios de base de datos. Por ejemplo, Amazon Redshift ML está diseñado para facilitar a los usuarios de SQL la creación, el entrenamiento y la implementación de modelos de aprendizaje automático mediante comandos SQL en Amazon Redshift, un servicio de almacenamiento de datos administrado a escala de petabytes. BigQuery ML le permite crear y ejecutar modelos de aprendizaje automático en BigQuery, el almacén de datos administrado a escala de petabytes de Google Cloud, que también usa consultas SQL.
IBM Db2 Warehouse on Cloud incluye un amplio conjunto de análisis de SQL en la base de datos que incluye algunas funciones básicas de aprendizaje automático, además de soporte en la base de datos para R y Python. Microsoft SQL Server Machine Learning Services admite R, Python, Java, el PREDICT T-SQL command, the rx_Predict stored procedure en el SQL Server RDBMS, y Spark MLlib en SQL Server Big Data Clusters.
Y, Oracle Cloud Infrastructure (OCI) Data Science es una plataforma administrada y sin servidor para que los equipos de ciencia de datos construyan, entrenen y administren modelos de aprendizaje automático utilizando Oracle Cloud Infrastructure, que incluye Oracle Autonomous Database y Oracle Autonomous Data Warehouse.
Otra forma en que los proveedores de la nube han abordado este problema es llevar sus servicios en la nube a los centros de datos de los clientes, así como a los puntos de presencia satelitales (a menudo en grandes áreas metropolitanas) que están más cerca de los clientes que las zonas de disponibilidad completas. AWS los llama AWS Outposts y AWS Local Zones ; Microsoft Azure los llama nodos Azure Stack Edge y Azure Arc ; Google Cloud Platform los llama ubicaciones de borde de red , Google Distributed Cloud Virtual y Anthos on-prem .
Admite una tubería 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 necesitan cambiar, ya que la fase de carga suele ser la que consume más tiempo para big data.
En general, los datos en estado salvaje son ruidosos. Eso hay que filtrarlo. Además, los datos en estado salvaje 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.
AWS Glue es un motor ETL sin servidor basado en Apache Spark; AWS también ofrece Amazon EMR , una plataforma de big data que puede ejecutar Apache Spark , y Amazon Redshift Spectrum , que admite ELT desde un lago de datos basado en Amazon S3. Azure Data Factory y Azure Synapse pueden hacer ETL y ELT. Google Cloud Data Fusion , Dataflow y Dataproc son útiles para ETL y ELT. Los productos ETL/ELT de autoservicio de terceros, como Trifacta , también se pueden usar en las nubes.
Admite 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 la imagen: puede descargar una pequeña muestra de datos a su escritorio para el análisis de datos exploratorios y la creación de modelos, pero para los modelos de producción necesita tener acceso a la totalidad. datos.
Los entornos de desarrollo basados en web, como Jupyter Notebooks , JupyterLab y Apache Zeppelin , son adecuados para la creación de modelos. Si sus datos están en la misma nube que el entorno del portátil, puede llevar el análisis a los datos, minimizando el movimiento de datos que consume mucho tiempo. Las computadoras portátiles también se pueden usar para ELT como parte de la canalización.
Amazon SageMaker le permite crear, entrenar e implementar modelos de aprendizaje automático y aprendizaje profundo para cualquier caso de uso con infraestructura, herramientas y flujos de trabajo totalmente administrados. SageMaker Studio se basa en JupyterLab.
Microsoft Azure Machine Learning es una plataforma de IA confiable, escalable y de extremo a extremo con experimentación y administración de modelos; Azure Machine Learning Studio incluye Jupyter Notebooks, un diseñador de canales de aprendizaje automático de arrastrar y soltar y una instalación de AutoML. Azure Databricks es una plataforma de análisis basada en Apache Spark; Azure Data Science Virtual Machines facilita a los científicos de datos avanzados la configuración de entornos de desarrollo de aprendizaje automático y aprendizaje profundo.
Google Cloud Vertex AI le permite crear, implementar y escalar modelos de aprendizaje automático más rápido, con modelos previamente entrenados y herramientas personalizadas dentro de una plataforma de inteligencia artificial unificada. A través de Vertex AI Workbench, Vertex AI se integra de forma nativa con BigQuery, Dataproc y Spark. Vertex AI también se integra con marcos de código abierto ampliamente utilizados, como TensorFlow , PyTorch y Scikit-learn , y es compatible con todos los marcos de aprendizaje automático y ramas de inteligencia artificial a través de contenedores personalizados para entrenamiento y predicción.
Apoyar la capacitación de escalamiento vertical y horizontal
Los requisitos de cómputo y memoria de las notebooks son generalmente mínimos, a excepción de los modelos de entrenamiento. Ayuda mucho si una computadora portátil puede generar trabajos de capacitación que se ejecutan 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.
Amazon SageMaker admite una amplia variedad de tamaños de máquinas virtuales; GPU y otros aceleradores, incluidos NVIDIA A100, Habana Gaudi y AWS Trainium; un compilador de modelos; y entrenamiento distribuido usando paralelismo de datos o paralelismo de modelos. Azure Machine Learning admite una amplia variedad de tamaños de máquinas virtuales; GPU y otros aceleradores, incluidos NVIDIA A100 e Intel FPGA; y entrenamiento distribuido usando paralelismo de datos o paralelismo de modelos. Google Cloud Vertex AI admite una amplia gama de tamaños de VM; GPU y otros aceleradores, incluidos NVIDIA A100 y Google TPU; y entrenamiento distribuido usando paralelismo de datos o paralelismo de modelos, con un servidor de reducción opcional.
Compatibilidad con AutoML y la ingeniería de funciones automatizada
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 la función objetivo, por ejemplo, el error cuadrático mínimo 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.
Amazon SageMaker Autopilot proporciona AutoML y ajuste de hiperparámetros, que pueden usar Hyperband como estrategia de búsqueda. Azure Machine Learning y Azure Databricks ofrecen AutoML, al igual que Apache Spark en Azure HDInsight . Google Cloud Vertex AI proporciona AutoML, al igual que los servicios AutoML especializados de Google para datos estructurados, vista e idioma, aunque Google tiende a agrupar AutoML con el aprendizaje de transferencia en algunos casos.
DataRobot , Dataiku y H2O.ai Driverless AI ofrecen AutoML con ingeniería de funciones automatizada y ajuste de hiperparámetros.
Admita los mejores marcos de trabajo 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 suele ser el favorito 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 el 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 de redes neuronales profundas. Del mismo modo, Google Cloud ofrece TensorFlow Enterprise.
Ofrezca modelos pre-entrenados y apoye el aprendizaje de transferencia
No todo el mundo quiere gastar el tiempo y los recursos informáticos para entrenar sus propios modelos, ni debería 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 puede llevar semanas, por lo que tiene sentido usar un modelo previamente entrenado cuando pueda.
Por otro lado, es posible que los modelos previamente entrenados 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 el gasto de entrenar la red completa.
Todos los principales marcos de aprendizaje profundo y proveedores de servicios en la nube admiten el aprendizaje de transferencia en algún nivel. Hay diferencias; una diferencia importante es que Azure puede personalizar algunos tipos de modelos con decenas de ejemplares etiquetados, en comparación con cientos o miles para algunas de las otras plataformas.
Ofrezca servicios de IA ajustados y preentrenados
Las principales plataformas en la nube ofrecen servicios de inteligencia artificial robustos y ajustados para muchas aplicaciones, no solo para la 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 han sido entrenados y probados con más datos de los que normalmente están 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.
Las diferencias entre los servicios ofrecidos por los tres grandes tienden a ser menores. Un área de desarrollo activo son los servicios para el perímetro , incluido el aprendizaje automático que reside en dispositivos como cámaras y se comunica con la nube.
Administra tus experimentos
La única forma de encontrar el mejor modelo para su conjunto de datos es probarlo todo, ya sea manualmente o con AutoML. Eso deja otro problema: administrar sus experimentos.
Una buena plataforma de aprendizaje automático en la nube le 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.
Además del seguimiento de experimentos integrado en Amazon SageMaker, Azure Machine Learning y Google Cloud Vertex AI, puede usar productos de terceros como Neptune.ai , Weights & Biases , Sacred plus Omniboard y MLflow . La mayoría de estos son gratuitos, al menos para uso personal, y algunos son de código abierto.
Despliegue de modelo de soporte para predicción
Una vez que tenga una forma de elegir el mejor experimento según sus criterios, también necesitará una manera fácil de implementar el modelo. Si implementa varios modelos para el mismo propósito, también necesitará una forma de repartir el tráfico entre ellos para las pruebas a/b.
Un punto conflictivo es el costo de implementar un punto final, como se analiza en “Costos de control” a continuación. Ha habido muchos cambios en la implementación del modelo durante el último año o tres. Idealmente, los puntos finales de predicción de bajo volumen deberían ser sin servidor, y los puntos finales de predicción de alto volumen deberían estar agrupados o usar aceleradores.
Supervisar el rendimiento de la predicción
Desafortunadamente para los constructores de modelos, los datos pueden cambiar con el tiempo. Eso significa que no puede implementar un modelo y olvidarlo. En su lugar, debe monitorear los datos enviados para las 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.
Amazon SageMaker Model Monitor hace un trabajo especialmente bueno con esto, aunque está restringido a datos tabulares. Azure Machine Learning tiene un paquete de detección de desviación de datos en versión preliminar pública. Google Cloud Vertex AI Model Monitoring detecta sesgos y desviaciones para AutoML tabular y modelos tabulares entrenados a medida. Los productos de gestión de experimentos mencionados anteriormente también se pueden utilizar para la detección de desviación de datos y modelos.
Controlar los 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