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
23
タクシー×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
62
Kubernetes超入門
t24kc
0
66
AI予約サービスのMLOps事例紹介
t24kc
0
14
MLプロジェクトのリリースフローを考える
t24kc
0
7
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
52
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
20
GOの実験環境について
t24kc
0
11
MOVの機械学習システムを支えるMLOps実践
t24kc
0
11
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
10
Other Decks in Technology
See All in Technology
LLMに日本語テキストを学習させる意義
ksaito
13
3.7k
音声AIエージェントの世界とRetell AI入門 / Introduction to the World of Voice AI Agents and Retell AI
rkaga
4
860
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
2k
Estrategias de escalabilidade para projetos web
jessilyneh
2
200
ビジネスとエンジニアリングを繋ぐプロダクトを中心とした組織づくりの実践
sansantech
PRO
1
140
難しいから面白い!医薬品×在庫管理ドメインの複雑性と向き合い、プロダクトの成長を支えるための取り組み / Initiatives to Support Product Growth
kakehashi
2
160
自社サービスのための独自リリース版Redmine「RedMica」の取り組み
vividtone
0
900
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
40k
不動産売買取引におけるAIの可能性とプロダクトでのAI活用
zabio3
0
180
AI活用したくてもできなかった不動産SaaSの今とこれから
nealle
0
200
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
280
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
240
Featured
See All Featured
Writing Fast Ruby
sferik
623
60k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Code Review Best Practice
trishagee
62
16k
What the flash - Photography Introduction
edds
67
11k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
Side Projects
sachag
451
42k
Learning to Love Humans: Emotional Interface Design
aarron
270
40k
Agile that works and the tools we love
rasmusluckow
327
20k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Why Our Code Smells
bkeepers
PRO
334
56k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Thoughts on Productivity
jonyablonski
66
4.2k
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 検索