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

大規模データをAIに活かすワークフローツールの紹介 / zozotech_gcp_02

大規模データをAIに活かすワークフローツールの紹介 / zozotech_gcp_02

このスライドは ZOZO Technologies Meetup 〜GCPなど大規模データのZOZOテクノロジーズでの活用事例〜 で発表した登壇資料です。
https://zozotech-inc.connpass.com/event/178050/

プレゼンのスライドでは、ZOZOの「類似アイテム検索」を事例に、GCPのインフ設計、ワークフローツール紹介、ワークフロー開発のコツついて解説しています。

動画は https://www.youtube.com/watch?v=HmAbK0-p8_c で視聴できます。

shikajiro

June 22, 2020
Tweet

More Decks by shikajiro

Other Decks in Technology

Transcript

  1. © ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 ZOZO研究所 福岡
 研究開発エンジニア (Research Engineer)

    渡辺 慎二郎
 @shikajiro
 2010年からAndroidアプリ専門のフリーランスとして活動。
 2018年からZOZO研究所 福岡に参加。バックエンドを担当。
 犬が大好き。

  2. 5 - 自己紹介
 - 研究開発エンジニアの役割
 - 事例
 - インフラ紹介
 -

    API構成
 - ワークフローの構成
 - まとめ
 - 質疑応答
 もくじ

  3. © ZOZO Technologies, Inc. 9
 MLエンジニアとの協働
 - 学習しやすい環境づくり
 - プロトタイプの開発と社内への提供


    - モデルをAPIとして動かす
 MLOpsチームとの協働
 - インフラの設計
 - プロダクション提供に足る性能へ引き上げる
 研究開発エンジニアの役割

  4. 12

  5. 16

  6. 17 [ "-0.010681696236133575", "0.7454709410667419", "0.034483518451452255", "0.8970879316329956", "-1.7511504888534546", "-1.1017072200775146", "-0.9037115573883057", "-1.2564771175384521",

    "0.18719010055065155", "-1.0186340808868408", "0.0976465493440628", "0.7177348136901855", "-2.279893636703491", "-2.569906711578369", "-0.3008498549461365", "-2.450741767883301", "2.5061750411987305", "0.10814519971609116", "-1.2281278371810913", "0.33197277784347534", "-0.2583741545677185", "-3.0515596866607666", "-0.18450962007045746", "-1.002745270729065", … ] 物体検出
 特徴量抽出
 近似最近傍探索

  7. © ZOZO Technologies, Inc. 18
 GCPを選んだ理由
 - BigQueryが使える
 - GPU/TPUを利用する


    - k8sのマネージドサービスGKEが安定している
 推論API
 - 物体検出、特徴量抽出、近似最近傍探索を行う
 - 大量データのIndexを作る必要がある
 画像検索とGCP

  8. 20

  9. 21

  10. © ZOZO Technologies, Inc. 22
 ワークフローの流れ
 1. BigQueryから現在販売中の画像情報を取得する
 2. 商品画像をZOZOTOWNストレージから取得する


    3. 画像から物体検出・特徴量抽出する
 4. 特徴量から近似最近傍探索のIndexを作成する
 5. IndexをGCSに保存する
 6. 推論APIで利用する
 画像検索とワークフロー

  11. © ZOZO Technologies, Inc. 23
 Composer(AirFlow)の特徴
 - タスクを依存関係で構築(DAG)
 - Pythonでパイプライン構築


    - スケジュール化
 - 監視
 - スケーラブル
 - 管理UI
 画像検索とワークフロー

  12. © ZOZO Technologies, Inc. 26
 ワークフロー開発のコツ
 • 1サイクルを速くして開発効率を上げる
 • 性能向上、並列化などで処理高速化


    • 開発時は少量データ
 • 重い処理はGKEに逃がす
 • 差分更新でなるべく重複処理しないように
 • Slack通知などでエラーに気づきやすいように
 画像検索とワークフロー

  13. © ZOZO Technologies, Inc. 27
 ワークフローの難しいところ
 • 実行に時間がかかる
 • スケールしすぎると外部サービスに負荷をかける


    • 外部サービス起因で止まる
 • データは日々変わるため同じ動きをするとは限らない
 • Airflow, Digdag など良し悪しを見極める
 画像検索とワークフロー

  14. 28