Próximo seminario web: Seguridad empresarial para Claude Code | 21 de abril · 11:00 a. m. PST. Regístrese aquí →

True ML Talks #3 - Plataforma de aprendizaje automático en Facebook

Por TrueFoundry

Actualizado: March 30, 2023

Resumir con

Volvemos con otro episodio de True ML Talks. En esto, nos sumergimos profundamente en Facebook Flujo de FBLearner, la columna vertebral de la IA de Facebook y estamos hablando con Aditya Kalro.

Aditya es actualmente gerente sénior de ingeniería en Google en el equipo de Identidad y, antes de esto, Aditya trabajó en Facebook, donde dirigió la creación de toda la plataforma de gestión del flujo de trabajo de ML en Facebook llamada fBLearner Flow. Y hablaremos de ello con más detalle en la convocatoria de hoy.

📌

Nuestras conversaciones con Aditya abordarán los siguientes aspectos:
- Descripción general de fBLearner Flow.
- Pruebas A/B y pruebas ocultas en sistemas a gran escala.
- Reducir la brecha entre la investigación y la producción.
- Optimización del costo y la latencia en la inferencia de IA.
- Arquitectura de fBlearner Flow.
- Reducir la brecha entre el software y las plataformas de implementación de aprendizaje automático.
- Importancia del monitoreo y la capacitación distribuida.
- Principios básicos para crear un sistema de aprendizaje automático a escala.

Mira el episodio completo a continuación:

Escalar flujos de trabajo de IA

FBLearner Flow es una plataforma de gestión de flujos de trabajo de aprendizaje automático que Facebook creó para administrar su infraestructura de aprendizaje automático. Aditya lideró el desarrollo de la plataforma y supervisó su crecimiento para ofrecer miles de capacitaciones por día entre 700 y 800 equipos.

  1. FBLearner flow se desarrolló inicialmente como un mecanismo de flujo de trabajo para el aprendizaje automático, pero evolucionó hasta convertirse en un mecanismo de flujo de trabajo genérico que podía gestionar una variedad de tareas, incluidas las compilaciones de aplicaciones móviles.
  2. La plataforma permitió miles de capacitaciones por día e implementó cientos de miles de modelos al mismo tiempo.
  3. FBLearner flow se conectó a una plataforma de inferencia y se escaló hasta cientos y miles de máquinas con el tiempo.
  4. La plataforma se diseñó para ser lo suficientemente genérica como para aplicarse a cualquier dominio, lo que la convierte en una herramienta versátil para administrar los flujos de trabajo de aprendizaje automático.

La evolución de fBLearner Flow: un viaje para hacer que los ingenieros de ML sean más productivos

A continuación se presentan tres aspectos únicos y relevantes de la evolución de fBLearner Flow:

  1. Filosofía: El objetivo principal de FB Learner era hacer que los ingenieros de ML fueran más productivos. Para lograrlo, la plataforma se desarrolló en Python, aunque el lenguaje no estaba bien soportado en Facebook en ese momento. También se hizo hincapié en el carácter sagrado del experimento, lo que significaba que el experimento tenía que ser completamente predictivo. Para lograrlo, la plataforma asignó la misma cantidad de memoria y CPU a cada flujo de trabajo u operador.
  2. Flujo de trabajo y operadores FBLearner Flow comenzó con el concepto de flujo de trabajo, que es la forma en que un ingeniero de ML expresaría todo lo que tiene que suceder. El flujo de trabajo es un concepto único que combina varios operadores. Cada componente del flujo de trabajo se dividió en operadores, que podían distribuirse entre diferentes máquinas, lo que facilitaba a los usuarios la conexión entre sí y la transferencia de datos de una máquina a otra.
  3. Gestión de experimentos: La plataforma también proporciona herramientas de administración de experimentos que permiten a los usuarios administrar sus experimentos y depurar cualquier error. La interfaz de usuario de FBLearner Flow permitió a los usuarios ver fácilmente dónde se produjo el error y proporcionar los registros necesarios para ayudarlos a averiguar por qué ocurrió el error. Este enfoque también ayudó a los usuarios a gestionar una gran cantidad de experimentos.
facebook's FBLearner Flow - machine learning with TrueFoundry
FBLearner Flow (crédito de imagen: engineering.fb.com)

Sistema de evaluación

Los modelos de aprendizaje automático deben evaluarse para determinar su capacidad de generalizar bien en datos invisibles. Aquí es donde entra en juego el sistema de evaluación. El sistema de evaluación consta de dos partes: la evaluación por lotes y la evaluación en línea.

  1. Evaluación de lotes: La evaluación por lotes también se conoce como evaluación fuera de línea. Implica leer datos, procesarlos y, a continuación, devolverlos a otra entidad. Este enfoque se entiende bien y es ideal para modelos con pocos parámetros. Sin embargo, es posible que no sea eficaz cuando se trata de miles de parámetros y funciones.
  2. Evaluación en línea: El sistema de evaluación en línea, por otro lado, es un poco más complejo y permite a los usuarios rastrear la implementación de un modelo de ML en particular y enviar un ejemplo al modelo para obtener resultados inmediatos. Esto lo convierte en una excelente herramienta para que los profesionales del aprendizaje automático prueben sus modelos rápidamente, incluso los modelos experimentales. El equipo de anuncios de Facebook tenía un sistema de inferencia muy específico para ellos. Para que estuviera disponible en el resto de Facebook, crearon la primera versión de la plataforma de inferencias, que estaba estrechamente vinculada al flujo de FBLearner.

Creación de un marco de pruebas A/B eficaz para modelos de aprendizaje automático

La implementación de modelos de aprendizaje automático en escenarios del mundo real puede ser un desafío, especialmente cuando se trata de sistemas a gran escala como Facebook, donde incluso un pequeño error puede tener consecuencias importantes. En este sentido, crear un marco de pruebas A/B eficaz es crucial para garantizar el rendimiento óptimo de los modelos de aprendizaje automático.

Dos componentes esenciales de la plataforma FB Learner que ayudaron a lograr este objetivo fueron las pruebas A/B y las pruebas paralelas.. Las pruebas A/B permitían comparar dos versiones del sistema o modelo para determinar cuál funcionaba mejor, mientras que las pruebas clandestinas permitían implementar el nuevo modelo en paralelo con el modelo existente para evaluar su rendimiento sin afectar a la experiencia del usuario. Hacerlo ayudó a mitigar el riesgo de implementar un modelo defectuoso en la producción.

Otra característica única de la plataforma fBLearner era su capacidad para facilitar el intercambio de modelos entre profesionales y desarrolladores de ML. Permitió a los desarrolladores implementar fácilmente los modelos en producción y probarlos utilizando la infraestructura de experimentos rápidos existente. Esto les permitió comparar rápidamente el rendimiento de su sistema existente con el modelo de aprendizaje automático recién implementado, lo que garantizó un rendimiento óptimo del sistema.

Cómo Facebook cerró la brecha entre la investigación y la producción utilizando fBLearner Flow

El equipo de investigación de IA de Facebook se enfrentó al gran desafío de cerrar la brecha entre las necesidades de los investigadores y las del equipo de producción. Si bien los investigadores necesitaban un sistema que fuera rápido y les permitiera implementar nuevos modelos con rapidez, el equipo de producción necesitaba estabilidad, confiabilidad y previsibilidad.

👉

Para hacer frente a este desafío, Facebook creó una interfaz similar a Slurm sobre su plataforma de aprendizaje automático.

Slurm es una interfaz de línea de comandos que se usa ampliamente en el mundo académico para la gestión de experimentos. Al crear una interfaz de línea de comandos similar para la plataforma, Facebook facilitó a los investigadores el uso de la plataforma.

A pesar de las diferencias fundamentales en los requisitos de ambos equipos, tener una interfaz común facilitó a los investigadores la migración de sus modelos a fBLearner Flow para su producción. El sistema les daba acceso a una gran cantidad de máquinas, a diferencia de Slurm, que se diseñó para funcionar en un conjunto pequeño de máquinas.

La interfaz similar a la de Slurm de la plataforma permitía a los investigadores experimentar con diferentes modelos rápidamente y migrarlos al entorno de producción cuando estaban satisfechos con los resultados.

Optimización del costo y la latencia en la inferencia de inteligencia artificial: el papel de la contenerización y los microservicios

En el campo de la IA, lograr la optimización de los costos sin comprometer la latencia es un desafío permanente. Sin embargo, con la llegada de las nuevas tecnologías y diseños arquitectónicos, se han desarrollado soluciones para abordar este problema.

👉

Contenerización y microservicios han demostrado su eficacia a la hora de optimizar los costes y reducir la latencia en la inferencia de IA.

Contenerización es un método para empaquetar código de software junto con sus dependencias en una sola unidad, conocida como contenedor. Este contenedor se puede mover fácilmente de un entorno informático a otro, lo que lo hace altamente escalable y flexible. Al utilizar la contenedorización, las organizaciones pueden empaquetar varios modelos de IA en un solo contenedor, lo que permite implementarlos y escalarlos de manera rápida y eficiente.

Además, la contenedorización también permite empacar contenedores, lo que optimiza la asignación de recursos al colocar varios contenedores en una sola máquina física. Esto permite a las organizaciones aprovechar al máximo los recursos disponibles y reducir los costos. Además, con el escalado automático, las organizaciones pueden escalar rápidamente hacia arriba o hacia abajo en función de la demanda, lo que optimiza aún más los costos.

Además, microservicios, que son componentes pequeños e independientes de una aplicación, se pueden usar para crear una plataforma de inferencia eficiente y ágil. Al dividir las aplicaciones complejas en servicios modulares más pequeños, cada servicio se puede escalar, administrar y actualizar de forma independiente. Esto no solo hace que la plataforma sea más resiliente, sino que también ayuda a reducir la latencia.

Comprensión de la arquitectura de fBLearner Flow: una mirada más cercana

La creación de un sistema de IA robusto y escalable requiere una infraestructura sólida. En este sentido, fBLearner Flow de Facebook ha estado a la vanguardia de la innovación en IA, proporcionando una solución única para entrenar e implementar modelos de IA a escala.

La arquitectura de fBLearner Flow se creó en gran medida de forma interna, aprovechando la infraestructura existente de Facebook. Empezaron con Kronos, un programador interno, pero tuvieron que pasar a la contenedorización para hacer frente a los problemas de los vecinos, cada vez más ruidosos. Luego, el sistema se creó en torno a la idea de los operadores y los flujos de trabajo. Inicialmente, las tablas Hive se utilizaron como canales para datos estructurados, pero con el tiempo los clústeres de archivos y el almacenamiento de blobs se utilizaron para datos no estructurados, como las imágenes.

El mecanismo de ejecución del sistema era autónomo y estaba versionado, lo que permitía realizar comparaciones entre diferentes versiones del modelo. La administración de los experimentos se vio facilitada por la capacidad del sistema de cambiar las características, las versiones de los modelos o los paradigmas de entrenamiento, manteniendo las métricas de resultados y los conjuntos de evaluación iguales.

Si el FbleArner Flow se reconstruyera hoy, Kubernetes y Kubeflow serían las soluciones preferidas. Kubeflow proporciona un paradigma más autónomo, lo que facilita su implementación, y puede usar otros conectores para conectarse a diferentes partes de la infraestructura.

La plataforma de inferencia se creó sobre Tupperware, la infraestructura de servicios de Facebook, y cada modelo es su propio contenedor. La función de escalado automático se tomó prestada de Kubernetes para garantizar que la plataforma pudiera ampliarse y reducirse según fuera necesario.

En general, la arquitectura de fBLearner Flow proporciona una solución única para crear sistemas de IA a escala. Es un testimonio de la importancia de la infraestructura para crear sistemas de IA robustos y escalables.

Reducir la brecha entre la ingeniería de software y las plataformas de implementación de aprendizaje automático

A medida que el campo del aprendizaje automático continúa creciendo y evolucionando, existe una necesidad creciente de desarrollar plataformas y procesos para implementar modelos de aprendizaje automático en entornos de producción. Sin embargo, muchas empresas consideran que las plataformas de aprendizaje automático son independientes de las plataformas de ingeniería de software, lo que puede generar confusión e ineficiencias.

👉

Si bien existen algunas diferencias en las herramientas utilizadas, los procesos para desarrollar e implementar modelos de aprendizaje automático pueden ser muy similares a los que se utilizan en la ingeniería de software.

Uno de los aspectos clave es la importancia de tener opiniones sobre cómo se desarrollan e implementan los modelos de aprendizaje automático. Al introducir conceptos como las pruebas y los pasos necesarios, como la división entre trenes y pruebas, las empresas pueden agilizar el proceso de desarrollo del aprendizaje automático y garantizar que los modelos se desplieguen de manera coherente y eficaz.

Otra similitud es la necesidad de monitoreo y telemetría tanto en las plataformas de implementación de aprendizaje automático como de ingeniería de software. Del mismo modo que los desarrolladores supervisan el rendimiento de sus aplicaciones y microservicios, los desarrolladores de aprendizaje automático y los ingenieros de MLOps deben supervisar el rendimiento de sus modelos e infraestructuras.

Al reconocer los puntos en común entre ambos y desarrollar procesos y herramientas que sean consistentes en ambos, las empresas pueden optimizar sus procesos de desarrollo e implementación, reducir los errores y las ineficiencias y garantizar que sus modelos de aprendizaje automático se implementen de manera uniforme y efectiva.

La importancia de la supervisión en la implementación del aprendizaje automático

La supervisión es un aspecto fundamental de cualquier proceso de implementación de ML. Ayuda a garantizar que los modelos funcionen según lo esperado y ofrezcan los resultados deseados. La supervisión de la infraestructura y el resultado de las predicciones es crucial para garantizar que el sistema funcione correctamente. La generación de métricas forma parte del sistema fBLearner, que genera automáticamente las métricas para supervisar el rendimiento de los modelos.

Se necesitan métricas personalizables que permitan a los desarrolladores monitorear el rendimiento de sus modelos de manera efectiva. Con la supervisión implementada, los desarrolladores pueden identificar y solucionar rápidamente cualquier problema que pueda surgir durante el proceso de implementación, lo que se traduce en un mejor rendimiento y predicciones más precisas.

En conclusión, la supervisión es una parte esencial de la implementación del aprendizaje automático, y es crucial contar con un sistema que permita a los desarrolladores monitorear sus modelos de manera efectiva. Las métricas personalizables y la supervisión minuciosa de la infraestructura y los resultados de las predicciones pueden ayudar a garantizar que los modelos de aprendizaje automático funcionen según lo esperado, lo que se traduce en un mejor rendimiento y predicciones más precisas.

La formación distribuida y su impacto en la arquitectura del flujo de trabajo

El entrenamiento distribuido y la inferencia distributiva fueron cambios de paradigma importantes para el sistema FBLearners Flow. Inicialmente, el sistema se diseñó para funcionar en una sola máquina y la capacitación estaba pensada para que se realizara en la misma máquina. Sin embargo, a medida que se añadían más datos al sistema, se hizo necesario rediseñar el sistema para respaldar la formación distribuida.

El mayor desafío en este sentido estaba en torno a la estructura beta. El equipo tuvo que emplear tanto la capacitación en paralelo con modelos como con datos paralelos para datos estructurados y no estructurados, respectivamente. También tuvieron que añadir reglas especiales para los servidores de parámetros, que recibieron un tratamiento diferente en comparación con el entrenamiento en sí. Los servidores de parámetros recopilaban todos los resultados de cada uno de los elementos de entrenamiento y los volvían a juntar. El equipo experimentó con varios paradigmas diferentes y, finalmente, se decidió por un paradigma de servidor de parámetros que permitía establecer puntos de control.

La confiabilidad se convirtió en una preocupación importante con la capacitación distribuida, ya que incluso si una máquina fallaba, todo el flujo de trabajo fallaría. El equipo tuvo que crear API para habilitar los puntos de control, ya que no estaba completamente automatizado. También tuvieron que diseñar un mecanismo de reinicio para garantizar que el flujo de trabajo pudiera reiniciarse desde el punto de control apropiado en caso de que se produjera un error.

Si bien el entrenamiento distribuido permitía entrenar modelos más complejos, también dificultaba las cosas para el equipo, ya que el entrenamiento ahora tardaba entre 5 y 6 veces más que en el pasado. Sin embargo, el equipo pudo adaptarse a estos cambios y garantizar que el sistema siguiera funcionando de forma fiable.

Creación de un sistema de aprendizaje automático para la escala: principios básicos para el éxito

  1. Retroalimentación e interrupciones continuas: Para crear un sistema de aprendizaje automático exitoso, es esencial recibir comentarios continuos de los usuarios. El equipo de Aditya tenía una ventaja, ya que sus clientes pertenecían a la misma empresa, lo que les permitía recibir comentarios y generar interrupciones. Por lo tanto, la creación de un sistema de aprendizaje automático para escalar requiere un compromiso continuo con los usuarios, lo que les permite ofrecer sus comentarios y adaptarse en consecuencia.
  2. Orientación al servicio al cliente: Un componente esencial de la creación de un sistema de aprendizaje automático para la escalabilidad es garantizar que las preguntas de los usuarios se respondan rápidamente para desbloquearlos. El equipo de Aditya adoptó una orientación de servicio al cliente, lo que les permitió abordar cualquier problema y recibir comentarios rápidamente. Este enfoque es fundamental, ya que fomenta la confianza de los usuarios y mejora su experiencia.
  3. Evolución y adaptación: Por último, la creación de un sistema de aprendizaje automático para escalar requiere la voluntad de evolucionar y adaptarse, ya que el aprendizaje automático es un campo que cambia rápidamente. El equipo de Aditya reconoció que no podía diseñarlo todo en un día y que la evolución del sistema sería continua. Por lo tanto, las organizaciones deben estar abiertas al cambio y adoptar las nuevas tecnologías a medida que surjan.

A continuación se muestran algunas lecturas interesantes sobre el aprendizaje automático de Facebook:

  1. Presentamos fBLearner Flow: la columna vertebral de la IA de Facebook
  2. Podcast de TWIML con Aditya Kalro
  3. Charla de Aditya y Pierre sobre el aprendizaje automático aplicado a escala

Lea nuestra publicación anterior de la serie.

Sigue viendo el TrueML serie youtube y leyendo todo el TrueML serie de blogs.

True Foundry es un PaaS de implementación de aprendizaje automático sobre Kubernetes para acelerar los flujos de trabajo de los desarrolladores y, al mismo tiempo, permitirles una flexibilidad total a la hora de probar e implementar modelos, al tiempo que garantiza una seguridad y un control totales para el equipo de Infra. A través de nuestra plataforma, permitimos a los equipos de aprendizaje automático implementar y supervisar modela en 15 minutos con un 100% de confiabilidad, escalabilidad y la capacidad de revertirse en segundos, lo que les permite ahorrar costos y lanzar los modelos a la producción más rápido, lo que permite obtener un verdadero valor empresarial.

Temas: Flujo de FBLearner, Plataforma ML en Facebook

La forma más rápida de crear, gobernar y escalar su IA

Inscríbase
Tabla de contenido

Controle, implemente y rastree la IA en su propia infraestructura

Reserva 30 minutos con nuestro Experto en IA

Reserve una demostración

La forma más rápida de crear, gobernar y escalar su IA

Demo del libro

Descubra más

October 26, 2023
|
5 minutos de lectura

True ML Talks #23: Apps MLOps and LLMS in GitLab

May 21, 2024
|
5 minutos de lectura

¿Qué son las incrustaciones en el aprendizaje automático?

April 22, 2026
|
5 minutos de lectura

Mercados de agentes de IA: el futuro de la automatización de nivel empresarial

No se ha encontrado ningún artículo.
Detailed Guide to What is an AI Gateway?
April 22, 2026
|
5 minutos de lectura

¿Qué es AI Gateway? Conceptos básicos y guía

No se ha encontrado ningún artículo.
April 22, 2026
|
5 minutos de lectura

Aprovechar la puerta de enlace de IA de TrueFoundry para el cumplimiento de FIPS

No se ha encontrado ningún artículo.
April 22, 2026
|
5 minutos de lectura

Integración de GraySwan con TrueFoundry

No se ha encontrado ningún artículo.
No se ha encontrado ningún artículo.

Blogs recientes

Realice un recorrido rápido por el producto
Comience el recorrido por el producto
Visita guiada por el producto