Verwalten von Paketen und Laufzeitumgebung

Snowflake-Notebooks laufen innerhalb einer vorgefertigten Containerumgebung, die für eine skalierbare AI/ML-Entwicklung auf Basis von Snowflake Container Runtime optimiert ist.

Python-Versionen

Snowflake-Notebooks unterstützen Python 3.10 bis 3.12. Wenn Sie einen Notebook-Service erstellen, wählen Sie die Python-Version aus, die am besten zu Ihren Workload-Anforderungen passt.

Vorinstallierte Pakete

Snowflake Container Runtime enthält etwa 100 Pakete und Bibliotheken, die eine Vielzahl von ML-Entwicklungsaufgaben in Snowflake unterstützen. Diese Pakete werden nativ auf der von Snowflake verwalteten CPU- und GPU-Infrastruktur ausgeführt.

Um die vorinstallierten Pakete anzuzeigen, führen Sie pip freeze in einer Python-Zelle oder im Notebook-Terminal aus.

Installieren zusätzlicher Pakete (falls erforderlich)

Snowflake unterstützt die Installation von Paketen aus verschiedenen Quellen.

Aus externen Repositorys

Nach der Konfiguration von Integrationen für den externen Zugriff (EAIs) für einen sicheren Repository-Zugriff können Sie Pakete direkt aus externen Quellen wie PyPI installieren. Benutzende haben Zugriff auf ein umfassendes Ökosystem von Paketen, die über die vorinstallierte Laufzeitumgebung hinausgehen, wodurch eine sichere Konnektivität zu externen Repositorys sichergestellt wird.

Sie können pip install in einer Python-Zelle oder im Notebook-Terminal ausführen.

Weitere Informationen dazu finden Sie unter Einrichten des externen Zugriffs für Snowflake Notebooks.

Über requirements.txt

Sie können erforderliche Paketversionen in einer requirements.txt-Datei angeben und installieren, um eine konsistente Einrichtung der Umgebung sicherzustellen. Installieren Sie diese mit dem folgenden Befehl:

!pip install -r requirements.txt
Copy

Bemerkung

Wenn die in requirements.txt angegebene Paketversion im Konflikt mit unterstützten Versionen von vorinstallierten Paketen steht, wird die Python-Umgebung unter Umständen beschädigt. Überprüfen Sie vor der Installation die Kompatibilität.

Aus Workspace-Dateien

Sie können .whl- oder .py-Dateien herunterladen oder erstellen, in Ihren Arbeitsbereich hochladen und installieren oder importieren.

  • ** Wheel-Dateien (.whl)**: Laden Sie die .whl-Datei hoch und installieren Sie sie:

    !pip install file_name.whl
    
    Copy

    Wenn das Paket Abhängigkeiten enthält, die noch nicht installiert sind, laden Sie den vollständigen Abhängigkeitsstrukturbaum hoch (entweder direkt in Workspaces oder in einen Stagingbereich). Alternativ können Sie auch eine EAI hinzufügen, die den Zugriff auf ein Repository ermöglicht, in das das Paket heruntergeladen werden kann (z. B. PyPI).

  • Python-Dateien (.py): Module, die in Ihrem Arbeitsbereich gespeichert sind, können direkt importiert werden, um Dienstprogramme und Funktionen über Notebooks hinweg gemeinsam zu nutzen. Beispiel:

    from my_utils import my_func
    
    Copy

Von einem Snowflake-Stagingbereich

Stagingbereiche bieten eine sichere und geregelte Bereitstellung von Paketen, indem vorhandene Snowflake-Datenspeicher- und Governance-Kontrollen für Paketdateien genutzt werden. Verwenden Sie die Snowpark-Sitzung, um Paketdateien aus einem Snowflake-Stagingbereich in die Containerumgebung abzurufen, um sie zu importieren und zu verwenden. Beispiel:

from snowflake.snowpark.context import get_active_session
import sys

session = get_active_session()
session.file.get("@db.schema.stage_name/math_tools.py", "/tmp")

sys.path.append("/tmp")
import math_tools

math_tools.add_one(3)
Copy

Verwalten der Laufzeit

Anheften zur Laufzeit

Alle Notebook-Services sind an die bei der Erstellung ausgewählte Laufzeitumgebung gebunden, es sei denn, Sie ändern diese explizit, indem Sie den Service bearbeiten. Beispiel: Ein Notebook-Service, der auf Runtime 2.0 erstellt wurde, wird nicht automatisch aktualisiert, wenn neue Runtime-Versionen veröffentlicht werden.

Scannen von Schwachstellen zur Laufzeit

Snowflake überprüft die Runtime-Images täglich auf Sicherheitslücken. Hohe oder kritische gängige Schwachstellen und Gefährdungen (CVEs) werden durch neue Runtime-Versionen behoben, die innerhalb von 30 Tagen nach Erkennung veröffentlicht werden.

Bestehende Notebook-Services können weiterhin Runtimes mit erkannten CVEs nutzen. Allerdings können Runtimes mit bekannten CVEs beim Erstellen neuer Notebook-Services nicht ausgewählt werden.