Resumen:
|
[EN] The rapid pace of development of Artificial Intelligence, which has undeniably become a key tool in our society and in industries, has lead to the development of new Machine Learning techniques. Federated Learning ...[+]
[EN] The rapid pace of development of Artificial Intelligence, which has undeniably become a key tool in our society and in industries, has lead to the development of new Machine Learning techniques. Federated Learning improves the performance of the training of a Machine Learning model by distributing this process across multiple clients and
combining the models in a central server. Each client trains a model on a subset of the full
dataset, and sends its model to the central server upon completion of a round of training. Although Federated Learning is already heavily used and provides good results, the
main drawback is that the central server receives all models from all clients, which constitutes a single point of failure as well as a possible bottleneck. This lead to the apparition of
Decentralized Federated Learning architectures, where the agents communicate between
themselves and no central server is involved. However, it was noticed that this architecture could be improved further in order to reduce the idle time of all clients; which
leads to the development of a new Federated Learning algorithm presented in this paper : Asynchronous Decentralized Federated Learning. The key specificity of this solution is
that the idle time of all clients is removed, and the model training is therefore performed
quicker. Furthermore, this study relates this algorithm to the concept of Multi-Agent
Systems, which correspond to systems of agents cooperating to achieve common goals.
In this sense, this work presents a concrete implementation of the Asynchronous Decentralized Federated Learning algorithm in a standalone and easy to use application that
was built upon the SPADE Python library, which allows to manage Multi-Agent Systems.
This application is destined to be a concrete product that users can easily use in order to
launch, control, monitor and supervise the execution of an Asynchronous Decentralized
Federated Learning running on multiple clients. It is shown experimentally in this work
that the developed algorithm is indeed more efficient that the synchronous algorithms
in certain use cases, although some ideas can be identified as future improvements. Furthermore, the developed application meets its objectives, it is to this day accessible in a
easy way by any user, and can be used at a large scale.
[-]
[FR] Le développement rapide de l’Intelligence Artificielle, qui est indéniablement devenue un outil clé dans notre société et dans l’industrie, a conduit au développement de
nouvelles techniques d’Apprentissage Automatique ...[+]
[FR] Le développement rapide de l’Intelligence Artificielle, qui est indéniablement devenue un outil clé dans notre société et dans l’industrie, a conduit au développement de
nouvelles techniques d’Apprentissage Automatique (ou Machine Learning). L’Apprentissage Fédéré (ou Federated Learning) améliore les performances de la phase d’entraînement
d’un modèle d’Apprentissage Automatique en répartissant ce processus entre plusieurs
clients et en combinant ces modèles au sein d’un serveur central. Chaque client entraîne
un modèle sur un sous-ensemble de l’ensemble des données disponibles et envoie son
modèle au serveur central à la fin d’un cycle d’entraînement. Bien que l’Apprentissage
Fédéré soit déjà largement utilisé et fournisse de bons résultats, le principal inconvénient
est que le serveur central reçoit tous les modèles de tous les clients, ce qui constitue un
point de défaillance unique ainsi qu’une éventuelle limitation en terme de performances.
Ceci a été l’élément déclencheur pour l’apparition d’architectures d’Apprentissage Fédéré décentralisées, où les agents communiquent entre eux et aucun serveur central n’est
requis. Cependant, il a été remarqué que cette architecture pouvait être encore améliorée
afin de réduire le temps d’inactivité de tous les clients ; ce qui a conduit au développement d’un nouvel algorithme d’apprentissage fédéré présenté dans cet article : l’Apprentissage Fédéré Décentralisé Asynchrone. La principale spécificité de cette solution est
que les clients ne sont plus jamais inactifs, et l’apprentissage du modèle est donc effectué
plus rapidement. De plus, cette étude relie cet algorithme au concept de Systèmes MultiAgents, qui correspondent à des systèmes d’agents coopérant dans le but d’atteindre des
objectifs en commun. Ce travail présente une implémentation concrète de l’algorithme
d’Apprentissage Fédéré Décentralisé Asynchrone au travers du développement d’une
application facile à utiliser basée sur la librairie SPADE du langage Python, qui permet
de gérer des Systèmes Multi-Agents. L’objectif est que cette application soit un produit
concret que les utilisateurs puissent facilement utiliser pour lancer, contrôler, surveiller
et superviser l’exécution de l’algorithme de l’Apprentissage Fédéré Décentralisé Asynchrone sur plusieurs clients. Il est démontré expérimentalement dans ce travail que l’algorithme développé est effectivement plus efficace que les algorithmes synchrones dans
certains cas d’utilisation, bien que certaines améliorations futures puissent être identifiées. De plus, l’application développée remplit ses objectifs, elle est à ce jour accessible
de manière simple par tout utilisateur, et peut être utilisée à grande échelle.
[-]
[ES] El desarrollo rápido de la Inteligencia Artificial, que se ha convertido indiscutiblemente en una herramienta clave en nuestra sociedad y en las industrias, ha dado lugar al desarrollo de nuevas técnicas de Aprendizaje ...[+]
[ES] El desarrollo rápido de la Inteligencia Artificial, que se ha convertido indiscutiblemente en una herramienta clave en nuestra sociedad y en las industrias, ha dado lugar al desarrollo de nuevas técnicas de Aprendizaje Automático (o Machine Learning). El
Aprendizaje Federado (o Federated Learning) mejora el rendimiento del entrenamiento de
un modelo de Aprendizaje Automático distribuyendo este proceso entre varios clientes
y combinando estos modelos en un servidor central. Cada cliente entrena un modelo
con subconjunto del conjunto de datos completo, y envía su modelo al servidor central
al finalizar una ronda de entrenamiento. Aunque el Aprendizaje Federado ya se utiliza
mucho y proporciona buenos resultados, el principal inconveniente es que el servidor
central recibe todos los modelos de todos los clientes, lo que constituye un único punto
de fallo, y también un posible cuello de botella. Esto dio lugar a la aparición de las arquitecturas de Aprendizaje Federado Descentralizado, en las que los agentes comunican
entre sí y no interviene ningún servidor central. Sin embargo, se observó que esta arquitectura podría mejorarse para reducir el tiempo de inactividad de todos los clientes; lo
que dio lugar al desarrollo de un nuevo algoritmo de Aprendizaje Federado presentado
en este artículo: el Aprendizaje Federado Decentralizado Asíncrono. La especificidad clave de
esta solución es que se elimina el tiempo de inactividad de todos los clientes y, por tanto,
el entrenamiento del modelo se realiza más rápidamente. Además, este estudio relaciona este algoritmo con el concepto de Sistemas Multiagente, que corresponden a sistemas
de agentes que cooperan para alcanzar objetivos comunes. En este sentido, este trabajo
presenta una implementación concreta del algoritmo de Aprendizaje Federado Descentralizado Asíncrono en una aplicación independiente y fácil de usar que fue construida
sobre la librería SPADE del lenguaje Python, que permite gestionar Sistemas Multiagente.
Esta aplicación está destinada a ser un producto concreto que los usuarios puedan utilizar fácilmente para lanzar, controlar, monitorizar y supervisar la ejecución del algoritmo
de Aprendizaje Federado Descentralizado Asíncrono ejecutado en múltiples clientes. Se
demuestra experimentalmente en este trabajo que el algoritmo desarrollado es más eficiente que los algoritmos síncronos en ciertos casos de uso, aunque se pueden identificar
algunas ideas como futuras mejoras. Además, la aplicación desarrollada cumple sus objetivos, es al día de hoy accesible de forma sencilla por cualquier usuario, y puede ser
utilizada a gran escala.
[-]
|