Snowpark ML: Snowflake用機械学習ツールキット

Snowpark ML は、機械学習モデルの構築と展開のための SDKs と基になるインフラストラクチャを含むツールのセットです。Snowpark ML を使用すると、データの前処理とトレーニング、管理、そして ML モデルの展開をすべてSnowflake内で実行できます。機械学習ワークフローのあらゆるステージで、Snowflakeの実証済みのパフォーマンス、スケーラビリティ、安定性、ガバナンスのメリットを享受できます。

Snowpark ML はSnowpark Pythonと連動しており、Snowpark DataFrames を使用してトレーニングデータやテストデータを保持し、予測結果を受け取ることができます。

互換性のある IDE でSnowpark Pythonクライアントアプリケーションを記述する場合に、Snowpark ML を使用することができます。

Snowpark ML の主な構成要素

Snowpark ML は、 APIs によりエンドツーエンドの機械学習開発および展開プロセスの各ステージをサポートし、Snowpark ML DevelopmentとSnowpark ML Opsの2つの主要コンポーネントを含んでいます。

Snowpark ML Development

Snowpark ML には、Snowflake内で効率的にモデルを開発できるPython APIs のコレクションが含まれています。

  • モデリングパッケージsnowflake.ml.modeling )。データ前処理、特徴量エンジニアリング、モデルトレーニングのための APIs を提供します。このパッケージには、 Snowpark用に最適化されたウェアハウス が提供するコンピューティングリソースを活用してスケーラブルなデータ変換を実現する APIs を備えた前処理モジュールも含まれています。これらの APIs は、scikit-learn、xgboost、lightgbmなどのおなじみの ML ライブラリに基づいています。

  • 近日提供予定のフレームワークコネクタのセット。ネイティブデータローダー形式で、PytorchとTensorflowフレームワークの最適化された、安全で高パフォーマンスのデータプロビジョニングを提供します。ドキュメントをいち早く入手するには、Snowflakeの担当者にお問い合わせください。

Snowpark ML Ops

近日提供予定の特徴量スイート、Snowpark ML Opsは、モデル管理機能とSnowflakeへの統合展開を提供して、Snowpark ML Development API を補完します。これらの特徴量のドキュメントをいち早く入手するには、Snowflakeの担当者にお問い合わせください。

  • FileSet API は、 Python fsspec 準拠の API により、クエリやSnowpark DataFrame からSnowflake内部ステージにデータを具体化するためのもので、そのデータを扱うための多くの便利なメソッドも合わせて提供します。

  • モデルレジストリは、Snowflake内でモデルを管理し、ベクトル化されたユーザー定義関数(UDFs)としてSnowflakeウェアハウスに展開するためのPython API です。

Snowpark ML をはじめるにあたり

Snowpark ML のすべての特徴量は、単一のライブラリで利用できます。ローカルcondaチャネル、または PyPi からインストールできます。condaの公式チャネルは将来利用できるようになる予定ですが、弊社から直接パッケージをダウンロードすることが、最新バージョンを入手する最良の方法であることに変わりはありません。

Snowpark Pythonの設定

Snowpark ML は Snowpark Pythonと連動しています。Snowpark Pythonのインストールと設定の手順については、 Snowpark Pythonの開発環境の設定 をご参照ください。

ローカルcondaチャネルからのSnowpark ML のインストール

まず、ローカルcondaチャネルを作成します。Condaはこのチャネルからファイルを受け取り、Conda環境にインストールします。これらのステップを実行する必要があるのは一度だけです。

  1. conda-buildをインストールします。

    conda install conda-build
    
    Copy
  2. チャネルのファイルを格納するディレクトリをコンピューターのどこかに作成します。どのような名前でも使用できます。

    mkdir -p ~/conda-snowpark-ml
    
    Copy
  3. 最新のSnowpark ML リリースを Google Drive からダウンロードします。各リリースはそれぞれのフォルダーにあります。ご希望のリリースを含むフォルダーを開き、そのフォルダーの .tar.bz2 ファイルをダウンロードします。前のステップで作成したチャネルフォルダー(例: ~/conda-snowpark-ml)に保存します。

  4. conda index を使用してチャネルを作成します。

    conda index ~/conda-snowpark-ml
    
    Copy

    Snowpark ML の新バージョンがリリースされたら、それを同じフォルダーにダウンロードし、同じ conda index コマンドを実行してチャネルで利用できるようにします。

ローカルcondaチャネルを作成したら、Snowpark ML をプロジェクトにインストールします。次のステップに従います。

  1. 使用するconda環境をアクティブにします(例では ml-env)。

    conda activate ml-env
    
    Copy
  2. ローカルチャネルからパッケージをインストールします。Snowflake ML パッケージはSnowflakeからの他のパッケージに依存しているため、Snowflake condaチャネルも指定します。

    conda install -c file://path/to/conda-snowpark-ml -c https://repo.anaconda.com/pkgs/snowflake/ \
    https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

    このコマンドは1行で入力する必要があります。

    先に作成したチャネルフォルダーは実際のパスを指定する必要があることに注意してください。これは、 ~ をホームディレクトリへのショートカットとして使用できる、以前のステップで使用したパスとは異なる場合があります。

PyPI からのSnowpark ML のインストール

標準のPythonパッケージマネージャー、 pip を使用して、Pythonパッケージインデックス(PyPI)からSnowpark ML パッケージをインストールすることもできます。

警告

conda環境を使用している場合は、このインストール手順を使用しないでください。

  1. Pythonの仮想環境を使用している場合はアクティブにします。

    source .venv/bin/activate
    
    Copy
  2. Snowpark ML パッケージをインストールします。

    python -m pip install snowflake-ml-python
    
    Copy

コストの考慮事項

Snowflakeでモデルをトレーニングして使用すると、仮想ウェアハウスでコードを実行することになり、コンピューティングコストが発生します。これらのコストは、モデルの型や学習予測に使用するデータ量によって異なります。

Snowflakeのコンピューティングコストに関する一般的な情報については、 コンピューティングコストについて をご参照ください。

参考文献

Snowpark ML モデリングについては、以下のリソースをご参照ください。

Snowflakeの担当者にお問い合わせいただくと、近日提供予定の特徴量に関するドキュメントをいち早く入手できます。

API 参照情報

インタラクティブなPythonセッションでPythonの help 関数を使用すると、どのクラスでも API の詳細なドキュメントを取得できます。例:

from snowflake.ml.modeling.preprocessing import OneHotEncoder

help(OneHotEncoder)
Copy

API の予備的な参照は、 Google Drive から ZIP アーカイブとして入手できます。API 参照ファイルをダウンロードし、解凍してできたフォルダー中のファイル index.html を開きます。