Construire sécurisé et distribué ai pour les entreprises bitcoin bloc explorateur

La création de capacités AI tout en conservant des données et le processus global sécurisé et fiable est un objectif particulier de l’IA d’entreprise. À Think 2018, les chercheurs d’IBM ont démontré une capacité d’apprentissage fédérée, sécurisée et fiable dans laquelle un modèle AI est construit en utilisant les données et la capacité de calcul fournies par plusieurs systèmes d’entreprise répartis et les participants. Si vous avez raté Think 2018, jetez un coup d’œil à la session d’ouverture de Tom Rosamilia pour en savoir plus.

Notre travail en matière d’apprentissage fédéré, sécurisé et fiable rassemble la capacité de calcul et les données d’IBM Z, d’IBM POWER et d’autres systèmes. Nos équipes ont fait le travail pour permettre un échange sécurisé et transparent des modèles IA sur les sites et les plates-formes afin que votre équipe puisse se concentrer sur votre entreprise et vos données sans se soucier de la sécurité ou de l’intégrité des données.


Le processus s’appuie sur un réseau décentralisé de chaînes de blocs pour sécuriser et valider les données, les modèles et les résultats d’apprentissage. Blockchain fournit une traçabilité, une provenance, un audit et une validation immuables fiables de tous les aspects du processus de création d’IA, y compris une détermination transparente de la valeur basée sur l’utilité fournie par chaque participant.

Dans cet article, nous souhaitons partager quelques informations techniques sur la magie de la collaboration transparente entre systèmes pour créer un modèle d’IA unique. Sur Z et POWER, nous avons utilisé le framework populaire PyTorch; Pour assurer un transfert de données transparent, nous avons utilisé l’interface MPI (Message Passing Interface). PyTorch prend en charge plusieurs backends, y compris TCP, MPI et la bibliothèque de communication collective Gloo. Nous avons utilisé le backend MPI pour cette orchestration de données.

Si vous voulez essayer des expériences similaires, nous allons décrire l’utilisation de MPI entre les instances de PyTorch pour permettre aux nœuds de travail sur différents systèmes, et à travers les endiannesses, de contribuer au développement d’un modèle AI. Nous discuterons également de nos extensions TCP dans un prochain post, et nous travaillons pour les offrir à la communauté afin de compléter le prototype et les cas de test et intégrer la capacité dans une future distribution PyTorch. Comment configurer PyTorch avec MPI

Pour utiliser le backend MPI, le code source PyTorch doit être compilé sur un système où MPI est installé. Pour éviter les problèmes d’incompatibilité de version MPI entre différents systèmes endian, nous compilons la même version MPI à partir du code source sur ces systèmes. En outre, MPI doit également être compilé avec un indicateur qui prend en charge la conversion de données. Les étapes suivantes vous montrent comment télécharger, compiler et installer MPI sur le système:

Notez que l’indicateur –enable-heterogeneous est activé dans l’étape configure, ce qui est requis pour la communication entre systèmes hétérogènes. Notez également –enable-builtin-atomics, ce qui est nécessaire pour que les atomics intégrés soient utilisés sur un système zLinux au lieu des atomics ASM. Ce drapeau peut être désactivé lors de la compilation sur les systèmes x86 ou POWER.

Une fois que MPI est installé et fonctionne correctement, configurez le système avec Python V3.5 ou version ultérieure. Pour ce faire, vous pouvez utiliser le gestionnaire de package Anaconda ou installer Python à l’aide du référentiel de distribution du fournisseur de système d’exploitation. Voici un exemple d’installation à l’aide d’Anaconda sur une plate-forme ppc64le: wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-ppc64le.sh &&

Voici un exemple simple pour tester si la configuration entière fonctionne correctement sur tous les systèmes. Notez que backend = ‘mpi’ est la configuration qui permet à PyTorch d’utiliser MPI comme backend pour la communication. Cela crée deux processus: l’un envoie un tenseur et l’autre reçoit le tenseur. Sauvegardez ceci dans un fichier example.py. ! / usr / bin / env python3

L’IA d’entreprise requiert des capacités d’apprentissage fédérées, sécurisées et fiables pour construire et former des modèles avec des données et des capacités de calcul provenant de multiples systèmes organisationnels et hétérogènes. Nous avons discuté de la manière d’accomplir les aspects sécurisés et sécurisés grâce à la blockchain et aux aspects fédérés et fiables grâce à l’apprentissage distribué in situ, où seuls les modèles sont partagés entre les systèmes et les organisations, mais les données ne sont jamais déplacées de l’entreprise. . Nous avons démontré comment PyTorch avec un backend MPI peut être utilisé pour l’apprentissage fédéré sur des plates-formes hétérogènes telles que les systèmes IBM Z et POWER.