Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
簡単に始めるSnowflakeの機械学習
Search
Nayuta S.
July 23, 2024
Technology
1
650
簡単に始めるSnowflakeの機械学習
DevelopersIO 2024のDay8で発表した内容となります。
-
https://classmethod.jp/m/odyssey/
Nayuta S.
July 23, 2024
Tweet
Share
More Decks by Nayuta S.
See All by Nayuta S.
Amazon Rekognitionのカスタムモデルで独自のモデレーションモデルをトレーニングする
nayuts
0
77
Google CloudのLLM活用の選択肢を広げるVertex AIのパートナーモデル
nayuts
0
220
データ品質管理の第一歩
nayuts
1
530
AthenaとStep Functionsで簡単ETLオーケストレーション #midosuji_tech
nayuts
1
820
Vertex AIとBigQueryでつくる簡単ベクトル検索&テキスト分析システム
nayuts
0
880
AIが強力にサポート!データ分析・ML系サービスアップデート
nayuts
0
630
dbt Coreとdbt-athenaによるAWS上のdbt環境構築ナレッジ
nayuts
0
1.6k
Amazon Athena for Apache Sparkを使ってデータ分析をしよう!
nayuts
0
1.7k
AWS Glue Data Quality(プレビュー)が機械学習システムに使えそうか調べてみるぞ!
nayuts
0
1.1k
Other Decks in Technology
See All in Technology
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
Terraform Stacks入門 #HashiTalks
msato
0
360
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
110
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
720
TypeScript、上達の瞬間
sadnessojisan
48
14k
静的解析で実現した効率的なi18n対応の仕組みづくり
minako__ph
2
260
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
100
AGIについてChatGPTに聞いてみた
blueb
0
130
強いチームと開発生産性
onk
PRO
36
12k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
220
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
430
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Optimizing for Happiness
mojombo
376
70k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Code Reviewing Like a Champion
maltzj
520
39k
Unsuck your backbone
ammeep
668
57k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Writing Fast Ruby
sferik
627
61k
Transcript
簡単に始める Snowflakeの機械学習 2024.7.23 データ事業本部 鈴⽊那由太
例)本セッションの スクリーンショットは禁⽌ です。 後⽇『DevelopersIO』で記事が 公開されます。 そちらをお待ちください。 2 ご注意事項
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 3 お願い
はじめに 4
本セッションの⽬的 • Snowflakeでは、ますます機械学習向けの機能が充実してきている。 ◦ Snowpark MLでは機械学習のロジックを、従来のPythonによる開発と同じように実装しつつ、 計算資源はSnowflakeにオフロードできる。 ◦ Snowflake AI
and MLでは、SQLをインターフェースに、Snowflakeに格納したデータに対し て、LLM・機械学習機能で処理を実⾏できる。 5 • 以下を通して、実際に使い始める準備の機会にしたい ◦ 全体像を把握する(各機能について詳細な話はしない) ◦ 推しの機能について使い⼼地をご紹介する ◦ この1年ほどの経緯を踏まえて、 最新の機能がどうなっているのか分かるようにする。
⽬次 • Snowflakeについて • 機械学習について • Snowflakeの機械学習機能 • 使い⼼地のご紹介 ◦
Snowpark ML ◦ ML Functions(時系列予測・要因分析) • 運⽤や結果の活⽤のご紹介 6
スピーカー紹介 7 ⽒名 鈴⽊ 那由太(スズキ ナユタ) 所属 データ事業本部 インテグレーション部 機械学習チーム
受賞 2024 Japan AWS Top Engineers(Analytics)
Snowflakeについて 8
Snowflakeとは 9 • AIデータクラウド(SaaS) • 独⾃の SQLクエリエンジン・アーキテクチャを採⽤することで、従来型のDWHでは対応 できなかったパフォーマンス最⼤化・シンプルな操作・無制限の同時処理を実現している。 • サービスのコンポーネントすべてがパブリッククラウドインフラストラクチャで実⾏される。
◦ AWS ◦ Google ◦ Azure • Snowsight(ウェブインターフェイス)・Pythonなどのプログラム・SQLクライアントなどから アクセスできる。
Snowflakeとは 10 • 共有ディスクデータベースアーキテクチャと⾮共有データベースアーキテクチャの ハイブリッドアーキテクチャであるため、前述のメリットが得られる。 • Query processing層のマシンタイプを選択して、かける費⽤とマシンパワーを調整できる。 ※ https://docs.snowflake.com/ja/user-guide/intro-key-concepts
より2024/07/06に引⽤
Snowflakeのメリット 11 • コンピュートリソースのスケールアウト・スケールアップが⾮常に簡単で管理が楽 • SaaSのため初期構築が簡単 • StreamlitやWorksheetなど分析のためのインターフェースも充実している • ネイティブのAI・機械学習機能により気軽により発展的な分析を実施できる
• 各種パブリッククラウドとの連携も⼿厚い ◦ 例えば、AWSのS3バケットに対して直接ロード・アンロードができるなど
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など、 新しい機能も発表︕
機械学習について 13
機械学習とは 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)” が実現しつつある。 今回の発表では、以下の使い分けで説明する。
MLとの使い分け 15 AI(⽣成AI)が常に良いわけではなく、今後は使い分けが重要になる ⽣成AIの課題 •モデルが⼤きいため、従来⼿法よりもレスポンスが遅い場合が多く、 ⼤量のデータに対してバッチ処理する場合は既存⼿法の⽅が良い場合がある。 •出⼒がコントロールしにくく、ハルシネーションが起こる可能性がある。 既存⼿法のメリット •本番運⽤に関する知⾒が既に豊富にある。 •モデルがLLMと⽐較して軽量なので、レスポンスが早くコストメリットが⾼い場合が多い。
•LLMに⽐べて、再現性のある出⼒を得やすい。
MLによる解決のアプローチ 16 機械学習を使って解決したい場合、以下の選択肢がある。 • 既存のツール・サービスを活⽤ ◦既存のAI・機械学習系のクラウドサービスやサードパーティ製品を活⽤ ◦Snowflake AI and MLの組み込み機能の利⽤など
• ⼀般的な⼿法(アルゴリズム)を使⽤ ◦AI・機械学習⽤のフレームワークやライブラリを活⽤して有名な⼿法を適⽤ ◦Snowpark MLのAPIの利⽤など • 独⾃⼿法(アルゴリズム)の開発 ◦既存の⼿法を応⽤したり、独⾃⼿法を開発する マネージド性⾼ カスタム性⾼
データ種別と適⽤領域 17 データ種別 • テーブルデータ(トランザクションデータなど) ◦ 分類、予測、異常検知、レコメンデーション • テキスト(⾃然⾔語) ◦
ドキュメント分類、キーワード抽出、 回答⽣成など • 画像・動画 ◦ 画像分類、物体検出 など Transaction Text Image Movie 適⽤領域 • 流通・⼩売 ◦ 需要・売上予測、在庫予測、 ⾃動発注、レコメンデーション など • 製造 ◦ 異常検知、故障予測、予知保全 など • ⾦融 ◦ 不正検出、与信判定 など • エンターテイメント・ゲーム ◦ ⾒込み顧客判定、離反予測、 不正検出、レコメンデーション など 必要なデータ種別と適⽤領域から、実現したいタスクに対してどんな準備が必要なのか考える。
Snowflakeの機械学習機能 18
Snowflakeの機械学習機能 19 ※ https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python より2024/0720に引⽤
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によるドキュメント分析
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に引⽤
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/ より引⽤
ML Functions 23 •機械学習を使ったFunctionsが利⽤可能 ◦Anomaly Detection( 異常検知) ◦Forecasting(時系列予測) ◦Classification(分類) ※パブリックプレビュー
◦Contribution Explorer( 要因分析 ) ※パブリックプレビュー
Document AI 24 •Snowflake独⾃の⼤規模⾔語モデル (LLM) であるArctic-TILT を使⽤してドキュメントからデータを抽出する機能 •⼿書きのテキストだけでなく、ロゴやチェックマークなども読み取り情報を抽出することが可能 •ウェアハウスとストレージコストに加え、AI Services
computeの費⽤が発⽣ •英語のドキュメントの処理をサポート ※ https://dev.classmethod.jp/articles/snowflake-try-document-ai-tutorial/ より引⽤
各機能でなにができるのか 25 主要なタスク ビジネス課題例 機能 回帰 発電量の推定など Snowpark ML 分類
分類の⾃動化・離反予測など Snowpark ML, ML Functions 時系列予測 未来の売上の推定など ML Functions 異常検知 予知保全・不正検出など ML Functions 感情分析 ユーザーの感情分析 Cortex LLM Functions 要因分析 重要な要因の特定 ML Functions ドキュメントの分析 領収書処理など Document AI
使い⼼地のご紹介 26
Snowflakeの機械学習機能 27 本⽇は 箇所を中⼼にご紹介する。 • Snowpark ML • Snowflake AI
and ML ◦ Cortex LLM Functions ◦ ML Functions ◦ Document AI
Snowpark ML 28
データの流れ Snowpark DataFrame Snowpark ML Modeling Snowpark ML Model Registry
Snowpark MLの処理の流れ 29 ⽣データ 前処理 モデル 訓練 推論
Snowpark ML Modeling 30 •Scikit-learn互換(有名な機械学習ライブラリ互換)の APIにより、PythonからSnowflakeのリソースを使い、 機械学習モデルを構築・利⽤できる。 •データはSnowpark Pythonのデータフレームが主な対象。 実⾏イメージ
※ https://dev.classmethod.jp/articles/try-quickstart-snowpark-ml-modeling/ より
Snowpark DataFrame 31 •Pythonで⼤規模なデータを利⽤できるAPI。処理はSnowflakeのコンピュートを使う。 実⾏イメージ ※ https://dev.classmethod.jp/articles/snowpark-python-dataframes-oparation-table-data/ より
Model Registry 32 •Pythonから利⽤する。Snowpark MLで訓練したモデルをバージョン情報やメトリクスを含めて登録できる。 •パイプラインごと登録できる点も⼤きなポイントとなる。 •推論時に取り出してSnowpark DataFrameに対して推論を実⾏する。 •SQLから呼び出すこともできる。 実⾏イメージ
※ https://dev.classmethod.jp/articles/try-snowparkml-model-registry-preview/ より
Model Registry 33 •Pythonスクリプトで登録したモデルを確認することができる。 •AI & MLメニューやDataメニューから、 Snowsightからも確認できるようになっている。(パブリックプレビュー)
Snowflake Notebooksからの利⽤ 34 •パブリックプレビュー中の、特に機械学習向けのインターフェースとなる。 •Gitとの連携もできる。 •以前はローカルなどでJupyter Notebook環境を構築し、ネットワーク越しにSnowflakeに認証・接続する 必要があった。
Python Worksheetからの利⽤ 35 •SnowsightからWorksheetを使うことで簡単なPythonプログラムを実⾏することができる。 •UIからストアドプロシージャ化や定期的なタスク実⾏をすることもできる。
Snowpark MLのメリット 36 •データが格納されているSnowflake上のリソースを使い、シームレスに機械学習モデルの構築・運⽤が できる。 •データ前処理・モデルのトレーニング・推論にSnowflakeのウェアハウスを利⽤でき、 ⾼いスケーリングが期待できる。 •Snowflakeだけでモデルの開発ができ(Notebook)、機械学習パイプライン全体のバージョン管理が できる(Model Registry)。
•訓練済みの機械学習パイプラインをSQLから簡単に呼び出せるため、定期バッチ化しやすく、 データエンジニアとの分担もしやすい。
Snowpark MLについて知っておきたいこと 37 •従来のPythonによる機械学習モデル開発にある程度慣れている必要がある。 •慣れていない場合は、若⼲のキャッチアップが必要。 •データのドリフトによるモデルの劣化など、モデルモニタリング機能については今後に期待。
ML Functions 38
ML Functions 39 •機械学習を使ったFunctionsが利⽤可能 ◦Anomaly Detection( 異常検知) ◦Forecasting(時系列予測) ◦Classification(分類) ※パブリックプレビュー
◦Contribution Explorer( 要因分析 ) ※パブリックプレビュー
時系列予測 40 •Snowflakeに格納したデータに対してSQLで時系列モデルを訓練・推定することができる。 •アルゴリズムは勾配ブースティングマシンを採⽤している。 実⾏イメージ ※ https://dev.classmethod.jp/articles/snowflake-cortex-ml-based-functions-multi-time-series-preview/ より
要因分析 41 • 時系列データに対して適⽤できる。 • 過去データとテストしたい期間のデータを⼊⼒し、各セグメントごとに期待される値と実際の値を⽐較し、 その⽐(RELATIVE_CHANGE)や差(SURPRISE)により、どのセグメントが期待と実際が乖離していたか評価することで、 起きている事象の要因を分析する。 ※ 説明に必要な出⼒に絞って表⽰した結果
※※ Contribution Explorerの例を実施した際の結果 (https://docs.snowflake.com/en/user-guide/ml-functions/contribution-explorer) 実⾏イメージ
Snowflake AI & ML Studio 42 •現時点で、いくつかのML Functionに対して提供中(パブリックプレビュー) •UIの案内にしたがって操作すると、選択した機能を実⾏するためのSQLがワークシートに⽣成される
ML Functionsについて 43 <よいところ> •SQLから簡単に機械学習による分析・予測が実⾏できる。 •機械学習に関する知識は不要。 <知っておきたいところ> • アルゴリズムの詳細はSnowflakeが公開している情報に限られるため、評価は実際に試してみてになる。 •
性能が出ない場合は、カスタマイズできないため、データ側をエンリッチすることとなる。 • 現時点でモデル管理はないため、定期的にモデルを更新する場合は、モデル名に⽇付を⼊れるなど運⽤側 で⼯夫が必要。
運⽤や結果の活⽤のご紹介 44
定期実⾏ 45 • タスクでストアドプロシージャを定期実⾏できる。タスク間の前後関係も定義できる。 • Python・SQLともに対応しており、ML機能の定期実⾏には⼗分。 • より複雑な依存関係がある場合などは、AirflowやDagsterなど別のオーケストレーターと併⽤することになる。 実⾏イメージ ※
https://dev.classmethod.jp/articles/snowpark-ml-stored-procedure-task/ より
ダッシュボード作成 46 •ワークシートでテーブルに対するクエリを記述し、結果をチャートとして表⽰できる。 •基本的な作図をサポートしており、基本的なダッシュボード⽤途ではこれで⼗分。 実⾏イメージ
Streamlitでのデータアプリ化 47 •ネイティブにウェアハウスでホストされるStreamlitをサポートしている。 •Pythonを使い、Snowparkで簡単にSnowflakeのデータをクエリし、データアプリで表⽰できる。 •より複雑な作図や分析を⾏いたい場合にも利⽤できる。 実⾏イメージ
まとめ 48 • SnowflakeのML機能で、幅広い機械学習タスクに対応することができる。 • 従来の機械学習向けに、⼤きく分けて2つのアプローチがある ◦ PythonによるSnowpark ML ◦
SQLによるML Functions • タスクによる定期実⾏ができ、 Snowpark MLのモデルはModel Registryで管理できる。 • 推論結果はテーブルに保存することで、ダッシュボードやstreamlitでシームレスに利⽤ できる。
None
None