Continuous Learning

Nachdem wir die letzten Jahre ein Wiederaufblühen der Machine Learning und Artificial Intelligence Ära erleben dürfen, gibt es inzwischen eine ganze Reihe an Anleitungen und Bibliotheken zum Trainieren eigener Modelle. Bei der Überführung der trainierten Modelle von der sterilen, geschützten Entwicklungsumgebung in ein Produktivsystem, stehen wir vor einer ganzen Reihe an neuen Herausforderungen. Eine dieser Herausforderungen beinhaltet die Weiterentwicklung von Machine Learning Modellen im produktiven Einsatz.

A rolling stone gathers no moss – Methoden zur Neutrainierung eines Modells

Wie auch wir uns stetig an den Wandel des Umfelds und dessen Einflüsse auf die Unternehmensumwelt weiterentwickeln und an neuen Herausforderungen wachsen müssen, müssen sich auch Machine Learning Modelle an den Wandel des Marktes anpassen, um dauerhaft zu funktionieren. Der Markt bleibt in Bewegung, Nachfragen und Produktangebote ändern sich. Vorhersagemodelle oder automatisierte Entscheidungsmodelle können veralten oder mögen mit der aktuellen Datengrundlage noch nicht gänzlich ausgereift sein. Es gibt viele Gründe ein Modell auf den neusten Stand der aktuellen Datenverfügbarkeit zu bringen.

Im Folgenden möchten wir einige Methoden beschreiben, welche eingesetzt werden können, um ein Modell zu aktualisieren. Ob hierbei ein Modell komplett neu trainiert wird oder ein bestehendes erweitert wird, bleibt dem Anwender überlassen. In manchen Fällen kann sich auch eine Nachkalibrierung der zuvor festgelegten Trainings-Parameter als lohnend herausstellten.

Manuelles Training: Eine naheliegende Methode ein Modell neu zu trainieren ist das manuelle Initialisieren des Trainings. Hierbei muss nicht unbedingt der Entwickler selbst beteiligt sein. Es können auch abstrahierende Tools zur Verfügung gestellt werden, wie beispielsweise ein Button in einer Webumgebung, welcher den Prozess im Hintergrund anstößt.

Zeitabhängiges Training: Über eine Metadaten-Tabelle/Datei oder einen Cronjob kann das Training für einen festgelegten Zeitpunkt initialisiert werden. Beispielsweise jeden Abend, jedes Wochenende oder zum ersten Tag des neuen Monats. So wird eine regelmäßige Aktualisierung des Modells sichergestellt, ohne dass ein Anwender selbst entscheiden muss, ob das Modell noch den aktuellen Ansprüchen genügt.

Qualitätsabhängiges Training: Durch regelmäßiges Prüfen der Modell-Qualität in Hinblick auf die getroffenen Vorhersagen oder Empfehlungen, kann abhängig eines festgelegten Qualitätsschwellwerts ein Training initialisiert werden. Hierbei ist es wichtig den Output des Modells zu archivieren, um eine entsprechende Gegenprüfung mit den realen Werten zu ermöglichen.

Welches dieser Methoden die beste ist, kann jeder für sich entscheiden. Natürlich können auch alle Methoden eingesetzt werden, um das Modell auf dem neusten Stand zu halten.

Konzeptbeispiel zum automatisierten Einsatz von Continuous Learning in der Produktivumgebung

Anhand des folgenden von uns erstellten Konzepts, möchten wir veranschaulichen, wie es ermöglicht werden kann, ein Modell in der produktiven Umgebung automatisiert durch ein neues zu ersetzen. Auf die einzelnen Bereiche wird im Anschluss eingegangen.

Jedes Modell fängt bei einem Trainingssystem an, welches beispielsweise reale Geschäftsdaten als Trainingsdaten abspeichert. Mit diesen wird ein Modell trainiert, dessen Ziel es ist, die Realität möglichst genau abzubilden.

Anschließend wird das Modell so abgelegt, dass es aus dem produktiven Programm geladen und direkt verwendet werden kann.

Als Zusatzelement kann nach der Trainingsphase eine Qualitätsprüfung stattfinden, die die Performance zwischen dem alten und dem neuen Modell vergleicht. Denn ein Training mit mehr und neueren Daten garantiert nicht ein besseres Modell. Je nach Ergebnis dieser Prüfung können verschiedene Schritte eingeleitet werden. Es besteht die Möglichkeit, das ältere Modell zu archivieren, um es später noch einmal aufgreifen zu können. Ist das neue Modell beispielsweise schlechter, kann eine zuständige Person benachrichtigt werden, die die Daten und das Training noch einmal überprüft.

Das Herzstück der Automatisierung ist das Feedbacksystem. Das Feedbacksystem führt die Qualitätsprüfung der getroffenen Vorhersagen durch. Hierfür kann in einer Metadatentabelle festgehalten werden, bis zu welchem Grad und Prozentsatz die Vorhersagen von den später wirklich eingetroffenen Werten abweichen dürfen, bis ein neues Training eingeleitet wird. Möchte man zusätzlich ein regelmäßiges Training durchführen, können diese entsprechenden, zeitlichen Parameter auch in der Metadatentabelle hinterlegt werden. Beispielsweise durch einen nächtlichen Cronjob initialisiert, prüft das Feedbacksystem zuerst, ob der Wochentag oder die Tageszahl des Monats mit einem hinterlegten Wert übereinstimmt. Ist dies der Fall, spart man die Qualitätsprüfung und kann das Training direkt starten. Andernfalls wird die Modellqualität geprüft, mit dem hinterlegten Schwellwert verglichen und ggf. das Training initialisiert.

Dieses Konzept ermöglicht es außerdem die Konfiguration der Trainings-Automatisierung von entwicklungsunabhängigen Personen über die Metadatentabelle durchführen zu lassen. Hier kann beispielsweise eine Weboberfläche geschaffen werden, um die Wochen-/Monatstage oder den Schwellwert und somit die Trainingsintervalle anzupassen.