Los ingenieros de IA de Meta fueron cada vez más frustrado con tiempos de construcción lentos y procesos de distribución ineficientes que obstaculizan su productividad. La empresa ha descrito ahora las soluciones que sus ingenieros idearon para maximizar la eficiencia.
Los flujos de trabajo de los ingenieros de aprendizaje automático de Meta consisten en verificar código de forma iterativa, escribir nuevos algoritmos, construir modelos, empaquetar la salida y probar en el entorno de ejecución remota de Meta. A medida que los modelos de ML y las bases de código detrás de las aplicaciones de Meta crecieron en complejidad, sus ingenieros lidiaron con dos puntos débiles principales: compilaciones lentas y distribución ineficiente.
Las revisiones anteriores de las bases de código no se almacenan en caché de manera tan eficiente en la infraestructura de compilación de Meta, lo que con frecuencia requiere reconstrucciones extensas. La compañía dice que el problema se ve exacerbado por el no determinismo de construcción. Las diferencias en los resultados del mismo código fuente hacen que el almacenamiento en caché de artefactos de compilación anteriores sea inútil.
La distribución también fue un problema porque los ejecutables de Python generalmente se empaquetan como archivos XAR independientes. Incluso los cambios de código menores requieren una reconstrucción y distribución completa de archivos ejecutables densos; un proceso arduo que genera largos retrasos antes de que los ingenieros puedan probarlos.
Los ingenieros de Meta idearon soluciones centradas en maximizar el almacenamiento en caché de compilación e introducir incrementalidad en el proceso de distribución.
Para abordar las velocidades de construcción, el equipo trabajó para minimizar las reconstrucciones innecesarias de dos maneras:
- Primero, utilizando el sistema de compilación Buck2 de Meta junto con su entorno de ejecución remota (RE) para eliminar el no determinismo a través de resultados consistentes.
- En segundo lugar, reduciendo las dependencias y eliminando código innecesario para optimizar los gráficos de compilación.
Para la distribución, los ingenieros crearon un sistema de archivos direccionable por contenido (CAF) para omitir cargas redundantes y aprovechar la duplicación de archivos entre ejecutables. El sistema también mantiene cachés locales para descargar únicamente contenido actualizado. Meta dice que este enfoque «incremental» reduce drásticamente los tiempos de distribución.
La empresa cuantificó el impacto escribiendo: «Tiempos de construcción más rápidos y un empaquetado y distribución más eficiente de los ejecutables han reducido los gastos generales en porcentajes de dos dígitos».
Pero Meta cree que hay margen de mejora. Su enfoque actual es desarrollar «LazyCAF», un sistema para recuperar solo el contenido ejecutable necesario para escenarios específicos, en lugar de modelos completos. Meta también tiene como objetivo imponer revisiones de código consistentes para mejorar aún más el almacenamiento en caché.
Las soluciones ideadas por los ingenieros de Meta culminan para superar los desafíos de escala en el desarrollo de la IA.
(Foto por Haitham Ferdi en desempaquetar)
Ver también: Google agrega simuladores de iOS y Android al Proyecto IDX
¿Quiere aprender más sobre IA y big data de la mano de los líderes de la industria? Verificar Exposición de IA y Big Data que tendrá lugar en Ámsterdam, California y Londres. El evento integral comparte ubicación con Semana de la Transformación Digital y Exposición de seguridad cibernética y nube.
Explore otros próximos eventos y seminarios web de tecnología empresarial impulsados por TechForge aquí.