Feast ist ein Open-Source-Feature-Store, der für Machine-Learning-Workflows entwickelt wurde. Er bietet eine zentrale Plattform zur Definition, Verwaltung und Bereitstellung von Features – den Eingabevariablen, die von Machine-Learning-Modellen verwendet werden – sowohl für das Training als auch für die Online-Inferenz. Durch die Standardisierung von Feature-Speicherung und -Zugriff zielt Feast darauf ab, den operativen Aufwand des Feature-Engineerings zu reduzieren und Konsistenz zwischen den Features, die beim Modelltraining verwendet werden, und denen, die in der Produktion bereitgestellt werden, sicherzustellen.
Feast wurde ursprünglich von Gojek entwickelt und erstmals 2019 als Open-Source-Projekt veröffentlicht. Später wurde es ein Projekt unter dem Dach von AI & Data der Linux Foundation, mit Beiträgen von Unternehmen wie Tecton, das von den ursprünglichen Erstellern von Feast mitgegründet wurde. Der Name des Projekts ist ein Akronym für „Feature Store“ und spiegelt seinen Kernzweck wider.
Kernkonzepte
Feast organisiert Machine-Learning-Features in einem strukturierten Rahmenwerk. Die primären Entitäten umfassen:
- Feature Views: Eine logische Gruppierung von Features, die eine gemeinsame Datenquelle und ein gemeinsames Zeitfenster teilen. Jede Feature View definiert das Schema, die Quelldaten und die Transformationen, die zur Generierung von Features angewendet werden.
- Entities: Die Schlüssel, die die Subjekte von Features identifizieren, wie eine Benutzer-ID oder eine Transaktions-ID. Entities verknüpfen Features mit bestimmten Datenpunkten.
- Feature Services: Eine Sammlung von Feature Views, die zusammen verwendet werden können, um Features für ein bestimmtes Modell oder eine bestimmte Anwendung bereitzustellen.
- Data Sources: Die zugrunde liegenden Speichersysteme, wie BigQuery, Redshift oder Kafka, aus denen Rohdaten gelesen werden, um Features zu berechnen.
Architektur und Komponenten
Die Architektur von Feast besteht aus mehreren Schlüsselkomponenten, die zusammenarbeiten, um den Feature-Lebenszyklus zu verwalten:
- Feast Core: Das zentrale Register, das Metadaten über Feature Views, Entities und Data Sources speichert. Es fungiert als System of Record für Feature-Definitionen.
- Feast Serving: Der Dienst, der Low-Latency-Zugriff auf Features für die Online-Inferenz bietet. Er ruft Features aus Online-Stores ab und gibt sie an Modell-Serving-Systeme zurück.
- Feast Job Service: Eine Komponente, die die Berechnung von Features aus Batch- und Streaming-Datenquellen verwaltet und sowohl Offline- als auch Online-Stores befüllt.
- Offline Store: Ein Speichersystem für historische Feature-Daten, das typischerweise für Trainingsdatensätze verwendet wird. Es unterstützt point-in-time korrekte Joins, um Datenlecks zu vermeiden.
- Online Store: Ein schnelles Speichersystem, wie Redis oder DynamoDB, das Features in Echtzeit für Online-Vorhersagen bereitstellt.
Verwendung und Workflow
Feast wird typischerweise im folgenden Workflow verwendet:
- Features definieren: Datenwissenschaftler oder Ingenieure definieren Feature Views und Entities mithilfe von Python- oder YAML-Konfigurationsdateien.
- Anwenden: Die Definitionen werden auf das Feast-Register angewendet, das die Metadaten aktualisiert.
- Materialisieren: Feast berechnet Feature-Werte aus Datenquellen und speichert sie in den Offline- und Online-Stores.
- Trainieren: Historische Features werden aus dem Offline-Store abgerufen, um Trainingsdatensätze zu erstellen.
- Bereitstellen: Während der Inferenz fragt das Modell-Serving-System den Online-Store über Feast Serving ab, um aktuelle Feature-Werte zu erhalten.
Dieser Workflow ermöglicht es Teams, Features über mehrere Modelle hinweg wiederzuverwenden und stellt sicher, dass dieselben Feature-Definitionen sowohl im Training als auch in der Produktion verwendet werden.
Ökosystem und Integration
Feast integriert sich in eine Vielzahl von Daten- und Machine-Learning-Tools. Es unterstützt Cloud-Data-Warehouses wie Google Cloud BigQuery, Amazon Web Services Redshift und Microsoft Azure Synapse als Offline-Stores. Für die Online-Bereitstellung kann es Redis, DynamoDB oder Firestore verwenden. Feast funktioniert auch mit beliebten Machine-Learning-Frameworks wie TensorFlow und PyTorch und kann für Skalierbarkeit auf Kubernetes bereitgestellt werden.
Feast wird oft mit anderen Feature-Stores wie Tecton und Hopsworks verglichen, unterscheidet sich jedoch dadurch, dass es Open-Source und anbieterneutral ist. Dies macht es zu einer beliebten Wahl für Organisationen, die eine Bindung an einen Anbieter vermeiden und die volle Kontrolle über ihre Feature-Infrastruktur haben möchten.
Community und Adoption
Feast hat eine bedeutende Akzeptanz in der Machine-Learning-Community gewonnen. Es wird von Unternehmen wie Gojek, Walmart und Deliveroo verwendet, um ihre Empfehlungs- und Personalisierungssysteme zu betreiben. Das Projekt hat eine aktive Community auf GitHub, mit regelmäßigen Veröffentlichungen und Beiträgen von einer breiten Palette von Entwicklern. Die Dokumentation und Tutorials von Feast werden in der Machine-Learning-Community weithin als Standardansatz für das Feature-Management referenziert.
Ab 2024 entwickelt sich Feast weiterhin mit neuen Funktionen und Verbesserungen, einschließlich besserer Unterstützung für Streaming-Features und verbesserter Integration in Large-Language-Model-Workflows. Seine Rolle im Künstliche-Intelligenz-Ökosystem wird voraussichtlich wachsen, da mehr Organisationen Feature-Stores einführen, um ihre ML-Operationen zu optimieren.