Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

における の実現 01

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

とは

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

導入企業様(一部抜粋)

Slide 8

Slide 8 text

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 蓄積データ量

Slide 9

Slide 9 text

コンセプト

Slide 10

Slide 10 text

大量のリアルタイムデータ から パターンを発見する ML システムと 人しかできない思考と発想 を 継続的に統合する End-to-End の ML パイプラインを実現 Google Cloud を使い、 大量のリアルタイム行動データ を 捌くデータシステムと多彩な ML システムをシンプルにつなぐ パイプラインを実現 Realizing “Human in the Loop” with Google Cloud ML End-to-End System

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

プロダクト概要

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

プロダクト概要 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”

Slide 16

Slide 16 text

インフラ基盤

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

インフラ基盤 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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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 からも実行可能

Slide 24

Slide 24 text

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 成功・失敗に関わらず 必ず実行 データ更新

Slide 25

Slide 25 text

● パイプライン実行環境の統一により管理工数が約 30% 削減 ○ 管理者は単一クラスタのみの対応 ● パイプライン開発効率の向上 ○ 実験から本番までがよりシームレスに

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

マシンリソースの最適化 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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

● インスタンスコストを約 50% も削減 ○ node コストは最小限 ● 学習環境を High-Memory、GPU など柔軟に選択可能に ○ ほとんどのタスクに対応可能 ● インフラの管理工数も削減 ○ フルマネージドの恩恵

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

PR 作成時にテスト Service Account Cloud IAM GCP の IAM と連携 GitHub CI/CD Pipeline Github Actions

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

● デプロイにかかる工数を約 20% 削減 ○ 管理画面で確認するのみ ● 安定的に最新版をデプロイ可能に ○ チーム開発のさらなる効率化

Slide 37

Slide 37 text

今後の展望 ● ML Platform としての拡充 ○ リアルタイム基盤 ■ AI Platform Prediction / Cloud Run ○ カスタマイズ性 ■ テンプレートエンジン ○ 強化学習基盤 ■ 接客サービスを最適化

Slide 38

Slide 38 text

Thank you.