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:
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.
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.
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).
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.
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.
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.
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.