Über unsMediaKontaktImpressum
Sebastian Lang 03. Dezember 2024

Datenmanagement trifft KI: Effiziente ML-Lösungen mit Snowflake

Die Bedeutung von maschinellem Lernen (ML) nimmt stetig zu, insbesondere in einer Zeit, in der Daten das Fundament für geschäftliche Entscheidungen bilden.

Snowflake vereint die Leistungsfähigkeit einer modernen Datenplattform mit ML-Funktionen und baut dadurch eine Brücke zwischen effizientem Datenmanagement und fortschrittlichen Analysen.

Die Rolle von Snowflake in der Datenlandschaft

Ursprünglich als elastisches Data Warehouse konzipiert, um die Herausforderungen traditioneller Datenbanken und Data Warehouses zu bewältigen, hat sich Snowflake zu einer umfassenden Cloud-Datenplattform für zahlreiche Workloads entwickelt, die den steigenden Anforderungen an Skalierbarkeit, Flexibilität und Performance gerecht wird [1]. Im Gegensatz zu traditionellen Architekturen ermöglicht Snowflake Unternehmen eine nahezu unbegrenzte Rechen- und Speicherskalierbarkeit. Damit wird eine solide Grundlage für die Entwicklung, den Betrieb und das Deployment von Machine-Learning-Modellen geschaffen, um präzise Erkenntnisse aus verschiedensten Datensystemen zu gewinnen und schnelle Entscheidungen zu treffen. Hier sind die wichtigsten Funktionen im Überblick:

Nutzerinnen und Nutzer haben die Wahl zwischen verschiedenen Entwicklungsumgebungen. Neben dem Studio, einer speziell für die integrierten KI-Funktionen konzipierten Umgebung, stehen auch SnowflakeNotebooks zur Verfügung, die eine vertraute und einfach zu bedienende Notebook-Oberfläche bieten. Für Entwickler und Entwicklerinnen, die bevorzugt mit Jupyter oder Visual Studio Code arbeiten, bietet Snowflake ML zudem Integrationen mit externen IDEs. Diese Flexibilität ermöglicht es Nutzerinnen und Nutzern, ML-Modelle in der Umgebung zu entwickeln, die ihren Anforderungen am besten entspricht.

Machine Learning – Funktionen

ML-Frameworks sind oft komplex und setzen fundierte Programmierkenntnisse voraus, was die Nutzung für viele Analysten und Analystinnen erschwert. Snowflake hat es sich daher zur Aufgabe gemacht, ML-Technologien zugänglicher und einfacher nutzbar zu machen. Mit integrierten ML-basierten Analysefunktionen, die in vertrauter SQL-Form bereitgestellt werden, können Anwender auch ohne tiefgehende Programmierkenntnisse maschinelles Lernen in ihre Arbeitsprozesse einfließen lassen. Alles, was sie benötigen, sind ihre Daten:

1. Time Series Functions ermöglichen die Analyse von zeitbasierten Daten, indem sie Trends, saisonale Muster und Anomalien in Datenreihen erkennen. Zu den konkreten Funktionen gehören Forecasting, Anomaly Detection und der Contribution Explorer:

  - Forecasting trainiert ein Modell und ermöglicht die Vorhersage zukünftiger Entwicklungen basierend auf historischen Daten, indem es Muster und Trends identifiziert und so fundierte Prognosen für zeitbasierte Daten liefert. 

--Train your model
CREATE SNOWFLAKE.ML.FORECAST my_model(    
    input_data => SYSTEM$REFERENCE('TABLE', my_data),    
    timestamp_column => 'my_timestamp',    
    target_column => 'daily_sales');
--Generate forecasts
CALL my_model!FORECAST(forecasting_periods => 7);

  - Anomaly Detection hilft dabei, ungewöhnliche Muster in Datenreihen zu erkennen, die auf Fehler, Ausreißer oder interessante Ereignisse hinweisen könnten, und ermöglicht so eine schnelle Reaktion auf Abweichungen.

  – Der Contribution Explorer ermöglicht die Identifizierung der Dimensionen, die zu einer Veränderung einer Kennzahl über zwei Zeitintervalle beitragen. Er erkennt die auffälligsten Dimensionen, um die Ursachen hinter Anomalien zu verstehen, auch wenn auf aggregierter Ebene keine offensichtlichen Abweichungen sichtbar sind.

2. Classification ermöglicht die automatische Einteilung von Daten in Kategorien basierend auf historischen Daten, wie z. B. die Segmentierung von Kunden nach Risikoklassen. Der Algorithmus unterstützt bei der Vorhersage von Ereignissen, wie etwa der Wahrscheinlichkeit eines Kundenabgangs, und trägt somit zur Verbesserung der Entscheidungsfindung bei. 

--Train your model
CREATE OR REPLACE SNOWFLAKE.ML.CLASSIFICATION model_binary(
    INPUT_DATA => SYSTEM$REFERENCE('view','binary_classification_view'),
    TARGET_COLNAME => 'label');
--Generate prediction
SELECT model_binary!PREDICT(INPUT_DATA => {*})
    AS prediction FROM prediction_purchase_data;

3. Top Insights ist speziell für die Analyse von Schlüsselfaktoren konzipiert. Es identifiziert Segmente, die zu Veränderungen einer Kennzahl beitragen, sei es über die Zeit oder zwischen Kategorien. Es hilft dabei, automatisch die treibenden Faktoren hinter Änderungen zu finden.

Für die meisten integrierten Funktionen wird ein Gradient-Boosting-Machine-(GBM-)Modell verwendet, ein ML-Modell, welches mehrere Entscheidungsbäume kombiniert, um genauere Vorhersagen zu treffen. GBM verwendet ein iteratives Verfahren, bei dem jeder neue Entscheidungsbaum die Fehler der vorherigen Bäume korrigiert. Besonders gut geeignet ist es für Klassifizierungs- und Regressionsaufgaben.

Fortgeschrittene Anwender und Entwickler und Entwicklerinnen profitieren von der Snowpark-ML-Bibliothek zur Feature-Entwicklung und zum Modell-Training, die eine umfassende Datenvorbereitung und das Training direkt auf der Plattform ermöglichen, ohne die Daten zu bewegen. Snowpark ist eine integrierte Entwicklungsumgebung, um Snowflake über SQL-basierte Anwendungsfälle hinaus zu erweitern. Sie unterstützt die Programmiersprachen Python, Java und Scala. Die zwei Hauptkomponenten der Bibliothek sind:

1. Snowpark ML Modeling: Das Modul bietet APIs für die Datenvorbereitung, das Feature-Engineering und das Modelltraining, einschließlich verteiltem Hyperparameter-Tuning. Die Schnittstellen basieren auf bekannten Bibliotheken wie XGBoost, LightGBM und Scikit-Learn.

2. Snowpark ML Operations (MLOps): Um den ML-Prozess – von der Daten-, Feature- und Modellentwicklung bis hin zur Produktionsbereitstellung – zu standardisieren und effizienter zu gestalten, bietet die Plattform eine Reihe von MLOps-Funktionen:

  - Der Feature Store dient zur Erstellung, zentralen Verwaltung und Speicherung von ML-Features. Er bietet ein Python-SDK zum Definieren, Registrieren und Abrufen von Features sowie Backend-Infrastruktur mit dynamischen Tabellen, Views und Tags für automatische Feature-Pipelines und sichere Verwaltung.

  - Die Model Registry und die Serving-Funktionen stellen ein zentrales Repository bereit, das den Betrieb und die Verwaltung von Modellen sowie deren Metadaten optimiert. Die Modelle sind dabei als Schema-Level-Objekte verfügbar, wodurch sie einfach innerhalb der Organisation geteilt und mit der rollenbasierten Zugriffskontrolle von Snowflake abgesichert werden können. Sowohl intern als auch extern trainierte Modelle, verschiedene Modellversionen sowie die Auswahl einer Standardversion werden unterstützt.

- Für die Überwachung und Erklärbarkeit der Modelle stehen Tools zur Verfügung, die die Transparenz und Nachvollziehbarkeit der Modell-Entscheidungen fördern. Dazu gehören Explainability, um Shapley-Werte zu berechnen und somit den Beitrag jedes Features zu einer bestimmten Vorhersage zu bestimmen und AI Observability, die die Leistungsüberwachung von Modellen ermöglicht und so die Zuverlässigkeit und Effizienz der ML-Systeme verbessern. Dadurch wird eine Skalierbarkeit, Reproduzierbarkeit und Governance ermöglicht, die für eine erfolgreiche Umsetzung von Projekten notwendig sind.

Die Snowpark-ML-Bibliothek deckt somit alle nötigen Schritte eines End-to-End-ML-Prozesses ab. Gleichzeitig bleiben die Daten während des gesamten Lebenszyklus auf der Plattform selbst, ohne dass externe Pipelines erforderlich sind. Dies führt nicht nur zu geringeren Kosten, sondern reduziert auch die Komplexität der Architektur, erhöht die Datensicherheit und erleichtert die Einhaltung von Governance-Richtlinien.

Die nötige Rechenleistung bietet Snowflake entweder über die Container Runtime oder speziell optimierte ML-Warehouses. Ersteres unterstützt dabei gängige ML-Bibliotheken wie PyTorch, LightGBM, XGBoost und Scikit-Learn und ermöglicht zudem die flexible Installation weiterer Bibliotheken via pip. Diese containerisierte Umgebung schafft eine flexible Infrastruktur für die Entwicklung anspruchsvoller Modelle mit konfigurierbaren Hardwareoptionen, wie CPU- oder GPU-Pools. Für Standard-ML-Workloads stellt Snowflake ein speziell optimiertes Warehouse zur Verfügung, das sich ideal für Arbeitsspeicher-intensive Aufgaben oder Abhängigkeiten von bestimmten CPU-Architekturen eignet.

Ausblick: GenAI

Generative KI ist spätestens seit der Einführung von OpenAIs ChatGPT nicht mehr aus der Welt der Künstlichen Intelligenz wegzudenken. Der Einsatz von Natural Language Processing (NLP) und großen Sprachmodellen (LLMs) ist gefragter denn je. In diesem Zuge hat Snowflake sein eigenes, offenes LLM namens "Arctic" veröffentlicht, das speziell für unternehmensspezifische Anwendungsfälle entwickelt wurde. Arctic unterstützt Nutzer und Nutzerinnen bei der Codierung (HumanEval+ und MBPP+), bei der SQL-Generierung (Spider) sowie beim Instruction Following (IFEval). Darüber hinaus stellt Snowflake mit dem Service Cortex serverlose GenAI-Funktionen bereit, die ähnlich wie die integrierten ML-Funktionen einfach zu nutzen sind und fortschrittliche NLP-Aufgaben ermöglichen, darunter Sentiment-Analyse, Textzusammenfassung, Übersetzung, Text-Embedding und neuerdings auch Fine-Tuning. Diese Entwicklungen zeigen, dass Snowflake weiterhin bestrebt ist, benutzerfreundliche KI-Technologien bereitzustellen, die Unternehmen und Anwendern helfen, den vollen Wert ihrer Daten in jeglicher Form – ob nun strukturierte, semistrukturierte oder unstrukturierte Daten – zu erschließen.

Autor
Sebastian Lang

Sebastian Lang

Sebastian Lang arbeitet als Cloud Data Engineer im Bereich D&A Data Platforms bei adesso SE und unterstützt das Snowflake-Team.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben