パッケージとランタイムの管理¶
Snowflake Notebooksは、Snowflake Container Runtimeを活用した、スケーラブルな AI/ML 開発に最適化された事前構築済みのコンテナ環境内で実行されます。
Pythonバージョン¶
Snowflake NotebooksはPython 3.10から3.12をサポートしています。ノートブックサービスを作成する際は、ワークロードの要件に最適なPythonバージョンを選択してください。
事前インストール済みのパッケージ¶
Snowflake Container Runtimeには、Snowflake内のさまざまな ML 開発タスクをサポートする約100個のパッケージとライブラリが含まれています。これらのパッケージは、Snowflakeが管理する CPU および GPU インフラストラクチャ上でネイティブに実行されます。
事前インストール済みのパッケージを表示するには、Pythonのセルまたはノートブックのターミナルで pip freeze を実行します。
追加パッケージのインストール¶
Snowflakeは、複数のソースからのパッケージインストールをサポートしています。
外部リポジトリから¶
安全なリポジトリアクセスのために外部アクセス統合( EAIs )を構成した後、 PyPI などの外部ソースからパッケージを直接インストールできます。ユーザーは、事前にインストールされたランタイムを超えて、パッケージの包括的なエコシステムにアクセスでき、外部リポジトリへの安全な接続を確保します。
Pythonのセルまたはノートブックのターミナルで pip install を実行できます。
詳細については、 Snowflake Notebooks の外部アクセスの設定 をご参照ください。
始まり requirements.txt¶
一環した環境設定を確保するために、 requirements.txt ファイルで必要なパッケージバージョンを指定し、インストールできます。次のコマンドを使用して、それらをインストールします。
!pip install -r requirements.txt
注釈
requirements.txt で指定されたパッケージバージョンが 事前インストール済みのパッケージ のサポートされているバージョンと競合する場合、Python環境が壊れる可能性があります。インストールする前に互換性を検証します。
ワークスペースファイルから¶
.whl または .py ファイルをダウンロードまたはビルドして、ワークスペースにアップロードし、インストールまたはインポートできます。
ホイールファイル(.whl):
.whlファイルをアップロードしてインストールします。!pip install file_name.whl
パッケージにまだインストールされていない依存関係が含まれている場合は、完全な依存関係ツリーを(ワークスペースに直接またはステージに)アップロードします。あるいは、パッケージをダウンロードできるリポジトリへのアクセスを許可する EAI をアタッチします(例: PyPI )。
Pythonファイル(.py):ワークスペースに格納されたモジュールは、ノートブック間でユーティリティや関数を共有するために直接インポートできます。例:
from my_utils import my_func
Snowflakeステージから¶
ステージは、既存のSnowflakeデータストレージとパッケージファイルのガバナンス制御を活用することで、安全で管理されたパッケージの展開を実現します。Snowparkセッションを使用して、Snowflakeステージからコンテナ環境にパッケージファイルを取得し、インポートして使用します。例:
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)
ランタイム管理¶
ランタイムのピン留め¶
サービスを編集して明示的に変更しない限り、すべてのノートブックサービスは作成時に選択されたランタイムにピン留めされます。たとえば、 Runtime 2.0 で作成されたノートブックサービスは新しいランタイムバージョンがリリースされても、自動的にアップグレードされません。
ランタイムの脆弱性スキャン¶
Snowflakeは、ランタイムイメージを毎日スキャンし、セキュリティの脆弱性を検出します。高または重大な共通脆弱性識別子( CVEs )には、検出から30日以内に新しいランタイムバージョンをリリースすることで対処します。
既存のノートブックサービスは、検出された CVEs を持つランタイムを引き続き使用できます。ただし、既知の CVEs があるランタイムは、新しいノートブックサービスを作成する際に選択できません。