Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]

1,927 views

Published on

AIを使ったオートモーティブ領域のサービスとして、タクシー営業を最適化するお客様探索ナビを開発しています。
データサイエンティスト、ドメインアルゴリズムエンジニアが開発した結果を、MLOps、サーバサイドエンジニアがデータパイプラインとサーバAPIとして構築し、最終的にタクシー乗務員向けの最適走行ナビアプリとして提供しています。
このアーキテクチャの信頼性に対する取り組みとして、データパイプライン中でタクシー運行シミュレーションによる評価行ったり、API末端で案内経路に異常が発生していないか、交通規制を守って走行できるかのチェックなど、複数の施策を行っています。
スコープをアーキテクチャの信頼性にしぼり、データパイプラインとアーキテクチャの全体像をお話した後、信頼性を担保するために、行っている施策とそれを取り組むに至った考え方を紹介します。

Published in: Technology
  • Be the first to comment

タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]

  1. 1. 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
  2. 2. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Contents ■ MOVお客様探索ナビの紹介 ■ プロダクトとその開発体制 ■ ML基盤のエンジニアリング ■ ドメインアルゴリズムを支えるエンジニアリング 2
  3. 3. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 3
  4. 4. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. プロダクトの課題設定 オンデマンド交通の タクシーの乗務員不足 タクシー乗務員は歩合給 お客様を拾える能力に依存 ↓ 需要を予測して最適な「営業経路」を提案 収益構造を改善 仕事としても魅力的な交通にする 4
  5. 5. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. アーキテクチャー 5 走行軌跡 乗車ポイント タクシー 需要・供給 実績データ 動態データプロセッシング ワークフロー MLワークフロー API 統計・予測 特徴量 最適探客経路推薦 アルゴリズム 走行コスト道路 ネットワーク 道路規制・特徴 抽出アルゴリズム 経路案内 アプリ
  6. 6. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLワークフロー 開発メンバー 6 走行軌跡 乗車ポイント タクシー 需要・供給 実績データ 動態データプロセッシング ワークフロー MLワークフロー API 統計・予測 特徴量 最適探客経路推薦 アルゴリズム 走行コスト道路 ネットワーク 道路規制・特徴 抽出アルゴリズム DS MLEG ドメインアルゴリズム スペシャリスト ドメインアルゴリズム エンジニア 経路案内 アプリ アプリエンジニア ML担当範囲 オートモーティブドメイン担当範囲
  7. 7. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 開発フロー 7 タクシー流し営業 需要供給シミュレーション MLモデル 最適探客経路推薦 アルゴリズム タクシー需要・供給 実績データ タクシー事業者と協力して 実証実験 シミュレーション上の 売上 実営業の売上 道路規制・特徴 抽出アルゴリズム
  8. 8. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ML基盤のエンジニアリング 8
  9. 9. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 信頼性におけるMLエンジニアの目指すところ ■ 複数モデル・パラメータの実験における再現性の担保 ■ DSメンバーが冪等性や依存関係を意識することない高速なジョブ実行 ■ デプロイ前の動作・検証・評価テストの実施 ML基盤のエンジニアリング 9
  10. 10. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の再現性担保における課題 実験パラメータの管理 ■ 複数モデル・複数ハイパーパラメータの管理が複雑化していた 学習データの一貫性 ■ 予測モデルの実験時にBQを利用している ■ BQの元データが都度更新されるため、実験の再現性が担保できていなかった ■ 単純にBQに対してappend tableするとrerun時にデータ重複が発生する 10
  11. 11. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験パラメータの管理の解決策について comet.mlの利用 ■ 豊富な可視化、実験比較、コード管理 11
  12. 12. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習データの一貫性の解決策について Merge Queryの利用 ■ Mergeステートメントを使用することで、既存のレコードには重複・影響なく新 規レコードを生成することが可能 12
  13. 13. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の冪等性や依存関係の課題 実験環境での依存関係 ■ 本番環境ではAirflowやKubeflowなどのワークフローエンジンで決まり ■ とはいえ、実験環境のような細かいパラメータ調整や素早いイテレーションサイ クルが必要な場合だとワークフローシステムは仰々しい ■ しかしメンバーには冪等性や依存関係を意識することなくジョブを実行してほし い ■ ワークフローと同様に依存関係がないジョブは並列で実行してほしい 13
  14. 14. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験の冪等性や依存関係の解決策について 実験用に最適化したカスタムランナー ■ タスクランナーInvokeを利用して実験環境の依存ジョブを定義 ■ 並列処理はconcurrent.featuresモジュールでカスタマイズ ■ パラメータはyamlファイルで定義 ■ 処理が重い箇所はAI Platform Training JobやGKEに外出しして軽量化 14
  15. 15. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 評価・テストの課題 実験時のテストについて(主にコストな意味合い) ■ 複数の実験に対して、都度人力で動作・検証チェックを実施していると毎回工数 がかかってしまう ■ 機械的に動作・検証テストを実施できるようにしたい 本番時のテストについて(主に性能な意味合い) ■ 不良モデルが本番デプロイされるのは困る ■ リリースモデルに関しては精度担保できるように評価判定がしたい 15
  16. 16. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 実験時のテストについて ■ CircleCI + pytestを利用 ■ branchにpushされたタイミングで、pytestの動作・検証テストを発火 ■ 統計値からのズレが多い場合に失敗 実験時の評価・テストの解決策について 16
  17. 17. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 本番時の評価・テストの解決策について 17 本番時のテストについて ■ Airflow内で各ジョブの連携テストと、Predictionデータの評価を実施 ■ Prediction評価には統計値と比較して劣っていた場合には失敗 ■ シミュレーションでの営収評価を実施し、評価が良いもののみデプロイ
  18. 18. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLエンジニアのまとめ 1. 実験の再現性の担保の課題 - パラメータ管理と、元データの一貫性の担保 1. 実験における依存関係の課題 - 実験用のカスタムランナー 1. 動作・検証・評価テストの課題 - CIによるテストと、ワークフロー・シミュレーションでのテスト 18
  19. 19. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるのエンジニアリング 19
  20. 20. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるエンジニアリング アプリチームの目指すところ ■ DS、ドメインアルゴリズムスペシャリストの取組を 品質を損なわずアプリ化すること ■ コア課題”ではない”ビジネス要件の吸収 ■ 安全なアプリであること 戦っているもの ■ データ、アルゴリズム、アプリ、ビジネス要件の複雑なバージョン管理 (さらに複数パターン同時にリリースできること) ■ 安全に関わる要因 20
  21. 21. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 複雑なバージョン管理 データ ■ 道路ネットワーク ■ 日付・時刻ごと統計特徴量 5種 ■ 〃 予測特徴量 2種 ■ 〃 道路規制・走行コスト 7種 ビジネス要件 ■ タクシー営業エリア ■ お客様探索ナビ営業エリア ロジック ■ 最適探客経路推薦アルゴリズム ■ アルゴリズムパラメータ 21
  22. 22. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 複雑なバージョン管理で発生した問題 シミュレーション ■ 予測と異なる結果を説明できない 実証実験 ■ お客さんにが居るはずのない自動車専用道に向かう ■ 通行禁止の道路を案内(乗務員さんの判断で通らず) ■ シミュレーションで出たことのないルート案内が発生する ■ 実証実験の結果を評価が難しい 22
  23. 23. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Kubernetes+Git Ops ■ データのバージョン、ビジネス要件を 全て1つのバージョン定義YAMLに集中してGit管理 ■ GitからKubernetesマニフェストとして一気にリリースする 23 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変更
  24. 24. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. バージョン定義の差分管理 24 ベースバージョン ● 道路ネットワーク: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 ● 営業エリア + + = =
  25. 25. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 再現ツールの拡充 最適探客経路推薦アルゴリズム実行に必要なデータを、 中間データを含めて全てバックアップをとり、再現可能にする。 25 最適探客経路推薦 アルゴリズム 全データ 時刻・地理 近傍データ バックアップ
  26. 26. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 安全に関わる要因 ■ 直前でのバリデーション ⁃ データの異常値 ⁃ アルゴリズムの推薦経路の異常値 ■ 判断の難しい道路の推定(高速、私有地、埠頭) → 無理に経路案内を行わず、走行中を配慮したメッセージで指示する 26 API 最適探客経路推薦 アルゴリズム 経路案内 アプリ みちなりに走行してください
  27. 27. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 信頼性評価(策定中) ■ 評価を大きく2つに分ける ⁃ 機能要因 ⁃ データ、モデル、アルゴリズムによる提供価値の品質要因 ■ 2つをかけ合わせたものを、SLOの指標とする 27
  28. 28. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドメインアルゴリズムを支えるエンジニアリング 1. バージョン管理の課題 → GitOps、環境間差分管理 2. 安全性→ ユーザに返す前にバリデーションをかけ、 安全性に考慮したエラーメッセージを出す 3. 信頼性評価は、「機能要因」「品質要因」を分ける 28
  29. 29. DeNA TechCon 2020 2020/03/04 Wed@渋谷ヒカリエ TechCon2020 検索

×