Slide 1

Slide 1 text

0 💰年度末予算消化祭💰 Large Memory Instance で 画像分類してみた 2023/01/26 梶谷 美帆

Slide 2

Slide 2 text

© 2023 DATUM STUDIO Co. Ltd. 1 1 自己紹介 【名前】 梶谷 美帆 ( @__allllllllez__ ) 【所属】 DATUM STUDIO株式会社 データエンジニアリング本部 データエンジニア部 たまに記事を書いてます。 Zenn→ https://zenn.dev/allllllllez ツイッターのすがた

Slide 3

Slide 3 text

© 2023 DATUM STUDIO Co. Ltd. 2 2 コンテンツ • Large memory instance(Snowpark 最適化インスタンス)とは • 使ってみよう • 感想 • おまけ

Slide 4

Slide 4 text

© 2023 DATUM STUDIO Co. Ltd. 3 Large Memory Instance (Snowpark 最適化インスタンス) とは?

Slide 5

Slide 5 text

© 2023 DATUM STUDIO Co. Ltd. 4 4 Large Memory Instance(Snowpark 最適化インスタンス)とは? • 背景 • Snowpark により Snowflake で 機械学習ができるようになった🎉 • しかし、機械学習(特にトレーニング)ではメモリを大量に消費する • 通常のウェアハウスはメモリが大きくない… • 2021/8 時点で 1ノード3GB だった https://developers.cyberagent.co.jp/blog/archives/31167/ • 機械学習のためにはメモリマシマシウェアハウスが必要!! • スペック • メモリ16倍 • 消費クレジットは 1.5 倍 • 使い方 • WAREHOUSE_TYPE = ‘SNOWPARK-OPTIMIZED’ をつけるだけ • またはWebUIで「Warehouse Type」を Snowpark-optimizedにする • サイズは Medium 以上に限る 通常のウェアハウスよりもメモリが増設されたウェアハウス Snowflake Summit 2022 で 発表された際は 「Large Memory Instance」 と呼ばれていました

Slide 6

Slide 6 text

© 2023 DATUM STUDIO Co. Ltd. 5 使ってみよう

Slide 7

Slide 7 text

© 2023 DATUM STUDIO Co. Ltd. 6 6 お題:画像分類 Large Memory Instance が出たので、 機械学習やってみようかな… テーブルデータもいいけど、他のデータも触りたい な… 試しに、画像分類やってみようかな! TensorFlow のチュートリアルをやってみよう。 画像データはステージに置けばいいよね!

Slide 8

Slide 8 text

© 2023 DATUM STUDIO Co. Ltd. 7 7 お題:画像分類 • Snowpark 環境(Secure Sandbox) からステージ内のファイルにアクセス するには Private Preview 機能が必要 • https://qiita.com/takada_tf/items/f5c10924235ff2d2f086 • 詰みです😇 こちらより引用: https://www.snowflake.com/blog/snowpark- python-innovation-available-all-snowflake- customers/

Slide 9

Slide 9 text

© 2023 DATUM STUDIO Co. Ltd. 8 おわり

Slide 10

Slide 10 text

© 2023 DATUM STUDIO Co. Ltd. 9 …

Slide 11

Slide 11 text

© 2023 DATUM STUDIO Co. Ltd. 10 諦めないよ!

Slide 12

Slide 12 text

© 2023 DATUM STUDIO Co. Ltd. 11 11 画像データを(何とかして)ロードする こうする: • 画像を base64 エンコード • エンコードされた画像(文字列)とラベルのテーブルを作成 • トレーニング用ストアド内で画像(文字列)を base64 デコード、ファイル保存 外にアクセスできないなら、中で作ればいいんだよ TYPE BASE64_IMG rose iVBORw0K… tulip SUhEUgAA… : :

Slide 13

Slide 13 text

© 2023 DATUM STUDIO Co. Ltd. 12 12 画像データを(何とかして)ロードする これをこう

Slide 14

Slide 14 text

© 2023 DATUM STUDIO Co. Ltd. 13 13 学習してみた トレーニング用ストアドを作ります

Slide 15

Slide 15 text

© 2023 DATUM STUDIO Co. Ltd. 14 14 学習してみた チュートリアルに沿ってモデルを作成していく

Slide 16

Slide 16 text

© 2023 DATUM STUDIO Co. Ltd. 15 15 学習してみた 学習したら、モデルを内部ステージに保存 こちらを参考に https://qiita.com/takada_tf/items/e9a471696e566b3d4c26

Slide 17

Slide 17 text

© 2023 DATUM STUDIO Co. Ltd. 16 16 学習してみた トレーニング用ストアドを作成して、トレーニング開始!

Slide 18

Slide 18 text

© 2023 DATUM STUDIO Co. Ltd. 17 17 学習してみた 裏では Large Memory Instance が頑張っていました

Slide 19

Slide 19 text

© 2023 DATUM STUDIO Co. Ltd. 18 18 予測してみた 新しい花の画像を読み込ませて、予測してみます

Slide 20

Slide 20 text

© 2023 DATUM STUDIO Co. Ltd. 19 19 予測してみた base64エンコードして UDF に渡します こちらを参考に https://iamontheinet.medium.com/image-recognition-in-snowflake-using-snowpark- python-pytorch-streamlit-and-openai-1a8167b82449

Slide 21

Slide 21 text

© 2023 DATUM STUDIO Co. Ltd. 20 20 予測してみた Snowflake が花を覚えてくれました😆

Slide 22

Slide 22 text

© 2023 DATUM STUDIO Co. Ltd. 21 感想

Slide 23

Slide 23 text

© 2023 DATUM STUDIO Co. Ltd. 22 22 感想 • 画像分類も動かせるので Snowflake なんでもできますね!!! • Snowpark 最適化インスタンスのおかげで、メモリの心配がなくなった • もっと大規模なタスクもできそうな予感 • 使えるパッケージが豊富 • 今回の TensorFlow チュートリアルはそのまま移植できました • Anaconda様様 • 正式な機能を使いましょう • 画像の持ち込み、超手間でした(邪道。。。) • 今回使用したデータセットは 230MB 程度ですが、もっと大きなデータセットだとストレージに乗るのか、 などいろいろ不明。。。 • やめようね!プライベートプレビュー申し込もうね!

Slide 24

Slide 24 text

© 2023 DATUM STUDIO Co. Ltd. 23 おまけ

Slide 25

Slide 25 text

© 2023 DATUM STUDIO Co. Ltd. 24 24 おまけ _人人人人人人_ > 消化 < > してない <  ̄Y^Y^Y^Y^Y^Y^ ̄ 弊部の予算は守られましたとさ。 おしまい 予算消化状況(今回の発表のために消費したクレジット)

Slide 26

Slide 26 text

© 2023 DATUM STUDIO Co. Ltd. 25 参考資料

Slide 27

Slide 27 text

© 2023 DATUM STUDIO Co. Ltd. 26 26 参考資料 • Image Recognition in Snowflake using Snowpark Python, PyTorch, Streamlit and OpenAI • ソース:https://github.com/Snowflake-Labs/sfguide-snowpark-pytorch-streamlit-openai-image-rec • IrisデータセットをSnowparkで操作してみた。(機械学習もしてるよ) • Snowflake上で画像分類タスクを実行してみた • https://www.tensorflow.org/tutorials/images/classification

Slide 28

Slide 28 text

© 2023 DATUM STUDIO Co. Ltd. 27 おわり