Documentation de Manta¶
La plateforme Manta vise à simplifier, rationaliser et rendre flexible le déploiement d’une IA collaborative et décentralisée à la périphérie. C’est conçu pour répondre aux défis du déploiement de modèles d’apprentissage automatique sur des appareils distribués et aux ressources limitées, permettant une utilisation efficace et des opérations d’IA évolutives plus proches du lieu de génération des données.
La plateforme est composée de quatre composants clés, chacun servant un objectif spécifique rôle:
Manta Core : Facilite le déploiement et la surveillance de votre algorithmes à partir d’une interface centrale.
Manta Manager : orchestre le déploiement des algorithmes utilisateur sur différents nœuds, assurant une répartition et une gestion efficaces des tâches.
Manta Node : permet de déployer des algorithmes directement en périphérie appareils, permettant le traitement sur l’appareil et réduisant la latence.
Manta Light : garantit que les tâches sont exécutées localement sur les nœuds, maintenir un accès et des opérations sécurisés.
Chaque composant joue un rôle crucial dans la création d’un environnement décentralisé et transparent.Environnement de l’IA. Les sections suivantes fourniront des informations détaillées dans la fonctionnalité de chaque composant et leur intégration au sein du plate-forme.
Manta Core¶
Manta Core est le module côté utilisateur de la plateforme Manta. Il fournit les outils et interfaces nécessaires pour surveiller la plateforme Manta (y compris le manager et les nœuds), gérer les données sur les nœuds, et développer et déployer Swarms : algorithmes décentralisés et collaboratifs. Manta Core est indispensable à la fois pour contrôler la plateforme et interagir avec les données et des algorithmes déployés sur le réseau de nœuds.
Caractéristiques principales¶
Objet Cluster Manta : L’objet « Cluster » dans Manta Core se connecte à une instance de Manta Manager, permettant à l’utilisateur d’interagir avec et d’envoyer demandes adressées à la plateforme Manta. Cela comprend la surveillance de l’état des les nœuds, la gestion des données et l’orchestration du déploiement des algorithmes.
Manta Swarm et Module : Manta Core fournit l’abstraction Swarm, qui représente un algorithme décentralisé et collaboratif.
Swarm
est composé deModules
, chacun définissant un Tâche qui s’exécute sur un nœud. Le Manta Core permet aux utilisateurs de développer ces Des Swarms et déployez-les sur la plateforme Manta. Des conseils détaillés sur le développement et le déploiement des Swarms peuvent être trouvés dans le rubrique documentation.Module de simulation Manta : Pour faciliter le développement et les tests de Swarms, Manta Core inclut un module de simulation. Cela permet aux utilisateurs de simuler l’intégralité de la plateforme Manta, y compris le manager et les nœuds, sur un hôte unique, permettant l’expérimentation et le test des algorithmes Swarm avant le déploiement sur la plateforme réelle.
Manta Manager¶
Le Manta Manager est le composant côté serveur de la plateforme Manta, responsable de la gestion des nœuds et de la liaison des algorithmes de l’utilisateur avec les données résidant sur les nœuds. Il implémente un serveur gRPC et doit être accessible par les nœuds pour permettre la communication. Le Manta Manager sert en tant que couche d’orchestration pour une organisation décentralisée et collaborative algorithmes, garantissant une exécution efficace sur un cluster de nœuds.
Caractéristiques principales¶
Gestion des nœuds : Le Manta Manager gère l’enregistrement et communication avec les nœuds du cluster, en exploitant un serveur gRPC pour maintenir les liens et faciliter l’attribution des tâches.
Interaction utilisateur : Un serveur gRPC distinct permet aux utilisateurs d’interagir avec le cluster, soumettez des algorithmes et surveillez l’exécution des tâches.
Orchestration des tâches : Le Manta Manager orchestre les tâches en fonction de leurs définitions et la disponibilité des nœuds, garantissant une utilisation des ressources.
Suivi et surveillance des expériences : prise en charge intégrée de la base de données permet le suivi des expériences, y compris les métriques, les paramètres du modèle et surveillance de la plateforme. Cela comprend la détection des pannes de nœuds et surveillance des journaux des tâches.
Manta Node¶
Le Manta Node est le composant de périphérie de la plateforme de déploiement Manta. Il joue un rôle crucial dans l’exécution des tâches en périphérie, où les données sont généré et réside. Le Manta Node reçoit des définitions de tâches (telles que images et scripts de conteneurs) à partir du Manta Manager et utilise Docker pour déployer ces tâches localement dans un environnement sécurisé et isolé. Cette configuration garantit que les tâches peuvent être exécutées de manière flexible, en tirant parti des bibliothèques et des frameworks tels que PyTorch, TensorFlow et ONNX.
De plus, le Manta Node fournit un accès sécurisé aux données locales sur le nœud, y compris les données générées par des capteurs ou d’autres processus, qui est indispensable pour l’analyse, la formation de modèles ou l’inférence. Le nœud est également responsable de l’interaction avec le Manta Manager pour obtenir les informations nécessaires informations pour une exécution efficace des tâches, telles que les hyperparamètres, le modèle paramètres (poids, biais) et mesures de performance.
Pour fonctionner correctement, le Manta Node doit avoir accès au Manta Responsable de la communication gRPC et du broker Mosquitto pour MQTT communication. De plus, Docker doit être installé localement sur le nœud pour permettre le déploiement des tâches dans des environnements sécurisés et isolés.
Caractéristiques principales¶
Exécution des tâches en périphérie : reçoit et déploie des tâches en périphérie à l’aide Docker, garantissant des environnements d’exécution sécurisés et isolés.
Accès sécurisé aux données : fournit un accès sécurisé aux données locales sur le nœud à utiliser dans les tâches, permettant l’analyse, la formation de modèles et l’inférence.
Communication avec le responsable Manta : maintient la communication avec le Manta Manager via gRPC pour l’orchestration des tâches et avec Mosquitto broker via MQTT pour la messagerie.
Déploiement de tâches flexibles : prend en charge le déploiement de tâches qui utilisent bibliothèques AI/ML populaires comme PyTorch, TensorFlow et ONNX.
Manta Light¶
Manta Light est le module côté utilisateur de la plateforme Manta exécuté dans un tâche. Il permet d’accéder aux données locales sur le nœud où se trouve la tâche exécuté et partager des informations entre d’autres nœuds.
Caractéristiques principales¶
Objet de tâche Manta : classe simple pour définir une classe et accéder au localet des informations globales.
Manta World : Classe pour envoyer et recevoir des informations avec d’autres nœuds sous les balises. Les informations sont classées en deux catégories : les résultats et globales. Les deux sont enregistrées dans le
Manager
et peuvent être analysées ultérieurement avecmanta_core
. Lorsqu’un résultat est enregistré dans leManager
, il est ajouté en tant que nouvelle valeur dans la base de données alors que lorsque une valeur globale est sauvegardée, sa valeur précédente est remplacée par la nouvelle. Résultats se comportent comme un disque qui se remplit au fil du temps alors que les globales se comportent comme une mémoire partagée.Manta Local : Classe permettant d’accéder en toute sécurité aux données locales.