Freigeben über


Was ist ein Featurespeicher?

Auf dieser Seite wird erklärt, was ein Featurespeicher ist und welche Vorteile er bietet, sowie die spezifischen Vorteile des Featurespeicher von Databricks.

Ein Featurespeicher ist ein zentralisiertes Repository, das es wissenschaftlichen Fachkräften ermöglicht, Features zu finden und gemeinsam zu nutzen, und außerdem sicherstellt, dass derselbe Code, der zur Berechnung der Featurewerte verwendet wird, auch für das Modelltraining und Rückschlüsse verwendet wird.

Beim maschinellen Lernen werden vorhandene Daten verwendet, um ein Modell zur Vorhersage künftiger Ergebnisse zu erstellen. In fast allen Fällen müssen die Rohdaten vorverarbeitet und umgewandelt werden, bevor sie für die Erstellung eines Modells verwendet werden können. Dieser Prozess wird als Feature Engineering bezeichnet, und die Ergebnisse dieses Prozesses werden als Features bezeichnet – die Bausteine des Modells.

Die Entwicklung von Features ist komplex und zeitaufwendig. Erschwerend kommt hinzu, dass beim maschinellen Lernen Featureberechnungen für das Modelltraining durchgeführt werden müssen. Diese Berechnungen müssen erneut durchgeführt werden, wenn das Modell für Vorhersagen verwendet wird. Diese Implementierungen werden möglicherweise nicht vom selben Team oder unter Verwendung derselben Codeumgebung durchgeführt, was zu Verzögerungen und Fehlern führen kann. Außerdem haben verschiedene Teams in einer Organisation oft ähnliche Featureanforderungen, wissen aber möglicherweise nicht, welche Arbeiten andere Teams bereits durchgeführt haben. Ein Featurespeicher soll diese Probleme beheben.

Was spricht für die Verwendung des Databricks-Featurespeichers?

Der Databricks-Featurespeicher ist vollständig in andere Komponenten von Azure Databricks integriert.

  • Erkennbarkeit. Über die Benutzeroberfläche des Featurespeichers, auf die Sie vom Databricks-Arbeitsbereich aus zugreifen können, können Sie nach vorhandenen Features suchen.
  • Herkunft. Wenn Sie eine Featuretabelle in Azure Databricks erstellen, werden die zur Erstellung der Featuretabelle verwendeten Datenquellen gespeichert und sind zugänglich. Für jedes Feature in einer Featuretabelle können Sie auch auf die Modelle, Notebooks, Aufträge und Endpunkte zugreifen, die das Feature verwenden.
  • Integration mit Modellbewertung und -bereitstellung. Wenn Sie Features aus dem Featurespeicher verwenden, um ein Modell zu trainieren, wird das Modell mit Featuremetadaten verpackt. Wenn Sie das Modell für Batchbewertungen oder Onlinerückschlüsse verwenden, ruft es automatisch Features aus dem Featurespeicher ab. Der Aufrufer muss diese nicht kennen oder eine Logik zum Suchen oder Verbinden von Features einfügen, um neue Daten zu bewerten. Das macht die Modellimplementierung und -aktualisierung viel einfacher.
  • Point-in-Time-Lookups. Der Featurespeicher unterstützt Zeitreihen und ereignisbasierte Anwendungsfälle, bei denen Point-in-Time-Genauigkeit erforderlich ist.

Feature Engineering in Unity Catalog.

Mit Databricks Runtime 13.3 LTS und höher wird Unity Catalog zu Ihrem Featurespeicher, wenn Ihr Arbeitsbereich für Unity Catalog aktiviert ist. Sie können jede Delta-Tabelle oder Delta Live-Tabelle in Unity Catalog mit einem Primärschlüssel als Featuretabelle für Modelltraining oder Rückschlüsse verwenden. Unity Catalog bietet Featureermittlung, Governance, Lineage und arbeitsbereichsübergreifenden Zugriff.

Wie funktioniert der Databricks-Feature-Store?

Der typische Machine Learning-Workflow mit Feature Store folgt diesem Muster:

  1. Schreiben Sie Code, um Rohdaten in Features zu konvertieren und einen Spark-DataFrame zu erstellen, der die gewünschten Features enthält.
  2. Für Arbeitsbereiche, die für Unity Catalog aktiviert sind, schreiben Sie den Datenrahmen als Featuretabelle in Unity Catalog. Wenn Ihr Arbeitsbereich nicht für Unity Catalog aktiviert ist, schreiben Sie den Datenrahmen als Featuretabelle in den Arbeitsbereichs-Feature Store.
  3. Trainieren Sie ein Modell mithilfe von Features aus dem Featurespeicher. Wenn Sie dies tun, speichert das Modell die Spezifikationen von Features, die für Trainings verwendet werden. Wenn das Modell für den Rückschluss verwendet wird, werden automatisch Features aus den entsprechenden Featuretabellen verknüpft.
  4. Registrieren des Modells in der Modellregistrierung.

Anschließend können Sie das Modell dazu nutzen, um Vorhersagen für neue Daten zu treffen.

Für Batchanwendungsfälle ruft das Modell automatisch die benötigten Features aus dem Feature Store ab.

Feature Store-Workflow für Machine Learning-Batch-Anwendungsfälle

Veröffentlichen Sie die Features für echtzeitbasierte Anwendungsfälle in einer Onlinetabelle. Onlinespeicher von Drittanbietern werden ebenfalls unterstützt. Siehe Onlinespeicher von Drittanbietern.

Zum Zeitpunkt des Rückschlusses liest das Modell vorab berechnete Features aus dem Onlinespeicher aus und verknüpft sie mit den Daten, die in der Clientanforderung für den Modellbereitstellungsendpunkt bereitgestellt werden.

Feature Store-Workflow für bereitgestellte Machine Learning-Modelle

Einstieg in die Verwendung des Featurespeichers

Informationen zu den ersten Schritten mit dem Featurespeicher finden Sie in den folgenden Artikeln:

Wenn Sie Feature Engineering in Unity Catalog verwenden, kümmert sich Unity Catalog um die gemeinsame Nutzung von Feature-Tabellen in verschiedenen Arbeitsbereichen und Sie verwenden Unity Catalog-Berechtigungen, um den Zugriff auf die Feature-Tabellen zu steuern. Die folgenden Links beziehen sich nur auf den Arbeitsbereichs-Feature Store:

Unterstützte Datentypen

Feature Engineering im Unity-Katalog und im Arbeitsbereich-Featurespeicher unterstützen die folgenden PySpark-Datentypen:

  • IntegerType
  • FloatType
  • BooleanType
  • StringType
  • DoubleType
  • LongType
  • TimestampType
  • DateType
  • ShortType
  • ArrayType
  • BinaryType [1]
  • DecimalType [1]
  • MapType [1]

[1] BinaryType, DecimalType und MapType werden in allen Versionen von Feature Engineering im Unity-Katalog und im Arbeitsbereich Feature Store v0.3.5 oder höher unterstützt.

Die oben aufgeführten Datentypen unterstützen Featuretypen, die in Machine Learning-Anwendungen üblich sind. Beispiele:

  • Sie können Vektoren mit hoher Dichte, Tensoren und Einbettungen als ArrayType speichern.
  • Sie können Vektoren mit geringer Dichte, Tensoren und Einbettungen als MapType speichern.
  • Sie können Text als StringType speichern.

Wenn sie in Onlineshops veröffentlicht werden, werden ArrayType- und MapType-Features im JSON-Format gespeichert.

Die Benutzeroberfläche des Featurespeichers zeigt Metadaten zu Featuredatentypen an:

Beispiel für komplexe Datentypen

Weitere Informationen

Für weitere Informationen zu bewährten Methoden für die Verwendung des Featurespeichers laden Sie den Umfassenden Leitfaden für Featurespeicher herunter.