2023/01/26「Data Engineer Geeks #1 データエンジニアのためのSnowpark入門」登壇資料です。 https://datumstudio.connpass.com/event/270726/
0💰年度末予算消化祭💰Large Memory Instance で画像分類してみた2023/01/26梶谷 美帆
View Slide
© 2023 DATUM STUDIO Co. Ltd. 11自己紹介【名前】梶谷 美帆 ( @__allllllllez__ )【所属】DATUM STUDIO株式会社データエンジニアリング本部データエンジニア部たまに記事を書いてます。Zenn→ https://zenn.dev/allllllllezツイッターのすがた
© 2023 DATUM STUDIO Co. Ltd. 22コンテンツ• Large memory instance(Snowpark 最適化インスタンス)とは• 使ってみよう• 感想• おまけ
© 2023 DATUM STUDIO Co. Ltd. 3Large Memory Instance(Snowpark 最適化インスタンス)とは?
© 2023 DATUM STUDIO Co. Ltd. 44Large 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」と呼ばれていました
© 2023 DATUM STUDIO Co. Ltd. 5使ってみよう
© 2023 DATUM STUDIO Co. Ltd. 66お題:画像分類Large Memory Instance が出たので、機械学習やってみようかな…テーブルデータもいいけど、他のデータも触りたいな…試しに、画像分類やってみようかな!TensorFlow のチュートリアルをやってみよう。画像データはステージに置けばいいよね!
© 2023 DATUM STUDIO Co. Ltd. 77お題:画像分類• Snowpark 環境(Secure Sandbox)からステージ内のファイルにアクセスするには Private Preview 機能が必要• https://qiita.com/takada_tf/items/f5c10924235ff2d2f086• 詰みです😇こちらより引用:https://www.snowflake.com/blog/snowpark-python-innovation-available-all-snowflake-customers/
© 2023 DATUM STUDIO Co. Ltd. 8おわり
© 2023 DATUM STUDIO Co. Ltd. 9…
© 2023 DATUM STUDIO Co. Ltd. 10諦めないよ!
© 2023 DATUM STUDIO Co. Ltd. 1111画像データを(何とかして)ロードするこうする:• 画像を base64 エンコード• エンコードされた画像(文字列)とラベルのテーブルを作成• トレーニング用ストアド内で画像(文字列)を base64 デコード、ファイル保存外にアクセスできないなら、中で作ればいいんだよTYPE BASE64_IMGrose iVBORw0K…tulip SUhEUgAA…: :
© 2023 DATUM STUDIO Co. Ltd. 1212画像データを(何とかして)ロードするこれをこう
© 2023 DATUM STUDIO Co. Ltd. 1313学習してみたトレーニング用ストアドを作ります
© 2023 DATUM STUDIO Co. Ltd. 1414学習してみたチュートリアルに沿ってモデルを作成していく
© 2023 DATUM STUDIO Co. Ltd. 1515学習してみた学習したら、モデルを内部ステージに保存こちらを参考にhttps://qiita.com/takada_tf/items/e9a471696e566b3d4c26
© 2023 DATUM STUDIO Co. Ltd. 1616学習してみたトレーニング用ストアドを作成して、トレーニング開始!
© 2023 DATUM STUDIO Co. Ltd. 1717学習してみた裏では Large Memory Instance が頑張っていました
© 2023 DATUM STUDIO Co. Ltd. 1818予測してみた新しい花の画像を読み込ませて、予測してみます
© 2023 DATUM STUDIO Co. Ltd. 1919予測してみたbase64エンコードして UDF に渡しますこちらを参考に https://iamontheinet.medium.com/image-recognition-in-snowflake-using-snowpark-python-pytorch-streamlit-and-openai-1a8167b82449
© 2023 DATUM STUDIO Co. Ltd. 2020予測してみたSnowflake が花を覚えてくれました😆
© 2023 DATUM STUDIO Co. Ltd. 21感想
© 2023 DATUM STUDIO Co. Ltd. 2222感想• 画像分類も動かせるので Snowflake なんでもできますね!!!• Snowpark 最適化インスタンスのおかげで、メモリの心配がなくなった• もっと大規模なタスクもできそうな予感• 使えるパッケージが豊富• 今回の TensorFlow チュートリアルはそのまま移植できました• Anaconda様様• 正式な機能を使いましょう• 画像の持ち込み、超手間でした(邪道。。。)• 今回使用したデータセットは 230MB 程度ですが、もっと大きなデータセットだとストレージに乗るのか、などいろいろ不明。。。• やめようね!プライベートプレビュー申し込もうね!
© 2023 DATUM STUDIO Co. Ltd. 23おまけ
© 2023 DATUM STUDIO Co. Ltd. 2424おまけ_人人人人人人_> 消化 <> してない < ̄Y^Y^Y^Y^Y^Y^ ̄弊部の予算は守られましたとさ。おしまい予算消化状況(今回の発表のために消費したクレジット)
© 2023 DATUM STUDIO Co. Ltd. 25参考資料
© 2023 DATUM STUDIO Co. Ltd. 2626参考資料• 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
© 2023 DATUM STUDIO Co. Ltd. 27おわり