Créer des modèles personnalisés avec Azure Machine Learning Designer

L'apprentissage automatique est une partie importante du développement d'applications modernes, remplaçant une grande partie de ce qui était auparavant fait à l'aide d'une série complexe de moteurs de règles et étendant la couverture à un ensemble beaucoup plus large de problèmes. Des services tels que les services cognitifs d'Azure fournissent des modèles prédéfinis et pré-entraînés qui prennent en charge de nombreux cas d'utilisation courants, mais beaucoup d'autres nécessitent le développement de modèles personnalisés.

Personnaliser avec ML

Comment pouvons-nous créer des modèles d'apprentissage automatique personnalisés? Vous pouvez commencer à une extrémité en utilisant des langages d'analyse statistique comme R pour créer et valider des modèles, où vous avez déjà une idée de la structure sous-jacente de vos données, ou vous pouvez travailler avec les fonctionnalités d'algèbre linéaire de la suite Anaconda de Python. De même, des outils tels que PyTorch et TensorFlow peuvent aider à construire des modèles plus complexes, en tirant parti des réseaux neuronaux et de l'apprentissage en profondeur tout en s'intégrant aux langages et plates-formes familiers.

C'est très bien si vous avez une équipe de scientifiques des données et de mathématiciens capables de créer, tester et (surtout) valider leurs modèles. Avec une expertise en apprentissage automatique difficile à trouver, ce sont des outils qui aident à guider les développeurs tout au long du processus de création des modèles dont les entreprises ont besoin. En pratique, la plupart des modèles d'apprentissage automatique se divisent en deux types: le premier identifie des données similaires, le second identifie les données aberrantes.

Nous pouvons utiliser le premier type d'application pour identifier des éléments spécifiques sur un convoyeur à bande ou examiner les problèmes de données provenant d'une série de capteurs industriels. Des scénarios comme ceux-ci ne sont pas particulièrement complexes, mais ils nécessitent tout de même de créer un modèle validé, garantissant qu'il peut identifier ce que vous recherchez et trouver le signal dans les données, et non amplifier les hypothèses ou répondre au bruit.

Présentation d'Azure Machine Learning Designer

Azure fournit divers outils pour cela, ainsi que ses modèles prédéfinis, pré-entraînés et personnalisables. One, Azure Machine Learning Designer, vous permet de travailler avec vos données existantes avec un ensemble d'outils de conception visuelle et de contrôles glisser-déposer.

Vous n'avez pas besoin d'écrire du code pour créer votre modèle, bien qu'il existe la possibilité d'apporter un R ou Python personnalisé si nécessaire. Il remplace l'outil ML Studio d'origine, ajoutant une intégration plus approfondie dans les SDK d'apprentissage automatique d'Azure et prenant en charge plus que des modèles basés sur le processeur, offrant un apprentissage automatique alimenté par GPU et une formation et un réglage automatisés des modèles.

Pour démarrer avec Azure Machine Learning Designer, ouvrez le site Azure Machine Learning et connectez-vous avec un compte Azure. Commencez par vous connecter à un abonnement et créez un espace de travail pour vos modèles. L'assistant de configuration vous demande de spécifier si les modèles résultants ont un point de terminaison public ou privé et si vous allez travailler avec des données sensibles avant de choisir le mode de gestion des clés. Les données sensibles seront traitées dans ce qu'Azure définit comme un «espace de travail à fort impact commercial», ce qui réduit la quantité de données de diagnostic collectées par Microsoft et ajoute des niveaux de chiffrement supplémentaires.

Configurer un espace de travail de machine learning

Une fois que vous avez parcouru l'assistant, Azure vérifie vos paramètres avant de créer votre espace de travail ML. Il vous propose utilement un modèle ARM afin que vous puissiez automatiser le processus de création à l'avenir, fournissant un cadre pour les scripts que les analystes commerciaux peuvent utiliser à partir d'un portail interne pour réduire la charge de vos administrateurs Azure. Le déploiement des ressources nécessaires pour créer un espace de travail peut prendre du temps, alors soyez prêt à attendre un peu avant de pouvoir commencer à créer des modèles.

Votre espace de travail contient des outils pour développer et gérer des modèles d'apprentissage automatique, de la conception et de la formation à la gestion des calculs et du stockage. Il vous aide également à étiqueter les données existantes, augmentant ainsi la valeur de votre ensemble de données d'entraînement. Vous voudrez probablement commencer par les trois options principales: travailler avec le SDK Azure ML Python dans un bloc-notes de style Jupyter, à l'aide des outils de formation automatisés d'Azure ML ou de la surface Designer à glisser-déposer à faible code. 

Utilisation d'Azure ML Designer pour créer un modèle

Le concepteur est le moyen le plus rapide de démarrer avec un apprentissage automatique personnalisé, car il vous donne accès à un ensemble de modules prédéfinis qui peuvent être enchaînés pour créer une API d'apprentissage automatique prête à être utilisée dans votre code. Commencez par créer un canevas pour votre pipeline ML, en définissant la cible de calcul pour votre pipeline. Les objectifs de calcul peuvent être définis pour l'ensemble du modèle ou pour des modules individuels dans le pipeline, ce qui vous permet d'ajuster les performances de manière appropriée.

Il est préférable de considérer les ressources de calcul de votre modèle comme un calcul sans serveur, qui augmente et diminue si nécessaire. Lorsque vous ne l'utilisez pas, il sera réduit à zéro et peut prendre jusqu'à cinq minutes pour redémarrer. Cela peut avoir un impact sur les opérations des applications, assurez-vous donc qu'il est disponible avant d'exécuter des applications qui en dépendent. Vous devrez prendre en compte les ressources nécessaires pour entraîner un modèle lors du choix d'une cible de calcul. Les modèles complexes peuvent tirer parti de la prise en charge des GPU d'Azure, avec prise en charge de la plupart des options de calcul d'Azure (en fonction de votre quota disponible).

Une fois que vous avez configuré vos ressources de calcul d'entraînement, choisissez un ensemble de données d'entraînement. Il peut s'agir de vos propres données ou de l'un des exemples de Microsoft. Les ensembles de données personnalisés peuvent être construits à partir de fichiers locaux, de données déjà stockées sur Azure, du Web ou d'ensembles de données ouverts enregistrés (qui sont souvent des informations gouvernementales).

Utilisation de données dans Azure ML Designer

Les outils du concepteur vous permettent d'explorer les ensembles de données que vous utilisez, vous pouvez donc être sûr que vous disposez de la bonne source pour le modèle que vous essayez de créer. Avec une source de données sur le canevas, vous pouvez commencer à faire glisser des modules et à les connecter pour traiter vos données d'entraînement; par exemple, supprimer des colonnes qui ne contiennent pas suffisamment de données ou nettoyer les données manquantes. Ce processus glisser-connecter ressemble beaucoup à travailler avec des outils à faible code, tels que ceux de Power Platform. Ce qui diffère ici, c'est que vous avez la possibilité d'utiliser vos propres modules.

Une fois les données traitées, vous pouvez commencer à choisir les modules dont vous souhaitez entraîner votre modèle. Microsoft fournit un ensemble d'algorithmes communs, ainsi que des outils pour fractionner des ensembles de données pour la formation et les tests. Les modèles résultants peuvent être notés à l'aide d'un autre module une fois que vous les avez exécutés pendant la formation. Les scores sont transmis à un module d'évaluation afin que vous puissiez voir le fonctionnement de votre algorithme. Vous avez besoin de connaissances statistiques pour interpréter les résultats afin de comprendre les types d'erreurs générées, bien qu'en pratique, plus la valeur d'erreur est petite, mieux c'est. Vous n'avez pas besoin d'utiliser les algorithmes préparés, car vous pouvez apporter votre propre code Python et R.

Un modèle entraîné et testé peut être rapidement converti en pipeline d'inférence, prêt à être utilisé dans vos applications. Cela ajoute des points de terminaison d'API REST d'entrée et de sortie à votre modèle, prêts à être utilisés dans votre code. Le modèle résultant est ensuite déployé sur un cluster d'inférence AKS en tant que conteneur prêt à l'emploi.

Laissez Azure faire tout pour vous: apprentissage automatique automatisé

Dans de nombreux cas, vous n'avez même pas besoin de faire autant de développement. Microsoft a récemment publié une option de ML automatisé, basée sur le travail effectué chez Microsoft Research. Ici, vous commencez avec un ensemble de données accessible à Azure, qui doit être des données tabulaires. Il est destiné à trois types de modèles: classification, régression et prévisions. Une fois que vous avez fourni des données et choisi un type de modèle, l'outil génère automatiquement un schéma à partir des données que vous pouvez utiliser pour activer et désactiver des champs de données spécifiques, en créant une expérience qui est ensuite exécutée pour créer et tester un modèle.

Le ML automatisé créera et classera plusieurs modèles, que vous pouvez étudier pour déterminer celui qui convient le mieux à votre problème. Une fois que vous avez trouvé le modèle souhaité, vous pouvez rapidement ajouter des étapes d'entrée et de sortie et le déployer en tant que service, prêt à être utilisé dans des outils tels que Power BI.

L'apprentissage automatique étant un outil prédictif de plus en plus important pour de nombreux types de problèmes d'entreprise, Azure Machine Learning Designer peut lui apporter un public beaucoup plus large. Si vous disposez de données, vous pouvez créer des modèles analytiques et prédictifs, avec une expertise minimale en science des données. Avec le nouveau service de ML automatisé, il est facile de passer des données aux services à l'analyse sans code.