Selbstoptimierende ML-Pipeline (AutoML)
Entwicklung eines Frameworks zur automatisierten Feature-Selection, Modell-Validierung und Cross-Platform Deployment mit ONNX.
- Python
- LightGBM
- ONNX
- C#
- System.ML
Die Herausforderung
Die manuelle Selektion von Features und das Testen verschiedener Modelle für große Datensätze ist ein zeitaufwändiger Prozess. Oftmals unterscheiden sich die Trainingsumgebung (Python) und die Produktivumgebung (C#/.NET) signifikant, was zu Problemen beim Deployment führen kann. Ziel war es, diesen Prozess vollständig zu automatisieren, um schneller auf Datenänderungen reagieren zu können, ohne die Stabilität der Produktivumgebung zu gefährden.
Die Lösung
Entwicklung einer "End-to-End" Pipeline, die Training und Inference entkoppelt aber nahtlos verbindet. Durch den Einsatz von ONNX (Open Neural Network Exchange) wurde eine Brücke zwischen der Data-Science-Welt (Python) und der Backend-Engineering-Welt (.NET) geschlagen.
Workflow
- Training (Python): Ein Skript analysiert eingehende Daten, selektiert relevante Features (Feature Engineering) und trainiert mehrere LightGBM-Modelle mit unterschiedlichen Hyperparametern.
- Validierung: Das System wählt automatisch das Modell mit der höchsten Vorhersagegenauigkeit (z.B. basierend auf AUC oder F1-Score).
- Export: Das Gewinnermodell wird ins maschinenunabhängige ONNX-Format konvertiert.
- Inference (C#): Das .NET Backend lädt das ONNX-Modell dynamisch und führt Vorhersagen in Echtzeit (<10ms) auf den Produktivdaten aus.
Hauptfunktionen
- Automated Hyperparameter Tuning: Selbstständige Optimierung der Modellparameter.
- Plattformunabhängigkeit: Modelle können überall ausgeführt werden, wo ONNX Runtime verfügbar ist.
- Zero-Downtime Updates: Das Backend kann neue Modelle "heiß" laden, ohne neu gestartet werden zu müssen.
Das Ergebnis
Die Zeit von der Datenanalyse bis zum Deployment eines neuen Modells wurde von Tagen auf Stunden reduziert. Gleichzeitig wurde die Vorhersagequalität durch die konsistente Validierung gesteigert und die Abhängigkeit von manuellen Eingriffen eliminiert.