Slide 1

Slide 1 text

Copyright © GREE, Inc. All Rights Reserved. グリー株式会社 開発本部 DataEngineeringGroup 松岡 紀⾏ DataEngConf NYCʼ18 セッションサマリー #2

Slide 2

Slide 2 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. 【⽒名・所属】 • 松岡 紀⾏ / Noriyuki Matsuoka • 開発本部 データエンジニアリンググループ エンジニアチーム 【略歴】 • 2016/04 グリー株式会社 ⼊社 • 2016/06 データエンジニアリンググループ配属 • オンプレのHadoopやEMRベースのログ基盤を運⽤ • 2018/07 兼務で新規ゲームにクライアントエンジニアとし て配属 ⾃⼰紹介

Slide 3

Slide 3 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • セッション紹介#01 • Building a Modern Machine Learning Platform on Kubernetes • セッション紹介#02 • Artwork Personalization at Netflix • その他のセッション • まとめ アジェンダ

Slide 4

Slide 4 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. セッション紹介#01 Building a Modern Machine Learning Platform on Kubernetes Saurabh Bajaj | Lyft

Slide 5

Slide 5 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • ライドシェアサービスを提供する アメリカの企業 • Uberの競合 • タクシーのような専⽤⾞ではなく、 ⼀般⼈が⾃家⽤⾞で乗⾞サービスを⾏う。 • 乗⾞料⾦は、都市や利⽤時間帯によって異なるが、 基本的にタクシーより安い。 企業紹介 - Lyft

Slide 6

Slide 6 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 機械学習のプロセス • Feature Engineering(特徴選択) • Prototyping(モデルの開発) • Model Training(モデルの学習) • Run in Production(モデルのデプロイ) • モデル開発には沢⼭の周辺タスクが発⽣ • データサイエンティストがモデル開発に集中できるように 機械学習基盤システムを構築したい 機械学習モデル開発の問題点

Slide 7

Slide 7 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. 1. 特定の機械学習フレームワークに依存しない • tensorflowなど 2. GPUも利⽤できるように 3. 特定のクラウドに依存しない • NVIDIAのGPU Cloud、GoogleのCloud TPUや ASICベースのモデルトレーニングシステム • 機械学習界隈でのハードウェア・ソフトウェアエコシ ステムは進化が早い 4. 使いやすく・かつ柔軟性を • アカデミック出⾝の⼈にはインフラ管理に抵抗がある ⼈も多いので使いやすく。 • ⼀⽅で凝った使い⽅をしたい⼈には柔軟性を。 機械学習基盤システムに求める要件

Slide 8

Slide 8 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. Docker Container • コンテナ技術での抽象化 • 特定のシステムに依存しなくなる Kubernetes • プラットフォームを構築するためのリッチなAPIを提供 • 複雑なワークフローを起動可能 • 容易にスケール可能 • クラウド⾮依存なAPI • ⼀⽅でローレベルなAPIも多数含まれ複雑なため、 さらに抽象化して使いやすくしたい Container / Kubernetes

Slide 9

Slide 9 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • KubernetesをラップしたGUIを作成・提供 • ソフトウェアをボタンで選択 • Jupyter Notebook • Deeplearning + Tensorboard • R-Studio • ハードウェアをボタンで選択 • CPU • GPU • スペックの⾼低 Lyft の アプローチ

Slide 10

Slide 10 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • ウェブブラウザで動作する対話型Pythonエディター • データを可視化して確認しながらプログラムを書けるため、 分析⽬的などに良く利⽤される • Lyftではこれを機械学習のベース環境として提供 (補⾜)Jupyter Notebook

Slide 11

Slide 11 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Kubernetesの最⼩構成単位 • 1つ以上のコンテナとリソースの組を抽象化したもの Kubernetes ‒ Pod

Slide 12

Slide 12 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Podで利⽤可能な外部ストレージ管理の仕組み • モデルの学習データのチェックポイントとして利⽤可能 • NFSも利⽤可能 Kubernetes ‒ Persistent Volume

Slide 13

Slide 13 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Podに対してアクセスポリシーを定義したもの Kubernetes ‒ Service Pod#01 notebook-xxxxx Pod #02 tensorboard-yy Service#01 Cluster IP: xxx.xx.xx.xx Service#02 Cluster IP: yyy.yy.yy.yy Client Port 8888 Port 6006

Slide 14

Slide 14 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Serviceよりもさらに外側のルーターコンポーネント • Serviceよりも多機能 Kubernetes ‒ Ingress Pod#01 Pod #02 Service#01 Service#02 Client Ingress

Slide 15

Slide 15 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 問題: Imageのサイズが⼤きい • Notebookのイメージサイズは平均して12-15GB • NVIDIAのCUDAドライバーやMLフレームワークのバイナリ • Notebookの作成のたびにダウンロードすると、 かなりの時間がかかってしまう • 対応 • 各ノードでキャッシュウォーミングを⾏って対応 クラスタに関する問題#1

Slide 16

Slide 16 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 問題: 新しいインスタンスの起動に時間がかかる • Kubernetesには負荷に応じてクラスタを⾃動的に 拡張するAuto Scalerがある • ⼀⽅で新しいインスタンスの起動には AMIを使⽤しても5~10分くらいの時間がかかる • 対応 • KubernetesのPreemption機能で対応 • Pod間に Priority (優先度)をつけておき、 新しい重要なPodがリソース不⾜で投⼊できない場合に 優先度の低いPodを追い出すこと クラスタに関する問題#2

Slide 17

Slide 17 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 問題: ⼤量のCredentialsの管理 • Podが外部と通信等を⾏うためにはCredentialsが必要 • 例:GITHUB_TOKEN • 対応 • KubernetesのSecrets機能の利⽤ • KubernetesではSecretsを利⽤すれば 安全・簡単にCredentialsを管理可能 • Base64エンコーディングで難読化 • コンテナ内で環境変数として参照可能 • LyftではGUIからユーザが簡単に設定可能 クラスタに関する問題#3

Slide 18

Slide 18 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • MLモデルの実験には沢⼭の試⾏回数が必要 • Optimizerを⼊れ替える • Parameterを⼊れ替える • … • LyftにおけるTrainingのやり⽅ • NotebookでModel classやtraining methodを書く • モデルを含んだDockerファイルを作成してpush • CUDAドライバーなど必要なものがあればそれらもimport • GUIのTrainingページでモデルを選択&実⾏をクリック Training

Slide 19

Slide 19 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • ハイパーパラメータのチューニングも時間がかかる • 何度も値を調整しながら学習を繰り返す必要がある • Katib • ハイパーパラメータチューニングフレームワーク • kubeflowプロジェクトの1つ • Google VizierをOSSで実装したもの • パラメータ空間を定義すれば、 あとは指定したアルゴリズム (グリッドサーチなど)でチューニング Tuning

Slide 20

Slide 20 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Kubernetesは特に使ったことがないのですが、強⼒な機 能が揃っていることや、関連する便利なOSSが増えている ことを考えると、少なくともML基盤では、あるいはそれ 以外でも⾮常に魅⼒的に感じました。 • 個⼈の意⾒ですがECSと⽐べてyamlやCLIでの管理が充 実していると感じたので使ってみたい • Lyftほど⼤きな企業ならともかく、普通の企業であれば kubeflowのエコシステムに乗っかったほうが良い? • 全体的に無駄な時間の削減を強調していて、アメリカのAI スペシャリストの給与相場を考えると、切実な問題なんだ ろうなと思いました。 所感

Slide 21

Slide 21 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • カンファレンスサイト(概要のみ) • https://www.dataengconf.com/speaker/building-a- modern-machine-learning-platform-on- kubernetes?hsLang=en-us 参考

Slide 22

Slide 22 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. セッション紹介#02 Artwork Personalization at Netflix Tony Jebara | Netflix

Slide 23

Slide 23 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 映像ストリーミング配信等を⾏う アメリカの企業 • 古くから機械学習を⽤いてレコメンド機能等に注⼒ 企業紹介 - Netflix

Slide 24

Slide 24 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Personalized Ranking • Personalized Page Generation • Personalized Promotion • Personalized Image Selection • Learning Collaborative Search • Personalized Messaging • Personalized Marketing • Personalized Life Time Value • Personalized Content Acquisition Netflix が⾏っている機械学習

Slide 25

Slide 25 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. アートワークのパーソナライズ (出典)https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76 (2点とも)

Slide 26

Slide 26 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 古典的な⼿法 Batch Machine Learning (出典)https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76 (2点とも)

Slide 27

Slide 27 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Regret(後悔)を最⼩化するためには Online Learningが適している • Regret: 最初からユーザの好みが既知だった場合の結果 と実際の結果の差分 • Batch的にではなく逐次的にモデルを改善していく • 関連する有名な問題: Multi-Armed Bandits Online Learning

Slide 28

Slide 28 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 以下を毎ターン繰り返す • Learner は Action を選ぶ • Environment は Action に従って Reward を返す • Learner は 累積報酬を最⼤化するように ⽅針をアップデートする • ポイント • 情報の探索と活⽤をバランスよく⾏う必要がある Bandits 問題 Learner (Policy) Environment Action Reward

Slide 29

Slide 29 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 以下を毎ターン繰り返す • Environment は Context を 渡す • Learner は Context を考慮しながら Action を選ぶ • Environment は Action に従って Reward を返す • Learner は 累積報酬を最⼤化するように ⽅針をアップデートする • Context: スロットの⼤きさ等の特徴ベクトル • 教師あり学習と異なり、正解を教えてもらえる訳ではない Contextual Bandits 問題 Learner (Policy) Environment Action Reward Context

Slide 30

Slide 30 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Context: ユーザの視聴履歴・国 • Action: 選択されたアートワーク • Reward: ユーザがポジティブな反応をしたかどうか • ポジティブ • コンテンツを楽しんで視聴した • ネガティブ • コンテンツを視聴しなかった • 途中で視聴をやめた • 楽しめなかった アートワークへの適⽤

Slide 31

Slide 31 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • Contextual Bandits 問題を解くためのアルゴリズム • ε-greedy法 • LinUCB • Thompson Sampling • 例: ε-greedy法 • εの確率で「探索」 • 1-εの確率で「活⽤」 Contextual Bandits アルゴリズム

Slide 32

Slide 32 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. 実際に適⽤した場合の例 (出典)https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76

Slide 33

Slide 33 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 本番で使⽤する前にオフラインで性能評価を⾏いたい • Replay ⼿法 • 保存してある過去のアクションログを⽤いて 擬似的に評価 オフラインでのモデルの性能評価 (出典)https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76

Slide 34

Slide 34 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • メリット • 実データを使っており指標として信頼性がある • 計算しやすい • デメリット • 沢⼭のデータが必要 • 過学習する可能性がある オフラインでのモデルの性能評価 (出典)https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76

Slide 35

Slide 35 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • APIの適⽤場所は幅広く、ピーク時は20M RPS を超える • ⼿法1: Live Compute • アクセスが有った際にモデルを適⽤(計算) • 問題点 • SLA を満たすのが難しい • 遅延を抑えるにはシンプルなアルゴリズムに制限される • ⼿法2: Online Compute • 事前にモデルを適⽤してキャッシュ • 問題点 • 適⽤されるモデルは最新じゃない可能性がある • 実際には使われないキャッシュも⽤意する必要がある オンラインでのモデルの適⽤

Slide 36

Slide 36 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 内容としてはほぼ機械学習の話でしたが、基調講演として 発表されていて、参加者も次々と質問するほど熱⼼に聞い ていたのが印象的でした。 データに携わる上で、教養として機械学習に関する基本的 な知識は⾝につけておきたいと改めて思いました。 • 「アートワークをユーザによって変える」というアイデア ⾃体個⼈的には⽬からウロコでしたが、Netflixとしては将 来的に「ユーザがテレビの前にただ座っているだけで最適 なコンテンツが流れ最⾼な体験ができる」世界を⽬指して いるらしく、視野を拡げるために視座を⾼く保つというの は⼤事だと改めて感じました。 所感

Slide 37

Slide 37 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • カンファレンスサイト(概要のみ) • https://www.dataengconf.com/speaker/artwork- personalization-at-netflix?hsLang=en-us • ブログ(画像引⽤元) • https://medium.com/netflix-techblog/artwork- personalization-c589f074ad76 参考

Slide 38

Slide 38 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. その他のセッション

Slide 39

Slide 39 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 内容 • Prestoの紹介 • 他のSQL Engineと⽐べた際のPrestoの良さとして、特定の Data sourceに依存しない、ということを強調していました • Starburstが提供するPresto Enterpriseの紹介 • 所感 • ⼈は多く、Prestoの根強い⼈気を感じました • Prestoを再評価する良いきっかけになりました • 弊社ではEMRのPrestoを使っていて、Prestoが特定のData sourceに依存しないという点はあまり意識したことはなかっ たですが、時代の流れとしても特定のプラットフォーム・技術 ⾮依存、という性質はより重視されてきていると思ったため Presto: Fast SQL-on-Anything

Slide 40

Slide 40 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 内容 • Facebookでデータ基盤を構築・運⽤した経験から得た プライバシーやセキュリティに関するお話 • Multi-tenancyモデルでのセキュリティの問題 • GDPRの『忘れられる権利』の対応に苦労したお話 • 個⼈情報に関連するデータに対して Semantic Type を定義 • 個⼈情報を取り扱うテーブルは最低限に抑え、 残りのテーブルは過去の全てのデータに対して匿名化を施した • IP -> masked IP、name -> null • 所感 • 数少ないプライバシーやセキュリティの話で、リスク 削減と性能のトレードオフの難しさを再認識しました Analyzing Data in the Cloud: Privacy and Security

Slide 41

Slide 41 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. まとめ

Slide 42

Slide 42 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. • 全体の話の傾向 • 全体としてMLやAIに関するセッションがかなり多かっ た印象 • データ分析基盤においては処理パフォーマンスよりも、 ストリーミングやスケジューラに着⽬した話が多かっ た印象 • Apache Kafka、Apache Airflowなど • 所感 • 概観としては、AWS・GCPなどクラウドで簡単にデー タ分析基盤が構築できるようになった今、それらを組 み合わせて如何に分析基盤を効率よく運⽤するか、ま た、データにML等を適⽤して如何に事業的価値を出せ るか、ということに注⽬が集まっていると感じました まとめ

Slide 43

Slide 43 text

Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE, Inc. All Rights Reserved. ありがとうございました!