Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
CyberAgent AI Labを支える Cloud実験環境 PyData.Tokyo 20210526 Yuki IWAZAKI@chck / CyberAgent AI Lab
Slide 2
Slide 2 text
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
Slide 3
Slide 3 text
CyberAgent AI Labの規模感 人数(35) 研究領域 3
Slide 4
Slide 4 text
AI Labを支えるEcosystem 4
Slide 5
Slide 5 text
AI Labを支えるEcosystem 5
Slide 6
Slide 6 text
AI Labを支えるEcosystem Data selection ailab-datasets 6
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
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の定義
Slide 9
Slide 9 text
tensorflow-datasets: load “tensorflow” とあるが, numpyやpandas形式で出力できる 9
Slide 10
Slide 10 text
tensorflow-datasets: load “tensorflow” とあるが, numpyやpandas形式で出力できる 10 tf.data numpy pandas
Slide 11
Slide 11 text
tensorflow-datasets: create tfds cliからtemplateを生成 11
Slide 12
Slide 12 text
12
Slide 13
Slide 13 text
13 Versioning Metadata. カラムの型の定義 データの説明文 引用論文のURL データのダウンロード 分割方法の指定 前処理含むGenerator
Slide 14
Slide 14 text
14
Slide 15
Slide 15 text
15 前処理含むGenerator (apache-beam pipeline)
Slide 16
Slide 16 text
Private dataの課題感 ◦ Private dataの管理にルールがない ◦ 全プロダクトのデータ集約基盤は Researcher向けじゃない ◦ 各々がオレオレJupyterlabで実験 ◦ 前処理の冪等性担保や共有が困難 ◦ とにかく属人的で難解なSQL ◦ Public -> Private dataでの実験 ◦ インターンや新メンバーの学習コスト ◦ 急にDomain知識が必要になる preprocess preprocess preprocess product_a dataset_c product_b 16
Slide 17
Slide 17 text
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
Slide 18
Slide 18 text
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/
Slide 19
Slide 19 text
PowerfulなDataset Runner Apache BeamによりCPU並列, Worker並列が選択可能 https://towardsdatascience.com/running-an-apache-beam-data-pipeline-on-azure-databricks-c09e521d8fc3 19
Slide 20
Slide 20 text
ailab-datasets -> post-process 利用者がデータ規模に応じて後段の処理を自由に選択可能 20 ailab-datasets Tensorflow Transform tf.data Numpy Pandas Dask-cuDF Distributed GPU CPU Apache Beam
Slide 21
Slide 21 text
AI Labを支えるEcosystem Modeling ailab-model-zoo 21
Slide 22
Slide 22 text
Private modelの課題感 ◦ 似たデータ,似たタスクによるモデルの再発明が多発 ◦ 例えば広告×NLPや広告×CVでpretraining taskが収束してくる ◦ Researcher間で重みシェアしたい欲高まる ◦ 誰がどんな学習済モデルを秘蔵しているかが把握しづらい状況 ◦ Aさんの学習済モデルはBさんに応用できるかも ◦ Public pre-trained modelのprivate版がほしかった ◦ ResNet(on imagenet)やBERT(on ja-wiki)の社内データ版 22
Slide 23
Slide 23 text
ailab-model-zoo (WIP) tensorflow-hubのManaged版であるAI Hub(GCP)を利用 以下3つがPrivateに共有可能: - kubeflow pipeline - notebook - trained model 23
Slide 24
Slide 24 text
ailab-model-zoo (WIP) “tensorflow” とあるが, 実体はuploadしたobjectの検索service Metadataを入力して共有したいobjectをupload tf.hubのself-hostingも可能だが 現状はAI Hubで必要十分 tensorflow/hub/issues/266 24
Slide 25
Slide 25 text
ailab-model-zoo (WIP) 検索機能付きで管理しやすく,Downloadして利用 25 Public model Private model
Slide 26
Slide 26 text
AI Labを支えるEcosystem ailab-mlflow Evaluation 26
Slide 27
Slide 27 text
実験管理の課題感 Teamや個人で実験管理がしたい Free: MLflow, Keepsake SaaS: Neptune.ai, Comet.ml, Wandb MLflowはServer構築が面倒 SaaS系は個人の無料枠を超えると高い 27
Slide 28
Slide 28 text
実験管理の課題感 MLflow Serverを1つ立てて使い回しでもよいが, Experiments枠で各Userの実験を分けると煩雑 個人やチームごとに1MLflowあるとBetter 28 ■ Write ■ Read
Slide 29
Slide 29 text
ailab-mlflow AI Lab共通で使えるMLflow Clusterを構築 OSSのMLflow Tracking ServerをLab PrivateでHosting GCP Resourceで各ユーザはCost/Server管理要らず Gmail Whitelist Accessなので共同研究先との利用にも 29
Slide 30
Slide 30 text
30
Slide 31
Slide 31 text
31
Slide 32
Slide 32 text
32
Slide 33
Slide 33 text
33
Slide 34
Slide 34 text
Cloud IAPによるユーザ認証 34 Not Authorized
Slide 35
Slide 35 text
How to track 1. Terraformで$user endpointを作成 2.Training codeからOAuth Token発行 3.Serverに向けて実験ログを飛ばす 4.${MLFLOW_HOST}/${USER}にアクセス 5.実験結果を自由に管理 35
Slide 36
Slide 36 text
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
Slide 37
Slide 37 text
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
Slide 38
Slide 38 text
どう布教させるかの話 ResearcherはCloudの新技術とかに拘らない傾向 意外と使ってくれないのでTutorialや事例を地道に増やす, 共著で入るときにこっそり導入してしまう 全体のPipelineを設計して自由度を下げるよりも、まずはパーツ 部分に注力し、利用者側が取捨て選択できるように 38
Slide 39
Slide 39 text
ailab-mlflowの構築方法 近々blog公開するのでぜひ https://cyberagent.ai/blog/research/ 39
Slide 40
Slide 40 text
40 Thanks! Any questions? You can find me at: ◦ github@chck ◦
[email protected]