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.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: Arh-sib / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Maika Möbus
Inhaltsverzeichnis

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.

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.

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.

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)