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
610
簡単に始める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
68
Google CloudのLLM活用の選択肢を広げるVertex AIのパートナーモデル
nayuts
0
210
データ品質管理の第一歩
nayuts
1
510
AthenaとStep Functionsで簡単ETLオーケストレーション #midosuji_tech
nayuts
1
790
Vertex AIとBigQueryでつくる簡単ベクトル検索&テキスト分析システム
nayuts
0
870
AIが強力にサポート!データ分析・ML系サービスアップデート
nayuts
0
620
dbt Coreとdbt-athenaによるAWS上のdbt環境構築ナレッジ
nayuts
0
1.6k
Amazon Athena for Apache Sparkを使ってデータ分析をしよう!
nayuts
0
1.6k
AWS Glue Data Quality(プレビュー)が機械学習システムに使えそうか調べてみるぞ!
nayuts
0
1.1k
Other Decks in Technology
See All in Technology
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
280
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
310
強いチームと開発生産性
onk
PRO
28
8.8k
2024年グライダー曲技世界選手権参加報告/2024 WGAC report
jscseminar
0
290
Redmine 6.0 新機能評価ガイド
vividtone
0
310
データ活用促進のためのデータ分析基盤の進化
takumakouno
2
770
組み込みLinuxの時系列
puhitaku
4
1.1k
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.8k
Deno+JSRでパッケージを作って公開する
askua
0
120
Terraform Stacks入門 #HashiTalks
msato
0
320
B2B SaaS × AI機能開発 〜テナント分離のパターン解説〜 / B2B SaaS x AI function development - Explanation of tenant separation pattern
oztick139
1
130
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
380
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Designing for Performance
lara
604
68k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Side Projects
sachag
452
42k
Code Reviewing Like a Champion
maltzj
520
39k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Faster Mobile Websites
deanohume
305
30k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
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