Snowflake ML-Modellentwicklung

Snowflake ML ist eine hochflexible Plattform, mit der Sie Ihren Open-Source-Code (OSS) verwenden können, um Machine-Learning-Modelle direkt auf Ihren Daten zu trainieren. Dieser Ansatz macht komplexe Datenbewegungen überflüssig und ermöglicht es Ihnen, Ihre bevorzugten ML-Bibliotheken, -Tools und -Entwicklungsprozesse zu verwenden.

Snowflake ML lässt sich mit Snowflake-kompatiblen Datenquellen integrieren, um ML-Workflows durch optimierte Dateneingabe-Pipelines zu beschleunigen. Die fortschrittliche verteilte APIs ermöglicht eine effiziente Skalierung von Modelltraining und -abstimmung. Sie können von einer Notebook-Umgebung mit einem ML-Laufzeit-Image auf alle Features von Snowflake ML zugreifen, so dass Sie keine Pakete und keine Infrastruktur mehr verwalten müssen.

Trainieren und Optimieren Ihrer Modelle

Erstellen mit Notebooks auf Container Runtime

Container Runtime für ML bietet eine vorgefertigte ML-Umgebung, die beliebte Pakete enthält. Sie können auf sichere Weise Bibliotheken aus öffentlichen oder privaten PyPI-Repositorys hinzufügen, um Ihre Umgebung anzupassen. Die verteilten APIs ermöglichen Ihnen die Umwandlung von Daten und die Ausführung von AI-/ML-Workloads in großem Umfang.

Neben der Verwendung der verteilten APIs von Snowflake zur Skalierung Ihrer Workflows können Sie auch Ray verwenden. Ray ist ein Open-Source-Framework, das eine einfache und flexible Möglichkeit zur Skalierung von Python-Anwendungen bietet. Es ermöglicht Ihnen, Ihren Code parallel auf mehreren Knoten auszuführen. Weitere Informationen zur Verwendung von Ray mit Snowflake ML finden Sie im Ray Getting Started Guide.

Snowflake ML Container Runtime-Notebooks-Diagramm

Container Runtime-Notebooks sind Snowflake-Notebooks, die in die Container Runtime integriert sind. Sie bieten Features wie ein vorgefertigtes ML Runtime-Image, verteilte Verarbeitung, CPU Computepools und GPU-Computepools. Wenn Sie ein Datenwissenschaftler oder ML-Engineer sind, können Container Runtime-Notebooks besonders nützlich für Ihre ML-Entwicklungsaufgaben sein.

Fernausführung von einem beliebigen externen IDE

Sie können auch Ihre bevorzugte externe IDE verwenden, z. B. Visual Studio Code oder ein Cloud-basiertes Jupyter-Notebook, und ML-Workflows aus der Ferne in der Container Runtime ausführen. Um Ihre Workflows aus der Ferne auszuführen, annotieren Sie Ihren Python-Code, Ihre Funktionen oder Dateien und führen sie in einer Container Runtime-Instanz aus. Weitere Informationen dazu finden Sie unter Eine Python-Funktion als Snowflake ML Job ausführen.

Entwickeln Ihres Codes

Daten direkt in Open-Source-Objekte importieren

Verwenden Sie den Datenkonnektor zum optimierten Laden von Daten aus Ihren Snowflake-Tabellen und Stagingbereichen in Open Source-Objekte wie Pandas Dataframes, PyTorch-Datensets und TensorFlow-Datensets. Der Datenkonnektor nutzt die verteilte Verarbeitung der Container Runtime, um die Datenaufnahme zu beschleunigen. Nach dem Laden von Daten können Sie diese mit jeder Open-Source-Bibliothek verwenden.

Mit dem Datenkonnektor können Sie strukturierte und unstrukturierte Daten aus verschiedenen Quellen laden. Zusätzlich zu seiner Vielseitigkeit bietet es gegenüber to_pandas eine verbesserte Leistung beim Laden großer Datensätze.

Trainieren mit OSS-Frameworks

Wir empfehlen, Ihren vorhandenen Open-Source-Code zu verwenden oder Modelle direkt in Snowflake mit Open-Source-Bibliotheken zu trainieren.

Sie können die folgenden Features für Ihre Snowflake ML-Workflows nutzen:

  • Importieren Sie Features, die in der Snowflake Feature Store erstellt und verwaltet werden.

  • Verwenden Sie Snowpark, um Ihre Datenvorverarbeitung und -umwandlung zu skalieren.

  • Bringen Sie Ihre Daten mit den Datenkonnektor-APIs in den Speicher.

  • Nutzen Sie die neuesten OSS-Frameworks, um Features zu entwickeln, Modelle zu trainieren und diese zu bewerten.

Skalieren Sie Arbeitslasten mit verteilten APIs

Das Training von ML-Modellen auf großen Datensätzen kann die Ressourcen eines einzelnen Knotens übersteigen. Mit den verteilten APIs von Snowflake können Sie Feature-Engineering- und Trainings-Workflows über mehrere Knoten hinweg skalieren und so die Leistung verbessern. Mit den verteilten APIs können Sie Folgendes tun:

Abstimmen von Hyperparametern mit verteilten HPO

Beschleunigen Sie die Abstimmung von Hyperparametern mit verteilten HPO von Snowflake ML, optimiert für in Snowflake gespeicherte Daten. Sie können auch Open-Source-Bibliotheken wie hyperopt oder optuna verwenden.

Operationalisieren Ihrer Trainings-Workflows

Snowflake ML Jobs ermöglichen es Ihnen, Python-basierte ML-Workloads aus der Ferne auszuführen, was die Operationalisierung von interaktiv in Umgebungen wie Snowflake-Notebooks entwickelter Arbeit erleichtert. Dies gewährleistet sicheres, reproduzierbares ML-Training und -Scoring und lässt sich nahtlos in CI-/CD-Pipelines integrieren.

Planen Sie ML-Jobs und -Pipelines zur regelmäßigen Ausführung

Verwenden Sie Einführung in Aufgaben, um komplexe DAGs zu erstellen, die ML-Trainings-Pipelines darstellen, bei denen jede Aufgabe einer Phase in Ihrem Workflow entspricht. Diese Pipelines können nach einem Zeitplan laufen oder durch Ereignisse getriggert werden. Sie können jedem Schritt nach Bedarf Ressourcen zuweisen und so Ihre Pipeline optimieren. Snowsight bietet integrierte Tools zum Anzeigen, Verwalten und Ändern dieser Pipelines.

Mit der integrierten Git-Integration von Snowflake können Sie auch Git-Hooks konfigurieren, um die ML-Pipelines zu erstellen und auszulösen, die am besten zu Ihrer CI-/CD-Konfiguration passen.