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
SPCSでエンドツーエンドな深層学習に挑戦してみた
Search
Toru Hiyama
March 01, 2024
1
120
SPCSでエンドツーエンドな深層学習に挑戦してみた
「Snowpark Container Servicesで解き放つ!データアプリケーションの魔法」における登壇資料
Toru Hiyama
March 01, 2024
Tweet
Share
More Decks by Toru Hiyama
See All by Toru Hiyama
Snowflake ✕ LangChain でできること
toru_data
0
160
Snowpark for Python を効率的に使いこなすスタートライン(UDF)
toru_data
0
88
Streamlit Meetup Workshop:Streamlitのコントリビューションに挑戦してみよう
toru_data
0
120
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.5k
Context Engineering - Making Every Token Count
addyosmani
3
58
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building Adaptive Systems
keathley
43
2.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
A designer walks into a library…
pauljervisheath
207
24k
Optimizing for Happiness
mojombo
379
70k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.1k
Transcript
© 2024 NTT DATA Japan Corporation SPCSでエンドツーエンドな深層学習に挑戦してみた Snowpark Container Servicesで解き放つ!データアプリケーションの魔法
2024年3月1日 株式会社NTTデータ Snowflakeビジネス推進室 檜山 徹(Hiyama Toru)
© 2024 NTT DATA Japan Corporation 自己紹介 檜山 徹(Hiyama Toru)
株式会社NTTデータ Snowflakeビジネス推進室員! SnowVillage Team Streamlit メンバー SNS X(Twitter): @toru_data Qiita:@toru_hiyama SnowVillage #certifications にて、 毎日30分~1時間もくもくしてゲット!
© 2024 NTT DATA Japan Corporation 目次 エンドツーエンドの深層学習アーキテクチャ ① コンテナ
② 深層学習 ③ ジョブ・コンピュートプール ④ ジョブの確認 ⑤⑥ Streamlitアプリ まとめ
© 2024 NTT DATA Japan Corporation エンドツーエンドの深層学習アーキテクチャ ➢ 本LTでは、このアーキテクチャをかいつまんで解説していきます。 開発環境
Snowflake拡張機能 イメージレジストリ ①コンテナイメージPush docker build ~ doker push ~ Compute Pool モデルレジストリ ボリューム(ステージ) execute service in compute pool ~ from @stage spec=spec.yml コンテナ train.py ④マウント ②深層学習資材準備 PUT file:// ~ ④訓練済みモデル保存 ④コンテナロード ③ジョブ定義・実行 ⑤ジョブ実行 ③ジョブ起動 ⑥訓練済み モデル呼び出し イベントテーブル ④イベントログ保存 CI/CDもできるようになってきていますが、 今回は試せていません。
© 2024 NTT DATA Japan Corporation ① コンテナイメージと構成ファイル(準備1/3) • Dockerfileからコンテナイメージを作成
• コンテナイメージをSnowflakeリポジトリにアップロード • コンテナ構成ファイル(spec.yml)をアップロード > docker build -t spcs-pytorch . > docker push <repository url>/spcs-pytorch (snowsql) > put file://<path>/spec.yml @spec_stg 構成ファイルでは下記を指定 • コンテナイメージ • GPUの制限 • マウントするボリューム
© 2024 NTT DATA Japan Corporation ② 深層学習 訓練用スクリプト・画像(準備2/3) •
PyTorchによる訓練スクリプトを記述 • 超簡易なニューラルネットワークモデルと訓練スクリプト • イベントテーブルへのログ保存 • 訓練済みモデルをSnowflakeのモデルレジストリに登録 • 訓練用資材をボリューム用ステージに配置 (snowsql) > put file://<path>/train.py @volume (snowsql) > put file://<path>/MNIST/* @volume ちなみに、セッションの作成は、 OAuthトークンにより行います。
© 2024 NTT DATA Japan Corporation ③ ジョブ定義(準備3/3) • コンピュートプールの作成
• ジョブ定義・実行 execute service in compute pool gpu_job_pool from @spec_stg spec=spec.yml ; create compute pool gpu_job_pool min_nodes=1 max_nodes=1 instance_family=GPU_NV_S ;
© 2024 NTT DATA Japan Corporation ④ モデル訓練ジョブの呼び出し結果の確認 ➢ いい感じ!
GPUも認識してる ログもちゃんとイベントテーブルに吐き出されてる モデルもモデルレジストリに保存されてる! 学習もできてる (ボリューム(ステージ)に保存)
© 2024 NTT DATA Japan Corporation ⑤⑥ Streamlitアプリの作成 ➢ Team
Streamlit たるもの、、、作るよ! < きみたち自信満々に間違えててかわいいね。
© 2024 NTT DATA Japan Corporation おわりに ◼ 深層学習をするための足回りさえ揃えてしまえば、 開発環境で記述した訓練用コードをPutするだけで、
GPUによるモデル訓練からSnowflakeへのデプロイまで行えることがわかりました。 ✓ SnowflakeのDev・ML機能、だいぶそろってきた! ◼ 今回の検証を通じて、なんでSPCSじゃないといけないの?に対して、 すでにSnowflakeを導入しているが、クラウドをそこまで利用していない方々が、 低い学習コスト・運用コストでコンテナ環境を構築できることにあると感じました。 ✓ やっぱり、マネージドは、プライスレス! 開発環境 Snowflake拡張機能 イメージレジストリ ①コンテナイメージPush docker build ~ doker push ~ Compute Pool モデルレジストリ ボリューム(ステージ) execute service in compute pool ~ from @stage spec=spec.yml コンテナ train.py ④マウント ②深層学習資材準備 PUT file:// ~ ④訓練済みモデル保存 ④コンテナロード ③ジョブ定義・実行 ⑤ジョブ実行 ③ジョブ起動 ⑥訓練済み モデル呼び出し イベントテーブル ④イベントログ保存 CI/CDもできるようになってきていますが、 今回は試せていません。