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
150
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
300
Snowpark for Python を効率的に使いこなすスタートライン(UDF)
toru_data
0
93
Streamlit Meetup Workshop:Streamlitのコントリビューションに挑戦してみよう
toru_data
0
120
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
New Earth Scene 8
popppiees
1
1.7k
Automating Front-end Workflow
addyosmani
1370
200k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
170
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
How STYLIGHT went responsive
nonsquared
100
6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
エンジニアに許された特別な時間の終わり
watany
106
240k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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もできるようになってきていますが、 今回は試せていません。