Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Schulungen

Unser Schulungsangebot. Jetzt informieren!

Webinare

Unser Webinarangebot. Jetzt informieren!

Deep Learning SAP Cloud Foundry

News & Wissen Deep Learning auf der SAP Cloud Foundry Platform

Nutzer von SAP ERP-Software haben Zugang zu umfangreichen Datenmengen, die es ihnen ermöglichen, tiefere Einblicke in ihre Geschäftsprozesse zu erhalten. Um nutzbare Erkenntnisse aus diesen Datenströmen zu gewinnen, bietet es sich an, Machine Learning-Modelle auf die spezifischen Fragestellungen zu trainieren. In diesem Blogartikel erfahren Sie, wie man ein Deep Learning-Modell aus SAP-Daten trainiert, dieses Modell auf der SAP Cloud Foundry Platform bereitstellt und es über eine Python Flask-API abruft. Dabei liegt der Fokus auf dem Workflow und der Konfiguration eines funktionierenden Beispiels und nicht auf der Gestaltung oder dem Training des Modells.

Daten

Am Anfang steht eine konkrete Fragestellung, die wir mit dem Modell lösen wollen. Die möglichen Einsatzbereiche von Machine Learning im SAP-Umfeld sind vielfältig und von den Bedürfnissen des Unternehmens abhängig. Zum Beispiel können Prognosen für den Verkauf, die Produktionsplanung oder das Kundenmanagement versucht werden.

In diesem Blogartikel möchte ich ein Beispiel aus der Praxis vorstellen, bei dem wir die Daten eines Kunden - Betreiber eines B2B-Webshops - nutzen wollen. Unser Ziel ist es, eine Customer Churn Prediction umzusetzen, um Kunden zu identifizieren, die Gefahr laufen, dem Unternehmen verloren zu gehen. Die Intention dahinter ist, frühzeitig potenzielle Abwanderung zu erkennen und Maßnahmen zu ergreifen, um die Kundenzufriedenheit zu erhöhen und die Kundenbindung zu stärken.

Modell

Deep Learning ist eine Unterart des Machine Learning, bei der künstliche neuronale Netzwerke eingesetzt werden, um komplexe Muster in Daten zu erkennen und zu analysieren. Durch die Verwendung von Deep Learning können komplexe Zusammenhänge in den Daten erkannt werden, die mit herkömmlichen Methoden schwer zu entdecken wären. Im Falle der Customer Churn Rate kann Deep Learning beispielsweise verwendet werden, um Muster in den Kundendaten zu identifizieren, die darauf hinweisen, dass ein Kunde bald abwandern könnte.

Wenn die zur Verfügung stehenden Datenmengen relativ klein sind, kann es schwierig sein, ein Deep Learning-Modell zu trainieren. In solchen Fällen kann Regression oder eine andere Machine Learning-Methode, die in der Lage ist, mit kleineren Datensätzen zu arbeiten, die bessere Wahl sein. Für Probleme, die relativ einfach und linear sind, kann ein einfaches Machine Learning-Modell wie eine lineare Regression ausreichen.

Wie aber vorangestellt, geht es hier darum, den Workflow zu skizzieren. Die Wahl und die Feinjustierung des Modells ist eine komplexe Fragestellung für sich. In der Praxis wird man viel Zeit darauf verwenden, im Vorfeld die verfügbaren Daten zu evaluieren und mehrere Modelle zu prüfen.

Technologie

Python hat sich in den letzten Jahren zu einer der beliebtesten Programmiersprachen für Data Science und maschinelles Lernen entwickelt. Eine der Hauptursachen für die Beliebtheit von Python in diesem Bereich ist die Vielzahl an Bibliotheken, die für die Entwicklung von Machine Learning Modellen und Deep Learning Modellen zur Verfügung stehen. Diese Bibliotheken bieten Entwicklern eine einfache Möglichkeit, komplexe Algorithmen mit wenig Overhead zu implementieren.

Um Python-Programme auf der SAP Cloud Foundry auszuführen, können verschiedene Tools und Frameworks verwendet werden. Die hier vorgestellte Option ist die Verwendung von Cloud Foundry Buildpacks, die es ermöglichen, den Python-Code in der Cloud auszuführen. Hierfür muss zunächst die Cloud Foundry CLI installiert werden. Anschließend kann der Python-Code in eine App umgewandelt werden, die sich auf der SAP Cloud Foundry ausführen lässt.

Eine weitere Möglichkeit wäre die Verwendung von Containern, bereitgestellt auf der SAP Cloud Foundry. Hierfür können Docker-Container erstellt werden, die den Python-Code und alle benötigten Abhängigkeiten enthalten.

In beiden Fällen ist es wichtig, dass der Python-Code und alle Abhängigkeiten korrekt konfiguriert und auf die Umgebung der SAP Cloud Foundry abgestimmt sind, damit das Deployment und die Ausführung der Anwendung möglich ist.

Als Machine Learning Framework wurde TensorFlow gewählt. TensorFlow ermöglicht die Erstellung von neuronalen Netzen und anderen maschinellen Lern-Algorithmen für eine Vielzahl von Anwendungen, darunter Bild- und Spracherkennung, Textanalyse, Vorhersage und automatisierte Entscheidungsfindung. TensorFlow bietet eine hohe Skalierbarkeit und Leistung sowie eine einfache und flexible API.

Wir wählen nun exemplarisch einige Daten aus dem SAP ERP, die wir für eine Customer Churn Analyse gebrauchen können.

Der Wert, den wir prognostizieren wollen, ist die Churn Rate. Sie kann einen Wert von 0 oder 1 haben. An dieser Stelle müssen wir eine Annahme darüber treffen, welche Kunden bereits abgewandert sind. Die vereinfachte Annahme ist hier, dass ein Kunde, der ein halbes Jahr nichts mehr bestellt hat, abgewandert ist. Weil die Daten auf dem Testsystem etwa zwei Jahre alt sind, grenzen wir ab, ob Bestellungen in den letzten 2,5 Jahren erfolgt sind.

Als Input verwenden wir die Anzahl der Bestellungen gesamt, die gesamte Auftragsmenge sowie die Anzahl der Reklamationen. Die Kundennummer schreiben wir zur Kontrolle mit in die CSV-Datei, entfernen sie aber für das Training des Modells, da von ihr kein Einfluss auf die Churn Rate zu erwarten ist.

Der Report, um die Daten aus dem SAP zu lesen und als CSV Datei zu exportieren, sieht wie folgt aus:

Diesen Report lassen wir einmal im Testsystem des Kunden laufen. Das Ergebnis ist in unserem Fall eine CSV-Datei mit 10.635 Einträgen. Hier sieht man die erzeugte CSV-Datei als Grundlage für das Modell-Training:

Mit diesen Daten trainieren wir unser Deep Learning-Modell. Die Beschreibung von Modell-Architektur lassen wir hier aus, da es sich nur um ein Beispiel handelt. Hier der kommentierte Code unseres Modell-Trainings:

Das Modell und die erlernten Gewichtungen werden in einer Datei im TensorFlow Format gespeichert. Jetzt bringen wir dieses Modell zusammen mit einer kleinen Python-Applikation auf die SAP Cloud Foundry Platform, um es von dort aus abrufbar zu machen. Damit die Anwendung als REST API abrufbar ist, verwenden wir die FLASK-Bibliothek. Diese Anwendung deployen wir mit Hilfe der SAP Cloud Foundry CLI auf unseren CF Space.

Neben der eigentlichen App müssen noch mehrere Dateien angelegt werden, mit denen wir das Deployment anpassen können. Mit Hilfe der manifest.yml können wir die Modell-Datei als Ressource hinzufügen, damit sie ebenfalls mit auf den Space hochgeladen wird. Außerdem können wir hier die Python Buildpack-Version definieren sowie den Speicherplatz und Arbeitsspeicher für unsere Anwendung festlegen. Die Buildpack-Version unten ist auf die hier verwendeten Python-Bibliotheken abgestimmt. Da die Bibliotheken beim Deployen ebenfalls auf dem CF Space installiert werden, sollten wir ausreichend Platz dafür einplanen.

Die Python-Bibliotheken werden in einer requirements.txt zusammengefasst. Auch hier ist wieder die Komptabilität der Versionen untereinander und mit der Python Version wichtig:

Zu guter Letzt haben wir noch eine runtime.txt, in der die verwendete Python-Version steht. Diese können wir abhängig von den Möglichkeiten des genutzten Buildpacks wählen:

Jetzt, da alles für das Deployment vorhanden ist, öffnen wir die Eingabeaufforderung und wechseln in das Verzeichnis, in dem unsere Projektdateien liegen. Mit dem Kommando CF8 login (für CF CLI Version 8, sonst entsprechend der Versionsnummer ) loggen wir uns auf unserem Cloud-Account ein. Während des Einloggens werden wir aufgefordert, den Space zu wählen, auf dem wir deployen wollen. Mit CF8 Push wird die Applikation hochgeladen und die entsprechenden Bibliotheken installiert:

Jetzt sollten wir die Applikation in unserem Space sehen können:

Um sie zu Testen, schreiben wir einen kleinen ABAP Report, der auf Eingabe einer Kundennummer die entsprechenden Inputdaten selektiert und die API aufruft.

Als Antwort erhalten wir aus der API einen Wert zwischen 0 und 1. Dies ist die berechnete Wahrscheinlichkeit für die Abwanderung des Kunden. Da wir die Entwicklung des Modells in diesem Beispiel vernachlässigt haben, ist die Prognose hier nicht aussagekräftig.

Fazit

Mit dem hier dargestellten Workflow können wir jedes in TensorFlow modellierbare Machine Learning-Modell nutzen. Damit stehen uns eine Vielzahl von Möglichkeiten offen, aus unseren SAP-Daten einen zusätzlichen Nutzen zu ziehen.

 

Stand: 30. Juni 2023
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.