Python APIs for Snowflake ML

snowflake-ml-python Pythonパッケージは、様々なSnowflake ML ワークフローコンポーネントに接続するPython APIs を提供し、独自のモデルを構築しトレーニングするための APIs も含んでいます。これらの APIs は、自分のワークステーション上のお気に入りのPython IDE や、Snowsightワークシート、Snowflakeノートブックで使用できます。

Tip

でのエンドツーエンドのワークフローの例については、 Snowpark を使用した機械学習入門 ML をご参照ください。

Snowflake NotebooksでSnowflake ML を使用

Snowflake Notebooks は、Python、SQL、Markdownをブレンドした、データ作業のための使いやすいノートブックインターフェイスを提供します。ノートブックで Snowflake ML 機能を使用するには、ノートブック上部の Packages メニューを使用して Anaconda パッケージ snowflake-ml-python を選択します。

Notebooksは CPU と GPU の両方のランタイムオプションをサポートしています。多くのモデルが GPU が利用可能であることを必要とするか、利益を得ます。

重要

snowflake-ml-python パッケージとその依存関係は、組織の パッケージポリシー で許可されていなければなりません。

Snowsight WorksheetsでSnowflake ML

Snowsight Worksheets は、Pythonコードを実行するための強力で多用途な方法を提供します。ワークシートで Snowflake ML 機能を使用するには、ワークシート上部の Packages メニューを使用して Anaconda パッケージ snowflake-ml-python を選択します。

重要

snowflake-ml-python パッケージとその依存関係は、組織の パッケージポリシー で許可されていなければなりません。

Snowflake ML をローカルで使用する

自分のワークステーションやSnowflake以外の場所で開発するには、 snowflake-ml-python パッケージをインストールする必要があります。Snowpark ML のすべての特徴量は、単一のパッケージ、 snowflake-ml-python で提供されます。Snowflake condaチャネルから conda コマンドを使用するか、Python Package Index(PyPI)から pip を使用してパッケージをインストールすることができます。Condaがお勧めです。

Snowflake condaチャネルからのインストール

重要

ARMベースのMac(M1またはM2チップ搭載)上のCondaからSnowpark snowflake-ml-python をインストールするには、Conda環境を作成する際にシステムアーキテクチャを指定する必要があります。これを行うには、 conda create コマンドに CONDA_SUBDIR=osx-arm64 を含めます。: CONDA_SUBDIR=osx-arm64 conda create --name snowpark-ml

  1. Snowpark MLをインストールするconda環境を作成します。既存の環境を使用する場合は、このステップをスキップします。

    conda create --name snowpark-ml
    
    Copy
  2. Conda環境をアクティブにします。

    conda activate snowpark-ml
    
    Copy
  3. Snowflake condaチャネルからのSnowpark snowflake-ml-python のインストール

    conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

Tip

可能な限りSnowflake Condaチャネルからパッケージをインストールして、Snowpark ML で検証済みのパッケージを確実に受け取れるようにしてください。

PyPI からのインストール

標準のPythonパッケージマネージャー、 pip を使用して、Python Package Index(PyPI)からSnowpark snowflake-ml-python パッケージをインストールできます。

警告

conda環境を使用している場合は、このインストール手順を使用しないでください。代わりに condaの命令 を使用します。

  1. プロジェクトディレクトリに移動し、Python仮想環境を有効にします。

    cd ~/projects/ml
    source .venv/bin/activate
    
    Copy
  2. snowflake-ml-python パッケージをインストールします。

    python -m pip install snowflake-ml-python
    
    Copy

オプションのモデリング依存関係のインストール

Modeling APIs には、Snowpark snowflake-ml-python の依存関係としてインストールされていない依存関係を必要とするものがあります。scikit-learnとxgboostパッケージはデフォルトでインストールされますが、lightgbmはオプションの依存関係です。 snowflake.ml.modeling.lightgbm 名前空間のクラスを使う予定の場合は、ご自身でlightgbmをインストールしてください。

以下のコマンドを使用してconda環境をアクティブ化し、Snowflake condaチャンネルからlightgbmをインストールします。

conda activate snowpark-ml
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ lightgbm
Copy

以下のコマンドを使用して仮想環境をアクティブ化し、 pip を使用してlightgbmをインストールします。

.venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Copy

Snowflakeはオプションの依存関係を追加することがあります。pipを使ってオプションの依存関係をすべてインストールするには

.venv/bin/activate
python -m pip install 'snowflake-ml-python[all]'
Copy

Snowpark Pythonの設定

Snowpark Pythonは snowflake-ml-python の依存関係であり、自動的にインストールされます。ご使用のシステムにSnowpark Pythonが設定されていない場合は、追加の構成ステップが必要になることがあります。Snowpark Pythonの設定手順については、 Snowpark Pythonの開発環境の設定 をご参照ください。

Snowflakeへの接続

Python で Snowflake MLの機能を使用する前に、Snowpark Session オブジェクトを使用して Snowflake に接続します。 snowflake.ml.utils.connection_params モジュールの SnowflakeLoginOptions 関数を使用して、セッションを作成するための構成設定を取得します。この関数は、 SnowSQL 構成ファイル 内の名前付き接続から、または設定した環境変数から、接続設定を読み取ることができます。これらのパラメーターを含むディクショナリを返し、それを使用して接続を作成することができます。

以下の例では、 SnowSQL 構成ファイルの名前付き接続 myaccount から接続パラメーターを読み取っています。Snowpark Pythonセッションを作成するには、 Session クラスのビルダーを作成し、ビルダーの configs メソッドに接続情報を渡します。

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params

params = connection_params.SnowflakeLoginOptions("myaccount")
sp_session = Session.builder.configs(params).create()
Copy

これで、セッションを必要とするものに渡すことができます。

Tip

Python接続用Snowflake ConnectorからSnowpark Pythonセッションを作成するには、セッションビルダーに接続オブジェクトを渡します。ここで、 connection はPython用Snowflakeコネクタ接続です。

session = Session.builder.configs({"connection": connection}).create()
Copy

ウェアハウスサイズの指定

モデルのトレーニングや推論など、多くのSnowflake MLの機能は、Snowflakeウェアハウスでコードを実行します。これらの操作は、接続に使用したセッションにより指定されたウェアハウスで実行されます。たとえば、 SnowSQL 構成ファイル の名前付き接続からセッションを作成する場合は、名前付き構成の warehousename パラメーターを使用してウェアハウスを指定することができます。

ウェアハウスの設定が構成内に存在しない場合は、ここに示すように、 Session オブジェクトを作成する際にその設定を追加することができます。

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
# Get named connection from SnowQSL configuration file
params = connection_params.SnowflakeLoginOptions("myaccount")
# Add warehouse name for model method calls if it's not already present
if "warehouse" not in params:
    params["warehouse"] = "mlwarehouse"
sp_session = Session.builder.configs(params).create()
Copy

セッションでウェアハウスが指定されていない場合や別のウェアハウスを使用する場合は、セッションの use_warehouse メソッドを呼び出します。

sp_session.use_warehouse("mlwarehouse")
Copy

API 参照情報

Snowpark ML API リファレンス には、一般に公開されているすべての機能に関するドキュメントが含まれています。インタラクティブなPythonセッションでPythonの help 関数を使用すると、どの API の詳細な API ドキュメントも取得できます。例:

from snowflake.ml.modeling.preprocessing import OneHotEncoder

help(OneHotEncoder)
Copy