Snowflake Notebooksからの機械学習機能の使い心地を確認してみた

Snowflake Notebooksからの機械学習機能の使い心地を確認してみた

PythonとSQLの両方を使用できるため、Snowpark MLだけではなく、Snowflake AI & MLの機能も使いやすいのがとてもよかったです。
Clock Icon2024.07.16

データ事業本部 機械学習チームの鈴木です。

先日、Snowflake Notebooksがパブリックプレビューになりました。

Snowpark MLはじめ、Snowflakeの機械学習機能を利用するためのインターフェースとしての役割を担う機能だと思います。

機械学習機能を使う上で、どのような使い方になりそうか気になる動線を確認したのでご共有します。

Snowflake Notebooksについて

Snowflake上でいわゆるJupyter Notebookが使えるものとなります。

Snowflakeの機械学習機能としては、開発・検証向けのインターフェースの一つとして紹介されています。

Snowflake MLの全体像

(引用元:Getting Started with Snowflake ML

DevelopersIOでは、nokomoro3さんが使い心地やGit連携機能を試してみた記事を書いてくれていました。特にSnowflake上で複数のNotebookを作成して様々な検証をすることが想定されるので、Git連携で検証した内容が保存・追跡できるのはとてもよいですね。

セルはPythonだけではなくSQLも用意されているため、Snowflake AI & MLの機能を気軽に呼び出せるのもポイントだと思います。

試してみた

以下、試した内容を記載します。内容はパブリックプレビュー段階のものになることにご留意ください。

NotebookからのSnowflakeへの接続

Notebook作成時に、デフォルトでセッションの作成方法が記載されているのでこれにしたがいます。

from snowflake.snowpark.context import get_active_session
session = get_active_session()

このセッションを使い、Snowparkのデータフレームを作成することで、Snowpark ML Modelingの入力に使うことができます。

input_tbl = f"{session.get_current_database()}.{session.get_current_schema()}.{INPUT_TABLE}"
input_df = session.table(input_tbl)

上記の例では、データベースやスキーマは、Notebook作成時に指定したものをセッションから取得しています。

Snowpark MLのインストール

Snowpark MLはPackagesよりインストールすることで利用できました。

Snowpark MLのインストール

インストール中はRun allなどセルの実行ができなくなるため、完了するまでしばらく待ちます。

例えば以下のようにインポートしてみて、インストールできていることを確認しました。

import snowflake.ml.modeling.preprocessing as snowml

SQLセルとの組み合わせ

SQLのセルがあるため、ML Functionsも気軽に実行することができました。

SQLセルからのForecast実行結果

Predict Ad Impressions with ML-Powered Analysisのサンプルの実行結果)

SQLセルのメリットとしては、現状Snowparkのsnowflake.snowpark.Session.sqlではML Functionsの機能が実行できないことを想像して頂けると使いやすさが分かりやすいと思います。

スクリーンショット 2024-07-15 9.50.02

PythonスクリプトとSQLを組み合わせて作業をすることは、Snowflakeではよくあります。例えば以下です。

  • Snowpark ML Modelingでモデルを訓練し、Model Registryに登録したあと、SQLのプロシージャにしてタスク化する
  • Snowpark DataframeやSnowpark ML Modelingで生データを前処理した後、テーブルに保存し、ML Functionsで処理する

こういった作業を単一のNotebookでできるのはとても使いやすいですね。

最後に

簡単にですが、機械学習用途でSnowflake Notebooksを利用する際の気になる動線について確認してみました。

PythonとSQLの両方を使用できるため、Snowflakeを使う際の用途によく合っており、非常に使いやすいです。

一般提供開始が待ち遠しい機能ですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.