2. Juli 2024 von Sebastian Lang
Snowflake ML
Snowflake wurde 2016 von seinen Gründern im gleichnamigen Whitepaper als „Elastic Data Warehouse“ vorgestellt und beschrieben. Heute, acht Jahre später, ist Snowflake eine umfassende Datenplattform, die für zahlreiche Workloads prädestiniert ist, darunter Data Science und AI/ML. Im ersten Teil meines Blog-Beitrags über die KI-Funktionen von Snowflake geht es um die aktuellen Funktionen für durchgängiges maschinelles Lernen auf einer einzigen Plattform, basierend auf von Unternehmen verwalteten Daten. Diese Funktionen können für benutzerdefinierte und sofort einsetzbare Workflows verwendet werden und umfassen Feature Engineering, Trainings-APIs, Modellregistrierung und vieles mehr.
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-1_W686xH343_CUTOUT.png)
Abbildung 1: Übersicht über Snowflake ML, Quelle: https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python/img/d11e9b2521a7de62.png
Welche Möglichkeiten bietet Snowflake?
ML-Funktionen
Snowflake bietet gebrauchsfertige Analysefunktionen. Diese ermöglichen automatische Vorhersagen und Einblicke in die Daten mit Hilfe von ML. Besonders geeignet, wenn man keine ML-Expertin oder kein ML-Experte ist:
- Time-Series Functions: Diese Funktion trainiert ein ML-Modell mit Zeitreihendaten, um zu bestimmen, wie ein bestimmter Wert im Laufe der Zeit und relativ zu anderen variiert.
- ‚Forecasting‘ verwendet historische Daten, um zukünftige Werte vorherzusagen.
- ‚Anomaly Detection‘ identifiziert automatisch unerwartete Muster oder Ausreißer
- ‚Contribution Explorer‘ hilft, die Werte und Faktoren zu finden, die am meisten zu Veränderungen in den Zeitreihendaten beitragen.
- Classifications: Für diese Funktion sind keine Zeitreihendaten erforderlich. Diese Funktion sortiert die Zeilen in zwei oder mehr Klassen auf der Grundlage ihrer aussagekräftigsten Merkmale.
Benutzerdefiniertes ML
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-2_W686xH343_CUTOUT.png)
Abbildung 2: Wie man ein Modell trainiert und Prognosen erstellt - in nur wenigen Zeilen SQL, Quelle: https://docs.snowflake.com/en/user-guide/ml-functions/forecasting
Für benutzerdefinierte Workflows bietet Snowflake APIs zur Unterstützung jeder Phase eines durchgängigen Entwicklungs- und Bereitstellungsprozesses und umfasst folgende Schlüsselkomponenten: Snowpark ML Modeling, Model Registry und Feature Store.
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-3_W686xH343_CUTOUT.png)
Abbildung 3: Python Bibliothek und zugrundeliegende Infrastruktur für ML Workflows https://miro.medium.com/v2/resize:fit:1400/format:webp/1*EOHB2Z4OWzM6U93WhzKcow.png
Für benutzerdefinierte Workflows bietet Snowflake APIs zur Unterstützung jeder Phase eines durchgängigen Entwicklungs- und Bereitstellungsprozesses und umfasst folgende Schlüsselkomponenten: Snowpark ML Modeling, Model Registry und Feature Store.
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-4_W686xH343_CUTOUT-2.jpg)
Abbildung 4: Datenbewegung mit und ohne Snowpark
Snowpark wurde 2021 eingeführt und ist eine integrierte Entwicklungsumgebung zur Erweiterung von Snowflake über SQL-basierte Anwendungsfälle hinaus. Die Umgebung bietet Unterstützung für die Programmiersprachen Python, Java und Scala innerhalb der Snowflake Virtual Warehouse Infrastruktur. Für den Einstieg in Snowflake ML können Kundinnen und Kunden die Python APIs der Snowflake ML Bibliothek nutzen, um auf alle operativen Funktionen zuzugreifen:
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-5_W686xH343_CUTOUT.png)
Abbildung 5: Modelling-Prozess mit der Snowpark ML Modeling API https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python/img/8de45cc3c02b6206.png
- ML Modeling: Mit dieser Schnittstelle können bekannte Python-Frameworks wie scikit-learn, XGBoost und LightGBM für die Datenvorverarbeitung, das Feature-Engineering und das Training von Modellen verwendet werden. Snowpark bietet standardmäßig Hyperparameter-Optimierung.
![](/adesso-de/adesso-de/news/blog/2024/2024-07-01-snowflake-ml-6_W686xH343_CUTOUT.png)
Abbildung 6: Modellmanagement mit der Snowflake Model Registry https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python/img/39debc49af518225.png
- Model Registry: Ermöglicht die sichere Verwaltung von Modellen und deren Metadaten sowie die Durchführung von Batch-Inferenzen. Die Modelle werden als Schema-Level-Objekte gespeichert und können daher leicht von anderen innerhalb der Organisation und mit Snowflakes rollenbasierter Zugriffskontrolle verwendet werden. Die Registry unterstützt intern und extern trainierte Modelle, mehrere Modellversionen sowie die Auswahl einer Standardversion.
- Feature Store: Das Feature Engineering, bei dem Rohdaten in Features umgewandelt werden, die zum Training von ML-Modellen verwendet werden können, ist ein zentraler Bestandteil des Workflows. Der Store dient der Erstellung, Speicherung und Verwaltung von Features. Er bietet:
- ein Python SDK zum Definieren, Registrieren, Abrufen und Verwalten von Features.
- eine Backend-Infrastruktur mit dynamischen Tabellen, Arrays, Views und Tags für automatisierte Feature-Pipelines und sichere Governance.
Die Python APIs der Snowpark ML Bibliothek können heruntergeladen und direkt in Snowflake Notebooks sowie in jeder beliebigen IDE, einschließlich Jupyter oder Hex, installiert und verwendet werden. Die Ausführung der Notebooks und aller Operationen erfolgt über die ML Compute Infrastruktur von Snowflake. Dazu gehören die Virtual Warehouse Runtime für CPU-Verarbeitung und die Container Runtime für verteilte CPU- und GPU-Verarbeitung mit Hilfe des Snowpark Container Service (der im zweiten Teil des Artikels behandelt wird).
Datenplattform für AI: Mehrwert für Kundinnen und Kunden
Mit ML Functions können Nutzerinnen und Nutzer in Unternehmen die Entwicklungszeit verkürzen, indem sie entweder direkt SQL-Funktionen verwenden oder über das neue Snowflake Studio (Open Preview), eine interaktive Schnittstelle ohne Code, arbeiten. Kunden können benutzerdefinierte ML-Modelle und -Funktionen einfach und sicher entwickeln und skalieren, ohne Datenbewegungen, Silos oder Kompromisse bei der Governance. Die ML-Pipelines profitieren von vertrauten Python-Tools und Frameworks, Snowpark DataFrames sowie UDFs und Stored Procedures, die von jeder Client-IDE oder jedem Notebook aus entwickelt und direkt neben den Daten in Snowflake ausgeführt werden können. Die Kombination einer leistungsfähigen Datenplattform mit fortgeschrittenen ML-Funktionen macht Snowflake besonders attraktiv für Dateningenieurinne und -ingenieure sowie Datenwissenschaftlerinnen und -wissenschaftler.
Ausblick in die Zukunft
Ein Blick in die Zukunft zeigt, dass Snowflake weiterhin innovative ML- und neuerdings auch Generative AI-Funktionen etablieren wird. Ein Highlight in diesem Zusammenhang ist der jährlich stattfindende Snowflake Summit. Auch dieses Jahr fand der Summit Anfang Juni in San Francisco statt und bot eine Bühne für zahlreiche Neuheiten. Vorgestellt wurden unter anderem die No-Code-Schnittstelle des Snowflake Studios, der Feature Store und die Snowflake Notebooks. Eine noch nicht erwähnte Neuheit ist ML Lineage, das derzeit in einer privaten Vorschau verfügbar ist. Dieses Feature ermöglicht die Nachverfolgung von Datasets, Features und Modellen über den gesamten End-to-End-Lifecycle.
Auch interessant: