Machine Learning: Apache Flink ML 2.1 bringt zehn neue Algorithmen
Die ML-Bibliothek fĂĽr Apache Flink ĂĽberarbeitet die Infrastruktur, fĂĽhrt ein Benchmark-Framework ein und kann nun mit weiteren Algorithmen umgehen.
Das Apache-Flink-Team unter dem Schirm der Apache Software Foundation (ASF) hat Apache Flink ML 2.1 veröffentlicht. Das zweite Release des Jahres bringt Neuerungen an der Infrastruktur, implementiert zehn weitere Algorithmen und fügt für Python und Java Beispielprogramme für jeden der neuen Algorithmen hinzu.
Prototypen fĂĽr Online-Learning-Algorithmen
Eines der Hauptziele von Apache Flink ML soll sein, das Entwickeln von Online-Machine-Learning-Anwendungen voranzutreiben. Version 2.0 ergänzte die Apache-Flink-ML-API mit setModelData()
und getModelData()
, um Nutzern von Online-Learning-Algorithmen zu erlauben, Modelldaten als unbegrenzte Datenströme zu übermitteln und zu persistieren.
Das aktuelle Release knĂĽpft mit den zwei neuen Prototypen fĂĽr Online-Learning-Algorithmen OnlineKMeans
und OnlineLogisticRegression
dort an. Sie führen Konzepte wie eine globale Batch-Größe und Modellversion ein, ebenso wie Metriken und APIs zum Setzen und Erhalten dieser Werte. Tests für den gesamten Lebenszyklus der Algorithmen sind ebenfalls an Bord. Allerdings sind die Prototypen noch nicht für Vorhersagegenauigkeit optimiert worden, sondern sollen vielmehr ein Schritt in Richtung Best Practices für das Erstellen solcher Algorithmen in Apache Flink ML sein. Die Community ist dazu aufgerufen, sich an diesem Prozess zu beteiligen.
Weitere neue Algorithmen
In Version 2.1 erhält die Library insgesamt zehn neue Algorithmen, deren Fokus neben den beschriebenen Online-Learning-Algorithmen auf dem Validieren der Funktionen und Performance der Infrastruktur von Apache Flink ML liegen soll. [Link auf https://nightlies.apache.org/flink/flink-ml-docs-release-2.1/]
Die neuen Algorithmen lassen sich in fĂĽnf Kategorien zusammenfassen: Feature Engineering (MinMaxScaler
, StringIndexer
, VectorAssembler
, StandardScaler
, Bucketizer
), Online-Learning (OnlineKMeans
, OnlineLogisticRegression
), Regression (LinearRegression
), Klassifikation (LinearSVC
) und Evaluation (BinaryClassificationEvaluator
).
Die Website des Projekts zeigt Beispielprogramme fĂĽr den Einsatz dieser Algorithmen mit Python und Java, um Nutzerinnen und Nutzern beim Einstieg zu helfen.
Ăśberarbeitete Infrastruktur
Das Apache-Flink-ML-Team hat die Infrastruktur in verschiedenen Bereichen überarbeitet. Beispielsweise lässt sich nun die Menge des verwalteten Speichers festlegen, den ein Operator nutzen darf, und ein neues Benchmark-Framework gibt unter anderem Benchmark-Ergebnisse im JSON-Format aus. Die Daten lassen sich mithilfe eines Skripts mit Matplotlib visualisieren.
Zudem erlaubt eine Neuerung im Python SDK, dass Operatoren der Python-Bibliothek die entsprechenden Operatoren in der Java-Bibliothek aufrufen können. Der Python-Operator ist dann ein Thin-Wrapper um den Java-Operator und bietet während der Ausführung die gleiche Performance. Somit sollen sich die Python- und Java-Algorithmen-Bibliotheken leichter verwalten lassen, da es nicht nötig ist, die Algorithmen zweimal zu implementieren.
Die benötigte Version von Apache Flink hat sich von 1.14 auf 1.15 erhöht. Damit gehen auch die Breaking Changes in dem Framework zur Verarbeitung von Datenströmen einher.
Alle weiteren Informationen zum neuen Release von Apache Flink ML finden sich im Apache-Flink-Blog.
(mai)