Qu’est-ce que SynapseML ?
SynapseML (auparavant appelé MMLSpark) est une bibliothèque open source qui simplifie la création de pipelines Machine Learning (ML) massivement évolutifs. SynapseML fournit des API simples, composables et distribuées pour un large éventail de tâches Machine Learning différentes comme l’analyse de texte, la vision, la détection d’anomalie, etc. SynapseML se base sur le framework de calcul distribué Apache Spark et partage la même API que la bibliothèque SparkML/MLLib, ce qui vous permet d’incorporer sans discontinuité des modèles SynapseML dans des workflows Apache Spark existants.
Avec SynapseML, vous pouvez créer des systèmes évolutifs et intelligents pour résoudre des problèmes dans des domaines comme la détection d’anomalie, la vision par ordinateur, le Deep Learning, l’analyse de texte, etc. SynapseML peut entraîner et évaluer des modèles sur des clusters d’ordinateurs mononœuds, multinœuds et redimensionnables élastiquement. Vous pouvez ainsi mettre à l’échelle votre travail sans gaspiller de ressources. SynapseML est utilisable en Python, R, Scala, Java et .NET. De plus, son API extrait un large éventail de bases de données, systèmes de fichiers et magasins de données cloud pour simplifier les expériences, quelle que soit l’emplacement des données.
SynapseML nécessite Scala 2.12, Spark 3.0+ et Python 3.6+.
Fonctionnalités clés de SynapseML
API unifiée pour la création, l’entraînement et le scoring de modèles
SynapseML offre une API unifiée qui simplifie le développement de programmes distribués à tolérance de panne. Plus particulièrement, SynapseML expose de nombreux frameworks de Machine Learning différents sous une API unique qui est évolutive, indépendante des données et du langage et qui fonctionne pour les applications de traitement par lots, de streaming et de mise à disposition.
Une API unifiée normalise de nombreux outils, frameworks, algorithmes et simplifie l’expérience de Machine Learning distribuée. Elle permet aux développeurs de composer rapidement des frameworks de Machine Learning disparates, de garder un code propre et d’activer des workflows nécessitant plusieurs frameworks. Par exemple, les workflows comme l’apprentissage supervisé par le web ou la création d’un moteur de recherche nécessitent plusieurs services et frameworks. SynapseML préserve les utilisateurs de cette complexité supplémentaire.
Utiliser des modèles intelligents prédéfinis
De nombreux outils dans SynapseML ne nécessitent pas un jeu de données d’entraînement étiqueté volumineux. SynapseML fournit plutôt des API simples pour des services intelligents prédéfinis, comme Azure AI services, afin de relever rapidement les défis de l’IA à grande échelle liés à l’entreprise et à la recherche. SynapseML permet aux développeurs d’incorporer plus de 50 services ML de pointe directement dans leurs systèmes et bases de données. Ces algorithmes prêts à l’emploi peuvent analyser un large éventail de documents, transcrire des conversations à plusieurs orateurs en temps réel et traduire du texte en plus de 100 langues différentes. Pour obtenir des exemples d’utilisation de l’IA prédéfinie pour résoudre des tâches rapidement, consultez les exemples « cognitifs » SynapseML.
Pour rendre l’intégration rapide et efficace de SynapseML à Azure AI services, SynapseML introduit de nombreuses optimisations pour les workflows orientés services. En particulier, SynapseML analyse automatiquement les réponses de limitation courantes pour veiller à ce que les travaux ne surchargent pas les services back-end. De plus, il utilise des temporisations exponentielles pour gérer les connexions réseau qui ne sont pas fiables et les réponses qui ont échoué. Enfin, les machines de Worker Spark restent occupées avec de nouvelles primitives de parallélisme asynchrone pour Spark. Le parallélisme asynchrone permet aux machines de Worker d’envoyer des demandes tout en attendant une réponse du serveur et il peut produire une augmentation décuplée du débit.
Compatibilité large de l’écosystème avec ONNX
SynapseML permet aux développeurs d’utiliser des modèles de nombreux écosystèmes ML différents par le biais du framework ONNX (Open Neural Network Exchange). Avec cette intégration, vous pouvez exécuter un large éventail de modèles classiques et Deep Learning à grande échelle avec seulement quelques lignes de code. SynapseML gère automatiquement la distribution des modèles ONNX aux nœuds Worker, le traitement par lots et la mise en mémoire tampon des données d’entrée à des fins de débit élevé, ainsi que la planification du travail sur les accélérateurs matériels.
L’ajout d’ONNX à Spark permet non seulement aux développeurs de mettre à l’échelle des modèles Deep Learning, mais aussi de distribuer l’inférence sur un large éventail d’écosystèmes ML. En particulier, ONNXMLTools convertit les modèles de TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O et PyTorch en ONNX à des fins d’inférence accélérée et distribuée à l’aide de SynapseML.
Créer des systèmes IA responsables
Après avoir créé un modèle, les chercheurs et ingénieurs doivent impérativement comprennent ses limitations et son comportement avant de le déployer. SynapseML aide les développeurs et chercheurs à créer des systèmes IA responsables en introduisant de nouveaux outils qui révèlent pourquoi les modèles font certaines prédictions et comment améliorer le jeu de données d’entraînement pour éliminer les biais. SynapseML accélère considérablement le processus de compréhension du modèle entraîné d’un utilisateur en permettant aux développeurs de distribuer le calcul sur des centaines de machines. Plus précisément, SynapseML inclut des implémentations distribuées d’explications SHAP (Shapley Additive Explanations) et LIME (Interpretable Model-Agnostic Explanations) pour expliquer les prédictions de la vision, du texte et des modèles tabulaires. Il inclut également des outils comme ICE (Individual Conditional Expectation) et l’analyse des dépendances partielles pour les jeux de données biaisés reconnus.
Prise en charge d’entreprise sur Azure Synapse Analytics
SynapseML est généralement disponible sur Azure Synapse Analytics avec une prise en charge d’entreprise. Vous pouvez créer des pipelines de Machine Learning à grande échelle à l’aide d’Azure AI services, LightGBM, ONNX et d’autres fonctionnalités SynapseML sélectionnées. Il inclut même des modèles pour prototyper rapidement des systèmes Machine Learning distribués, comme des moteurs de recherche visuelle, des pipelines de maintenance prédictive, la traduction de documents, etc.
Étapes suivantes
Pour en savoir plus sur SynapseML, consultez SynapseML : une bibliothèque de Machine Learning simple, multilingue et massivement parallèle.