Exemple d’un Swarm¶
Vue d’ensemble de l’apprentissage fédéré¶
L’apprentissage fédéré (FL) est une approche décentralisée pour entraîner des modèles de machine learning tout en gardant les données en local sur les appareils. Et seulement les mises à jour des modèles sont partagés et aggrégés. Ce processus améliore la vie privée en gardant les données sur les noeuds, le rendant particulièrement utile pour des applications sensibles comme la santé, la finance ou de la personnalisation pour appareils mobiles. Pour avoir une meilleure compréhension des concepts d’apprentissage fédéré, vous pouvez vous référer à notrearticle détaillé sur l’apprentissage fédéré.
Définition d’un Swarm d’apprentissage fédéré¶
Sur la plateforme Manta, l’apprentissage fédéré est implémenté en utlisant un swarm de tâches distribuées à travers de multiple nodes, chacun contribuant à un processus d’entraînement collectif. L’ensemble du Swarm est inclut typiquement des workers, des aggregators et des schedulers, comme illustré sur l’image ci-dessous:
Worker: Chacun des noeuds worker entraîne un modèle sur des données locales et envoie les mises à jour.
Aggregator: Il aggrège les mises à jour venant des workers.
Scheduler: Il gère le flux d’entraînement en vérifiant la convergence des modèles.Il décide quand terminer un swarm.
Arborescence typique¶
.
├── Dockerfile
├── my_modules # your modules where tasks are written
│ ├── my_aggregator.py # aggregator task
│ ├── my_scheduler.py # scheduler task
│ └── my_worker # worker task
│ ├── __init__.py
│ ├── my_model.py
│ └── my_worker_task.py
└── my_swarm.py # your swarm definition
Note
Comme vous pouvez le voir, une tâche peut être écrite dans un seul fichir ou dans plusieurs fichiers à l’intérieur d’un dossier.