Guide des applications optimisées par ML Mendix et Amazon SageMaker AI | Mendix

Passer au contenu principal

Guide des applications optimisées par ML Mendix et Amazon SageMaker AI 

Il ne fait aucun doute que nous vivons à l'ère de l'IA. Les entreprises se livrent une concurrence acharnée pour créer des applications plus rapides, plus intelligentes et plus performantes, faisant de l'apprentissage automatique le « must have » du marché des applications d'aujourd'hui. Dans cet article de blog, je vais démontrer à quel point il est devenu plus rapide et plus facile de passer de zéro à héros en intégrant des modèles d'apprentissage automatique entraînés dans des applications à l'aide de Mendix et Amazon SageMaker AI.

Qu'est-ce que l'apprentissage par machine?

L'apprentissage automatique (ML) est un sous-ensemble de l'intelligence artificielle (IA) qui se concentre sur le développement d'algorithmes et de modèles permettant aux ordinateurs d'apprendre à partir de données et de faire des prédictions ou de prendre des décisions sans être explicitement programmés. Cela signifie que les modèles peuvent être formés sur la base de données personnalisées d'un secteur ou d'une entreprise spécifique et peuvent effectuer des tâches plus efficacement qu'un modèle de base prêt à l'emploi.

Des applications intelligentes sur mesure : ouah, ça a l’air génial, non ? C’est vrai. Mais est-ce compliqué ? Il y a dix ans, cela aurait été impossible pour la plupart des entreprises ou des secteurs en raison de la complexité, de l’accès limité aux outils pertinents et, bien sûr, des difficultés de mise en œuvre des modèles dans les applications destinées aux utilisateurs finaux.

Aujourd'hui, les luttes et les soucis du passé commencent enfin à se dissiper. Grâce à une transition vers un développement d'applications plus optimisé par l'IA avec Mendix, les applications peuvent intégrer des solutions et des fonctionnalités intelligentes telles qu'Amazon Textract, Rekognition, etc.

Si vous voulez en savoir plus, visitez notre site ou lire le Mendix Guide d'évaluation.

Les outils dont vous aurez besoin

Tout d’abord, laissez-moi vous présenter les outils. N’ayez pas peur, il n’y en a que quelques-uns.

  • Amazon SageMaker AI : pour créer et former le modèle.
    • Amazon SageMaker AI est un service de machine learning entièrement géré d'Amazon qui vous aide à créer, entraîner et déployer rapidement des modèles de machine learning. Il offre un large éventail de fonctionnalités, notamment les notebooks Jupyter, Pipelines, SageMaker Studio, Canvas et RStudio. Pour en savoir plus, consultez le site d'Amazon SageMaker AI. ici or ici.
  • Python 3.0 : Pour écrire le code.
  • Mendix Studio Pro 10 : la dernière version de Mendix inclut le kit ML requis pour créer des applications intelligentes personnalisées destinées aux utilisateurs finaux.

Avec la dernière version de Studio Pro 10, Mendix a placé la barre plus haut pour le développement d'applications en incluant de nombreuses fonctionnalités intéressantes et intelligentes dans la plateforme. L'une d'entre elles, et l'une de mes préférées, est la Mendix Kit d'apprentissage automatique (Mendix Kit ML). Le kit ML peut vous aider à créer des applications plus rapides, plus intelligentes et plus collaboratives en important vos modèles ONNX directement dans Studio Pro sans intégrations ni ajustements supplémentaires.

Pour plus d'informations, voir ceci article de blog dédié et la Documentation.

L'apprentissage automatique et moi, une brève histoire de lutte

IA d'Amazon SageMaker

Pour tous ceux qui débutent dans le domaine de l’apprentissage automatique, SageMaker peut sembler un peu compliqué et écrasant. D’après mon expérience personnelle, mes deux premiers essais se sont soldés par un désastre total. Plusieurs noyaux en cours d’exécution, chaque choix du menu cliqué, plusieurs blocs-notes exécutant on ne sait quoi, des domaines et des profils partout, et appuyer constamment sur le bouton de lecture juste pour voir ce qui se passerait. Un désastre total et ultime. Mais je n’étais pas prêt à abandonner, alors après quelques essais et quelques heures de lecture, j’ai tiré la conclusion : « Tout ne sert pas à tout. »

Amazon SageMaker AI vous offre de nombreux choix pour vous aider à créer, former, intégrer, déployer et faire presque tout ce que vous voulez faire avec des modèles d'apprentissage automatique, mais la vérité est que, dans la plupart des cas, vous n'aurez besoin que d'un notebook Jupyter, de quelques connaissances Python et, bien sûr, d'un ensemble de données.

Bibliothèques d'apprentissage automatique

L’une des choses que j’ai apprises au cours de mon parcours dans le domaine de l’apprentissage automatique est qu’il existe de nombreux « frameworks de modélisation » différents, comme ONNX, Scikit-learn, Tensorflow, Pytorch, etc. Chacun est spécialisé à sa manière pour exécuter et créer différents types d’IA.

ONNX

Comme mentionné quelques lignes plus haut, le kit ML dans Mendix 10 est compatible avec le cadre de modélisation ONNX. Vous vous demandez peut-être pourquoi ONNX ?

Eh bien, ONNX (ou Open Neural Network Exchange) est un format open source pour les modèles d'IA qui prend en charge l'interopérabilité entre les frameworks, ce qui signifie que vous pouvez entraîner un modèle dans un framework, le convertir en ONNX, puis le consommer dans un autre framework. Pour être un peu plus clair, chaque framework qui peut être converti en modèle ONNX peut également être importé dans Mendix 10.

Dans cet article de blog, je vais expliquer un peu comment vous pouvez convertir un modèle Scikit-learn en modèle ONNX, l'importer dans Mendix 10.1.1 et créez une application de test autour de celle-ci. Si vous souhaitez en savoir plus sur ONNX et sur la façon dont vous pouvez convertir ou consommer des modèles ONNX, visitez ce site.

Il est temps de se mettre au travail

Pour chaque lecteur qui souhaite retrousser ses manches et nous suivre, vous aurez besoin des éléments suivants :

Comme indiqué au début de cet article de blog, je vais créer une application intelligente de manière rapide et sans effort en vous guidant tout au long du processus de création d'un filtre anti-spam de démonstration à l'aide d'Amazon SageMaker AI et Mendix.

Pour vous faciliter la tâche, si vous souhaitez participer à ce voyage, vous pouvez télécharger les fichiers d'exemple à partir des liens suivants :

Étape 1 – Tout d’abord : commencer avec Amazon SageMaker Studio

Pour commencer à utiliser SageMaker Studio, connectez-vous à votre compte AWS et accédez au service SageMaker. Dans le tableau de bord SageMaker, dans le menu de gauche, sélectionnez Studio pour accéder à l'interface de SageMaker Studio.

Choisissez votre profil utilisateur si vous en avez déjà un et ouvrez Studio. Si vous n'avez pas de profil ou de domaine, créez-en un en choisissant Domaines depuis le menu de gauche et en suivant les instructions.

Étape 2 – SageMaker Studio : Jupyter Lab Notebook

 

Une fois le studio prêt à être utilisé, vous allez atterrir sur l'écran d'accueil, prenez le temps de vérifier l'écran, cliquez sur le jJIcône upyterLab pour continuer. ''JupyterLab est le dernier environnement de développement interactif basé sur le Web pour les notebooks, le code et les données. Son interface flexible permet aux utilisateurs de configurer et d'organiser les flux de travail dans la science des données, le calcul scientifique, le journalisme informatique et l'apprentissage automatique.'' En savoir plus ici.

Sélectionnez le laboratoire jupyter et puis Créer laboratoire jupyter espace.  

Choisissez un nom, à spécifier le nom de l'espace et appuyez sur la Créer un espace .  

Vous allez être redirigé vers laboratoire jupyter espace aperçu, alors sélire Espace d'exécution pour gérer l'espace nouvellement créé, une fois est lu Open le 

Étape 3 – Que le plaisir commence

Consultez le menu de gauche et sélectionnez l'icône des fichiers (dossier). Cela ouvrira la section des fichiers et tous les fichiers disponibles dans le studio seront visibles. Recherchez le bouton de téléchargement qui apparaît (comme indiqué sur la capture d'écran ci-dessous) pour télécharger les fichiers d'exemple.

Téléchargement de fichiers Amazon SageMaker

Fichier Amazon SageMaker

Une fois les fichiers visibles dans votre dossier, ouvrez le spam_nb.ipynb carnet.

Ouvrir le carnet de spam

Le studio va démarrer le noyau. Cela peut prendre quelques minutes, et une fois prêt, le bloc-notes devrait apparaître.

Double-cliquez sur le spam et sélectionnez le »noyau ipy' comme kernel dans la fenêtre contextuelle. 

Étape 4 – Explication du code Spam dans Notebook

L'exemple de Spam est assez simple et se compose de trois parties.

  • Première partie : Les bibliothèques nécessaires   
  • Deuxième partie : Formation et exportation
  • Troisième partie : les tests

Dans cet article de blog, les deux premières parties seront expliquées.

Partie un

Dans la première partie, les bibliothèques sont importées.

  • SYS le module aidera à contrôler et à modifier l'environnement d'exécution.
  • skl2onnx module. Le sklearn-onnx contient les fonctions permettant de convertir les modèles des boîtes à outils scikit-learn en ONNX.
  • ONNX module.
  • Durée d'exécution onnx module.

Importer des bibliothèques

Deuxième partie

Dans cette partie, le modèle est formé et converti en ONNX, puis exporté vers un fichier ONNX. L'exemple ci-dessous montre comment apprendre au modèle à prédire en utilisant un ensemble de formation.

Exemple d'enseignement du modèle pour prédire

L'ensemble d'apprentissage est constitué de données d'apprentissage (X_train) associées aux résultats connus (y_train). Le modèle apprendra quel modèle sera étiqueté comme 1 (vrai), par exemple, le spam, ou 0 (faux), par exemple, jambon. Ce processus est également appelé raccordUn ensemble de tests sera également inclus (X_test, y_test).

Dans l'image ci-dessus, nous pouvons voir que la deuxième partie commence également par l'importation de certaines méthodes (lignes 1 à 10). Il n'est pas nécessaire de plonger dans les explications de ces méthodes pour le moment puisque les fonctions seront expliquées plus en détail, ligne par ligne.

Dans la ligne suivante, 12 ensembles de données sont importés :

(df = pd.read_csv("spam.csv", encoding="L1")), and the attributes X and y are defied (X = df["v2"].values, y = df["v1"].values)

Ensuite, quatre portions de données sont créées, qui seront utilisées pour ajuster et prédire les valeurs :

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=345)

(Sklearn.model_selection.train_test_split divise les tableaux en sous-ensembles aléatoires de train et de test.)

Dans les lignes suivantes, l’objet pipeline est créé :

pipe = make_pipeline(
    CountVectorizer(binary=True),
    MultinomialNB()
)

Donc, la partie la plus importante se passe sur la ligne suivante puisque c'est ici que commence « l'ajustement » du modèle :

pipe.fit (X_train, y_train)

Et vous avez terminé ! Il ne reste plus qu'à convertir le modèle en fichier ONNX à l'aide de « à_onnx » fonction, puis exportez le fichier vers les fichiers du bloc-notes à l'aide de la "Écrivez" la fonction.

>

onxx_pipeline = to_onnx(pipe, initial_types=[('message', StringTensorType([None, 1]))])
with open("spam_nb.onnx", "wb") as f:
  f.write(onxx_pipeline.SerializeToString())

Pour plus d'exemples et d'informations sur la conversion d'un pipeline en ONNX, consultez le Documentation ONNX.

Enfin et surtout, vous devez exécuter le notebook pour exécuter le code :

  1. Placez votre curseur sur la première ligne.
  2. Cliquez sur l’icône de lecture en haut.
  3. Quelques lignes supplémentaires apparaîtront sur le cahier et le curseur réapparaîtra à la partie suivante.
  4. Cliquez une fois de plus sur l’icône de lecture pour exécuter la formation.
  5. Quelques lignes supplémentaires apparaîtront à nouveau et le fichier ONNX sera créé.

Exécutez le notebook pour exécuter le code

Vérifiez le dossier des fichiers, faites un clic droit sur spam_nb.onnx et téléchargez le fichier.

Téléchargez le fichier spamnbonnx

Important! Une fois que vous avez terminé d’entraîner et de tester votre modèle, cliquez sur l’icône des terminaux en cours d’exécution…

Icône des terminaux en cours d'exécution

…dans le menu de gauche et mettez fin à toutes les instances en cours d’exécution pour éviter des frais supplémentaires.

Étape 5 – Apportez le Mendix Resplendissez.

Le moment est donc venu de mettre le kit ML à l’épreuve.

Commencez par ouvrir votre Mendix 10 studio et création d'une nouvelle application vierge. Sélectionnez le module appelé MonPremierModule depuis l'onglet explorateur et faites un clic droit pour ouvrir le menu contextuel

Créer-une-nouvelle-application-vierge-dans-Mendix- 10

Sélectionnez le mappage du modèle ML.

Sélectionnez le mappage du modèle ML

Cliquez sur Modèle d'importation dans le coin supérieur gauche et importez le fichier ONNX. Mendix créera automatiquement les objets d'entrée et de sortie.

Si vous voyez un message d’erreur à l’entrée du modèle ML, ouvrez l’entité et corrigez le problème en sélectionnant « 1 » comme forme de tenseur statique.

Message d'erreur du modèle ML

Modifier-modèle-tenseur-forme

Votre modèle de domaine devrait ressembler à ceci :

Exemple-domaine-modèle

Accédez au modèle de domaine dans l’explorateur d’applications, ajoutez une entité supplémentaire et appelez-la EmailAjoutez deux attributs de chaîne à l'entité e-mail : Charge utile (caractères illimités) et Prédiction (laisser la valeur par défaut).

Ajouter une entité e-mail

Sélectionnez l'entité e-mail et faites un clic droit pour ouvrir le menu latéral, puis sélectionnez Générer des pages de présentation.

Générer des pages d'aperçu

Mendix créera automatiquement le Présentation du courrier électronique et Email_NouveauModifier pages et placez-les dans le Pages d'aperçu dossier du Explorer menu.

Aperçu-pages-dossier-du-menu-Explorer

Découvrez Email_NouveauModifier page et double-cliquez dessus pour l'ouvrir. Double-cliquez sur le Enregistrer action pour ouvrir ses propriétés.

Ouvrir-email-nouvelle-modification-propriétés

Dans l' Événements section, sélectionnez Appeler un microflux > Choisir > New.

Ajouter-microflow

Nommez le nouveau microflux Prédire le spam (ou PredictSpam). Une fois le nouveau microflow ouvert, ajoutez les actions suivantes :

Ajouter des actions pour ouvrir le microflux

  • Un paramètre pour l'entité email.
  • Une action Créer un objet pour l’objet d’entrée du modèle ML.

Créer un objet-action

  • L'action Appeler le modèle ML : sélectionnez le mappage de modèle ML disponible et l'objet d'entrée, puis cliquez sur OK
  • Une action de modification de courrier électronique (définir S’ENGAGER et Refresh à Oui.) En tant que membre, sélectionnez la prédiction et, en tant que valeur, définissez l'étiquette de sortie de la Objet de sortie.

Changer-email-action

  • Enfin, un Fermer la page l'action.  

Ajouter une action de fermeture de page

L'application est presque prête avec seulement deux ajustements restants, et vous pourrez exécuter et utiliser votre application intelligente de détection de spam de courrier électronique.

Accédez à l'option de navigation du menu.

Menu-navigation-option

Sélectionnez le aperçu du courrier électronique page comme page par défaut et également comme page d'accueil.

Définir la page par défaut

C'est fait ! Le moment est enfin arrivé…

Tests

Cliquez sur l'icône de lecture dans le coin supérieur droit pour exécuter votre projet. Une fois qu'il est prêt, cliquez sur le bouton Voir l'application bouton pour accéder à votre application.

Bouton Afficher l'application

La page d'accueil devrait ressembler à ceci :

Le test de la page d'accueil devrait ressembler à ceci

Commencez à tester en cliquant New. Ajoutez un message en tant que charge utile.

Démarrer les tests

Vous pouvez le tester en ajoutant un message de type spam comme celui-ci.

"Toutes nos félicitations!

Vous avez été sélectionné comme l'un des heureux gagnants de la loterie Microsoft 2023. Vous avez remporté un prix en espèces de 10,000,000 XNUMX XNUMX USD et un tout nouvel ordinateur portable.

Pour réclamer votre prix, vous devez contacter notre agent avec les informations suivantes :

Nom : Adresse : Numéro de téléphone : Adresse e-mail :

Contacter l'agent "

Si l'e-mail est reconnu comme spam, il aura « spam » sous prédiction…

Réponse au message de test 1

…et sinon, « jambon ».

Réponse au message de test 2

Et voilà. Vous avez créé une petite application basée sur le ML en moins d'une heure ! Si vous avez apprécié le processus et souhaitez en apprendre davantage, vous pouvez suivre ce lien pour d'autres exemples ou le Mendix Exemple d'application du kit ML.

Et après

La fusion de deux technologies puissantes, la Mendix Le kit 10 ML et Amazon SageMaker AI ouvrent un champ de possibilités passionnant pour le développement d'applications d'IA. En exploitant les capacités intuitives de développement visuel d'Amazon SageMaker, Mendix Grâce aux capacités avancées d'apprentissage automatique de SageMaker, les développeurs peuvent créer des applications pilotées par l'IA qui sont non seulement conviviales mais également profondément intelligentes.

Vous souhaitez continuer à explorer l’IA ?

On parle beaucoup de l'IA générative et d'outils comme ChatGPT, mais qu'est-ce que cela signifie pour l'avenir du développement d'applications d'entreprise ? S'agit-il simplement d'un nouveau jouet brillant ou d'un outil révolutionnaire capable de générer un véritable retour sur investissement ? Inscrivez-vous à notre webinaire, IA générative : créez des applications plus intelligentes, créez des applications plus intelligentes, le 28 septembre 2023 (9h EST | 3h CEST) !

Choisissez votre langue