Direkt zum Inhalt

Ein Leitfaden für ML-erweiterte Anwendungen Powered by Mendix und Amazon SageMaker AI 

Ein Leitfaden für ML-erweiterte Anwendungen Powered by Mendix und Amazon SageMaker AI 

Es besteht kein Zweifel, dass wir im Zeitalter der KI leben. Unternehmen liefern sich ein Wettrennen um schnellere, intelligentere und bessere Anwendungen, wodurch maschinelles Lernen zum „Must-have“ des heutigen Anwendungsmarktes wird. In diesem Blogbeitrag werde ich zeigen, wie viel schneller und einfacher es geworden ist, von Null auf Hundert zu kommen, wenn es darum geht, trainierte Modelle des maschinellen Lernens in Anwendungen zu integrieren, und zwar mit Hilfe von Mendix und Amazon SageMaker AI.

Was ist maschinelles Lernen?

Maschinelles Lernen (ML) ist ein Teilbereich der künstlichen Intelligenz (KI), der sich auf die Entwicklung von Algorithmen und Modellen konzentriert, die es Computern ermöglichen, aus Daten zu lernen und Vorhersagen oder Entscheidungen zu treffen, ohne explizit programmiert zu sein. Das bedeutet, dass Modelle auf der Grundlage benutzerdefinierter Daten einer bestimmten Branche oder eines bestimmten Unternehmens trainiert werden können und Aufgaben effizienter ausführen können als ein vorgefertigtes Basismodell.

Maßgeschneiderte Smart-Apps – wow, das klingt doch toll, oder? Stimmt. Aber ist das kompliziert? Nun, vor zehn Jahren wäre das für die meisten Unternehmen oder Branchen aufgrund der Komplexität, des eingeschränkten Zugangs zu relevanten Tools und natürlich der Schwierigkeiten bei der Implementierung der Modelle in Endbenutzeranwendungen ein No-Go gewesen.

Heutzutage lösen sich die Kämpfe und Sorgen der Vergangenheit endlich auf. Dank eines Übergangs zu einer KI-gestützten Anwendungsentwicklung mit MendixAnwendungen können intelligente Lösungen und Funktionen wie Amazon Textract, Rekognition usw. integrieren.

Wenn Sie mehr wissen wollen, Besuchen Sie unsere Website oder lesen Sie die Mendix Bewertungsleitfaden.

Die Werkzeuge, die Sie brauchen

Zunächst möchte ich Ihnen die Tools vorstellen. Keine Angst, es sind nur wenige.

  • Amazon SageMaker AI: Zum Erstellen und Trainieren des Modells.
    • Amazon SageMaker AI ist ein vollständig verwalteter Machine-Learning-Service von Amazon, der Sie beim schnellen Erstellen, Trainieren und Bereitstellen von Machine-Learning-Modellen unterstützt. Er bietet eine breite Palette an Funktionen, darunter unter anderem Jupyter Notebooks, Pipelines, SageMaker Studio, Canvas und RStudio. Weitere Informationen finden Sie auf der Amazon SageMaker AI-Website. HIER or HIER.
  • Python 3.0: Zum Schreiben des Codes.
  • Mendix Studio Pro 10: Die neueste Version von Mendix enthält das ML Kit, das zum Erstellen maßgeschneiderter intelligenter Endbenutzer-Apps erforderlich ist.

Mit der neuesten Version von Studio Pro 10 Mendix hat die Messlatte für die Anwendungsentwicklung höher gelegt, indem es viele coole, intelligente Funktionen in die Plattform integriert hat. Eine davon und ein persönlicher Favorit von mir ist die Mendix Kit für maschinelles Lernen (Mendix ML-Kit). Das ML Kit kann Ihnen dabei helfen, schnellere, intelligentere und kollaborativere Apps zu erstellen, indem Sie Ihre ONNX-Modelle ohne weitere Integrationen oder Anpassungen direkt in Studio Pro importieren.

Weitere Informationen finden Sie hier eigenen Blogbeitrag und den Dokumentation.

Maschinelles Lernen und ich – eine kurze Geschichte des Kampfes

Amazon SageMaker AI

Für alle, die gerade erst mit dem maschinellen Lernen anfangen, mag SageMaker ein wenig kompliziert und überwältigend erscheinen. Aus eigener Erfahrung kann ich sagen, dass meine ersten Versuche in einem totalen Desaster endeten. Mehrere Kernel liefen, jede Menüoption wurde angeklickt, mehrere Notebooks führten wer weiß was aus, Domänen und Profile überall und ich drückte ständig die Wiedergabetaste, nur um zu sehen, was passiert. Ein totales und ultimatives Desaster. Aber ich war nicht bereit aufzugeben, also kam ich nach einigen Versuchen und ein paar Lesestunden zu dem Schluss: „Nicht alles wird für alles verwendet.“

Amazon SageMaker AI bietet Ihnen zahlreiche Möglichkeiten zum Erstellen, Trainieren, Integrieren, Bereitstellen und für fast alles, was Sie mit Machine-Learning-Modellen tun möchten. Tatsächlich benötigen Sie in den meisten Fällen jedoch nur ein Jupyter-Notebook, einige Python-Kenntnisse und natürlich einen Datensatz.

Bibliotheken für maschinelles Lernen

Eines der Dinge, die ich auf meiner Reise zum maschinellen Lernen gelernt habe, ist, dass es viele verschiedene „Modellierungsframeworks“ gibt, wie ONNX, Scikit-learn, Tensorflow, Pytorch usw. Jedes ist auf seine eigene Art und Weise darauf spezialisiert, verschiedene Arten von KI auszuführen und zu erstellen.

ONNX

Wie bereits erwähnt, das ML Kit in Mendix 10 ist mit dem ONNX-Modellierungsframework kompatibel. Sie fragen sich vielleicht, warum ONNX?

ONNX (oder Open Neural Network Exchange) ist ein Open-Source-Format für KI-Modelle, das die Interoperabilität zwischen Frameworks unterstützt. Das bedeutet, dass Sie ein Modell in einem Framework trainieren, es in ONNX konvertieren und es dann in einem anderen Framework verwenden können. Um es etwas klarer zu machen: Jedes Framework, das in ein ONNX-Modell konvertiert werden kann, kann auch importiert werden in Mendix 10

In diesem Blogbeitrag werde ich ein wenig erklären, wie Sie ein Scikit-learn-Modell in ein ONNX-Modell konvertieren, es importieren in Mendix 10.1.1 und erstellen Sie eine Test-App darum herum. Wenn Sie mehr über ONNX erfahren möchten und wissen möchten, wie Sie ONNX-Modelle konvertieren oder nutzen können, besuchen Sie diese Website.

Zeit, sich an die Arbeit zu machen

Jeder Leser, der die Ärmel hochkrempeln und mitmachen möchte, benötigt Folgendes:

Wie bereits zu Beginn dieses Blogbeitrags erwähnt, werde ich schnell und mühelos eine intelligente App erstellen, indem ich Sie durch den Prozess der Erstellung eines Demo-Spamfilters mit Hilfe von Amazon SageMaker AI führe und Mendix.

Um es ein wenig einfacher zu machen und wenn Sie uns auf dieser Reise begleiten möchten, können Sie die Beispieldateien von den folgenden Links herunterladen:

Schritt 1 – Das Wichtigste zuerst: Beginnen Sie mit Amazon SageMaker Studio

Um SageMaker Studio zu verwenden, melden Sie sich bei Ihrem AWS-Konto an und navigieren Sie zum SageMaker-Dienst. Wählen Sie im SageMaker-Dashboard im linken Menü Einzimmerwohnung um zur SageMaker Studio-Benutzeroberfläche zu gelangen.

Wählen Sie Ihr Benutzerprofil, falls Sie bereits eines haben, und öffnen Sie Studio. Wenn Sie kein Profil oder keine Domäne haben, erstellen Sie eines, indem Sie Domains aus dem Menü auf der linken Seite und folgen Sie den Anweisungen.

Schritt 2 – SageMaker Studio: Jupyter Lab Notebook

 

Sobald das Studio einsatzbereit ist, landen Sie auf dem Startbildschirm. Nehmen Sie sich etwas Zeit, um den Bildschirm zu überprüfen, klicken Sie auf jJKlicken Sie auf das Symbol „upyterLab“, um fortzufahren. „JupyterLab ist die neueste webbasierte interaktive Entwicklungsumgebung für Notebooks, Code und Daten. Seine flexible Benutzeroberfläche ermöglicht es Benutzern, Arbeitsabläufe in den Bereichen Datenwissenschaft, wissenschaftliches Rechnen, Computerjournalismus und maschinelles Lernen zu konfigurieren und anzuordnen.“ Erfahren Sie mehr darüber HIER.

Wähle aus Jupyter-Labor unddann Kreation Jupyter-Labor Raum.  

Wähle einen Namen, zu angeben der Name des Raumes und drücken Sie die Raum schaffen .  

Sie werden zum. Weitergeleitet Jupyter-Labor Übersichtsraum, dann swählen Leerlauf ausführen um den neu geschaffenen Raum zu betreiben, einmal gelesen Öffnen es. 

Schritt 3 – Der Spaß kann beginnen

Überprüfen Sie das Menü auf der linken Seite und wählen Sie das Dateisymbol (Ordner). Dadurch wird der Dateibereich geöffnet und alle im Studio verfügbaren Dateien werden angezeigt. Suchen Sie nach der angezeigten Upload-Schaltfläche (wie im Screenshot unten gezeigt), um die Beispieldateien hochzuladen.

Amazon SageMaker-Dateiupload

Amazon SageMaker-Datei

Sobald die Dateien in Ihrem Ordner sichtbar sind, öffnen Sie die spam_nb.ipynb Notebook.

Spam-Notizbuch öffnen

Das Studio startet den Kernel. Dies kann einige Minuten dauern. Sobald dies abgeschlossen ist, sollte das Notebook angezeigt werden.

Doppelklicken Sie auf den Spam und wählen Sie 'ipykernel' wie Kern im Popup-Fenster. 

Schritt 4 – Erklärung des Spam-Codes im Notebook

Das Spam-Beispiel ist recht einfach und besteht aus drei Teilen.

  • Teil eins: Die notwendigen Bibliotheken   
  • Teil zwei: Schulung und Export
  • Teil drei: Testen

In diesem Blogbeitrag werden die ersten beiden Teile erläutert.

Teil eins

Im ersten Teil werden die Bibliotheken importiert.

  • Der SYS Das Modul hilft bei der Steuerung und Änderung der Umgebungslaufzeit.
  • Der skl2onnx Modul. Das sklearn-onnx enthält die Funktionen zum Konvertieren von Modellen aus Scikit-Learn-Toolkits in ONNX.
  • Der ONNX Modul.
  • Der onnxruntime Modul.

Bibliotheken importieren

Zweiter Teil

In diesem Teil wird das Modell trainiert, in ONNX konvertiert und dann in eine ONNX-Datei exportiert. Das folgende Beispiel bringt dem Modell das Vorhersagen mithilfe eines Trainingssatzes bei.

Beispiel für das Unterrichten des Modells zur Vorhersage

Der Trainingssatz besteht aus Trainingsdaten (X_train), die mit den bekannten Ergebnissen (y_train) verknüpft sind. Das Modell lernt, welches Muster als 1 (wahr) gekennzeichnet wird, z. B. Spamoder 0 (falsch), zum Beispiel SchinkenDieser Vorgang wird auch genannt passend zu. Ein Testsatz wird ebenfalls einbezogen (X_test, y_test).

Im Bild oben sehen wir, dass der zweite Teil auch mit dem Import einiger Methoden beginnt (Zeilen 1-10). Es ist nicht nötig, jetzt tiefer in die Erklärungen dieser Methoden einzutauchen, da die Funktionen Zeile für Zeile weiter unten erklärt werden.

In der nächsten Zeile werden 12 Datensätze importiert:

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

Anschließend werden vier Datenteile erstellt, die zum Anpassen und Vorhersagen von Werten verwendet werden:

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

(sklearn.model_selection.train_test_split teilt die Arrays in zufällige Trainings- und Test-Teilmengen auf.)

In den nächsten Zeilen wird das Pipeline-Objekt erstellt:

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

Der wichtigste Teil geschieht also in der nächsten Zeile, da hier die „Anpassung“ des Modells beginnt:

pipe.fit (X_train, y_train)

Und Sie sind fertig! Jetzt müssen Sie das Modell nur noch in die ONNX-Datei konvertieren. Verwenden Sie dazu „zu_onnx“ und exportieren Sie die Datei anschließend mit der Funktion "schreiben" Funktion.

>

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

Weitere Beispiele und Informationen zur Konvertierung einer Pipeline in ONNX finden Sie im ONNX-Dokumentation.

Zu guter Letzt müssen Sie das Notebook ausführen, um den Code auszuführen:

  1. Setzen Sie den Cursor auf die erste Zeile.
  2. Klicken Sie oben auf das Wiedergabesymbol.
  3. Im Notizbuch werden einige zusätzliche Zeilen angezeigt und der Cursor wird im nächsten Teil erneut angezeigt.
  4. Klicken Sie noch einmal auf das Wiedergabesymbol, um das Training auszuführen.
  5. Es werden erneut einige zusätzliche Zeilen angezeigt und die ONNX-Datei wird erstellt.

Führen Sie das Notebook aus, um den Code auszuführen

Überprüfen Sie den Ordner „Dateien“, klicken Sie mit der rechten Maustaste auf spam_nb.onnx und laden Sie die Datei herunter.

Laden Sie die Datei spamnbonnx herunter

Wichtig! Nachdem Sie mit dem Training und Testen Ihres Modells fertig sind, klicken Sie auf das Symbol für laufende Terminals …

Laufendes Terminalsymbol

…im Menü auf der linken Seite und beenden Sie alle laufenden Instanzen, um zusätzliche Gebühren zu vermeiden.

Schritt 5 – Bringen Sie die Mendix Strahlen

Es ist also an der Zeit, das ML Kit zu testen.

Öffnen Sie zunächst Ihre Mendix 10 Studio und erstellen Sie eine neue leere App. Wählen Sie das Modul namens MeinErstesModul Klicken Sie mit der rechten Maustaste auf der Registerkarte Explorer, um das Popup-Menü zu öffnen

Erstellen Sie eine neue leere App inMendix-10

Wählen Sie die ML-Modellzuordnung aus.

Auswählen der ML-Modellzuordnung

Klicken Sie auf Modell importieren in der oberen linken Ecke und importieren Sie die ONNX-Datei. Mendix erstellt automatisch die Eingabe- und Ausgabeobjekte.

Wenn bei der ML-Modelleingabe eine Fehlermeldung angezeigt wird, öffnen Sie die Entität und beheben Sie das Problem, indem Sie „1“ als statische Tensorform auswählen.

ML-Modell-Fehlermeldung

Modell-Tensor-Form bearbeiten

Ihr Domänenmodell sollte folgendermaßen aussehen:

Beispiel-Domänenmodell

Gehen Sie zum Domänenmodell im App-Explorer, fügen Sie eine zusätzliche Entität hinzu und nennen Sie sie E-Mail. Fügen Sie der E-Mail-Entität zwei Zeichenfolgenattribute hinzu: Nutzlast: XNUMX Kg (unbegrenzte Anzahl Zeichen) und Prognose (belassen Sie den Standardwert).

E-Mail-Entität hinzufügen

Wählen Sie die E-Mail-Entität aus und klicken Sie mit der rechten Maustaste, um das Seitenmenü zu öffnen. Wählen Sie dann Übersichtsseiten generieren.

Übersichtsseiten generieren

Mendix erstellt automatisch die E-Mail-Übersicht und Email_NewBearbeiten Seiten und platzieren Sie sie im Übersichtsseiten Ordner der erkunden Menü.

Übersichtsseiten-Ordner-des-Explorer-Menüs

Finden Sie die Email_NewBearbeiten Seite und doppelklicken Sie, um sie zu öffnen. Doppelklicken Sie auf die Gespeichert Aktion, um seine Eigenschaften zu öffnen.

Öffnen-E-Mail-Neubearbeitung-Eigenschaften

Im Events Abschnitt auswählen Einen Microflow aufrufen > Select > NEU.

Mikrofluss hinzufügen

Benennen Sie den neuen Microflow Spam vorhersagen (oder PredictSpam). Sobald der neue Mikrofluss geöffnet ist, fügen Sie die folgenden Aktionen hinzu:

Aktionen zum Öffnen des Microflows hinzufügen

  • Ein Parameter für die E-Mail-Entität.
  • Eine Aktion „Objekt erstellen“ für das Eingabeobjekt des ML-Modells.

Objekt-erstellen-Aktion

  • Die Aktion „ML-Modell aufrufen“: Wählen Sie die verfügbare ML-Modellzuordnung und das Eingabeobjekt aus und klicken Sie dann auf OK
  • Eine E-Mail-Änderungsaktion (einstellen Verpflichten und Inspiration zu Ja.) Wählen Sie als Mitglied die Vorhersage aus und legen Sie als Wert das Ausgabelabel des Ausgabeobjekt.

E-Mail-Aktion ändern

  • Schließlich a Seite schließen Maßnahmen.  

Eine Seitenschließaktion hinzufügen

Die Anwendung ist fast fertig, es sind nur noch zwei Anpassungen erforderlich und Sie können Ihre intelligente App zur E-Mail-Spamerkennung ausführen und verwenden.

Gehen Sie zur Navigationsoption des Menüs.

Menü-Navigationsoption

Wähle aus E-Mail-Übersicht Seite als Standardseite und auch als Startseite.

Standardseite festlegen

Fertig! Endlich ist es soweit …

Testen

Klicken Sie auf das Wiedergabesymbol in der oberen rechten Ecke, um Ihr Projekt auszuführen. Sobald es fertig ist, klicken Sie auf das App anzeigen Schaltfläche, um zu Ihrer Anwendung zu gelangen.

App-Schaltfläche anzeigen

Die Homepage sollte ungefähr so ​​aussehen:

So-sollte-der-Homepage-Test-aussehen

Starten Sie den Test durch Klicken auf NEU. Fügen Sie eine Nachricht als Nutzlast hinzu.

Jetzt testen

Sie können es testen, indem Sie eine Spam-ähnliche Nachricht wie die folgende hinzufügen.

"Herzliche Glückwünsche!

Sie wurden als einer der glücklichen Gewinner der Microsoft-Lotterie 2023 ausgewählt. Sie haben einen Geldpreis von 10,000,000 USD und einen brandneuen Laptop gewonnen.

Um Ihren Preis einzufordern, müssen Sie unseren Agenten mit den folgenden Informationen kontaktieren:

Name: Adresse: Telefonnummer: E-Mail-Adresse:

Kontaktieren Sie den Agenten “

Wenn die E-Mail als Spam erkannt wird, wird sie als „Spam“ vorhergesagt …

Testnachrichtenantwort 1

… und wenn nicht, „Schinken“.

Testnachrichtenantwort 2

Und das war es. Sie haben in weniger als einer Stunde eine kleine ML-basierte App erstellt! Wenn Ihnen der Prozess gefallen hat und Sie mehr darüber erfahren möchten, können Sie folgen diesen Link für weitere Beispiele oder die Mendix Beispielanwendung für ML-Kit.

Was kommt als nächstes

Die Fusion zweier leistungsstarker Technologien, der Mendix 10 ML Kit und Amazon SageMaker AI eröffnen spannende Möglichkeiten in der Welt der KI-Anwendungsentwicklung. Durch die Nutzung der intuitiven visuellen Entwicklungsfunktionen von Mendix Mit den erweiterten maschinellen Lernfunktionen von SageMaker können Entwickler KI-gesteuerte Anwendungen erstellen, die nicht nur benutzerfreundlich, sondern auch hochintelligent sind.

Möchten Sie KI weiter erforschen?

Es gibt viel Hype um generative KI und Tools wie ChatGPT, aber was bedeutet das für die Zukunft der Entwicklung von Unternehmens-Apps? Ist es nur ein glänzendes neues Spielzeug oder ein bahnbrechendes Tool, das einen echten ROI liefern kann? Melden Sie sich für unser Webinar „Generative KI: Erstellen Sie intelligentere Apps, erstellen Sie intelligentere Apps“ an., am 28. September 2023 (9 Uhr EST | 3 Uhr MESZ)!

Wählen Sie Ihre Sprache