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
Snowpark MLをインストールするconda環境を作成します。既存の環境を使用する場合は、このステップをスキップします。
conda create --name snowpark-ml
Conda環境をアクティブにします。
conda activate snowpark-ml
Snowflake condaチャネルからのSnowpark
snowflake-ml-python
のインストールconda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
Tip
可能な限りSnowflake Condaチャネルからパッケージをインストールして、Snowpark ML で検証済みのパッケージを確実に受け取れるようにしてください。
PyPI からのインストール¶
標準のPythonパッケージマネージャー、 pip
を使用して、Python Package Index(PyPI)からSnowpark snowflake-ml-python
パッケージをインストールできます。
警告
conda環境を使用している場合は、このインストール手順を使用しないでください。代わりに condaの命令 を使用します。
プロジェクトディレクトリに移動し、Python仮想環境を有効にします。
cd ~/projects/ml source .venv/bin/activate
snowflake-ml-python
パッケージをインストールします。python -m pip install snowflake-ml-python
オプションのモデリング依存関係のインストール¶
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
以下のコマンドを使用して仮想環境をアクティブ化し、 pip
を使用してlightgbmをインストールします。
.venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Snowflakeはオプションの依存関係を追加することがあります。pipを使ってオプションの依存関係をすべてインストールするには
.venv/bin/activate
python -m pip install 'snowflake-ml-python[all]'
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()
これで、セッションを必要とするものに渡すことができます。
Tip
Python接続用Snowflake ConnectorからSnowpark Pythonセッションを作成するには、セッションビルダーに接続オブジェクトを渡します。ここで、 connection
はPython用Snowflakeコネクタ接続です。
session = Session.builder.configs({"connection": connection}).create()
ウェアハウスサイズの指定¶
モデルのトレーニングや推論など、多くの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()
セッションでウェアハウスが指定されていない場合や別のウェアハウスを使用する場合は、セッションの use_warehouse
メソッドを呼び出します。
sp_session.use_warehouse("mlwarehouse")
API 参照情報¶
Snowpark ML API リファレンス には、一般に公開されているすべての機能に関するドキュメントが含まれています。インタラクティブなPythonセッションでPythonの help
関数を使用すると、どの API の詳細な API ドキュメントも取得できます。例:
from snowflake.ml.modeling.preprocessing import OneHotEncoder
help(OneHotEncoder)