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
100
SPCSでエンドツーエンドな深層学習に挑戦してみた
「Snowpark Container Servicesで解き放つ!データアプリケーションの魔法」における登壇資料
Toru Hiyama
March 01, 2024
Tweet
Share
More Decks by Toru Hiyama
See All by Toru Hiyama
Snowpark for Python を効率的に使いこなすスタートライン(UDF)
toru_data
0
30
Streamlit Meetup Workshop:Streamlitのコントリビューションに挑戦してみよう
toru_data
0
110
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Agile that works and the tools we love
rasmusluckow
328
21k
Gamification - CAS2011
davidbonilla
80
5.1k
Music & Morning Musume
bryan
46
6.3k
Designing Experiences People Love
moore
140
23k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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もできるようになってきていますが、 今回は試せていません。