+33 146 372 242

PySyft, une bibliothèque python pour l’Apprentissage Fédéré.

DATA Factory

Cet article est la première partie d’une série qui détaillera les points suivants :

  • Pourquoi le federated learning ?
  • Concepts d’apprentissage fédéré
  • Concepts de cryptage et de confidentialité
  • Benchmark PySyft vs PyTorch
  • Contraintes et améliorations
  • Contribuer au projet open-source PySyft

PySyft est une librairie de deep learning adaptée pour un apprentissage encrypté et confidentiel. PySyft a été créée par la communauté OpenMined :

Une communauté open source axée sur la recherche, le développement et l’amélioration d’outils pour une intelligence artificielle sécurisée, préservant la confidentialité.

Vous voulez juste la partie technique ? cliquez ici : ⇓

Pourquoi le Federated Learning ?

Actuellement, les outils de machine learning exigent que les données soient centralisées dans le cloud (serveur, cluster, data lake). Cela implique les postulats suivants:

1. Les données sont difficiles à collecter et à échanger :
Les entreprises et les data scientists ont mis en place des techniques pour remédier à ce problème, telles que le “scraping” des données en ligne. Cette solution est très difficile à maintenir à long terme car le Web évolue constamment en structure et en forme.

2. Les données sont difficiles à collecter et à échanger :
En particulier celles tombant dans l’une des catégories suivantes :

  • Données constituant un avantage concurrentiel d’une entreprise.
  • Données individuelles contenant des informations très sensibles. Par exemple, des données relatives à l’ état de santé physique et mentale d’un individu.

3. Les utilisateurs perdent le droit de propriété sur leur donnée :
Dès que nous visitons le Web à partir de notre smartphone ou de notre ordinateur, nous transmettons une copie de nos données aux entreprises gratuitement et sans condition.
Le RGPD n’est qu’un cadre juridique garantissant la transparence du traitement, de la collecte et de l’utilisation de nos données afin de prévenir les abus.
Cependant, l’échange reste le même : un service gratuit contre nos données. Il cristallise néanmoins les questions sur la durabilité de ce modèle.

4. Le RGPD met les entreprises sous pression :
Depuis mai 2018, le règlement général sur la protection des données est en vigueur. Ce règlement vise à protéger tous les citoyens de l’Union européenne. C’est pourquoi tant d’entreprises mondiales sont touchées. Les géants américains et chinois ayant des utilisateurs dans l’Union Européenne doivent aussi respecter le RGPD.
Ce règlement implique un temps de développement important et donc des coûts de main-d’œuvre très élevés.

Cette pression constante a poussé des entreprises telles que Google et Facebook à créer des outils axés sur la confidentialité.
L’apprentissage fédéré et le cryptage des modèles ou des données sont les principaux concepts des outils utilisés.

Cependant, ces outils sont bien cachés dans les mains de ces géants. Comment les startups et les petites entreprises d’aujourd’hui peuvent-elles mener des projets ambitieux avec ces contraintes inégales ?
En tant que data scientists, nous avons la responsabilité d’apprendre de nouvelles façons d’entraîner un modèle de deep learning telle qu’avec l’apprentissage fédéré Federated Learning). Comprenons d’abord ce concept.

Les concepts de l’apprentissage fédéré (federated learning):

Voici l’architecture d’apprentissage fédéré
Pysyft principe
Pour l’illustrer, prenons un exemple :

  1. Les hôpitaux ont beaucoup de données très sensibles.
  2. La détection du cancer du sein est un domaine dans lequel le deep learning est remarquable.
  3. L’envoi de ce type de données dans le cloud est difficilement acceptable.

L’apprentissage fédéré, un système dans lequel l’ensemble de données d’entraînement reste dans chacun des hôpitaux respectifs, apparaît comme une excellente alternative.
Il repose sur la coordination des activités entre un Client et des Travailleurs (Workers) :

  • Travailleurs : serveurs des hôpitaux où les données sont hébergées et l’entraînement effectué.
  • Client : serveur de la startup ou société de conseil qui envoie le modèle à chaque travailleur (centre de données de l’hôpital) et récupère le nouveau modèle mis à jour après chaque travailleur formé.

Les étapes sont simples:

  1. Construire un modèle maître avec des poids w
  2. Envoyer le modèle à l’un des travailleurs
  3. Entraîner en utilisant des données locales pour calculer la mise à jour de poids wk
  4. Mettre à jour w avec le nouvel ensemble de poids wk
  5. (Retour à l’étape 2).

Grâce à cette approche, le client est en mesure d’entraîner un modèle de deep learning sur des données décentralisées. Dans ce cas, cela devrait également améliorer la précision de la classification du modèle de détection du cancer du sein puisque sa base de donnée d’entraînement n’est pas limitée à un seul hôpital.
Pour des raisons de rapidité et de confidentialité, un apprentissage fédéré moyen ou average federated learning est utilisé.

Apprentissage fédéré moyen :

L’apprentissage fédéré moyen est un processus plus complet. Pour améliorer la vitesse d’apprentissage, nous voulons envoyer le modèle maître à tous les travailleurs à la fois et ensuite calculer la moyenne des poids de tous les travailleurs ou groupes de travailleurs.

Les nouvelles étapes sont les suivantes :

  1. Construire un modèle maître avec des poids w
  2. Envoyer votre modèle maître à chaque travailleur (Asynchrone)
  3. Prendre un groupe de travailleurs, calculer la mise à jour de poids wk en utilisant les données d’entraînement locales
  4. Mettre à jour w avec la moyenne pondérée de tous les wk
  5. (Retour à l’étape 2).

L’Average Federated Learning vise également à ajouter une couche de confidentialité entre le travailleur (détenteur des données) et le client (propriétaire du modèle).
En effet, si le client récupère le modèle ou les poids mis à jour directement d’un travailleur, il peut essayer de procéder à l’ingénierie inverse de la mise à jour pour deviner les données hébergées par le travailleur.
Pour éviter ce problème, nous calculons la moyenne des résultats (poids) d’un groupe de travailleurs. Idéalement, cette moyenne est établie par une tierce partie qui n’a aucun intérêt à voler des données sur les travailleurs. Une fois que le tiers a effectué ce calcul simple, le modèle est renvoyé au client.

Pour information, le tiers pourrait être une autre entreprise de confiance ou un système utilisant le logiciel Intel SGX.
Ce logiciel Intel Software Guard Extension est destiné à protéger des données sensibles ou du code d’accès non autorisé ou de modification par un logiciel non autorisé fonctionnant à des niveaux de privilège supérieurs.
Vous pouvez en apprendre plus à: https://medium.com/magicofc/the-magic-of-intels-sgx-how-to-hello-it-sec-world-fb0295d6c33b

Calcul Multipartite Sécurisé :


Un dernier concept est le SMPE (Secure Multi-Party Encryption). La protection des données est cruciale, mais qu’en est-il du modèle du client ? Étant donné que dans l’architecture d’apprentissage fédéré nous devons envoyer notre modèle à chaque travailleur, nous nous exposons à un vol potentiel. Pour éviter cela, nous pouvons utiliser le SMPE.
Un modèle de deep learning est fondamentalement une ou plusieurs matrices de poids. Ainsi, chaque poids peut être crypté dans un immense espace mathématique qui donne n clés privées ou poids cryptés. Ces n clés privées sont partagées entre les travailleurs et le client lorsqu’elles sont envoyées par ce dernier. Ce faisant, seul le client peut déchiffrer son modèle après avoir rassemblé toutes les clés. Toutes les opérations effectuées sur chaque poids chiffré sont conservées lors du déchiffrement par le client. Nous pouvons également utiliser le SMPE sur les données des travailleurs pour une couche de confidentialité supplémentaire.
Nous avons partagé à présent toutes les informations de base à partir desquelles nous pouvons approfondir les subtilités de mise en oeuvre. Si vous souhaitez apprendre à utiliser PySyft, le plus simple est de visiter le projet github et commencer les tutoriels (https://github.com/OpenMined/PySyft ).
Si vous voulez en savoir plus sur l’évolutivité et la rapidité de cette librairie, vous pouvez consulter mon deuxième article ici.

Si vous avez des questions concernant la bibliothèque, laissez un commentaire et je ferai de mon mieux pour vous répondre au plus vite.
Sacha DUMAY (sdumay@novagen.tech)

EXPERTS & CONSEILS
La technologie au service des besoins métiers.

DATA FACTORY
Expérimentation, Méthode et Industrialisation.

Pin It on Pinterest