Documentation de Manta¶
La plateforme Manta vise à simplifier, rationaliser et flexibiliser le déploiement de l’IA collaborative et décentralisée en périphérie. Elle est conçue pour relever les défis liés au déploiement de modèles de machine learning sur des appareils distribués aux ressources limitées, permettant des opérations d’IA efficaces et évolutives plus proches du lieu de génération des données.
La plateforme est constituée de quatre composants clés, chacun ayant un rôle spécifique :
Manta Core : Facilite le déploiement et la surveillance de vos algorithmes via une interface centrale.
Manta Manager : Orchestre le déploiement des algorithmes utilisateurs sur différents Nodes, assurant une distribution et une gestion efficaces des tâches.
Manta Node : Permet le déploiement direct des algorithmes sur des appareils en périphérie, facilitant le traitement sur l’appareil et réduisant la latence.
Manta Light : Assure l’exécution locale des tâches sur les Nodes, en maintenant un accès sécurisé et des opérations sûres.
Chaque composant joue un rôle essentiel dans la création d’un environnement d’IA décentralisé et fluide. Les sections suivantes offrent une vue détaillée de la fonctionnalité de chaque composant et de leur intégration au sein de la plateforme.
Manta Core¶
Manta Core est le module utilisateur de la plateforme Manta. Il fournit les outils et interfaces nécessaires pour surveiller la plateforme Manta (y compris le Manager et les Nodes), gérer les données sur les Nodes, développer et déployer des Swarms — algorithmes décentralisés et collaboratifs. Manta Core est indispensable pour à la fois contrôler la plateforme et interagir avec les données et algorithmes déployés sur le réseau de Nodes.
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 la plateforme Manta et de lui envoyer des requêtes. Cela inclut la surveillance de l’état des Nodes, 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. UnSwarm
est constitué deModules
, chacun définissant une tâche spécifique exécutée sur un Node. Manta Core permet aux utilisateurs de développer ces Swarms et de les déployer sur la plateforme Manta. Des conseils détaillés sur le développement et le déploiement des Swarms sont disponibles dans la section documentation dédiée.
Manta Manager¶
Le Manta Manager est le composant côté serveur de la plateforme Manta, responsable de la gestion des Nodes et de la liaison des algorithmes de l’utilisateur aux données résidant sur les Nodes. Il implémente un serveur gRPC et doit être accessible par les Nodes pour permettre la communication. Le Manta Manager sert de couche d’orchestration pour les algorithmes décentralisés et collaboratifs, garantissant une exécution efficace à travers un cluster de Nodes.
Caractéristiques principales¶
Gestion des Nodes : Le Manta Manager gère l’enregistrement et la communication avec les Nodes du cluster, en utilisant un serveur gRPC pour maintenir les connexions et faciliter l’attribution des tâches.
Interaction utilisateur : Un serveur gRPC distinct permet aux utilisateurs d’interagir avec le cluster, de soumettre des algorithmes et de surveiller l’exécution des tâches.
Orchestration des tâches : Le Manta Manager orchestre les tâches en fonction de leurs définitions et de la disponibilité des Nodes, garantissant une utilisation optimale des ressources.
Suivi et surveillance des expériences : La prise en charge de la base de données intégrée permet le suivi des expériences, y compris les métriques, les paramètres de modèle, et la surveillance de la plateforme. Cela inclut la détection des pannes de Node et le suivi des journaux de 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 essentiel dans l’exécution des tâches en périphérie, là où les données sont générées et se trouvent. Le Manta Node reçoit les définitions de tâches (telles que les images de conteneur et les scripts) du Manta Manager et utilise Docker pour déployer ces tâches localement dans un environnement sécurisé et isolé. Cette configuration garantit une exécution flexible des tâches, en utilisant des bibliothèques et frameworks tels que PyTorch, TensorFlow, et ONNX.
De plus, le Manta Node assure un accès sécurisé aux données locales sur le Node, y compris les données générées par des capteurs ou autres processus, ce qui est essentiel pour l’analyse, l’entraînement de modèles, ou l’inférence. Le Node est aussi chargé d’interagir avec le Manta Manager pour obtenir les informations nécessaires à une exécution efficace des tâches, telles que les hyperparamètres, les paramètres de modèle (poids, biais), et les métriques de performance.
Pour fonctionner correctement, le Manta Node doit avoir accès au Manta Manager pour la communication gRPC et au broker Mosquitto pour la communication MQTT. En outre, Docker doit être installé localement sur le Node 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 les tâches en périphérie via Docker, assurant 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 Node pour les utiliser dans les tâches, facilitant l’analyse, l’entraînement de modèles, et l’inférence.
Communication avec Manta Manager : Assure la communication avec le Manta Manager via gRPC pour l’orchestration des tâches et avec le broker Mosquitto via MQTT pour la messagerie.
Déploiement flexible de tâches : Prend en charge le déploiement des tâches utilisant des bibliothèques AI/ML populaires telles que PyTorch, TensorFlow, et ONNX.
Manta Light¶
Manta Light est le module utilisateur de la plateforme Manta exécuté dans une tâche. Il permet d’accéder aux données locales sur le Node où la tâche est exécutée et de partager des informations avec d’autres Nodes.
Caractéristiques principales¶
Objet Tâche Manta : Classe simple pour définir une tâche et accéder aux informations locales et globales.
Manta World : Classe permettant d’envoyer et de recevoir des informations avec d’autres Nodes sous des balises. Les informations sont classées en deux catégories : 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 sauvegardé dans leManager
, il est ajouté en tant que nouvelle valeur dans la base de données, tandis que lorsque une valeur globale est sauvegardée, elle remplace la valeur précédente. Les résultats fonctionnent comme un disque qui se remplit au fil du temps, tandis que les globales fonctionnent comme une mémoire partagée.Manta Local : Classe permettant d’accéder en toute sécurité aux données locales.