Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
Search
Takashi Suzuki
January 25, 2020
Technology
0
28
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
2020/01に行われたSRE Nextの登壇資料
https://sre-next.dev/2020/schedule#b1
Takashi Suzuki
January 25, 2020
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
82
Kubernetes超入門
t24kc
0
91
AI予約サービスのMLOps事例紹介
t24kc
0
19
MLプロジェクトのリリースフローを考える
t24kc
0
10
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
57
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
24
GOの実験環境について
t24kc
0
16
MOVの機械学習システムを支えるMLOps実践
t24kc
0
16
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
12
Other Decks in Technology
See All in Technology
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
260
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
250
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
250
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
110
AIのコンプラは何故しんどい?
shujisado
1
190
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
MLOps の現場から
asei
6
630
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
CustomCopを使ってMongoidのコーディングルールを整えてみた
jinoketani
0
220
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
For a Future-Friendly Web
brad_frost
175
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Building Applications with DynamoDB
mza
91
6.1k
Facilitating Awesome Meetings
lara
50
6.1k
A Philosophy of Restraint
colly
203
16k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Become a Pro
speakerdeck
PRO
26
5k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Transcript
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Copyright (C)
2018 DeNA Co.,Ltd. All Rights Reserved. タクシーxAIを支える KubernetesとAIデータパイプラインの 信頼性の取り組みについて Jan 25, 2020 Atsushi Morimoto, Takashi Suzuki DeNA Co., Ltd. 1
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Contents ▪
MOVお客様探索ナビの紹介 ▪ プロダクトとその開発体制 ▪ ML基盤のエンジニアリング ▪ ドメインアルゴリズムを支えるエンジニアリング 2
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 3
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MOVお客様探索ナビ ▪
MOVIE 4
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. プロダクトの課題設定 オンデマンド交通の
タクシーの乗務員不足 タクシー乗務員は歩合給 お客様を拾える能力に依存 ↓ 需要を予測して最適な「営業経路」を提案 収益構造を改善 仕事としても魅力的な交通にする 5
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アーキテクチャー 6
走行軌跡 乗車ポイント タクシー 需要・供給 実績データ 動態データプロセッシング ワークフロー MLワークフロー API 統計・予測 特徴量 最適探客経路推薦 アルゴリズム 走行コスト 道路 ネットワーク 道路規制・特徴 抽出アルゴリズム 経路案内 アプリ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLワークフロー 開発メンバー
7 走行軌跡 乗車ポイント タクシー 需要・供給 実績データ 動態データプロセッシング ワークフロー MLワークフロー API 統計・予測 特徴量 最適探客経路推薦 アルゴリズム 走行コスト 道路 ネットワーク 道路規制・特徴 抽出アルゴリズム DS MLEG ドメインアルゴリズム スペシャリスト ドメインアルゴリズム エンジニア 経路案内 アプリ アプリエンジニア ML担当範囲 オートモーティブドメイン担当範囲
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 開発フロー 8
タクシー流し営業 需要供給シミュレーション MLモデル 最適探客経路推薦 アルゴリズム タクシー需要・供給 実績データ タクシー事業者と協力して 実証実験 シミュレーション上の 売上 実営業の売上 道路規制・特徴 抽出アルゴリズム
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ML基盤のエンジニアリング 9
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 信頼性におけるMLエンジニアの目指すところ ▪
複数モデル・パラメータの実験における再現性の担保 ▪ DSメンバーが冪等性や依存関係を意識することない高速なジョブ実行 ▪ デプロイ前の動作・検証・評価テストの実施 ML基盤のエンジニアリング 10
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の再現性担保における課題 実験パラメータの管理
▪ 複数モデル・複数ハイパーパラメータの管理が複雑化していた 学習データの一貫性 ▪ 予測モデルの実験時にBQを利用している ▪ BQの元データが都度更新されるため、実験の再現性が担保できていなかった ▪ 単純にBQに対してappend tableするとrerun時にデータ重複が発生する 11
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験パラメータの管理の解決策について comet.mlの利用
▪ 豊富な可視化、実験比較、コード管理 12
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習データの一貫性の解決策について Merge
Queryの利用 ▪ Mergeステートメントを使用することで、既存のレコードには重複・影響なく新規レコード を生成することが可能 13
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の冪等性や依存関係の課題 実験環境での依存関係
▪ 本番環境ではAirflowやKubeflowなどのワークフローエンジンで決まり ▪ とはいえ、実験環境のような細かいパラメータ調整や素早いイテレーションサイクルが 必要な場合だとワークフローシステムは仰々しい ▪ しかしメンバーには冪等性や依存関係を意識することなくジョブを実行してほしい ▪ ワークフローと同様に依存関係がないジョブは並列で実行してほしい 14
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の冪等性や依存関係の解決策について 実験用に最適化したカスタムランナー
▪ タスクランナーInvokeを利用して実験環境の依存ジョブを定義 ▪ 並列処理はconcurrent.featuresモジュールでカスタマイズ ▪ パラメータはyamlファイルで定義 ▪ 処理が重い箇所はAI Platform Training JobやGKEに外出しして軽量化 15
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 評価・テストの課題 実験時のテストについて(主にコストな意味合い)
▪ 複数の実験に対して、都度人力で動作・検証チェックを実施していると毎回工数がか かってしまう ▪ 機械的に動作・検証テストを実施できるようにしたい 本番時のテストについて(主に性能な意味合い) ▪ 不良モデルが本番デプロイされるのは困る ▪ リリースモデルに関しては精度担保できるように評価判定がしたい 16
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験時のテストについて ▪
CircleCI + pytestを利用 ▪ branchにpushされたタイミングで、pytestの動作・検証テストを発火 ▪ 統計値からのズレが多い場合に失敗 実験時の評価・テストの解決策について 17
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 本番時の評価・テストの解決策について 18
本番時のテストについて ▪ Airflow内で各ジョブの連携テストと、Predictionデータの評価を実施 ▪ Prediction評価には統計値と比較して劣っていた場合には失敗 ▪ シミュレーションでの営収評価を実施し、評価が良いもののみデプロイ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLエンジニアのまとめ 1.
実験の再現性の担保の課題 - パラメータ管理と、元データの一貫性の担保 2. 実験における依存関係の課題 - 実験用のカスタムランナー 3. 動作・検証・評価テストの課題 - CIによるテストと、ワークフロー・シミュレーションでのテスト 19
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるのエンジニアリング 20
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるエンジニアリング アプリチームの目指すところ
▪ DS、ドメインアルゴリズムスペシャリストの取組を 品質を損なわずアプリ化すること ▪ コア課題”ではない”ビジネス要件の吸収 ▪ 安全なアプリであること 戦っているもの ▪ データ、アルゴリズム、アプリ、ビジネス要件の複雑なバージョン管理 (さらに複数パターン同時にリリースできること) ▪ 安全に関わる要因 21
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 複雑なバージョン管理 データ
▪ 道路ネットワーク ▪ 日付・時刻ごと統計特徴量 5種 ▪ 〃 予測特徴量 2種 ▪ 〃 道路規制・走行コスト 7種 ビジネス要件 ▪ タクシー営業エリア ▪ お客様探索ナビ営業エリア ロジック ▪ 最適探客経路推薦アルゴリズム ▪ アルゴリズムパラメータ 22
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 複雑なバージョン管理で発生した問題 シミュレーション
▪ 予測と異なる結果を説明できない 実証実験 ▪ お客さんにが居るはずのない自動車専用道に向かう ▪ 通行禁止の道路を案内(乗務員さんの判断で通らず) ▪ シミュレーションで出たことのないルート案内が発生する ▪ 実証実験の結果を評価が難しい 23
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Kubernetes+Git Ops
▪ データのバージョン、ビジネス要件を 全て1つのバージョン定義YAMLに集中してGit管理 ▪ GitからKubernetesマニフェストとして一気にリリースする 24 API 最適探客経路推薦 アルゴリズム バージョン定義YAML • 道路ネットワーク:v2.1812 • 統計需要:Latest • 予測需要:Latest • オリジナル規制データ ◦ パターンA:v3.1812 ◦ パターンB:v2.1812 • 走行コスト特徴量 ◦ 抽出クエリA:v1 ◦ 抽出クエリB:v2 • 営業エリア Git Submodule APIコンテナ Git Revision Kubernetes マニフェスト Git Revision ConfigMap バージョンYAML 道路ネットワーク 規制・特徴抽出 アルゴリズム 更新時には 必ずVersion変更
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. バージョン定義の差分管理 25
ベースバージョン • 道路ネットワーク:v2.1812 • 統計需要:Latest • 予測需要:Latest • オリジナル規制データ ◦ パターンA:v3.1812 ◦ パターンB:v2.1812 • 走行コスト特徴量 ◦ 抽出クエリA:v1 ◦ 抽出クエリB:v2 〇〇市実証実験差分 • 道路ネットワーク:v3.1812 • オリジナル規制データ ◦ パターンA:v4.1812 ◦ パターンB:v3.1812 • 営業エリア サービス中地域差分 • 道路ネットワーク:v2.1812 • オリジナル規制データ ◦ パターンA:v3.1812 ◦ パターンB:v2.1812 • 営業エリア + + = =
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 再現ツールの拡充 最適探客経路推薦アルゴリズム実行に必要なデータを、
中間データを含めて全てバックアップをとり、再現可能にする。 26 最適探客経路推薦 アルゴリズム 全データ 時刻・地理 近傍データ バックアップ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 安全に関わる要因 ▪
直前でのバリデーション ⁃ データの異常値 ⁃ アルゴリズムの推薦経路の異常値 ▪ 判断の難しい道路の推定(高速、私有地、埠頭) → 無理に経路案内を行わず、走行中を配慮したメッセージで指示する 27 API 最適探客経路推薦 アルゴリズム 経路案内 アプリ みちなりに走行してください
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 信頼性評価(策定中) ▪
評価を大きく2つに分ける ⁃ 機能要因 ⁃ データ、モデル、アルゴリズムによる提供価値の品質要因 ▪ 2つをかけ合わせたものを、SLOの指標とする 28
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるエンジニアリング 1.
バージョン管理の課題 → GitOps、環境間差分管理 2. 安全性→ ユーザに返す前にバリデーションをかけ、 安全性に考慮したエラーメッセージを出す 3. 信頼性評価は、「機能要因」「品質要因」を分ける 29
DeNA TechCon 2020 2020/03/04 Wed@渋谷ヒカリエ TechCon2020 検索