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

CyberAgent AI Labを支えるCloud実験環境 / ML Experiment ...

chck
May 26, 2021

CyberAgent AI Labを支えるCloud実験環境 / ML Experiment Management via Cloud Computing Platform in CyberAgent AI Lab

PyData.Tokyo Meetup #23での発表資料です

chck

May 26, 2021
Tweet

More Decks by chck

Other Decks in Programming

Transcript

  1. Hello! I am Yuki IWAZAKI@chck ◦ 2014...Backend Engineer (Ruby/Scala) └2017...ML/DS

    (Scala/Python) └2018-...Research Engineer in AI Lab ◦ Multimedia (Vision & Language) 2
  2. tensorflow-datasets Public Datasetのdata loader 7 celeb_a imagenet, cifar10, mnist coco

    squad iris, movielens, titatic imdb, wiki40b youtube_vis https://www.tensorflow.org/datasets/catalog/overview
  3. tensorflow-datasets Public Datasetのdata loader 8 celeb_a imagenet, cifar10, mnist coco

    squad iris, movielens, titatic imdb, wiki40b youtube_vis https://www.tensorflow.org/datasets/catalog/overview Dataset名を指定 Iterationの定義
  4. 12

  5. 14

  6. Private dataの課題感 ◦ Private dataの管理にルールがない ◦ 全プロダクトのデータ集約基盤は Researcher向けじゃない ◦ 各々がオレオレJupyterlabで実験

    ◦ 前処理の冪等性担保や共有が困難 ◦ とにかく属人的で難解なSQL ◦ Public -> Private dataでの実験 ◦ インターンや新メンバーの学習コスト ◦ 急にDomain知識が必要になる preprocess preprocess preprocess product_a dataset_c product_b 16
  7. ailab-datasets ◦ mnist.loadのようにメンテフリーに扱いたい ◦ Domain知識をコード内に埋め込みたい ◦ tensorflow-datasetsのwrapper ◦ Lab共通のPrivate Dataset

    Loader ◦ 社内githubからpip installで利用 1. Data追加が簡単 2. ProductやTaskの単位でVersioning 3. Apache Beamによる高速な前処理 product_a product_b dataset_c product_a dataset_c product_b ailab-datasets 17
  8. ailab-datasets product_a product_b dataset_c product_a dataset_c product_b ailab-datasets 18 ailab_datasets/

    ┣products/ ┃┣product_a ┃┗product_b ┣image_classification/ ┗text_generation/
  9. Private modelの課題感 ◦ 似たデータ,似たタスクによるモデルの再発明が多発 ◦ 例えば広告×NLPや広告×CVでpretraining taskが収束してくる ◦ Researcher間で重みシェアしたい欲高まる ◦

    誰がどんな学習済モデルを秘蔵しているかが把握しづらい状況 ◦ Aさんの学習済モデルはBさんに応用できるかも ◦ Public pre-trained modelのprivate版がほしかった ◦ ResNet(on imagenet)やBERT(on ja-wiki)の社内データ版 22
  10. 30

  11. 31

  12. 32

  13. 33

  14. Summary - 実験の流れ - Data (ailab-datasets) - -> Preprocess (tft,

    tf.data, numpy, pandas) - -> Training (ai platform training) - -> Save model (ailab-model-zoo) - -> Report (ailab-mlflow) OSSを上手くwrapすることで メンテコストを抑えた実験サポート環境を実現 36
  15. Future work: ailab-pipeline - 実験の流れ - Data (ailab-datasets) - ->

    Preprocess (tft, tf.data, numpy, pandas) - -> Training (ai platform training) - -> Save model (ailab-model-zoo) - -> Report (ailab-mlflow) 全体のPipelineもうまいこと管理したいが... Pipeline 37