Einführung
DOPE wurde zu Forschungszwecken für die SIT Academy entwickelt und soll simulieren, wie man Daten erhält und wie man sie in Echtzeit verarbeitet. Was macht man mit den Ergebnissen? Wie werden sie ausgewertet? Machine Learning ist nur ein kleiner Aspekt von Data Science. Der grösste Teil der Arbeit ist die gesamte Infrastruktur rund um das Machine Learning Modell.
DataOps ist eine prozessorientierte, automatisierte Methodik, um die Zykluszeit der Datenanalyse zu reduzieren und ihre Genauigkeit zu verbessern. Sie fördert die Zusammenarbeit zwischen mehreren Parteien, um Daten zu nutzen. Die SIT Academy ist bestrebt, mit den neuesten Tools und Entwicklungen in der Branche auf dem Laufenden zu bleiben. Als Beispiel für einen Anwendungsfall wählten unsere beiden Data Science-Studenten den Aufbau eines ML-basierten Kryptowährungshändlers. Das Ziel war es, das aufstrebende Feld von DataOps und MLOps zu erforschen und ein End-to-End-Machine-Learning-Projekt unter Verwendung einer Microservice-Architektur zu bauen. Das Team schuf eine anpassbare und skalierbare Architektur und entwickelte eine End-to-End-Plattform mit Vorhersagen als Ergebnis. Sie kombinierten sie mit Machine Learning-Modellen für Zeitreihenvorhersagen und einem Live-Dashboard zur Visualisierung der Performance.
Das Ergebnis: DOPE (DataOps Prediction Engine)!
Verwendete Tools und Technologien
- Python: scikit-learn, Pandas, NumPy
- Models: Random forest, LSTM (TensorFlow)
- Messaging: zeromq
- Live dashboard: Bokeh
Projektdetails
Um DOPE zur Vorhersage des Preises von Kryptowährungen und zum Handel mit ihnen zu nutzen, haben unsere Studenten einen Dienst zur kontinuierlichen Aggregation von Live-Daten der Binance-Börse für mehrere Währungen aufgebaut. Die aggregierten und vorverarbeiteten Daten werden über ein Publisher-Subscriber-Messaging-System an mehrere ML-Modelle weitergeleitet. Dies macht den parallelen Einsatz mehrerer Modelle sehr einfach. Die Struktur der Microservices wurde von der sogenannten "Rendezvous-Architektur" inspiriert. Diese eignet sich besonders für Datenströme und für die parallele Überwachung mehrerer Modelle in einer realen Produktionsumgebung.
Der Fokus wurde auf zwei verschiedene Modelle gesetzt: Ein Random Forest basiertes Modell und ein in TensorFlow erstelltes neuronales Netzwerk (LSTM). Beide Modelle wurden auf historischen Daten mit einer Granularität von 10 Sekunden und einem Zeitbereich von etwa einem Jahr trainiert. Das Projekt wurde mit einem Trader-Service abgeschlossen, der für die Entscheidung verantwortlich ist, ob die gehandelte Währung gekauft oder verkauft werden soll (kaufen, wenn die Vorhersage höher als ein oberer Schwellenwert ist und verkaufen, wenn die Vorhersage niedriger als ein unterer Schwellenwert ist) sowie einem Dashboard zur Überwachung der Live-Performance des Traders. Darüber hinaus schrieben die Studenten einen Backtesting-Service zur Optimierung der Modelle und der Handelsschwellen, sowie zum systematischen Vergleich der Leistung verschiedener Ansätze.
Nach einem Monat intensiver Arbeit konnte das Handelssystem während der Projektpräsentation Vorhersagen in Echtzeit zeigen.
Fazit
Nach einem Monat intensiver Arbeit konnte das Handelssystem während der Projektpräsentation Vorhersagen in Echtzeit zeigen.
Das Hauptaugenmerk dieses Projekts lag auf dem Aufbau eines Systems, das nicht nur einen Machine-Learning-Algorithmus enthält, sondern auch die gesamte Infrastruktur drum herum. Dabei zeigte sich deutlich, dass in jedem grösseren Projekt die Versorgung der Machine-Learning-Modelle mit Daten und die Evaluierung ihrer Leistung eine grössere Herausforderung und viel zeitaufwändiger ist als die Erstellung der Modelle selbst. Die Evaluierung der Leistung der Modelle für die Vorhersage von Finanzzeitreihen erwies sich aufgrund der begrenzten Datenmenge, des hohen Anteils an Zufälligkeiten und der Tendenz zum Overfitting durch Backtesting als schwierig. Mit der begrenzten Datenmenge konnten komplexere Modelle wie LSTM die Leistung nicht verbessern. Ein weiterer entscheidender Teil ist die Erstellung geeigneter Merkmale aus den Rohdaten, bevor diese in die Modelle eingespeist werden. Um wirklich performante Modelle zu erhalten, müssen die Preis- und Volumendaten mit alternativen Daten angereichert werden, was eine Menge zusätzliches Engineering für den Aufbau zuverlässiger Daten-Pipelines erfordert. Das Projekt war ein grossartiges Testfeld, um alle Herausforderungen zu erfahren, die bei der Einführung eines ML-Systems in die Produktion auftreten. Gleichzeitig war es sehr lohnend, ein solches System von Grund auf aufzubauen und es mit Echtzeit-Datenströmen zum Laufen zu bringen.