close-icon
Melde dich für unseren Newsletter an, um mehr über dieses Thema zu erfahren
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Der richtige Feature Store für dein Projekt: Feast vs. Hopsworks

FEAST ist der einzige unabhängige Open-Source Feature Store, es gibt aber auch Alternativen

datarevenue-icon
by
DataRevenue
Markus Schmitt

Feature Stores helfen dabei, den Überblick über alle Daten zu behalten, die zum Trainieren von Modellen eingesetzt werden. Obwohl es das Konzept noch nicht lange gibt, werden sie zusehends beliebter.

Welche Probleme können Feature Stores lösen?

Werden Modelle ohne Feature Store trainiert, sieht das Setup in etwa so aus: 

Ein Diagramm, das zeigt, wie viele ETL-Prozesse zum Trainieren verschiedener Modelle dupliziert werden.
Wenn ein Modell seine Daten direkt aus einem Datenspeicher bezieht, kommt es schnell zu überflüssigen Duplikationen.

In diesem Fall werden für jedes Modell die Daten wieder aufs Neue aufbereitet. Dadurch finden zahlreiche Abläufe doppelt statt, weil verschiedene Modelle oft die gleichen Variablen brauchen.

Feature Stores können diese doppelten Abläufe jedoch vermeiden. Das Ganze funktioniert so: Jede Variable wird im Feature Store gespeichert und kann dann ganz einfach zum Trainieren anderer Modelle verwendet werden. So vermeidet man, dass Datensätze mehrmals berechnet werden müssen. Dadurch dass alle Daten, die man zum Trainieren eines Modells verwendet hat, im Feature Store bereitgestellt werden, kann auch die gesamte Trainings-Pipeline leichter reproduziert werden.

Ein Diagramm, das zeigt, wie zwischen Datenspeicher und Feature-Store nur noch ein einzelner ETL-Prozess benötigt wird. Modelle können Features direkt aus dem Feature Store beziehen.
Ein Feature-Store löst die Verknüpfung zwischen den Modellen und den Daten auf, wodurch keine doppelten Prozesse mehr entstehen.

Bis vor kurzem wurden Feature Stores hauptsächlich in betriebsinternen Machine Learning Plattformen verwendet, wie z.B. bei Michaelangelo von Uber. Wenn man außerhalb großer Unternehmen Feature Stores in eigenen Projekten verwenden wollte, musste man sich einen eigenen komplett selbst entwickeln. Erfreulicherweise ist die Open Source Community jedoch gerade dabei, das zu ändern. Auch wenn die Möglichkeiten bisher noch recht begrenzt sind. Stand heute gibt es diese Optionen:

  • FEAST 
  • Hopsworks Feature Store, oder
  • Etwas eigenes entwickeln, auf Basis von z.B. DVC

Als wir unsere Machine Learning-Referenzarchitektur entwickelt haben, haben wir all diese Optionen in Betracht gezogen und uns für FEAST entschieden. Damit du auch für dein Projekt die richtige Option auswählen kannst, haben wir die drei Optionen detailliert gegenübergestellt und miteinander verglichen.

Brauchst du einen Feature Store?

Sobald du ein auch nur halbwegs skalierbares Machine Learning Projekt planst, macht es Sinn, mit einem Feature Store zu arbeiten. Viele Projekte kommen aber auch ohne aus. Wenn du bisher auf keines der Probleme gestoßen bist, die ein Feature Store löst (z. B. den Überblick darüber zu verlieren, welche Features verwendet werden oder Modell-Training Code duplizieren müssen), dann kommst du vielleicht auch gut ohne einen Feature Store aus. 

Es macht dann Sinn, keinen Feature Store zu verwenden, wenn:  

  • du nur eine sehr kleine Anzahl an Modellen trainierst;
  • du noch an einem Proof of Concept arbeitest;
  • dein Team sehr klein ist. 

Sobald du dein Machine Learning Team und deine Modelle skalierst, entstehen ohne Feature Store jedoch schnell Probleme, die sich leicht vermeiden lassen. Eines der Probleme, die meistens recht früh auftauchen, sind doppelte Arbeitsschritte und damit Arbeits- und Zeitverschwendung. Sobald es von einem Projekt unterschiedliche Versionen gibt, werden oft zeit-indizierte Snapshots alles Features erstellt. Wir haben zum Beispiel mit einem Team zusammengearbeitet, das täglich Snapshots aller Apache Parquet-Dateien angelegt hat. Das hat nicht nur eine Menge Speicherplatz verschwendet, sondern führte auch dazu, dass jede Spalte in jeder Datei manuell aktualisiert werden musste, sobald auch nur eine einzige Variable verändert wurde.

Suchst du nach einer Machine Learning Allround-Lösung?

Es gibt zahlreiche konkurrierende Workflow Tools und Machine Learning Plattformen, die dabei helfen, den gesamten Machine Learning Prozess zu verwalten. Wenn du dich noch in der Anfangsphase deines Projektes befindest, solltest du dir eine Plattform heraussuchen, die optimal zu deinen Anforderungen passt. Hopsworks ist zum Beispiel eine Data Science-Plattform, die neben einem Feature Store noch zahlreiche andere Funktionen, wie z.B. Model Serving und Notebooks bietet.

FEAST ist dagegen etwas spezialisierter: es bietet ausschließlich Funktionen zum Speichern und Verwalten von Features. FEAST kann über die CLI oder das Python-SDK in eine vorhandene Infrastruktur eingebunden werden.

Interessierst du dich für neue Artikel?

Melde dich hier für unseren wöchentlichen Newsletter an und erfahre mehr darüber, warum wir FEAST in unsere interne Referenzarchitektur aufgenommen haben.

Danke!
Oops! Hier ist etwas schief gelaufen.

FEAST vs. Hopsworks Feature Store

Hopsworks Feature Store ist eine Komponente der größeren Data Science-Plattform von Hopsworks, während FEAST ein eigenständiger Feature Store ist.

Entscheide dich für Hopsworks Feature Store, wenn du bereits mit der Hopsworks Data Science Plattform arbeitest oder arbeiten möchtest. Hopsworks vereint mehrere andere Plattformen und erweitert sie um einen eigenen Feature Store sowie ein eigenes Dateisystem (das etwas irreführend HopsFS genannt wird, aber vom Hopsworks Feature Store losgelöst ist).

 Ein Diagramm der Hopsworks-Architektur, das Airflow, HopsFS, Hops Feature Store, Kafka, Beam, Flink, Tensorflow, Kubernetes und Spark enthält.
Hopsworks vereinigt mehrere andere Machine Learning Komponenten wie Kafka und Airflow.

Entscheide dich für FEAST, wenn du nach etwas Kleinerem und Spezialisierterem suchst, das sich in deine bestehende Plattform integrieren lässt. Auf den ersten Blick scheint FEAST einen ähnlichen Funktionsumfang wie Hopsworks abzudecken. Es gibt jedoch auch Unterschiede: Funktionen wie das Training oder Serving von Modellen finden außerhalb der FEAST-Plattform, aber innerhalb von Hopsworks statt.


Ein Diagramm der FEAST-Architektur, das zeigt, wie sich FEAST zwischen Datenverarbeitung und das Machine Learning positioniert.
FEAST ist spezialisierter als Hopsworks und überlässt das Modelltraining und -serving anderen, externen Komponenten.

Beliebtheit von Feature Stores

Feature Stores sind ein relativ neues Konzept, aber Open-Source Lösungen wie FEAST und Hopsworks werden zusehends beliebter. Im direkten Vergleich ist FEAST deutlich  beliebter und wächst hinsichtlich seiner Anzahl an GitHub-Sternen sehr viel schneller.

Ein Diagramm, das das Wachstum der GitHub-Sterne von Feast und Hopsworks zeigt, wobei Feast bei über 1000 GitHub-Sterne liegt und schneller wächst, während Hopsworks bisher weniger als 400 Sterne bekommen hat.
FEAST ist der beliebteste Open Source Feature Store und wächst am schnellsten.

Im November 2020 wechselte der Gründer von FEAST zu Tecton.ai, einer proprietären Machine Learning Plattform. Obwohl es manchmal ein eher ungutes Zeichen für Open-Source-Projekte sein kann, wenn ihre Gründer sich an Unternehmen "verkaufen", hat sich Tecton in diesem Fall verpflichtet, FEASTs zentraler Förderer zu werden. Sie planen, die Open-Source-Plattform weiter zu verbessern und zu finanzieren, so dass FEAST von diesem Wechsel vermutlich profitieren wird.

Hopsworks und FEAST vs. DVC

DVC ist ein weiteres Tool, um den Überblick über verschiedene Versionen von großen Datensätzen zu behalten - wenn du also bereits DVC verwendest, brauchst du dann überhaupt einen Feature Store?

DVC ist nicht direkt mit einem Feature Store vergleichbar, auch wenn damit zum Teil ähnliche Probleme gelöst werden können. 

Insgesamt ist DVC im Vergleich zu FEAST oder Hopsworks eine eher lower-level Lösung - es speichert unterschiedliche Versionen von großen Datenmengen auf sehr effiziente Weise. Dazu gehören Features, aber auch Rohdaten sowie Machine Learning Modell Dateien.

Ein DVC-Diagramm mit Daten, Features und Modellen - alle mit mehreren Versionen in Git.
DVC speichert die unterschiedlichen Versionen der Daten, Features und Modelle.

Da DVC nicht gezielt als Feature-Store konzipiert wurde, fehlen viele der Funktionen, die man auf Plattformen wie FEAST und Hopsworks findet, insbesondere im Bereich des Stream-Processing. Einen Git-ähnlichen Ansatz zu verwenden, ist sehr sinnvoll, wenn es um Batch-Processing geht. Aber für Machine Learning-Systeme, die Live-Daten verarbeiten (z. B. Betrugserkennungssysteme, die innerhalb von Millisekunden entscheiden müssen, ob eine bestimmte Transaktion gesperrt werden soll oder nicht), kann es schwieriger sein, den Überblick zu behalten.

Plattformen wie FEAST unterstützen sowohl online (streaming) als auch offline (batch processing) Feature Stores. Dabei werden schnellere, Key-Value-basierte Stores eingesetzt, wenn das Timing eine zentrale Rolle spielt; langsamere, strukturiertere Offline-Stores kommen vor allem zum Einsatz, um historische Daten über Jahre hinweg zu speichern. Man könnte diese Funktionen zwar auch in DVC implementieren, das wäre jedoch mit erheblich mehr Aufwand verbunden, als einfach einen spezialisierten Feature Store einzusetzen. 

Benötigst du Hilfe beim Aufsetzen deiner optimalen Machine Learning Infrastruktur?

Wir unterstützen Teams die richtige Machine Learning Infrastruktur zu finden. Melde dich einfach bei uns und erzähl uns, was du vorhast.

Bekomme immer die neusten Artikel

Trag dich mit deiner E-Mail ein, um du bekommst jede Woche unseren neusten Artikel.

Ich danke Ihnen! Ihre Einreichung ist eingegangen!
Oops! Something went wrong while submitting the form.