Modelos y plataformas de IA
El Fiber de Uber es un nuevo marco de entrenamiento de modelos de inteligencia artificial distribuidos
Según VentureBeat, los investigadores de inteligencia artificial de Uber han publicado recientemente un artículo en Arxiv que describe una nueva plataforma destinada a ayudar en la creación de modelos de inteligencia artificial distribuidos. La plataforma se llama Fiber, y se puede utilizar para realizar tareas de aprendizaje de refuerzo y aprendizaje basado en poblaciones. Fiber está diseñado para hacer que la computación paralela a gran escala sea más accesible para los no expertos, lo que les permite aprovechar el poder de los algoritmos y modelos de inteligencia artificial distribuidos.
Fiber se ha lanzado recientemente como código abierto en GitHub, y es compatible con Python 3.6 o superior, con Kubernetes ejecutándose en un sistema Linux y en un entorno de nube. Según el equipo de investigadores, la plataforma puede escalar fácilmente hasta cientos o miles de máquinas individuales.
El equipo de investigadores de Uber explica que muchos de los avances más recientes y relevantes en inteligencia artificial han sido impulsados por modelos más grandes y algoritmos que se entrenan utilizando técnicas de entrenamiento distribuido. Sin embargo, crear modelos basados en poblaciones y modelos de refuerzo sigue siendo una tarea difícil para los esquemas de entrenamiento distribuidos, ya que a menudo tienen problemas de eficiencia y flexibilidad. Fiber hace que el sistema distribuido sea más confiable y flexible combinando software de gestión de clústeres con escalado dinámico y permitiendo a los usuarios mover sus trabajos de una máquina a una gran cantidad de máquinas de manera transparente.
Fiber se compone de tres componentes diferentes: una API, un backend y una capa de clúster. La capa de API permite a los usuarios crear elementos como colas, administradores y procesos. La capa de backend de Fiber permite a los usuarios crear y terminar trabajos que se gestionan en diferentes clústeres, y la capa de clúster gestiona los clústeres individuales y sus recursos, lo que reduce el número de elementos que Fiber debe tener en cuenta.
Fiber permite que los trabajos se puedan poner en cola y ejecutar de manera remota en una máquina local o en varias máquinas, utilizando el concepto de procesos respaldados por trabajos. Fiber también utiliza contenedores para asegurarse de que los datos de entrada y los paquetes dependientes estén autocontenidos. El marco de Fiber incluso incluye un control de errores integrado para que si un trabajador se bloquea, se pueda revivir rápidamente. Fiber puede hacer todo esto mientras interactúa con los administradores de clústeres, lo que permite que las aplicaciones de Fiber se ejecuten como si fueran aplicaciones normales que se ejecutan en un clúster de computadoras determinado.
Los resultados experimentales mostraron que, en promedio, el tiempo de respuesta de Fiber fue de unos pocos milisegundos y que también escaló mejor que las técnicas de inteligencia artificial básicas cuando se construyó con 2.048 núcleos de procesador/trabajadores. El tiempo necesario para completar los trabajos disminuyó gradualmente a medida que aumentaba el número de trabajadores. IPyParallel completó 50 iteraciones de entrenamiento en aproximadamente 1400 segundos, mientras que Fiber pudo completar las mismas 50 iteraciones de entrenamiento en aproximadamente 50 segundos con 512 trabajadores disponibles.
Los coautores del artículo de Fiber explican que Fiber puede lograr múltiples objetivos, como escalar algoritmos de manera dinámica y utilizar grandes volúmenes de potencia de cómputo:
“[Nuestro trabajo muestra] que Fiber logra muchos objetivos, incluyendo aprovechar eficientemente una gran cantidad de hardware de cómputo heterogéneo, escalar algoritmos de manera dinámica para mejorar la eficiencia del uso de recursos, reducir la carga de ingeniería necesaria para hacer que los algoritmos de aprendizaje de refuerzo y los algoritmos basados en poblaciones funcionen en clústeres de computadoras, y adaptarse rápidamente a diferentes entornos de cómputo para mejorar la eficiencia de la investigación. Esperamos que esto permita avanzar en la resolución de problemas difíciles de aprendizaje de refuerzo con algoritmos de aprendizaje de refuerzo y métodos basados en poblaciones, haciendo que sea más fácil desarrollar estos métodos y entrenarlos a la escala necesaria para que realmente brillen”












