Machine Learning Lösungen werden für unterschiedlichste Probleme eingesetzt, die Bestandteile einer produktiven Lösung sind jedoch meist die gleichen. Sich mit diesen Komponenten auszukennen, hilft sowohl dabei, den Aufbau von Machine Learning Lösungen besser zu verstehen, als auch dabei, eigene Lösungen zu entwickeln.
Dafür haben wir hier einen Überblick dieser Komponenten - und ihrer jeweiligen Funktionen - zusammengestellt.
Die Komponenten einer Machine Learning Lösung
- Datengenerierung: Jede Machine Learning Anwendung lebt von Daten. Diese Daten müssen irgendwo herkommen. Normalerweise entstammen sie einem Kernprozess des Unternehmens.
- Datenerhebung: Daten sind nur dann nützlich, wenn sie zugänglich sind, daher müssen sie richtig abgespeichert werden. Idealerweise geschieht das in einer einheitlichen Struktur und praktisch zugänglich an einem zentralen Ort.
- Feature Engineering Pipeline: Algorithmen können nicht mit Rohdaten arbeiten. Wir müssen unsere Daten selektieren, transformieren, kombinieren und auf sonstige Weise aufbereiten, damit der Algorithmus brauchbare Muster finden kann.
- Training: Hier liegt die Schlüsselstelle. Wir setzen Algorithmen ein, die Muster aus den Daten lernen. Mithilfe der gefunden Muster, können wir dann neue Aufgaben lösen.
- Evaluation: Wir müssen sorgfältig testen, wie gut unser Algorithmus neue Aufgaben lösen kann, die er noch nicht aus dem Training kennt. Das ist wichtig, um sicherzustellen, dass wir keine Vorhersagemodelle verwenden, die nur für "bekannte" Daten, nicht aber in der realen Welt funktionieren.
- Task Orchestrierung: Die Aufgaben in unserer Machine Learning Pipeline: Feature engineering, Training und Prognose müssen auf unserer Recheninfrastruktur (wie AWS oder Azure) geplant und ausgeführt werden - normalerweise mit erheblicher Interdependenz. Diese Tasks müssen zuverlässig orchestriert werden.
- Prognose: Hier ist die Wertschöpfung. Wir verwenden das trainierte Modell, um neue Aufgaben zu lösen, die meistens daraus bestehen, bestimmte Vorhersagen zu treffen.
- Infrastruktur: Alle Komponenten laufen in einer gemeinsamen Infrastruktur. Diese muss definiert und implementiert werden – optimal in einfach adaptierbaren Code (Infrastructure as Code).
- Authentifizierung: Durch die Authentifizierung bleiben unsere Modelle, Daten und Infrastruktur sicher und nur für diejenigen nutzbar, die eine entsprechende Zugang haben sollen.
- Interaktion: Wir müssen irgendwie mit unserem Modell interagieren um ihm Aufgaben geben können. Dies geschieht normalerweise über eine API, eine Benutzeroberfläche oder eine Kommandozeilen Schnittstelle.
- Monitoring: Wir müssen regelmäßig überprüfen, wie gut unser Modell funktioniert. Normalerweise bedeutet das, dass wir in regelmäßigen Abständen Berichte erstellen oder in einem Dashboard den Leistungsverlauf anzeigen.
Eine eigene ML-Architektur entwickeln
Datengenerierung und -erhebung, Training und Evaluation sind "must-haves", gegebenenfalls benötigt man aber zusätzlich domänenspezifische Elemente.
Ein häufiger Fehler, den wir beobachten, besteht darin, dass man sich zu sehr auf die Prognosen, und nicht genug auf die richtige Aufbereitung der Daten konzentriert (oder sogar versucht, diesen Aspekt komplett auszulassen).
Benötigst du eine zweite Meinung zu eurer ML-Architektur? Kontaktiere uns gerne.