Snowflake Feature Store

Bemerkung

Der Snowflake Feature Store API ist im Snowpark ML Python-Paket (snowflake-ml-python) v1.5.0 und höher verfügbar.

Mit dem Snowflake Feature Store können Data Scientists und ML-Ingenieure ML-Features in Data Science und ML-Workloads erstellen, pflegen und verwenden, und zwar innerhalb von Snowflake.

Im Allgemeinen sind Features Datenelemente, die als Eingaben für ein Modell des maschinellen Lernens verwendet werden. Viele Spalten in einem Datensatz, wie z. B. die Temperatur oder die Anwesenheit, können direkt als Features verwendet werden. In anderen Fällen kann eine Spalte durch Vorverarbeitung und Transformation für das Training nützlicher gemacht werden. So können Sie beispielsweise ein Feature für den Wochentag aus einem Zeitstempel ableiten, damit das Modell wöchentliche Muster erkennt. Andere übliche Feature-Transformationen umfassen die Aggregation, Differenzierung oder Zeitverschiebung von Daten. Beim Feature-Engineering wird entschieden, welche Features für Ihre Modelle benötigt werden und wie diese aus den Rohdaten abgeleitet werden sollen.

Mit einem Feature-Speicher können Sie häufig verwendete Feature-Transformationen in einem zentralen Repository standardisieren, was die Wiederverwendung ermöglicht, die Duplizierung von Daten und Aufwand reduziert und die Produktivität verbessert. Dies hilft auch bei der Pflege von Features, indem es sie mit neuen Quelldaten aktualisiert und so stets korrekte, konsistente und aktuelle Features in einer einzigen Quelle der Wahrheit bereitstellt. Indem der Feature-Speicher die Konsistenz bei der Extraktion von Features aus Rohdaten kultiviert, kann er auch dazu beitragen, dass Ihre ML-Produktionspipelines robuster werden.

Der Snowflake Feature Store wurde entwickelt, um das Erstellen, Speichern und Verwalten von Features für Data Science und maschinelles Lernen einfacher und effizienter zu gestalten. Der Snowflake Feature Store wird nativ in Snowflake gehostet und bietet die folgenden Vorteile:

  • Ihre Daten bleiben sicher, vollständig unter Ihrer Kontrolle und Verwaltung und verlassen Snowflake nie.

  • Mit der Snowsight Feature Store-UI können Sie ganz einfach nach Features suchen und diese entdecken.

  • Das Verwalten des Zugriffs erfolgt über eine fein abgestufte rollenbasierte Zugriffssteuerung.

Zu den wichtigsten Vorteilen des Snowflake Feature Store gehört die Unterstützung für:

  • Sowohl Batch- als auch Streaming-Daten, mit effizienten automatischen Aktualisierungen beim Eintreffen neuer Daten

  • Backfill- und Point-in-Time-Korrektur-Features mit ASOF JOIN

  • In Python verfasste Feature-Transformationen oder SQL

  • Automatische Aktualisierung und Auffrischung von Feature-Werten aus Quelldaten mit von Snowflake verwalteten Feature-Ansichten

  • Möglichkeit, vom Benutzer verwaltete Feature-Pipelines mit externen Tools wie dbt zu verwenden

Der Snowflake Feature Store ist vollständig mit der Snowflake Model Registry und anderen Snowflake-ML-Features für eine durchgängige Produktion-ML integriert.

Die folgende Abbildung zeigt, wie der Snowflake Feature Store in eine Pipeline des maschinellen Lernens passt:

Gesamtarchitektur des Snowflake Feature Store
  • Rohdaten können im Batch aus Tabellen oder Ansichten oder aus Streaming-Datenquellen bezogen werden.

  • Die Rohdaten werden dann durch von Dateningenieuren definierte Features umgewandelt, wodurch eine Feature-Tabelle erstellt wird.

  • Die Feature-Tabelle kann verwendet werden, um Trainingsdatensätze zu generieren, die für das Training von Modellen in Snowpark-ML verwendet werden, oder um Testdaten anzureichern, die das Modell für seine Vorhersagen verwendet.

Wie funktioniert das?

Bemerkung

Ein Feature-Speicher in Snowflake ist einfach ein Schema. Sie können ein neues Schema erstellen, um es als Feature-Speicher zu verwenden, oder ein bestehendes verwenden.

Ein Feature-Speicher enthält Feature-Ansichten. Eine Feature-Ansicht kapselt eine Python- oder SQL-Pipeline zur Umwandlung von Rohdaten in ein oder mehrere zusammenhängende Features. Alle Features, die in einer Feature-Ansicht definiert sind, werden gleichzeitig aus den Quelldaten aufgefrischt.

Tipp

Benutzer, die Zugriff auf mehr als einen Feature-Speicher haben, können Feature-Ansichten aus mehreren Feature-Speichern kombinieren, um Trainings- und Inferenzdatensätze zu erstellen.

Der Snowflake Feature Store unterstützt zwei Arten von Feature-Ansichten:

  • Snowflake-verwaltet: Der Snowflake Feature Store aktualisiert die Features in der Feature-Ansicht für Sie, inkrementell und effizient, nach einem von Ihnen festgelegten Zeitplan.

  • Extern: Ein anderer Prozess außerhalb des Feature Store verwaltet die Features in der Feature-Ansicht. Diese Art der Feature-Ansicht ist für die Verwendung mit Tools wie dbt vorgesehen.

Feature-Ansichten sind im Feature-Speicher nach den Entitäten geordnet, auf die sie sich beziehen. Eine Entität ist eine Abstraktion auf höherer Ebene, die den Gegenstand eines Features darstellt. In einem Feature-Store für einen Film-Streaming-Service könnten die wichtigsten Entitäten beispielsweise Benutzer und Filme sein. Rohdaten von Filmen und Aktivitäten der Benutzer können in nützliche Features umgewandelt werden, wie z. B. die Sehdauer pro Film und die Länge der Benutzersitzung. Die Feature-Ansichten, die diese Features enthalten, können mit relevanten Entitäten versehen werden.

Backend-Datenmodell

Feature-Speicherobjekte sind als Snowflake-Objekte implementiert. Alle Objekte im Feature Store unterliegen daher den Snowflake-Regeln zu Zugriffssteuerung.

Feature Store-Objekt

Snowflake-Objekt

Feature Store

Schema

Feature-Ansicht

dynamische Tabelle oder Ansicht

Entität

Tag

Feature

Spalte in einer dynamischen Tabelle oder in einer Ansicht

Eigenschaften von Feature-Ansichten (z. B. Name und Entität) werden als Tags auf dynamischen Tabellen oder Ansichten implementiert.

Sie können die Snowflake-Objekte mit SQL abfragen oder manipulieren. Änderungen, die Sie über SQL vornehmen, werden in Python-API reflektiert und umgekehrt.

Tipp

Alle Objekte eines Snowflake Feature Store werden im Schema des Feature Store gespeichert. Um einen Feature-Speicher vollständig zu löschen, vergewissern Sie sich, dass das Schema keine anderen Ressourcen enthält, und löschen Sie dann das Schema.

Erste Schritte

Bemerkung

Die Snowflake Feature Store Python-API ist Teil des Snowpark ML-Python-Pakets snowflake-ml-python. Sie können es auf Ihrem lokalen System in Ihrem bevorzugten Python IDE oder in einem Snowsight-Arbeitsblatt oder -Notebook verwenden. Weitere Details dazu finden Sie unter Python APIs für Snowflake ML.

Beginnen Sie Ihre Reise mit Einführung in den Snowflake Feature Store für eine Einführung in die Snowflake Feature Store-Konzepte. Dann folgen weitere Snowflake-Quickstarts, einschließlich:

Unter Gemeinsame Feature- und Abfrage-Muster finden Sie Beispiele für bestimmte Arten von Feature-Transformationen.

Bemerkung

Diese werden nur als Beispiele dargestellt. Wenn Sie dem Beispiel folgen, benötigen Sie möglicherweise zusätzliche Rechte für Daten, Produkte oder Dienste von Drittanbietern, die nicht im Besitz von Snowflake sind oder von Snowflake bereitgestellt werden. Snowflake übernimmt keine Garantie für die Richtigkeit dieser Beispiele.