Upgrade to Pro — share decks privately, control downloads, hide ads and more …

💰年度末予算消化祭💰 Large Memory Instance で 画像分類してみた

あれ
January 27, 2023

💰年度末予算消化祭💰 Large Memory Instance で 画像分類してみた

2023/01/26「Data Engineer Geeks #1 データエンジニアのためのSnowpark入門」登壇資料です。
https://datumstudio.connpass.com/event/270726/

あれ

January 27, 2023
Tweet

More Decks by あれ

Other Decks in Technology

Transcript

  1. © 2023 DATUM STUDIO Co. Ltd. 1 1 自己紹介 【名前】

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

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

    (Snowpark 最適化インスタンス) とは?
  4. © 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」 と呼ばれていました
  5. © 2023 DATUM STUDIO Co. Ltd. 6 6 お題:画像分類 Large

    Memory Instance が出たので、 機械学習やってみようかな… テーブルデータもいいけど、他のデータも触りたい な… 試しに、画像分類やってみようかな! TensorFlow のチュートリアルをやってみよう。 画像データはステージに置けばいいよね!
  6. © 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/
  7. © 2023 DATUM STUDIO Co. Ltd. 11 11 画像データを(何とかして)ロードする こうする:

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

    こちらを参考に https://qiita.com/takada_tf/items/e9a471696e566b3d4c26
  9. © 2023 DATUM STUDIO Co. Ltd. 17 17 学習してみた 裏では

    Large Memory Instance が頑張っていました
  10. © 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
  11. © 2023 DATUM STUDIO Co. Ltd. 22 22 感想 •

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

    > 消化 < > してない <  ̄Y^Y^Y^Y^Y^Y^ ̄ 弊部の予算は守られましたとさ。 おしまい 予算消化状況(今回の発表のために消費したクレジット)
  13. © 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