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

DataEngConf NYC’18 セッションサマリー #2

gree_tech
November 28, 2018

DataEngConf NYC’18 セッションサマリー #2

グリー開発本部 Meetup #1 DataEngConf NYC報告会で発表された資料です。
https://gree.connpass.com/event/107057/

gree_tech

November 28, 2018
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. Copyright © GREE, Inc. All Rights Reserved. グリー株式会社 開発本部 DataEngineeringGroup

    松岡 紀⾏ DataEngConf NYCʼ18 セッションサマリー #2
  2. Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE,

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

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

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

    Inc. All Rights Reserved. • 機械学習のプロセス • Feature Engineering(特徴選択) • Prototyping(モデルの開発) • Model Training(モデルの学習) • Run in Production(モデルのデプロイ) • モデル開発には沢⼭の周辺タスクが発⽣ • データサイエンティストがモデル開発に集中できるように 機械学習基盤システムを構築したい 機械学習モデル開発の問題点
  7. 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. 使いやすく・かつ柔軟性を • アカデミック出⾝の⼈にはインフラ管理に抵抗がある ⼈も多いので使いやすく。 • ⼀⽅で凝った使い⽅をしたい⼈には柔軟性を。 機械学習基盤システムに求める要件
  8. Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Inc. All Rights Reserved. その他のセッション
  39. 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
  40. 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
  41. Copyright © GREE, Inc. All Rights Reserved. Copyright © GREE,

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

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