Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Vuelva a entrenar automáticamente las redes neuronales con Renate

Hoy anunciamos la disponibilidad general de Renate, una biblioteca Python de código abierto para el reentrenamiento automático de modelos. La biblioteca proporciona algoritmos de aprendizaje continuo capaces de entrenar gradualmente una red neuronal a medida que hay más datos disponibles.

Al abrir Renate, nos gustaría crear un lugar donde se reúnan los profesionales que trabajan en sistemas de aprendizaje automático del mundo real y los investigadores interesados ​​en avanzar en el estado del arte en el aprendizaje automático automático, el aprendizaje continuo y el aprendizaje permanente. Creemos que las sinergias entre estas dos comunidades generarán nuevas ideas en la comunidad de investigación de aprendizaje automático y brindarán un impacto positivo tangible en las aplicaciones del mundo real.

Reciclaje de modelos y olvido catastrófico

Entrenar redes neuronales de forma incremental no es una tarea sencilla. En la práctica, los datos proporcionados en diferentes puntos en el tiempo a menudo se muestrean a partir de diferentes distribuciones. Por ejemplo, en los sistemas de preguntas y respuestas, la distribución de los temas en las preguntas puede variar significativamente con el tiempo. En los sistemas de clasificación, puede ser necesario agregar nuevas categorías cuando los datos se recopilan en diferentes partes del mundo. Ajustar los modelos previamente entrenados con nuevos datos en estos casos conducirá a un fenómeno llamado "olvido catastrófico". Habrá un buen desempeño en los ejemplos más recientes, pero la calidad de las predicciones realizadas para los datos recopilados en el pasado se degradará significativamente. Además, la degradación del rendimiento será incluso más grave cuando la operación de reentrenamiento se realice con regularidad (por ejemplo, diariamente o semanalmente).

Cuando es posible almacenar una pequeña porción de datos, los métodos basados ​​en la reutilización de datos antiguos durante el reentrenamiento pueden aliviar parcialmente el catastrófico problema de olvido. Se han desarrollado varios métodos siguiendo esta idea. Algunos de ellos almacenan solo los datos sin procesar, mientras que los más avanzados también guardan metadatos adicionales (por ejemplo, la representación intermedia de los puntos de datos en la memoria). El almacenamiento de una pequeña cantidad de datos (p. ej., miles de puntos de datos) y su uso cuidadoso condujo al rendimiento superior que se muestra en la siguiente figura.

Traiga su propio modelo y conjunto de datos

Al entrenar modelos de redes neuronales, puede ser necesario cambiar la estructura de la red, la transformación de datos y otros detalles importantes. Si bien los cambios de código son limitados, pueden convertirse en una tarea compleja cuando estos modelos forman parte de una gran biblioteca de software. Para evitar estos inconvenientes, Renate ofrece a los clientes la posibilidad de definir sus modelos y conjuntos de datos en funciones de Python predefinidas como parte de un archivo de configuración. Esto tiene la ventaja de mantener el código de los clientes claramente separado del resto de la biblioteca y permitir que los clientes sin ningún conocimiento de la estructura interna de Renate utilicen la biblioteca de manera efectiva.

Además, todas las funciones, incluida la definición del modelo, son muy flexibles. De hecho, la función de definición de modelos permite a los usuarios crear redes neuronales desde cero siguiendo sus propias necesidades o instanciar modelos conocidos de bibliotecas de código abierto como transformers or antorcha. Solo requiere agregar las dependencias necesarias al archivo de requisitos.

Un tutorial sobre cómo escribir el archivo de configuración está disponible en Cómo escribir un archivo de configuración.

El beneficio de la optimización de hiperparámetros

Como suele ser el caso en el aprendizaje automático, los algoritmos de aprendizaje continuo vienen con una serie de hiperparámetros. Su configuración puede marcar una diferencia importante en el rendimiento general, y un ajuste cuidadoso puede tener un impacto positivo en el rendimiento predictivo. Al entrenar un nuevo modelo, Renate puede habilitar la optimización de hiperparámetros (HPO) utilizando algoritmos de última generación como ASHA para aprovechar la capacidad de ejecutar varios trabajos paralelos en Amazon SageMaker. Un ejemplo de los resultados se muestra en la siguiente figura.

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Para habilitar HPO, el usuario deberá definir el espacio de búsqueda o utilizar uno de los espacios de búsqueda predeterminados proporcionados con la biblioteca. Consulte el ejemplo en Ejecutar un trabajo de entrenamiento con HPO. Los clientes que buscan un ajuste más rápido también pueden aprovechar los resultados de sus trabajos de ajuste anteriores seleccionando algoritmos con funcionalidades de transferencia de aprendizaje. De esta forma, los optimizadores estarán informados sobre qué hiperparámetros están funcionando bien en diferentes trabajos de ajuste y podrán concentrarse en ellos, reduciendo el tiempo de ajuste.

Ejecutarlo en la nube

Renate permite a los usuarios pasar rápidamente de modelos de entrenamiento en una máquina local para experimentar a entrenar redes neuronales a gran escala con SageMaker. De hecho, ejecutar trabajos de entrenamiento en una máquina local es bastante inusual, especialmente cuando se entrenan modelos a gran escala. Al mismo tiempo, poder verificar los detalles y probar el código localmente puede ser extremadamente útil. Para responder a esta necesidad, Renate permite cambiar rápidamente entre la máquina local y el servicio de SageMaker simplemente cambiando un indicador en el archivo de configuración.

Por ejemplo, al iniciar un trabajo de ajuste, es posible ejecutarlo localmente execute_tuning_job(..., backend='local') y cambie rápidamente a SageMaker, cambiando el código de la siguiente manera:

execute_tuning_job(
...,
backend="sagemaker",
role=get_execution_role(),      # requires importing the function from Syne Tune
instance_type="ml.g4dn.2xlarge" # the desired instance type
job_name="name_prefix_",             # a prefix to be used to identify the job
...
)

Después de ejecutar el script, será posible ver el trabajo ejecutándose desde la interfaz web de SageMaker:

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

También será posible monitorear el trabajo de entrenamiento y leer los registros en CloudWatch:

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Todo esto sin ningún código o esfuerzo adicional.

Un ejemplo completo de cómo ejecutar trabajos de capacitación en la nube está disponible en Cómo ejecutar un trabajo de entrenamiento.

Conclusión

En esta publicación, describimos los problemas asociados con el reentrenamiento de las redes neuronales y los principales beneficios de la biblioteca Renate en el proceso. Para obtener más información sobre la biblioteca, consulte el Repositorio GitHub, donde encontrará una descripción general de alto nivel de la bibliotecas y su algoritmos, instrucciones para el instalacióny ejemplos que le puede ayudar a empezar.

Esperamos su contribuciones, retroalimentación y discutir esto más a fondo con todos los interesados, y ver la biblioteca integrada en las canalizaciones de reciclaje del mundo real.


Sobre los autores

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.giovanni zappella es un científico aplicado sénior que trabaja en ciencia a largo plazo en AWS Sagemaker. Actualmente trabaja en aprendizaje continuo, monitoreo de modelos y AutoML. Antes de eso, trabajó en aplicaciones de bandidos de múltiples brazos para sistemas de recomendaciones a gran escala en Amazon Music.

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Martín Wistuba es científico aplicado en el equipo científico a largo plazo de AWS Sagemaker. Su investigación se centra en el aprendizaje automático de máquinas.

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.  Lucas Balles es científico aplicado en AWS. Trabaja en el aprendizaje continuo y en temas relacionados con el seguimiento de modelos.

Vuelva a entrenar automáticamente las redes neuronales con Renate PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.cedric archambeau es científico principal aplicado en AWS y miembro del laboratorio europeo de aprendizaje y sistemas inteligentes.

Sello de tiempo:

Mas de Aprendizaje automático de AWS