【レポート】最新情報:Snowflakeによる機械学習 – Snowflake Data Cloud World Tour Tokyo #SnowflakeDB
こんにちは、スズです。
2023年09月08日(金)、ANAインターコンチネンタル東京にて、Snowflake社による日本最大級のデータイベント「Snowflake Data Cloud World Tour Tokyo」が開催されました。
本記事では、『最新情報:Snowflakeによる機械学習』のセッションレポートをお届けします。
セッション概要
- スピーカー
- Snowflake株式会社 セールスエンジニアリング本部 シニアセールスエンジニア 西原 拓未氏
データサイエンティストや機械学習エンジニアがSnowflake上でネイティブに機械学習モデルを開発し、本番適用するために役立つ最新の機能追加について紹介します。
引用元:Data Cloud World Tour - Tokyo - Agenda
セッションレポート
ML実稼働への道筋は
- 構造化、半構造化、非構造化データの様々なデータを貯めこみ、バッチやストリーミング、リアルタイムで連携してパイプラインを作っていく
- 開発、運用、利用と、様々なチームにステークホルダーも分かれていく
- 開発
- 機械学習の前準備に特徴量エンジニアリングとしてデータに特徴量を付けて機械学習のモデル開発を行うための準備をしていく
- そこからトレーニングを行っていき、モデル開発をしていき、開発したモデルをMLエンジニアに展開
- 運用
- 開発したモデルを有用にするために特徴量パイプラインというところで、日々トレーニングして推論して、反復的かつ実験的なプロセスをしていく
- 利用
- 運用で回されていた機械学習モデルが、最後にアナリストやビジネスチームによってBIなどに機械学習モデルを追加していったり、カスタムアプリケーションを作成して機械学習モデルに対応していく
サイロ化されたデータとチーム横断的な処理により前途多難
- データの断片化
- 開発、運用、利用で使っているツールが異なる
- 様々なストレージにデータが入っている
- どこにデータが溜まっているか分からない
- どのようなデータから機会学習モデル作られているのか、機械学習の結果を信じていいのか
- データの追跡性の問題が出てくる
- 処理の複雑さ
- データのパイプラインを作ることも大変
- 入ってくるデータが汚れていて、実際にモデルを開発するよりも準備に時間がかかる
- モデルを作っていくためにはGPUのインフラを管理する必要もある
- 従来ではGPUのインフラをアップデートしていかないといけない
- インフラ管理も大変
- サイロ化されたチームとツール
- どのツールでやっていくことが正しいのか
- ツールによってデータ連携の方法が異なる
- 別のツールだとすぐに使えない
統合された安全かつスケーラブルなAI/MLのためのプラットフォーム
- SnowflakeがMLのワークロードでどのように支援できるのか
- 統合お呼び管理されたアクセス
- ストリーミングでのデータの取り込み
- 構造化、半構造化、非構造化データをシームレスに保存することができる
- マーケットプレイスでサードパーティのデータの利用
- 伸縮性のある処理
- 仮想ウェアハウスでスケーラブルにSQLエンジンを使える
- Snowparkコンテナサービスで、CPUだけでなくGPUのインフラも使って処理できる
- MLのライフサイクル全体にわたる柔軟性
- Snowparkでは非SQLの処理が行える
- 機械学習に必要なSnowpark APIがたくさん追加された
- SnowflakeのプラットフォームでシームレスなML処理ができるようになってきている
Snowpark:安全な展開と非SQLコードの処理
- サーバー側ランタイム
- 従来Snowflake上でUDFやストアドプロシージャで実行
- DataFrame APIでデータフレームを作成し、処理したデータをSnowflakeに返してSQL処理と組み合わせる
- 機械学習のライフサイクルを支えるために、MLモデリングAPIとMLオペレーションAPIが追加された
特徴量エンジニアリングのスケールアウトとMLトレーニングの合理化
- 馴染みのあるライブラリをSnowflake上でシームレスに使える
- 今まではデータはSnowflakeで貯めて、機械学習の処理は別のツールに出していたが、モデリングAPIによってシームレスに行えるようになった
Snowpark MLモデル開発API
- クライアント側のライブラリでの前処理やモデルのトレーニングをモデリングAPIから操作することができる
- SQLエンジンで実行できる
- 安全なサンドボックスで実行できる
ユーザーの声(Hex)
- Snowflakeのエンジン上でシームレスに実行できるところで効果を感じている
ユーザーの声(Dataiku)
- 新たな学習コストをかけずに、機械学習のナレッジを使ってユースケースをSnowflakeで実行できる
一般的なフレームワーク用データプロビジョニングを向上
- ニューラルネットワークのユースケースを行っていく場合に、PytorchやTensor Flowといったフレームワークを使っていく場合にもSnowflakeが有用なAPIを提供している
- 従来のSnowflake上の処理が上の図
- PytorchやTensor Flowを使う場合は外部に出す必要がある
- 使いやすいように手動での変換が必要
- 後処理のフローを考えて作る必要
- GPUトレーニングのインフラ準備が必要
- FileSet APIで改善されたのが下の図
- データストレージに保存されたファイルをPythonの標準ファイルシステムのAPIのように使うことができる
- データをシームレスにPytorchやTensor Flowにメソッドを使って連携することができる
ユーザーの声(Comet)
- Snowflakeのクエリやデータセットの追跡とバージョン管理をFileSet APIの効果として挙げている
MLOpsにSnowflakeを使用すべき理由
- 機械学習は実験的で反復的なライフサイクル
- 実験、トレーニングと最適化を行ってモデルを作る
- 展開して、機械学習が正しく結果を返しているか(モニタリング)
- ライフサイクルを回すためにMLOpsが必要
- 特徴量にメタデータを付与して管理
- 継続的なモニタリングのための可観測性
- ライフサイクルデータを1つの場所で管理
- MLOpsのユースケースをシームレスに行うことができる
Snowpark MLオペレーション
- Snowflake上で様々なモデルを管理できるようになった
- Dataikuなどパブリッククラウドのツールを登録できる
- Snowparkで作ったMLの機能も管理できる
- 機械学習のモデルを提供しているベンダーのものも管理できる
- デプロイまでもオペレーションとして回せる
Snowparkモデルレジストリ
- モデルレジストリに機械学習のモデルを登録できる
- METADATAにモデルに関してメタデータを付与して管理できる
- MODELSに様々なモデルを登録していく
- Viewsにはメトリクスなどをビューで管理できる
- モデルはStagesで管理する
- Python UDFなどを置いていき、ウェアハウスやSnowparkコンテナサービスで実行
Snowparkコンテナサービス
- クーバネーティスベースノクラスターで起動できる
- 特徴
- CPUとGPUが使える
- 言語の柔軟性
- いくつかの言語でしか操作できなかったが、様々な言語を用いてアプリを起動できる
まとめ
- 特徴量エンジニアリングの加速とMLトレーニングに役立つSnowpark ML開発、Snowpark MLフレームワーク
- モデルの登録とデプロイを行うモデルレジストリ
- Streamlitでビジュアル化することもできる
- アプリケーションとして公開していくところまでシームレスに行える
最後に
「Snowflake Data Cloud World Tour Tokyo」のセッション『最新情報:Snowflakeによる機械学習』のレポートをお届けしました。