GoogleCloudDayDigital PLAID MLPipeline On AIPlatform

GoogleCloudDayDigital PLAID MLPipeline On AIPlatform

Presentation on Google Cloud Day Digital 2020
「AI Platform で実現する ML Pipeline」
Movie: https://cloudonair.withgoogle.com/events/google-cloud-day-digital/watch?talk=d3-ml05

290d6f09d5a1df2c2ecb6601011fe5c1?s=128

kargo113

June 11, 2020
Tweet

Transcript

  1. で実現する @kargo113 株式会社プレイド

  2. における の実現 01

  3. 目次 KARTE とは コンセプト ML プロダクト概要 インフラ基盤

  4. とは

  5. None
  6. None
  7. 導入企業様(一部抜粋)

  8. 68. 3 億 UU 累計ユーザー数 ※1 105,000 over 秒間トラッキング数 ※3

    0.x 秒/解析 解析速度 1.55 兆円 年間解析流通金額 ※2 ※1 ローンチ〜2020 年 2 月までの解析ユニークユーザー数の実績 ※2 EC 領域における解析流通金額。 2019 年 3 月〜2020 年 2 月までの単年の実績 ※3 秒間解析イベント数(閲覧、購入、クリックなど全計測イベントが対象。 2020 年 3 月 の最大値) 180+ PB 月間解析データ量 8+ PB 蓄積データ量
  9. コンセプト

  10. 大量のリアルタイムデータ から パターンを発見する ML システムと 人しかできない思考と発想 を 継続的に統合する End-to-End の

    ML パイプラインを実現 Google Cloud を使い、 大量のリアルタイム行動データ を 捌くデータシステムと多彩な ML システムをシンプルにつなぐ パイプラインを実現 Realizing “Human in the Loop” with Google Cloud ML End-to-End System
  11. Realizing “Human in the Loop” with Google Cloud 商品の在庫最適化を図りたいが、 需要予測が難しく、在庫ロスが

    発生してコストになっている 在庫があまりそうな 商品に関しては、KARTE を活用していち早くクーポ ンを配布するなどの対策 を実施 需要予測 課題 施策 ゲームの不正ユーザーが多く、 チートなどの不正行為がなされ、 本質的なファンの離脱等が 発生してしまっている 不正ユーザーデータを、 新規会員獲得の為の 広告データに還元して、 広告の無駄な消費を減少 異常検知 施策 課題 クーポンを配布しているが、 コストが増加している為、 なるべく LTV が高いロイヤル ユーザーにのみ配布する形にし、 費用対効果を高めたい KARTE を活用して、 LTV が高い傾向にある ユーザーにのみクーポン を配布し ROI を最大化 ロイヤルカスタマー分類 課題 施策
  12. プロダクト概要

  13. プロダクト概要 テンプレートを選択 パラメーターを設定 パイプライン実行 ※画面はイメージであり、実際のものと異なります パラメーター 学習開始日: 学習終了日: 推論開始日: 推論終了日:

    閾値: 概要説明 実行
  14. プロダクト概要 ※画面はイメージであり、実際のものと異なります 学習結果 スコア 推論結果 重要度 分布 出力先データセット 再推論 スコアや重要度を確認

    推論結果の格納先 同じモデルで再度実行
  15. プロダクト概要 user_id name Loyal Score aaa Tanaka 0.98 bbb Suzuki

    0.88 ccc Iwasaki 0.73 ddd Murakami 0.42 eee Takahashi 0.39 fff Okada 0.32 ggg Takeda 0.20 行動データ クライアント エンドユーザー スコアに応じて クーポン出し分け 紐付けテーブル 算出したスコア COUPON “A” COUPON “B”
  16. インフラ基盤

  17. 解決したい課題 ①パイプライン実行環境の統一 様々なテンプレートごとに異なるワークフ ローをフロントエンドからもバックエンドか らも実行したい ②学習環境のスケーラビリティ モデルも多様であるため、用途に応じて 柔軟に変更できるようにしたい ③継続的インテグレーション 部分的にテンプレートを変更した場合も、

    共通モジュールを変更した場合も、安定 的にコードを修正してデプロイしたい
  18. インフラ基盤 ML System Flask Server UI Images Container Registory KARTE

    System Kubernetes Engine KARTE System 弊社開発者 Status Cloud Pub/Sub ML Pipeline AI Platform Pipelines Batch Train AI Platform Training Transform Train Inference KARTE Data BigQuery クライアント CI/CD Pipeline Github Actions cometML
  19. 解決したい課題 ①パイプライン実行環境の統一 様々なテンプレートごとに異なるワークフ ローをフロントエンドからもバックエンドか らも実行したい ②学習環境のスケーラビリティ モデルも多様であるため、用途に応じて 柔軟に変更できるようにしたい ③継続的インテグレーション 部分的にテンプレートを変更した場合も、

    共通モジュールを変更した場合も、安定 的にコードを修正してデプロイしたい AI Platform Pipelines
  20. ML System Flask Server UI Images Container Registory KARTE System

    Kubernetes Engine KARTE System 弊社開発者 Status Cloud Pub/Sub ML Pipeline AI Platform Pipelines Batch Train AI Platform Training Transform Train Inference KARTE Data BigQuery クライアント AI Platform Pipelines CI/CD Pipeline Github Actions cometML
  21. SDK によるフロントエンド側との連携 $ pip install kfp Flask Server UI KARTE

    System Kubernetes Engine KARTE System ML System ML Pipeline AI Platform Pipelines kfp.Client.run_pipeline
  22. SDK によるフロントエンド側との連携 Flask Server UI KARTE System Kubernetes Engine KARTE

    System ML System kfp.Client.run_pipeline params = { start_date = “20200101”, end_date = “20200531”, …, } default の引数を設定すれば params には変更したい引数を入れるだけ ML Pipeline AI Platform Pipelines
  23. SDK による実行環境の分離 KARTE System Kubernetes Engine KARTE System Local System

    kfp.Client.run_pipeline experiment_id = “development” experiment_id = “production” ML System ML Pipeline AI Platform Pipelines experiment_id の引数で分離 もちろん UI からも実行可能
  24. Pub/Sub を用いた Status の管理 Flask Server UI KARTE System Kubernetes

    Engine KARTE System ML System ML Pipeline AI Platform Pipelines Status Cloud Pub/Sub { model_id: “123456”, status: “SUCCEESS”, …. } ExitHandler 成功・失敗に関わらず 必ず実行 データ更新
  25. • パイプライン実行環境の統一により管理工数が約 30% 削減 ◦ 管理者は単一クラスタのみの対応 • パイプライン開発効率の向上 ◦ 実験から本番までがよりシームレスに

  26. 解決したい課題 ①パイプライン実行環境の統一 様々なテンプレートごとに異なるワークフ ローをフロントエンドからもバックエンドか らも実行したい ②学習環境のスケーラビリティ モデルも多様であるため、用途に応じて 柔軟に変更できるようにしたい ③継続的インテグレーション 部分的にテンプレートを変更した場合も、

    共通モジュールを変更した場合も、安定 的にコードを修正してデプロイしたい AI Plat form Training
  27. ML System Flask Server UI Images Container Registory KARTE System

    Kubernetes Engine KARTE System 弊社開発者 Status Cloud Pub/Sub ML Pipeline AI Platform Pipelines Batch Train AI Platform Training Transform Train Inference KARTE Data BigQuery クライアント AI Platform Training cometML CI/CD Pipeline Github Actions
  28. 2 8 学習環境のスケーラビリティ Job ML Pipeline AI Platform Pipelines Batch

    Train AI Platform Training High-Memory, GPU … etc node pool 作成時に固定 --master-machine-type=”n1-highmem-8”, --master-accelerator=”type=nvidia-tesla-k80,count-2” パイプラインごとに簡単に変更可能 Job High-Memory Pool Kubernetes Engine GPU Pool Kubernetes Engine
  29. マシンリソースの最適化 Job 実行時間分だけの課金 Job がなくても node コストが発生 $ gcloud ai-plarform

    jobs submit training ML Pipeline AI Platform Pipelines Job Batch Train AI Platform Training Job High-Memory Pool Kubernetes Engine GPU Pool Kubernetes Engine
  30. 3 0 Kubeflow 側でもログを取得 ML Pipeline AI Platform Pipelines Batch

    Train AI Platform Training AI Platform Training の log を活用 ContainerOp( image="gcr.io/google.com/cloudsdktool/cl oud-sdk:slim", command=[“gcloud”,”ai-platform”, “jobs”, “submit”, “training”,…, “--stream_logs”], …. ) custom container
  31. • インスタンスコストを約 50% も削減 ◦ node コストは最小限 • 学習環境を High-Memory、GPU

    など柔軟に選択可能に ◦ ほとんどのタスクに対応可能 • インフラの管理工数も削減 ◦ フルマネージドの恩恵
  32. 解決したい課題 ①フロントエンド&バックエンドか らの実行管理 様々なテンプレートごとに異なるワークフ ローをフロントエンドからもバックエンドか らも実行したい ②学習環境のスケーラビリティ モデルも多様であるため、用途に応じて 柔軟に変更できるようにしたい ③継続的インテグレーション

    部分的にテンプレートを変更した場合も、 共通モジュールを変更した場合も、安定 的にコードを修正してデプロイしたい Github Actions
  33. ML System Flask Server UI Images Container Registory KARTE System

    Kubernetes Engine KARTE System 弊社開発者 Status Cloud Pub/Sub ML Pipeline AI Platform Pipelines Batch Train AI Platform Training Transform Train Inference KARTE Data BigQuery クライアント Github Actions CI/CD Pipeline Github Actions cometML
  34. PR 作成時にテスト Service Account Cloud IAM GCP の IAM と連携

    GitHub CI/CD Pipeline Github Actions
  35. Service Account Cloud IAM Images Container Registory ML Pipeline AI

    Platform Pipelines Image pipeline develop / master ごとに image と pipeline を push CI/CD Pipeline Github Actions GitHub
  36. • デプロイにかかる工数を約 20% 削減 ◦ 管理画面で確認するのみ • 安定的に最新版をデプロイ可能に ◦ チーム開発のさらなる効率化

  37. 今後の展望 • ML Platform としての拡充 ◦ リアルタイム基盤 ▪ AI Platform

    Prediction / Cloud Run ◦ カスタマイズ性 ▪ テンプレートエンジン ◦ 強化学習基盤 ▪ 接客サービスを最適化
  38. Thank you.