Slide 1

Slide 1 text

簡単に始める Snowflakeの機械学習 2024.7.23 データ事業本部 鈴⽊那由太

Slide 2

Slide 2 text

例)本セッションの スクリーンショットは禁⽌ です。 後⽇『DevelopersIO』で記事が 公開されます。 そちらをお待ちください。 2 ご注意事項

Slide 3

Slide 3 text

Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 3 お願い

Slide 4

Slide 4 text

はじめに 4

Slide 5

Slide 5 text

本セッションの⽬的 ● Snowflakeでは、ますます機械学習向けの機能が充実してきている。 ○ Snowpark MLでは機械学習のロジックを、従来のPythonによる開発と同じように実装しつつ、 計算資源はSnowflakeにオフロードできる。 ○ Snowflake AI and MLでは、SQLをインターフェースに、Snowflakeに格納したデータに対し て、LLM・機械学習機能で処理を実⾏できる。 5 ● 以下を通して、実際に使い始める準備の機会にしたい ○ 全体像を把握する(各機能について詳細な話はしない) ○ 推しの機能について使い⼼地をご紹介する ○ この1年ほどの経緯を踏まえて、 最新の機能がどうなっているのか分かるようにする。

Slide 6

Slide 6 text

⽬次 ● Snowflakeについて ● 機械学習について ● Snowflakeの機械学習機能 ● 使い⼼地のご紹介 ○ Snowpark ML ○ ML Functions(時系列予測・要因分析) ● 運⽤や結果の活⽤のご紹介 6

Slide 7

Slide 7 text

スピーカー紹介 7 ⽒名 鈴⽊ 那由太(スズキ ナユタ) 所属 データ事業本部 インテグレーション部 機械学習チーム 受賞 2024 Japan AWS Top Engineers(Analytics)

Slide 8

Slide 8 text

Snowflakeについて 8

Slide 9

Slide 9 text

Snowflakeとは 9 ● AIデータクラウド(SaaS) ● 独⾃の SQLクエリエンジン・アーキテクチャを採⽤することで、従来型のDWHでは対応 できなかったパフォーマンス最⼤化・シンプルな操作・無制限の同時処理を実現している。 ● サービスのコンポーネントすべてがパブリッククラウドインフラストラクチャで実⾏される。 ○ AWS ○ Google ○ Azure ● Snowsight(ウェブインターフェイス)・Pythonなどのプログラム・SQLクライアントなどから アクセスできる。

Slide 10

Slide 10 text

Snowflakeとは 10 ● 共有ディスクデータベースアーキテクチャと⾮共有データベースアーキテクチャの ハイブリッドアーキテクチャであるため、前述のメリットが得られる。 ● Query processing層のマシンタイプを選択して、かける費⽤とマシンパワーを調整できる。 ※ https://docs.snowflake.com/ja/user-guide/intro-key-concepts より2024/07/06に引⽤

Slide 11

Slide 11 text

Snowflakeのメリット 11 ● コンピュートリソースのスケールアウト・スケールアップが⾮常に簡単で管理が楽 ● SaaSのため初期構築が簡単 ● StreamlitやWorksheetなど分析のためのインターフェースも充実している ● ネイティブのAI・機械学習機能により気軽により発展的な分析を実施できる ● 各種パブリッククラウドとの連携も⼿厚い ○ 例えば、AWSのS3バケットに対して直接ロード・アンロードができるなど

Slide 12

Slide 12 text

Snowflakeの機械学習機能 12 Snowflakeにはネイティブで格納したデータを機械学習で利⽤する機能が搭載されている。 ● Snowpark ML︓Pythonによる機械学習モデル構築 ○ ML Modeling ○ Feature Store ○ Model Registry ● Snowflake AI and ML ※分析に関するところだけ記載 ○ Cortex LLM Functions︓LLMによるテキスト処理 ○ ML Functions︓機械学習による分析・推論 ○ Document AI︓LLMによるドキュメント分析 2023/12にGA 2025/5にGA(既にPuPrのリージョン) 2023/12にGA 2024/5にGA 今年6⽉のData Cloud Summit 2024では、 Cortex SearchやFine-tuningなど、 新しい機能も発表︕

Slide 13

Slide 13 text

機械学習について 13

Slide 14

Slide 14 text

機械学習とは 14 ●LLMなどを利⽤し、幅広い⼊⼒に対して、⼈間に近い出⼒をする機械学習アルゴリズムのこと。 ●SnowflakeのSnowflake AI and MLではLLMを利⽤した機能も搭載されている。 ⼈⼯知能 (Artificial Intelligence, AI) 機械学習 (Machine Learning, ML) ●LLMよりも⼩さなモデルを利⽤し、0から訓練しても⼀般に現実的な時間で利⽤できる、 特定のタスクに特化した機械学習アルゴリズムのこと。 ●Snowpark MLやSnowflake AI and MLのML Functionsではこれらアルゴリズムを利⽤できる。 LLMの登場で、多くの⼈がイメージする ”⼈⼯知能(AI)” が実現しつつある。 今回の発表では、以下の使い分けで説明する。

Slide 15

Slide 15 text

MLとの使い分け 15 AI(⽣成AI)が常に良いわけではなく、今後は使い分けが重要になる ⽣成AIの課題 ●モデルが⼤きいため、従来⼿法よりもレスポンスが遅い場合が多く、 ⼤量のデータに対してバッチ処理する場合は既存⼿法の⽅が良い場合がある。 ●出⼒がコントロールしにくく、ハルシネーションが起こる可能性がある。 既存⼿法のメリット ●本番運⽤に関する知⾒が既に豊富にある。 ●モデルがLLMと⽐較して軽量なので、レスポンスが早くコストメリットが⾼い場合が多い。 ●LLMに⽐べて、再現性のある出⼒を得やすい。

Slide 16

Slide 16 text

MLによる解決のアプローチ 16 機械学習を使って解決したい場合、以下の選択肢がある。 ● 既存のツール・サービスを活⽤ ○既存のAI・機械学習系のクラウドサービスやサードパーティ製品を活⽤ ○Snowflake AI and MLの組み込み機能の利⽤など ● ⼀般的な⼿法(アルゴリズム)を使⽤ ○AI・機械学習⽤のフレームワークやライブラリを活⽤して有名な⼿法を適⽤ ○Snowpark MLのAPIの利⽤など ● 独⾃⼿法(アルゴリズム)の開発 ○既存の⼿法を応⽤したり、独⾃⼿法を開発する マネージド性⾼ カスタム性⾼

Slide 17

Slide 17 text

データ種別と適⽤領域 17 データ種別 ● テーブルデータ(トランザクションデータなど) ○ 分類、予測、異常検知、レコメンデーション ● テキスト(⾃然⾔語) ○ ドキュメント分類、キーワード抽出、 回答⽣成など ● 画像・動画 ○ 画像分類、物体検出 など Transaction Text Image Movie 適⽤領域 ● 流通・⼩売 ○ 需要・売上予測、在庫予測、 ⾃動発注、レコメンデーション など ● 製造 ○ 異常検知、故障予測、予知保全 など ● ⾦融 ○ 不正検出、与信判定 など ● エンターテイメント・ゲーム ○ ⾒込み顧客判定、離反予測、 不正検出、レコメンデーション など 必要なデータ種別と適⽤領域から、実現したいタスクに対してどんな準備が必要なのか考える。

Slide 18

Slide 18 text

Snowflakeの機械学習機能 18

Slide 19

Slide 19 text

Snowflakeの機械学習機能 19 ※ https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python より2024/0720に引⽤

Slide 20

Slide 20 text

Snowflakeの機械学習機能(再掲) 20 Snowflakeにはネイティブで格納したデータを機械学習で利⽤する機能が搭載されています。 ● Snowpark ML︓Pythonによる機械学習モデル構築 ○ ML Modeling ○ Feature Store ○ Model Registry ● Snowflake AI and ML ※分析に関するところだけ記載 ○ Cortex LLM Functions︓LLMによるテキスト処理 ○ ML Functions︓機械学習による分析・推論 ○ Document AI︓LLMによるドキュメント分析

Slide 21

Slide 21 text

Snowpark ML 21 ●Snowflake内で完結するML ワークフローを実現するための、Pythonライブラリとそのインフラストラクチャ ●前処理、特徴量エンジニアリング、モデルトレーニングに使い慣れたPythonフレームワークを使⽤できる ●ML Modeling・Feature Store・Model Registryの3つからなる ※ https://docs.snowflake.com/developer-guide/snowpark-ml/overviewより2024/0720に引⽤

Slide 22

Slide 22 text

Cortex LLM Functions 22 ●LLMを使ったFunctionsが利⽤可能 ○COMPLETE︓選択した⾔語モデルを使⽤して回答を⽣成する ○EMBED_TEXT︓英語の⼊⼒テキストをエンベディングする ○EXTRACT_ANSWER︓与えられた質問に対する答えをテキストから抽出する ○SENTIMENT︓英語の⼊⼒テキストの感情を-1〜1のスコアで返す ○TRANSLATE︓指定したソース⾔語からターゲット⾔語へテキストを翻訳する ○SUMMARIZE︓英語の⼊⼒テキストの要約を返す ●AWS US Eastなど⼀部リージョンで利⽤可能 ●token(⽂字数)に応じてコストがかかる ●Cortex Fine-tuning︓モデルのFine Tuning ○アメリカのリージョンだけでパブリックプレビュー ※ https://dev.classmethod.jp/articles/snowflake-try-cortex-llm-functions/ より引⽤

Slide 23

Slide 23 text

ML Functions 23 ●機械学習を使ったFunctionsが利⽤可能 ○Anomaly Detection( 異常検知) ○Forecasting(時系列予測) ○Classification(分類) ※パブリックプレビュー ○Contribution Explorer( 要因分析 ) ※パブリックプレビュー

Slide 24

Slide 24 text

Document AI 24 ●Snowflake独⾃の⼤規模⾔語モデル (LLM) であるArctic-TILT を使⽤してドキュメントからデータを抽出する機能 ●⼿書きのテキストだけでなく、ロゴやチェックマークなども読み取り情報を抽出することが可能 ●ウェアハウスとストレージコストに加え、AI Services computeの費⽤が発⽣ ●英語のドキュメントの処理をサポート ※ https://dev.classmethod.jp/articles/snowflake-try-document-ai-tutorial/ より引⽤

Slide 25

Slide 25 text

各機能でなにができるのか 25 主要なタスク ビジネス課題例 機能 回帰 発電量の推定など Snowpark ML 分類 分類の⾃動化・離反予測など Snowpark ML, ML Functions 時系列予測 未来の売上の推定など ML Functions 異常検知 予知保全・不正検出など ML Functions 感情分析 ユーザーの感情分析 Cortex LLM Functions 要因分析 重要な要因の特定 ML Functions ドキュメントの分析 領収書処理など Document AI

Slide 26

Slide 26 text

使い⼼地のご紹介 26

Slide 27

Slide 27 text

Snowflakeの機械学習機能 27 本⽇は 箇所を中⼼にご紹介する。 ● Snowpark ML ● Snowflake AI and ML ○ Cortex LLM Functions ○ ML Functions ○ Document AI

Slide 28

Slide 28 text

Snowpark ML 28

Slide 29

Slide 29 text

データの流れ Snowpark DataFrame Snowpark ML Modeling Snowpark ML Model Registry Snowpark MLの処理の流れ 29 ⽣データ 前処理 モデル 訓練 推論

Slide 30

Slide 30 text

Snowpark ML Modeling 30 ●Scikit-learn互換(有名な機械学習ライブラリ互換)の APIにより、PythonからSnowflakeのリソースを使い、 機械学習モデルを構築・利⽤できる。 ●データはSnowpark Pythonのデータフレームが主な対象。 実⾏イメージ ※ https://dev.classmethod.jp/articles/try-quickstart-snowpark-ml-modeling/ より

Slide 31

Slide 31 text

Snowpark DataFrame 31 ●Pythonで⼤規模なデータを利⽤できるAPI。処理はSnowflakeのコンピュートを使う。 実⾏イメージ ※ https://dev.classmethod.jp/articles/snowpark-python-dataframes-oparation-table-data/ より

Slide 32

Slide 32 text

Model Registry 32 ●Pythonから利⽤する。Snowpark MLで訓練したモデルをバージョン情報やメトリクスを含めて登録できる。 ●パイプラインごと登録できる点も⼤きなポイントとなる。 ●推論時に取り出してSnowpark DataFrameに対して推論を実⾏する。 ●SQLから呼び出すこともできる。 実⾏イメージ ※ https://dev.classmethod.jp/articles/try-snowparkml-model-registry-preview/ より

Slide 33

Slide 33 text

Model Registry 33 ●Pythonスクリプトで登録したモデルを確認することができる。 ●AI & MLメニューやDataメニューから、 Snowsightからも確認できるようになっている。(パブリックプレビュー)

Slide 34

Slide 34 text

Snowflake Notebooksからの利⽤ 34 ●パブリックプレビュー中の、特に機械学習向けのインターフェースとなる。 ●Gitとの連携もできる。 ●以前はローカルなどでJupyter Notebook環境を構築し、ネットワーク越しにSnowflakeに認証・接続する 必要があった。

Slide 35

Slide 35 text

Python Worksheetからの利⽤ 35 ●SnowsightからWorksheetを使うことで簡単なPythonプログラムを実⾏することができる。 ●UIからストアドプロシージャ化や定期的なタスク実⾏をすることもできる。

Slide 36

Slide 36 text

Snowpark MLのメリット 36 ●データが格納されているSnowflake上のリソースを使い、シームレスに機械学習モデルの構築・運⽤が できる。 ●データ前処理・モデルのトレーニング・推論にSnowflakeのウェアハウスを利⽤でき、 ⾼いスケーリングが期待できる。 ●Snowflakeだけでモデルの開発ができ(Notebook)、機械学習パイプライン全体のバージョン管理が できる(Model Registry)。 ●訓練済みの機械学習パイプラインをSQLから簡単に呼び出せるため、定期バッチ化しやすく、 データエンジニアとの分担もしやすい。

Slide 37

Slide 37 text

Snowpark MLについて知っておきたいこと 37 ●従来のPythonによる機械学習モデル開発にある程度慣れている必要がある。 ●慣れていない場合は、若⼲のキャッチアップが必要。 ●データのドリフトによるモデルの劣化など、モデルモニタリング機能については今後に期待。

Slide 38

Slide 38 text

ML Functions 38

Slide 39

Slide 39 text

ML Functions 39 ●機械学習を使ったFunctionsが利⽤可能 ○Anomaly Detection( 異常検知) ○Forecasting(時系列予測) ○Classification(分類) ※パブリックプレビュー ○Contribution Explorer( 要因分析 ) ※パブリックプレビュー

Slide 40

Slide 40 text

時系列予測 40 ●Snowflakeに格納したデータに対してSQLで時系列モデルを訓練・推定することができる。 ●アルゴリズムは勾配ブースティングマシンを採⽤している。 実⾏イメージ ※ https://dev.classmethod.jp/articles/snowflake-cortex-ml-based-functions-multi-time-series-preview/ より

Slide 41

Slide 41 text

要因分析 41 ● 時系列データに対して適⽤できる。 ● 過去データとテストしたい期間のデータを⼊⼒し、各セグメントごとに期待される値と実際の値を⽐較し、 その⽐(RELATIVE_CHANGE)や差(SURPRISE)により、どのセグメントが期待と実際が乖離していたか評価することで、 起きている事象の要因を分析する。 ※ 説明に必要な出⼒に絞って表⽰した結果 ※※ Contribution Explorerの例を実施した際の結果 (https://docs.snowflake.com/en/user-guide/ml-functions/contribution-explorer) 実⾏イメージ

Slide 42

Slide 42 text

Snowflake AI & ML Studio 42 ●現時点で、いくつかのML Functionに対して提供中(パブリックプレビュー) ●UIの案内にしたがって操作すると、選択した機能を実⾏するためのSQLがワークシートに⽣成される

Slide 43

Slide 43 text

ML Functionsについて 43 <よいところ> ●SQLから簡単に機械学習による分析・予測が実⾏できる。 ●機械学習に関する知識は不要。 <知っておきたいところ> ● アルゴリズムの詳細はSnowflakeが公開している情報に限られるため、評価は実際に試してみてになる。 ● 性能が出ない場合は、カスタマイズできないため、データ側をエンリッチすることとなる。 ● 現時点でモデル管理はないため、定期的にモデルを更新する場合は、モデル名に⽇付を⼊れるなど運⽤側 で⼯夫が必要。

Slide 44

Slide 44 text

運⽤や結果の活⽤のご紹介 44

Slide 45

Slide 45 text

定期実⾏ 45 ● タスクでストアドプロシージャを定期実⾏できる。タスク間の前後関係も定義できる。 ● Python・SQLともに対応しており、ML機能の定期実⾏には⼗分。 ● より複雑な依存関係がある場合などは、AirflowやDagsterなど別のオーケストレーターと併⽤することになる。 実⾏イメージ ※ https://dev.classmethod.jp/articles/snowpark-ml-stored-procedure-task/ より

Slide 46

Slide 46 text

ダッシュボード作成 46 ●ワークシートでテーブルに対するクエリを記述し、結果をチャートとして表⽰できる。 ●基本的な作図をサポートしており、基本的なダッシュボード⽤途ではこれで⼗分。 実⾏イメージ

Slide 47

Slide 47 text

Streamlitでのデータアプリ化 47 ●ネイティブにウェアハウスでホストされるStreamlitをサポートしている。 ●Pythonを使い、Snowparkで簡単にSnowflakeのデータをクエリし、データアプリで表⽰できる。 ●より複雑な作図や分析を⾏いたい場合にも利⽤できる。 実⾏イメージ

Slide 48

Slide 48 text

まとめ 48 ● SnowflakeのML機能で、幅広い機械学習タスクに対応することができる。 ● 従来の機械学習向けに、⼤きく分けて2つのアプローチがある ○ PythonによるSnowpark ML ○ SQLによるML Functions ● タスクによる定期実⾏ができ、 Snowpark MLのモデルはModel Registryで管理できる。 ● 推論結果はテーブルに保存することで、ダッシュボードやstreamlitでシームレスに利⽤ できる。

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content