Post on 31-Dec-2020
© ZOZO Technologies, Inc.
ZOZO Researchの研究活動を支えるSageMaker利用~導入課題の解決と展開について~2019/06/13 AWS Summit Tokyo 2019 Day 2 【J2-03】
株式会社ZOZOテクノロジーズ
開発部 SRE テックリード
光野 達朗
Copyright © ZOZO Technologies, Inc.
株式会社ZOZOテクノロジーズ
ZOZO Research リサーチサイエンティスト
中村 拓磨
© ZOZO Technologies, Inc.
株式会社ZOZOテクノロジーズ 開発部 SRE テックリード
光野 達朗ヤフー株式会社にてヤフオク!・広告の開発に携わる。2016年からは株式会社VASILY、法人統合に伴い2018年4月から現職。現在はパブリッククラウドを専門とするSREとして、日々サービスの信頼性向上に努める。ウィスキーと葉巻が好き。愛してる。
!2
© ZOZO Technologies, Inc.
本日のアジェンダ
!3
第一部 会社紹介 ZOZO Researchのミッション ZOZO ResearchとSREチームの関わり方
第二部
まとめ
© ZOZO Technologies, Inc.
本日のアジェンダ
!4
第一部 会社紹介 ZOZO Researchのミッション ZOZO ResearchとSREチームの関わり方
第二部
まとめ
© ZOZO Technologies, Inc.!5
会社紹介
株式会社ZOZOテクノロジーズ
株式会社ZOZOUSED株式会社アラタナ
•ZOZOグループのサービス運用・技術開発部門 •エンジニア・デザイナ・アナリストなど制作に携わる全ての技術者が集結
株式会社ZOZO
事業理念:70億人のファッションを技術の力で変えていく
© ZOZO Technologies, Inc.
https://zozo.jp/
・ 日本最大級のファッション通販サイト / アプリ
・ 1,200以上のショップ、7,000以上のブランドの取り扱い
(2019年3月末時点)
・ 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着
商品を掲載
・ 即日配送サービス
・ ギフトラッピングサービス
・ ツケ払い など
!6
© ZOZO Technologies, Inc.
https://wear.jp/
・ 日本最大級のファッションコーディネートアプリ
・ 1,300万ダウンロード突破、コーディネート投稿総数は800万件
以上(ともに2019年3月末時点)
・ 全世界(App Store / Google Playが利用可能な全ての国)で
ダウンロードが可能
・ 10万人以上のフォロワーを持つユーザー(WEARISTA)も誕生
!7
© ZOZO Technologies, Inc.!8
ZOZOテクノロジーズにおける主要なプロダクト・組織
日本最大級のファッション通販サイト/アプリ 日本最大級のファッションコーディネートサイト / アプリ
© ZOZO Technologies, Inc.!9
ZOZOテクノロジーズにおける主要なプロダクト・組織
日本最大級のファッション通販サイト/アプリ 日本最大級のファッションコーディネートサイト / アプリ
© ZOZO Technologies, Inc.!10
ZOZO Researchのミッション
ファッションを数値化する。
「服作り」の研究オートデザイン、新素材、新生産ラインなど 服作り全般の研究 「似合う」の研究似合う服とは? 素敵な組み合わせとは? 推薦アルゴリズムの研究 「採寸」の研究足などの末端部の採寸、動き、筋肉などの計測、 体型計測に関する弛まぬ進化
© ZOZO Technologies, Inc.!11※特定の個人を識別できる情報は使用いたしません
© ZOZO Technologies, Inc.
データ x 機械学習
!12
Takuma Nakamura, Ryosuke Goto. Outfit Generation and Style Extraction via Bidirectional LSTM and Autoencoder. KDDW. https://arxiv.org/abs/1807.03133
中村拓磨, 斎藤侑輝. (2019) “Set Transformerによるファッションコーディネート選択”, 情報論的学習理論と機械学習研究会 (IBISML). https://speakerdeck.com/yukisaito/set-transformer-for-coordinating-outfits
© ZOZO Technologies, Inc.
本日のアジェンダ
!13
第一部 会社紹介 ZOZO Researchのミッション ZOZO ResearchとSREチームの関わり方
第二部
まとめ
© ZOZO Technologies, Inc.!14
ZOZO ResearchとSREチームの関わり方研究活動を最も効率的に進められる計算基盤の準備と運用 機械学習基盤はアマゾン ウェブ サービス (AWS)上に構築
ZOZO Research SREAWS上での計算基盤の設計と構築
計算基盤の利用
© ZOZO Technologies, Inc.
計算基盤のジレンマ
Amazon Elastic Compute Cloud(Amazon EC2)
2018年04月 (ZOZO Research発足)
2018年N月 2018年M月
.
.
.
!15
GPUインスタンスを必要台数、インフラチーム(当時)が用意する
© ZOZO Technologies, Inc.
計算基盤のジレンマ
Amazon Elastic Compute Cloud(Amazon EC2)
2018年04月 (ZOZO Research発足)
2018年N月 2018年M月
.
.
.
!16
GPUインスタンスを必要台数、インフラチーム(当時)が用意する
論文執筆などのイベント時に不足
台数が増え、全体の稼働率が低下
十分な台数を準備
台数削減 (繰り返し)
© ZOZO Technologies, Inc.
計算基盤のジレンマ
Amazon Elastic Compute Cloud(Amazon EC2)
2018年04月 (ZOZO Research発足)
2018年N月 2018年M月
.
.
.
!17
常に、十分な台数を用意する
常に、稼働率を高く保つ
両立したい
Amazon SageMaker(SageMaker)
2018年10月
© ZOZO Technologies, Inc.
Amazon SageMaker
Build
Train
Deploy
•ワンクリックトレーニング必要なインスタンスタイプを必要な台数、出力はS3へ
•ワンクリックデプロイ •自動A/Bテスト
•マネージドJupyterノートブック •幅広いフレームワークをサポート(TensorFlow、Apache MXNet、Chainer、PyTorch、Scikit-learn、SparkML)
Amazon SageMaker は、機械学習のワークフロー全体をカバーする完全マネージド型サービスcf. https://aws.amazon.com/jp/sagemaker/#
!18
© ZOZO Technologies, Inc.
Amazon SageMaker
Build
Train
Deploy
•ワンクリックトレーニング必要なインスタンスタイプを必要な台数、出力はS3へ
•ワンクリックデプロイ •自動A/Bテスト
•マネージドJupyterノートブック •幅広いフレームワークをサポート(TensorFlow、Apache MXNet、Chainer、PyTorch、Scikit-learn、SparkML)
Amazon SageMaker は、機械学習のワークフロー全体をカバーする完全マネージド型サービスcf. https://aws.amazon.com/jp/sagemaker/#
!19
© ZOZO Technologies, Inc.
ワンクリックトレーニング
!20
Training A
Training B
Training C
•p2.xlarge • 1台 •スクリプトA
•p2.xlarge • 2台 •スクリプトB
•p3.2xlarge • 1台 •スクリプトC
•計算資源の設定 •学習スクリプト
学習1つ1つに対し、 必要な計算資源を割り当てる 学習の終了と共にTerminate
© ZOZO Technologies, Inc.!21
結果:学習はスケールした
0
125
250
375
500
2018/07-09 2018/10-12 2019/01-03 2019/04-05
Training JOB (Completed + Stopped)
2ヶ月で既に前Q超え
© ZOZO Technologies, Inc.!22
SageMakerの採用によって得たもの•リソース確保のコミュニケーションが不要に
•GPUインスタンスが学習時にのみ起動し終了するため、稼働率向上
•複数台による並列計算やよりハイパフォーマンスなインスタンスによる検証が可能に
© ZOZO Technologies, Inc.!23
SageMakerの採用によって得たもの•リソース確保のコミュニケーションが不要に
•GPUインスタンスが学習時にのみ起動し終了するため、稼働率向上
•複数台による並列計算やよりハイパフォーマンスなインスタンスによる検証が可能に
恩恵:◎ 導入:?
© ZOZO Technologies, Inc.
本日のアジェンダ
!24
第一部
第二部 研究紹介 利用促進の為の取り組み 開発 学習 推論
まとめ
© ZOZO Technologies, Inc.
株式会社ZOZOテクノロジーズ ZOZO Research リサーチサイエンティスト
中村 拓磨
!25
アクセンチュア入社後、システム開発や分析基盤導入支援を経験。2016年からは株式会社VASILY、法人統合に伴い2018年4月から現職。ファッション x 機械学習という分野で研究開発を担当。画像認識が専門。
© ZOZO Technologies, Inc. !26
「おしゃれ」な 組み合わせ を求める問題
研究成果 - ファッションコーディネートの認識
© ZOZO Technologies, Inc. !27
クエリ 予測結果
0.18 0.13 0.10 0.51 0.08
0.40 0.14 0.08 0.01 0.38
0.74 0.01 0.04 0.12 0.08
左端のアイテム がground truth
研究成果 - ファッションコーディネートの欠損予測
© ZOZO Technologies, Inc. !28
クエリ 予測結果
研究成果 - ファッションコーディネートの欠損予測(判断の根拠の可視化)
© ZOZO Technologies, Inc. !29
Style A Style B Style C Style DStyle A Style B Style C Style DStyle A + Style B Style A + Style C
+0.5⇥<latexit sha1_base64="tcrm8is1sjUv+vEDWvmqA/D6eTA=">AAACbnichVFdKwRRGH52fK+vRUlJNhsptb0jIldKyqWvRS1pZpzlZL6aObvF5g+4lwtFlCQ/w40/4MJPkBtFuXHh3dkpIbzTmfOc57zPe57zHtO3ZaiIHhJaTW1dfUNjU7K5pbWtPdXRuRJ6xcASOcuzvWDNNEJhS1fklFS2WPMDYTimLVbN3ZnK/mpJBKH03GW154sNx9h2ZUFahmIqP0LZ8fS6ko4IN1MZylIU6Z9Aj0EGccx7qSusYwseLBThQMCFYmzDQMhfHjoIPnMbKDMXMJLRvsABkqwtcpbgDIPZXf5v8yofsy6vKzXDSG3xKTaPgJVpDNI9XdML3dENPdL7r7XKUY2Klz2ezapW+Jvthz1Lb/+qHJ4Vdj5Vf3pWKGAy8irZux8xlVtYVX1p//hlaWpxsDxEF/TE/s/pgW75Bm7p1bpcEIsnSPID6N/b/ROsjGZ1yuoLY5np2fgpGtGLAQxzvycwjTnMIxd17AinOEs8a91an9ZfTdUSsaYLX0Ib/gBC3I1D</latexit><latexit sha1_base64="tcrm8is1sjUv+vEDWvmqA/D6eTA=">AAACbnichVFdKwRRGH52fK+vRUlJNhsptb0jIldKyqWvRS1pZpzlZL6aObvF5g+4lwtFlCQ/w40/4MJPkBtFuXHh3dkpIbzTmfOc57zPe57zHtO3ZaiIHhJaTW1dfUNjU7K5pbWtPdXRuRJ6xcASOcuzvWDNNEJhS1fklFS2WPMDYTimLVbN3ZnK/mpJBKH03GW154sNx9h2ZUFahmIqP0LZ8fS6ko4IN1MZylIU6Z9Aj0EGccx7qSusYwseLBThQMCFYmzDQMhfHjoIPnMbKDMXMJLRvsABkqwtcpbgDIPZXf5v8yofsy6vKzXDSG3xKTaPgJVpDNI9XdML3dENPdL7r7XKUY2Klz2ezapW+Jvthz1Lb/+qHJ4Vdj5Vf3pWKGAy8irZux8xlVtYVX1p//hlaWpxsDxEF/TE/s/pgW75Bm7p1bpcEIsnSPID6N/b/ROsjGZ1yuoLY5np2fgpGtGLAQxzvycwjTnMIxd17AinOEs8a91an9ZfTdUSsaYLX0Ib/gBC3I1D</latexit><latexit sha1_base64="tcrm8is1sjUv+vEDWvmqA/D6eTA=">AAACbnichVFdKwRRGH52fK+vRUlJNhsptb0jIldKyqWvRS1pZpzlZL6aObvF5g+4lwtFlCQ/w40/4MJPkBtFuXHh3dkpIbzTmfOc57zPe57zHtO3ZaiIHhJaTW1dfUNjU7K5pbWtPdXRuRJ6xcASOcuzvWDNNEJhS1fklFS2WPMDYTimLVbN3ZnK/mpJBKH03GW154sNx9h2ZUFahmIqP0LZ8fS6ko4IN1MZylIU6Z9Aj0EGccx7qSusYwseLBThQMCFYmzDQMhfHjoIPnMbKDMXMJLRvsABkqwtcpbgDIPZXf5v8yofsy6vKzXDSG3xKTaPgJVpDNI9XdML3dENPdL7r7XKUY2Klz2ezapW+Jvthz1Lb/+qHJ4Vdj5Vf3pWKGAy8irZux8xlVtYVX1p//hlaWpxsDxEF/TE/s/pgW75Bm7p1bpcEIsnSPID6N/b/ROsjGZ1yuoLY5np2fgpGtGLAQxzvycwjTnMIxd17AinOEs8a91an9ZfTdUSsaYLX0Ib/gBC3I1D</latexit><latexit sha1_base64="tcrm8is1sjUv+vEDWvmqA/D6eTA=">AAACbnichVFdKwRRGH52fK+vRUlJNhsptb0jIldKyqWvRS1pZpzlZL6aObvF5g+4lwtFlCQ/w40/4MJPkBtFuXHh3dkpIbzTmfOc57zPe57zHtO3ZaiIHhJaTW1dfUNjU7K5pbWtPdXRuRJ6xcASOcuzvWDNNEJhS1fklFS2WPMDYTimLVbN3ZnK/mpJBKH03GW154sNx9h2ZUFahmIqP0LZ8fS6ko4IN1MZylIU6Z9Aj0EGccx7qSusYwseLBThQMCFYmzDQMhfHjoIPnMbKDMXMJLRvsABkqwtcpbgDIPZXf5v8yofsy6vKzXDSG3xKTaPgJVpDNI9XdML3dENPdL7r7XKUY2Klz2ezapW+Jvthz1Lb/+qHJ4Vdj5Vf3pWKGAy8irZux8xlVtYVX1p//hlaWpxsDxEF/TE/s/pgW75Bm7p1bpcEIsnSPID6N/b/ROsjGZ1yuoLY5np2fgpGtGLAQxzvycwjTnMIxd17AinOEs8a91an9ZfTdUSsaYLX0Ib/gBC3I1D</latexit>
0.5⇥<latexit sha1_base64="BLMXtHMoAf6LIq7CCRWO/fVnk4Q=">AAACbXichVHLSgMxFD0d3/VVFUFQpFh8rModURRXgggufVXFBzIzphqcFzNpQYs/4FpwIQoKIuJnuPEHXPgJ4sKFghsX3k4HREW9IcnJyT03J4np2zJURA8Jraq6prauviHZ2NTc0ppqa18KvUJgiZzl2V6wYhqhsKUrckoqW6z4gTAc0xbL5u5UeX+5KIJQeu6i2vPFhmNsuzIvLUMxtUrZ0fS6ko4IN1MZylIU6Z9Aj0EGccx6qSusYwseLBTgQMCFYmzDQMhtDToIPnMbKDEXMJLRvsABkqwtcJbgDIPZXR63ebUWsy6vyzXDSG3xKTb3gJVp9NM9XdML3dENPdL7r7VKUY2ylz2ezYpW+Juth10Lb/+qHJ4Vdj5Vf3pWyGM88irZux8x5VtYFX1x//hlYWK+vzRAF/TE/s/pgW75Bm7x1bqcE/MnSPIH6N+f+ydYGs7qlNXnRjKT0/FX1KMbfRji9x7DJGYwixyf6+IIpzhLPGudWo/WW0nVErGmA19CG/wAxa2NDg==</latexit><latexit sha1_base64="BLMXtHMoAf6LIq7CCRWO/fVnk4Q=">AAACbXichVHLSgMxFD0d3/VVFUFQpFh8rModURRXgggufVXFBzIzphqcFzNpQYs/4FpwIQoKIuJnuPEHXPgJ4sKFghsX3k4HREW9IcnJyT03J4np2zJURA8Jraq6prauviHZ2NTc0ppqa18KvUJgiZzl2V6wYhqhsKUrckoqW6z4gTAc0xbL5u5UeX+5KIJQeu6i2vPFhmNsuzIvLUMxtUrZ0fS6ko4IN1MZylIU6Z9Aj0EGccx6qSusYwseLBTgQMCFYmzDQMhtDToIPnMbKDEXMJLRvsABkqwtcJbgDIPZXR63ebUWsy6vyzXDSG3xKTb3gJVp9NM9XdML3dENPdL7r7VKUY2ylz2ezYpW+Juth10Lb/+qHJ4Vdj5Vf3pWyGM88irZux8x5VtYFX1x//hlYWK+vzRAF/TE/s/pgW75Bm7x1bqcE/MnSPIH6N+f+ydYGs7qlNXnRjKT0/FX1KMbfRji9x7DJGYwixyf6+IIpzhLPGudWo/WW0nVErGmA19CG/wAxa2NDg==</latexit><latexit sha1_base64="BLMXtHMoAf6LIq7CCRWO/fVnk4Q=">AAACbXichVHLSgMxFD0d3/VVFUFQpFh8rModURRXgggufVXFBzIzphqcFzNpQYs/4FpwIQoKIuJnuPEHXPgJ4sKFghsX3k4HREW9IcnJyT03J4np2zJURA8Jraq6prauviHZ2NTc0ppqa18KvUJgiZzl2V6wYhqhsKUrckoqW6z4gTAc0xbL5u5UeX+5KIJQeu6i2vPFhmNsuzIvLUMxtUrZ0fS6ko4IN1MZylIU6Z9Aj0EGccx6qSusYwseLBTgQMCFYmzDQMhtDToIPnMbKDEXMJLRvsABkqwtcJbgDIPZXR63ebUWsy6vyzXDSG3xKTb3gJVp9NM9XdML3dENPdL7r7VKUY2ylz2ezYpW+Juth10Lb/+qHJ4Vdj5Vf3pWyGM88irZux8x5VtYFX1x//hlYWK+vzRAF/TE/s/pgW75Bm7x1bqcE/MnSPIH6N+f+ydYGs7qlNXnRjKT0/FX1KMbfRji9x7DJGYwixyf6+IIpzhLPGudWo/WW0nVErGmA19CG/wAxa2NDg==</latexit><latexit sha1_base64="BLMXtHMoAf6LIq7CCRWO/fVnk4Q=">AAACbXichVHLSgMxFD0d3/VVFUFQpFh8rModURRXgggufVXFBzIzphqcFzNpQYs/4FpwIQoKIuJnuPEHXPgJ4sKFghsX3k4HREW9IcnJyT03J4np2zJURA8Jraq6prauviHZ2NTc0ppqa18KvUJgiZzl2V6wYhqhsKUrckoqW6z4gTAc0xbL5u5UeX+5KIJQeu6i2vPFhmNsuzIvLUMxtUrZ0fS6ko4IN1MZylIU6Z9Aj0EGccx6qSusYwseLBTgQMCFYmzDQMhtDToIPnMbKDEXMJLRvsABkqwtcJbgDIPZXR63ebUWsy6vyzXDSG3xKTb3gJVp9NM9XdML3dENPdL7r7VKUY2ylz2ezYpW+Juth10Lb/+qHJ4Vdj5Vf3pWyGM88irZux8x5VtYFX1x//hlYWK+vzRAF/TE/s/pgW75Bm7x1bqcE/MnSPIH6N+f+ydYGs7qlNXnRjKT0/FX1KMbfRji9x7DJGYwixyf6+IIpzhLPGudWo/WW0nVErGmA19CG/wAxa2NDg==</latexit>
=<latexit sha1_base64="mKNhi4l4+8NwtmcIDF9c3XG2cjo=">AAACZHichVHLSsNAFD2N7/potQiCIMVScVVuRFAEoSCCy7baVlApSZxqaJqEJC1o8Qd0q7hwpSAifoYbf8BFf0AQlwpuXHibBkSLeoeZOXPmnjtnZlTb0F2PqBmSurp7evv6B8KDQ8MjkejoWMG1ao4m8pplWM6mqrjC0E2R93TPEJu2I5SqaoiiWllp7RfrwnF1y9zwDmyxU1X2TL2sa4rHVHa5FE1QivyIdwI5AAkEkbGiN9jGLixoqKEKARMeYwMKXG5bkEGwmdtBgzmHke7vCxwhzNoaZwnOUJit8LjHq62ANXndqun6ao1PMbg7rIwjSY90S6/0QHf0TB+/1mr4NVpeDnhW21phlyLHE+vv/6qqPHvY/1L96dlDGYu+V5292z7TuoXW1tcPz1/Xl3LJxgxd0Qv7v6Qm3fMNzPqbdp0VuQuE+QPkn8/dCQpzKZlScnY+kV4NvqIfk5jGLL/3AtJYQwZ5PlfgBKc4Cz1JQ1JMGm+nSqFAE8O3kKY+AYEzicA=</latexit><latexit sha1_base64="mKNhi4l4+8NwtmcIDF9c3XG2cjo=">AAACZHichVHLSsNAFD2N7/potQiCIMVScVVuRFAEoSCCy7baVlApSZxqaJqEJC1o8Qd0q7hwpSAifoYbf8BFf0AQlwpuXHibBkSLeoeZOXPmnjtnZlTb0F2PqBmSurp7evv6B8KDQ8MjkejoWMG1ao4m8pplWM6mqrjC0E2R93TPEJu2I5SqaoiiWllp7RfrwnF1y9zwDmyxU1X2TL2sa4rHVHa5FE1QivyIdwI5AAkEkbGiN9jGLixoqKEKARMeYwMKXG5bkEGwmdtBgzmHke7vCxwhzNoaZwnOUJit8LjHq62ANXndqun6ao1PMbg7rIwjSY90S6/0QHf0TB+/1mr4NVpeDnhW21phlyLHE+vv/6qqPHvY/1L96dlDGYu+V5292z7TuoXW1tcPz1/Xl3LJxgxd0Qv7v6Qm3fMNzPqbdp0VuQuE+QPkn8/dCQpzKZlScnY+kV4NvqIfk5jGLL/3AtJYQwZ5PlfgBKc4Cz1JQ1JMGm+nSqFAE8O3kKY+AYEzicA=</latexit><latexit sha1_base64="mKNhi4l4+8NwtmcIDF9c3XG2cjo=">AAACZHichVHLSsNAFD2N7/potQiCIMVScVVuRFAEoSCCy7baVlApSZxqaJqEJC1o8Qd0q7hwpSAifoYbf8BFf0AQlwpuXHibBkSLeoeZOXPmnjtnZlTb0F2PqBmSurp7evv6B8KDQ8MjkejoWMG1ao4m8pplWM6mqrjC0E2R93TPEJu2I5SqaoiiWllp7RfrwnF1y9zwDmyxU1X2TL2sa4rHVHa5FE1QivyIdwI5AAkEkbGiN9jGLixoqKEKARMeYwMKXG5bkEGwmdtBgzmHke7vCxwhzNoaZwnOUJit8LjHq62ANXndqun6ao1PMbg7rIwjSY90S6/0QHf0TB+/1mr4NVpeDnhW21phlyLHE+vv/6qqPHvY/1L96dlDGYu+V5292z7TuoXW1tcPz1/Xl3LJxgxd0Qv7v6Qm3fMNzPqbdp0VuQuE+QPkn8/dCQpzKZlScnY+kV4NvqIfk5jGLL/3AtJYQwZ5PlfgBKc4Cz1JQ1JMGm+nSqFAE8O3kKY+AYEzicA=</latexit><latexit sha1_base64="mKNhi4l4+8NwtmcIDF9c3XG2cjo=">AAACZHichVHLSsNAFD2N7/potQiCIMVScVVuRFAEoSCCy7baVlApSZxqaJqEJC1o8Qd0q7hwpSAifoYbf8BFf0AQlwpuXHibBkSLeoeZOXPmnjtnZlTb0F2PqBmSurp7evv6B8KDQ8MjkejoWMG1ao4m8pplWM6mqrjC0E2R93TPEJu2I5SqaoiiWllp7RfrwnF1y9zwDmyxU1X2TL2sa4rHVHa5FE1QivyIdwI5AAkEkbGiN9jGLixoqKEKARMeYwMKXG5bkEGwmdtBgzmHke7vCxwhzNoaZwnOUJit8LjHq62ANXndqun6ao1PMbg7rIwjSY90S6/0QHf0TB+/1mr4NVpeDnhW21phlyLHE+vv/6qqPHvY/1L96dlDGYu+V5292z7TuoXW1tcPz1/Xl3LJxgxd0Qv7v6Qm3fMNzPqbdp0VuQuE+QPkn8/dCQpzKZlScnY+kV4NvqIfk5jGLL/3AtJYQwZ5PlfgBKc4Cz1JQ1JMGm+nSqFAE8O3kKY+AYEzicA=</latexit>
研究成果 - ファッションスタイルのクラスタリングと演算
© ZOZO Technologies, Inc. !30
Query item image Generated outfitQuery style Mixture ratio
Style A
Style B
Style C
Style D
Style A
Style B
Style C
Style D
Style A
Style B
Style C
Style D
研究成果 - ファッションスタイル毎のコーディネート生成
© ZOZO Technologies, Inc. !31
SageMakerを導入して実験はスケールしたか
© ZOZO Technologies, Inc. !32
SageMakerを導入して実験はスケールしたか
スケールした
© ZOZO Technologies, Inc. !33
SageMakerへの移行は簡単だったか
© ZOZO Technologies, Inc. !34
SageMakerへの移行は簡単だったか
大変だった
© ZOZO Technologies, Inc. !35
業務をSageMakerに寄せることで効率化に成功した
慣れたやり方を変えることを躊躇わないこと
SageMakerはMLプラットフォームであり、ML開発業務のフレームワークでもある
学び・気付き
© ZOZO Technologies, Inc. !36
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前
推論
対策後
導入 直後
? ? ?
? ? ?
利用促進の為の取り組み
EFSやEC2内のストレージにスナップショットを保存
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
© ZOZO Technologies, Inc. !37
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前
推論
対策後
導入 直後
? ? ?
? ? ?
利用促進の為の取り組み
EFSやEC2内のストレージにスナップショットを保存
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
© ZOZO Technologies, Inc. !38
インスタンス毎に独立に実験とコード修正を繰り返していた 時間が経つに連れてコードと実験のバージョン管理が複雑になり、かつリソースも使い切れていない
開発 導入前これまでの開発方法とSageMakerへの期待
training A
notebook training B
training C
SageMakerを導入して実験環境を1箇所に集約することを期待した
scriptsdeveloped onthe instance A
training A1 training A2scripts'developed onthe instance A
scripts''developed onthe instance A
scriptsdeveloped onthe instance B
training B1 training B2scripts'developed onthe instance B
scripts''developed onthe instance B
scriptsdeveloped onthe instance C
training C1 training C2scripts'developed onthe instance C
scripts''developed onthe instance C
© ZOZO Technologies, Inc. !39
開発 導入直後顕在化したnotebookインスタンスの問題
☀ ジョブという単位で実験を管理できる
☀ 実験をクローンできる
☀ 課金額を最小化できる
🌧 Jupyterやエディタのカスタマイズができない
🌧 sshできない
🌧 ipynbファイルとgitの相性が悪い
notebookインスタンスを開発環境として見ると、柔軟性に欠ける点が目立った これまでの開発環境の拡張性が失われると共に、ipynbファイルの管理コストが加わった
学習ジョブ実行
開発
training A
training B
training C
foo.py
bar.py
baz.yml
© ZOZO Technologies, Inc. !40
開発 対策後notebookインスタンスを経由しない為には…
training A
training B
training C
foo.py
bar.py
baz.yml
training A
training B
training C
foo.py
bar.py
baz.yml
notebookインスタンスでの開発作業を開発機に移行し、開発機からジョブを実行する 開発機にSageMaker SDKをインストールして、notebookインスタンスと同等の役割を与える
> pip install sagemaker
© ZOZO Technologies, Inc. !41
開発 対策後
SDKを利用して開発機からSageMakerに直接学習ジョブを投げるようにした notebookインスタンスが不要となった
notebookに記述していた実験条件と学習ジョブ実行に関する処理を分解した 実験条件はyamlに切り出してgitで管理、学習ジョブ実行に関する処理はCLIとして実装した
実験条件
学習ジョブ実行
実験条件.yml
学習実行CLI (SageMaker SDKをラップ)
training A
training B
training C
training D
confA.yml
confB.yml
confC.yml
confD.yml
notebookを使わずに開発機から学習ジョブを実行する
example.ipynbyamlを起動引数とする
コマンドで学習ジョブを実行
© ZOZO Technologies, Inc. !42
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前
推論
対策後
導入 直後
開発効率低下とipynb ファイルの管理コスト増 ? ?
実験条件と実行を分離
開発機から直接ジョブ実行? ?
EFSやEC2内のストレージにスナップショットを保存
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
利用促進の為の取り組み
© ZOZO Technologies, Inc. !43
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前
推論
対策後
導入 直後
ipynbファイルの管理コスト増と開発効率低下 ? ?
実験条件と実行を分離
開発機から直接ジョブ実行? ?
EFSやEC2内のストレージにスナップショットを保存
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
利用促進の為の取り組み
© ZOZO Technologies, Inc. !44
導入前学習
学習のログはファイルや標準出力に、スナップショットはEFSに出力していた ログもスナップショットもリアルタイムに取得できていた
logsnapshot
EC2環境でのスナップショット取得は簡単
© ZOZO Technologies, Inc. !45
導入直後学習
SageMakerにおける学習のログはCloudWatchに転送される ログはリアルタイムに取得可能
一方でファイル転送は終了時点の1回のみ 学習済みモデルやスナップショットを得るために学習終了を待つ必要がある
n days
学習途中にスナップショットが取得できないのは致命的
log
snapshotmodel
SageMakerは定期的なファイル転送を行わない
© ZOZO Technologies, Inc. !46
n days
学習 対策後
学習の経過を定期的にポストする機能を深層学習フレームワークに実装した ログはSlackに、スナップショットはS3に転送
logsnapshot
ファイル転送は学習用コードに実装する必要がある
extension.py
© ZOZO Technologies, Inc. !47
snapshot snapshot_object
LogReport PlotReport
学習 対策後ファイル転送とログ転送の仕組み
最新のスナップショットはBoto3を利用してS3に転送する 学習のログはIncoming WebHookを利用してSlackにポストする
Chainerの出力を外部ツールに連携
© ZOZO Technologies, Inc. !48
学習 対策後
ジョブ名bucket名
スナップショットは学習ジョブ毎に決まった場所に保存される
スナップショットのS3転送の例
© ZOZO Technologies, Inc. !49
学習 対策後
学習の経過を受動的に把握できる
ログのSlack連携の例
© ZOZO Technologies, Inc. !50
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前 EFSやEC2内のストレージに
スナップショットを保存
推論
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
対策後
導入 直後
学習途中にスナップショットを得ることができない ?
実験条件と実行を分離
開発機から直接ジョブ実行
DLフレームワークの拡張機能を使い定期的にスナップショットをS3に転送
?
ipynbファイルの管理コスト増と開発効率低下
利用促進の為の取り組み
© ZOZO Technologies, Inc. !51
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前 EFSやEC2内のストレージに
スナップショットを保存
推論
対策後
導入 直後
学習途中にスナップショットを得ることができない ?
実験条件と実行を分離
開発機から直接ジョブ実行
DLフレームワークの拡張機能を使い定期的にスナップショットをS3に転送
?
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
ipynbファイルの管理コスト増と開発効率低下
利用促進の為の取り組み
© ZOZO Technologies, Inc. !52
導入前推論
EFSに出力された学習済みモデルをロードしてテストを実行 ファイルの移動なしでテストを実行できていた為、そこまで面倒に感じていなかった
model C
model A
model B
test A
test B
test C
model B training B
model A training A
model C training C
test scripts
test data
EC2環境でのモデルのテストはEFSが中心
学習用インスタンステスト用インスタンス
© ZOZO Technologies, Inc. !53
S3に出力された学習済みモデルを テスト用EC2にコピーしてテストを実行 MLインスタンスにEFSがマウントできないため、学習済みモデルの配布がS3経由となり、コピーの手間が増えた
model C
model A
model B
teat A
test B
test C
model A training A
model B training B
model C training C
test scripts
test data
手動でコピー
S3中心のモデル配布は手動の作業が発生した 導入直後推論
テスト用インスタンス
© ZOZO Technologies, Inc.
バッチ変換ジョブを利用してテストを実行するようにした
!54
対策後推論
学習結果をそのままモデルに登録 学習結果のS3ロケーションを指定してモデルを作成する
登録したモデルを参照してバッチ変換ジョブを定義 モデルとS3に配置されたデータを利用してテストを実行可能
model C
model A
model B
test A
test B
test C
training A
training A
training A registered model C
registered model A
registered model B
test data
test data
test data
© ZOZO Technologies, Inc.
バッチ変換機能を利用してテストを実行するようにした
!55
model C
model A
model B
test A
test B
test C
training A
training A
training A registered model C
registered model A
registered model B
test data
test data
test data
対策後推論
学習結果をそのままモデルに登録 学習結果のS3ロケーションを指定してモデルを作成する
登録したモデルを参照してバッチ変換ジョブを定義 モデルとS3に配置されたデータを利用してテストを実行可能
モデルの作成
© ZOZO Technologies, Inc.
バッチ変換機能を利用してテストを実行するようにした
!56
model C
model A
model B
test A
test B
test C
training A
training A
training A registered model C
registered model A
registered model B
test data
test data
test data
対策後推論
学習結果をそのままモデルに登録 学習結果のS3ロケーションを指定してモデルを作成する
登録したモデルを参照してバッチ変換ジョブを定義 モデルとS3に配置されたデータを利用してテストを実行可能
バッチ変換ジョブ
© ZOZO Technologies, Inc.
モデル作成からバッチ変換ジョブまでをCLIで実装
!57
model C
model A
model B
test A
test B
test C
training A
training A
training A registered model C
registered model A
registered model B
test data
test data
test data
対策後推論
SDKを用いて開発機からテストを実行
テスト実行CLI
© ZOZO Technologies, Inc. !58
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前
推論
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
対策後
導入 直後
学習途中にスナップショットを得ることができない
学習済みモデルをS3から テスト用EC2にダウンロードする工程が増えた
実験条件と実行を分離
開発機から直接ジョブ実行
DLフレームワークの拡張機能を使い定期的にスナップショットをS3に転送
バッチ変換ジョブ機能を利用してEC2を介さずテスト実行
EFSやEC2内のストレージにスナップショットを保存
ipynbファイルの管理コスト増と開発効率低下
利用促進の為の取り組み
© ZOZO Technologies, Inc. !59
開発 学習
複数のサーバで並行して開発してそれぞれ実行導入前 EFSやEC2内のストレージに
スナップショットを保存
推論
EFSに保存された学習済み モデルをテスト用EC2で ロードして実行
対策後
導入 直後
ipynbファイルの管理コスト増と開発効率低下
学習途中にスナップショットを得ることができない
学習済みモデルをS3から テスト用EC2にダウンロード
する工程が増えた
実験条件と実行を分離
開発機から直接ジョブ実行
DLフレームワークの拡張機能を使い定期的にスナップショットをS3に転送
バッチ変換ジョブ機能を利用してEC2を介さずテスト実行
利用促進の為の取り組み
© ZOZO Technologies, Inc.
開発機を中心として作業をシンプルにすることに成功した 開発環境はこれまでの環境を流用し、学習/推論はCLIで実行し、スナップショットの保存も自動化した
利用促進の為の取り組み後
!60
./train
./test
train.py test.py conf.yml
test.py conf.yml test data
train datatrain.py conf.yml
job job job
• 開発環境は1台に集約
学習ジョブ
バッチ変換ジョブ
•学習とテストは開発機からSDKで実行
• 学習過程は外部ツールに出力
• ソースコードとモデルはジョブ毎に保存
© ZOZO Technologies, Inc.
本日登場したツール群をまとめたレポジトリ
!61
https://github.com/tn1031/chainer-sagemaker-tools
学習ジョブや推論ジョブを簡単に実行できるようにするツール
ログのSlack連携やS3へのスナップショット転送を実行するChainer Extension
(ただしChainer限定)
© ZOZO Technologies, Inc.
本日のアジェンダ
第一部
第二部 研究紹介 利用促進の為の取り組み 開発 学習 推論
まとめ
!62
© ZOZO Technologies, Inc.
まとめ•ZOZO Researchでは、ZOZOグループが持つ大量のデータを元にして「ファッションを数値化する」研究活動を行っている
•研究の計算基盤としてSageMakerを採用している
•SageMakerはMLプラットフォームであり、ML開発業務のフレームワークでもある
•導入には課題もあったが、数々の工夫によってスケールする学習環境を得ることができた
!63
© ZOZO Technologies, Inc.
採用情報
•MLエンジニア •機械学習アルゴリズムの実装とPoC開発
https://tech.zozo.com/recruit/
•SRE インフラの設計・開発・運用を主体にサービスの信頼性向上
•Android, iOS, designer, and more
ファッションを技術の力で変えていく仲間を探しています。
!64