Bibliothèque d’apprentissage machine distribuée Microsoft Open-Source SynapseML
Microsoft a annoncé la sortie de SynapseML, une bibliothèque open source pour la création et la gestion de pipelines d’apprentissage automatique distribué (ML). SynapseML s’exécute sur Apache Spark, fournit une abstraction d’API indépendante du langage sur plusieurs magasins de données et s’intègre à plusieurs technologies de ML existantes, notamment Open Neural Network Exchange (ONNX).
La sortie a été annoncée dans un article de blog par l’ingénieur logiciel Mark Hamilton. SynapseML s’exécute sur Apache Spark, tirant parti de la gestion par Spark des clusters de calcul tolérants aux pannes à grande échelle. La bibliothèque possède des API pour Python et Java, avec la possibilité de générer des liaisons pour Java, R et C#. SynapseML inclut le HTTP sur Spark module, permettant aux utilisateurs une intégration efficace des services Web dans leurs pipelines, ainsi que des wrappers prédéfinis pour invoquer plusieurs de ces services, y compris Azure Cognitive Services. À l’aide d’ONNX, les développeurs peuvent déployer des modèles pré-entraînés à partir de l’ONNX Model Hub de Microsoft, ou convertir des modèles construits dans d’autres frameworks, tels que TensorFlow ou PyTorch, pour effectuer une inférence distribuée sur Spark. le Service d’étincelles Le module permet aux développeurs d’exposer leurs pipelines Spark en tant que services Web à faible latence. Selon Hamilton,
Notre objectif est de libérer les développeurs des tracas de se soucier des détails de l’implémentation distribuée et de leur permettre de les déployer dans une variété de bases de données, de clusters et de langages sans avoir à modifier leur code.
SynapseML inclut des intégrations avec plusieurs frameworks de ML populaires, notamment ONNX, CNTK, LightGBM, OpenCV et Vowpal Wabbit. Ces intégrations fournissent des API conformes aux abstractions Transformer et Estimator définies par les pipelines ML de Spark. Les intégrations ONNX et CNTK permettent aux utilisateurs d’importer des modèles d’apprentissage en profondeur pré-entraînés générés par d’autres systèmes ; les utilisateurs peuvent ensuite utiliser le cluster Spark comme moteur d’inférence distribué. L’intégration OpenCV fournit des abstractions Transformer pour la manipulation des données d’image dans un pipeline ML, par exemple, le retournement ou le flou des images. Les intégrations LightGBM et Vowpal Wabbit fournissent à la fois des estimateurs pour les modèles de formation et des transformateurs pour l’inférence.
Pour prendre en charge l’intégration avec Azure Cognitive Services, SynapseML inclut un module HTTP sur Spark, qui est décrit en détail dans un article de l’équipe de recherche de Hamilton. HTTP sur Spark fournit un moyen efficace pour les travailleurs Spark d’appeler des services Web. Il augmente le modèle de parallélisme de Spark, permettant aux travailleurs Spark d’effectuer plusieurs tâches en attendant la fin des requêtes HTTP. Cela améliore le débit sans interférer avec le parallélisme natif de Spark. Pour atténuer le risque que le cluster submerge un service Web en aval, HTTP sur Spark gère les réponses d’en-tête limitant le débit pour implémenter une « contre-pression » et réessayer. En plus des wrappers Transformer pour près de 50 services Azure, SynapseML fournit également un HTTPTransformer générique qui permet aux utilisateurs d’appeler des services Web arbitraires.
SynapseML inclut plusieurs autres fonctionnalités. Spark Serving étend le moteur de streaming structuré de Spark, permettant à n’importe quel travail de streaming structuré d’être exposé en tant que service Web. SynapseML comprend également des outils pour une IA responsable, tels que l’analyse du bilan des données et l’explicabilité des modèles. La bibliothèque inclut la prise en charge des fonctionnalités AutoML, telles que la recherche du modèle le plus performant à l’aide de la recherche d’hyperparamètres, ainsi que l’implémentation native de Spark de plusieurs modèles, y compris un modèle de détection d’anomalies pour la cybersécurité ; un modèle de forêt d’isolement, qui effectue une détection non linéaire des valeurs aberrantes ; et un modèle conditionnel du k plus proche voisin.
Parallèlement à la version open source, lors de leur récente conférence Ignite, Microsoft a annoncé la disponibilité générale de SynapseML sur le service Azure Synapse Analytics. En réponse à une question sur Twitter concernant la différence entre SynapseML et Spark’s MLLib, Bart Czernicki, architecte technique principal chez Microsoft, a répondu que la bibliothèque était reconditionné et optimisé pour Azure Synapse Analytics. Dans un tweet séparé sur SynapseML, Le chercheur en ML Moein Kareshk mentionné:
Bien que je n’aie pas eu l’occasion de comparer la vitesse, ses API sont claires et faciles à apprendre pour prototyper des produits #ML.
Le code SynapseML est disponible sur GitHub.
.