spinner

Comparativa de frameworks Open Source para Aprendizaje Federado

Desde hace un tiempo, desde el equipo de Emerging Services hemos estado explorando Federated Learning y cómo puede aportar privacidad en el campo de Machine Learning. En este artículo recogemos algunos de los principales frameworks Open Source que hemos conocido a lo largo de este recorrido.

Qué es Federated Learning

Federated Learning o Aprendizaje Federado, es una tecnología PET (Privacy Enhanced Technology) que permite realizar el entrenamiento de un modelo de Machine Learning con datasets privados, evitando que personas ajenas a los datos que contienen tengan acceso en claro.

Realiza el proceso de entrenamiento ejecutando las operaciones necesarias allí donde los datos se encuentran, permitiendo agregar el resultado obtenido en cada fuente o silo de datos.

Si quieres seguir leyendo sobre un posible escenario de aplicación de esta tecnología, visita el artículo de mi compañera Yolanda De La Hoz sobre “¿Cómo aplicar aprendizaje federado y no morir en el intento? Aplicación en fraude de tarjetas de crédito”.

Nuestra experiencia como equipo

Desde nuestro equipo dentro de BBVA Next Technologies, llevamos trabajando explorando, analizando y probando esta tecnología desde 2019, ahora centrados en generar una solución completa en torno a ella.

A lo largo de este periodo, hemos podido entender mejor el valor e impacto de esta tecnología, sus implicaciones y limitaciones, y los retos a los que se enfrenta. También hemos estado revisando y probando numerosas librerías, frameworks y proyectos que prometían aportar una solución para realizar Aprendizaje Federado.

El trabajo realizado ha incluido desde la lectura detallada de la documentación publicada, hasta el despliegue en plataformas cloud de algunas de las soluciones revisadas, o la puesta en común de las problemáticas que enfrentan con sus creadores.

Durante este camino hemos aprendido mucho de muchas personas que han publicado su experiencia con esta tecnología. Experiencia que nos ha ayudado a hacernos nuevas preguntas. Por ello, queremos aportar nuestro granito de arena, reuniendo en este artículo las principales librerías o frameworks que hemos podido revisar, detallando las que creemos son sus principales características y puntos fuertes.

Contenido del análisis

Escenario del análisis

Para entender el escenario del análisis, es necesario primero aclarar algunos términos que ayudan a definir a los componentes del proceso de federación, con el objetivo de especificar algunas de sus características de forma previa:

  • Data Scientists: Persona, departamento u organización que pretende construir o mejorar un modelo de inteligencia artificial.
  • Data Owner: Persona, departamento u organización que controla un silo de datos requerido para (re)entrenar un modelo de inteligencia artificial.
  • Silo de datos: Contenedor de datos a utilizar durante el proceso y controlado por un Data Owner. Disponibiliza a su vez capacidad de cómputo para ejecutar el Plan de entrenamiento de forma local.
  • Plan de entrenamiento: Conjunto de acciones y operaciones definidas por el Data Scientist para realizar el (re)entrenamiento del modelo de inteligencia artificial.

Dichos componentes se relacionan de la siguiente manera:

Parámetros analizados

Para realizar el análisis se ha definido un conjunto de parámetros a valorar por cada uno de los frameworks analizados, que permitan comparar a los mismos en función de las necesidades del escenario o caso de uso:

  • Distribución del procesamiento: Mecanismos que permitan distribuir la ejecución (cómputo) del Plan de entrenamiento entre los Silos de datos.
  • Distribución del modelo o plan de entrenamiento: Mecanismos que permitan distribuir la definición del propio Plan de entrenamiento (código) entre los silos de datos.
  • Uso de los datos: Mecanismos implementados para permitir el acceso y uso de los datos de un Silo de datos por parte del Data Scientist.
  • Gobierno y permisionado: Mecanismos de aprobación y denegación o creación políticas de acceso a cualquier recurso que participe de la federación (silos, capacidad de cómputo, conjuntos de datos, datos, …).
  • Privacidad: Técnicas o mecanismos que aseguren la privacidad de los datos de los Silos de datos, evitando posibles fugas de información por parte del Data Scientist.
  • Descubrimiento de recursos: Mecanismos que permitan a un Data Scientist descubrir nuevos Silos de datos o datasets.
  • Otras funcionalidades: Aspectos o funcionalidades destacables que no se hayan contemplado en otros parámetros.

Además, se ha incluido información útil, como enlaces de referencia a los proyectos y el código o datos relacionados con sus ecosistemas de inversores o colaboradores. Si quieres consultar el detalle del análisis, aquí te dejamos la tabla completa.

Resultados

Antes de comenzar con el análisis, destacar que, aunque todos los proyectos que se mencionan han sido revisados por el equipo (y no siempre por quien escribe), no siempre ha sido posible pasar de los ejemplos que proponían, bien por falta de tiempo o bien por carencias del propio proyecto en el momento de las pruebas, o no ha sido posible siquiera probar dichos proyectos.

Resumen tabla comparativa

A continuación mostramos un resumen de las características analizadas de los frameworks que hemos podido revisar:

Recuerda que si quieres consultar el detalle del análisis, aquí te dejamos la tabla completa.

Aspectos a destacar

Por último, queremos destacar algunas de las características de los frameworks que, a nuestro juicio, parecen más interesantes y necesarias para realizar un experimento o proyecto con ellos…

  • PySyft: La gran promesa
    Su propuesta de valor parece la más orientada desde la perspectiva del Data Scientist, y su evolución sigue siendo constante. Es probablemente el framework con más popularidad y comunidad a pesar de no haber liberado una versión estable. Ofrecen cursos y formaciones y mantienen programas de colaboración con la comunidad. La propuesta más prometedora a medio/largo plazo, muy a tener en cuenta.
  • Flower: Ideal para pruebas de concepto
    Se centra en otorgar la funcionalidad mínima para el entrenamiento de modelos en un entorno federado. Su diseño sencillo facilita su integración de otras soluciones, y lo hace fácil de usar. Recientemente han incorporado el soporte para utilizar Opacus, un framework que permite entrenar modelos de ML utilizando Differencial Privacy. Sin duda una muy buena opción para realizar pruebas y pequeños desarrollos, y un candidato a seguir de cerca.
  • Fate: Tan completo como complejo
    Integra un amplio ecosistema de soluciones que enfrentan varios retos más allá de facilitar el entrenamiento de modelos, lo que indica que a futuro puede resultar la propuesta más robusta. Sin embargo la complejidad de dicho ecosistema, combinado con la fuerte barrera del idioma de su equipo de desarrollo, dificulta la adopción de dicho framework.
  • OpenFL: Apoyado en hardware específico
    Muy configurable y orientado a procesos de fine-tunning de modelos. Implementa una tecnología tan robusta como el hardware en el que se apoya (Intel® SGX), lo que genera a su vez dependencia de la misma.

Conclusiones

Inmadurez, el común denominador

Algo común a todas las iniciativas es su estado de inmadurez. Esta se manifiesta de distintas formas: falta de documentación y soporte comunitario, falta de test, ejemplos no documentados o no funcionales, escasez de proyectos o iniciativas publicadas, evolución errática, falta de roadmaps claros, …

Todas las iniciativas parecen estar centradas en encontrar una forma funcional de aportar valor dentro de la problemática de Aprendizaje Federado, priorizando ese desarrollo por encima de tareas necesarias para que la comunidad pueda utilizar y colaborar en dichos proyectos.

Distintos enfoques, distintos alcances

Aunque todas las iniciativas y proyectos tienen un objetivo común a gran nivel, el alcance de su solución en cuanto al mismo es muy diferente. Unos se centran únicamente en abstraer la federación del entrenamiento y la agregación de de los resultados, y otros pretenden aportar en otros puntos del proceso de generación de un modelo, como la monitorización del entrenamiento o la exploración y transformación previa de los datos.

Comunidad fantasma

No existe demasiada información, ejemplos o proyectos que utilicen estos frameworks fuera de los que los mismos autores publican. Tampoco existen muchas preguntas sobre estos frameworks en los foros más comunes como StackOverflow o Reddit.

La mayoría de los colaboradores y las comunidades de estos proyectos se encuentran en servidores públicos propios de Discord o Slack, lo que dificulta que las conversaciones que allí suceden trasciendan al resto de la comunidad o sean indexables.

Fuerte barrera de entrada

Todas las propuestas se centran en cubrir el entrenamiento de modelos en un entorno federado, algunas aproximan soluciones a problemas adyacentes, sin embargo muy pocas ponen el foco en iniciativas que resuelvan la usabilidad o integración de esta tecnología.

En algunos casos no es posible utilizar tecnologías propias de los profesionales que suelen trabajar con los datos; en otras, el propio diseño de las soluciones, obliga a dichos profesionales a modificar la forma en la que trabajan. Todo esto supone una fuerte barrera de entrada.

Fuente de la imagen: Unsplash

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?