Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模・複雑な機械学習プロダクトの継続的な改善を支える実験プラットフォーム

Kenta Onishi
November 06, 2020
3.9k

 大規模・複雑な機械学習プロダクトの継続的な改善を支える実験プラットフォーム

Kenta Onishi

November 06, 2020
Tweet

Transcript

  1. Mobility Technologies Co., Ltd. twitter: @ken_jimmy GitHub: ohke 2 大西

    健太 ▪ Mobility Technologies AI技術開発部 MLエンジニアリング2Gr. ▪ 2019/7〜2020/3 DeNA ▪ 2020/4〜 現職 ▪ 現在の業務は主にMLOps ▪ 学習データパイプラインの構築・運用 ▪ 動画を使った推論環境プラットフォームの構築・運用 ▪ AIテスト環境の構築・運用 自己紹介
  2. Mobility Technologies Co., Ltd. 3 ▪ Mobility TechnologiesとDRIVE CHARTの紹介 ▪

    DRIVE CHARTのAI ▪ AIの開発とテスト ▪ AIのテスト環境の改善 発表の流れ
  3. Mobility Technologies Co., Ltd. 6 Mobility Technologies 本発表のテーマ 「移動で人を幸せに。」 DeNA

    オートモーティブ事業を会社分割し、JapanTaxiと統合 (2020/4/1)
  4. Mobility Technologies Co., Ltd. 13 1. エッジデバイスがカメラデータ・センサデータを収集・送信 2. Webサーバが集約 3.

    レポートサーバがデータからリスクとなる行動 (リスクイベント) を検出 4. 運行管理者やドライバが運転評価を確認・指導 DRIVE CHARTのデータフロー エッジデバイス Webサーバ レポートサーバ 運行管理者や ドライバ [参考] 全体アーキテクチャ https://www.slideshare.net/dena_tech/drive-chart-ai-iot-231151928
  5. Mobility Technologies Co., Ltd. 14 1. エッジデバイスがカメラデータ・センサデータを収集・送信 2. Webサーバが集約 3.

    レポートサーバがデータからリスクとなる行動 (リスクイベント) を検出 4. 運行管理者やドライバが運転評価を確認・指導 DRIVE CHARTのデータフロー エッジデバイス Webサーバ レポートサーバ 運行管理者や ドライバ [参考] 全体アーキテクチャ https://www.slideshare.net/dena_tech/drive-chart-ai-iot-231151928 数千台が 同時に走行 数千分のデータ を毎分処理
  6. Mobility Technologies Co., Ltd. 15 1. エッジデバイスがカメラデータ・センサデータを収集・送信 2. Webサーバが集約 3.

    レポートサーバがデータからリスクとなる行動 (リスクイベント) を検出 4. 運行管理者やドライバが運転評価を確認・指導 DRIVE CHARTのデータフロー エッジデバイス Webサーバ レポートサーバ 運行管理者や ドライバ AIの担当領域 AIの担当領域 [参考] 全体アーキテクチャ https://www.slideshare.net/dena_tech/drive-chart-ai-iot-231151928 数千台が 同時に走行 数千分のデータ を毎分処理
  7. Mobility Technologies Co., Ltd. 16 フロントカメラとインカメラで収集 -> Deep learningモデルによって物体や顔の特徴量を抽出している カメラデータの収集

    (エッジデバイス) フロントカメラ インカメラ インカメラファイル (CSV) フロントカメラファイル (CSV) 物体 レーン ランドマーク 顔領域 向き
  8. Mobility Technologies Co., Ltd. 17 レポートサーバ (on AWS) でカメラデータ・センサデータからリスクイベントを検出 ->

    ルールベースおよび学習モデルベースで実装している リスクイベントの検出 (レポートサーバ) フロントカメラ インカメラ GPS 加速度 角速度 マスタデータ 運転データ etc 検出 前処理 出力 ・ ・ ・ ・ ・ ・ 並列化 S3 Aurora ECS
  9. Mobility Technologies Co., Ltd. 19 多様なバックボーンを持つ約30名のスペシャリストが従事 ▪ コンピュータビジョン (CV) :

    10名 ▪ エッジAI開発: 4名 ▪ データサイエンス : 8名 ▪ サーバサイド開発: 8名 ▪ カメラやイベントごとにチームがソフトに分離 ▪ ex. フロントカメラチーム、脇見チーム AI開発の体制
  10. Mobility Technologies Co., Ltd. 20 開発対象は 動画からの特徴量抽出 (エッジ) と イベント検出

    (レポート) の2つ ▪ 最終的な指標はイベントの検出精度 ▪ エッジの変更が後続のレポートへ及ぼす影響を計測できないといけない ▪ 開発プロセスはエッジとレポートで分離 ▪ 各チームがそれぞれ設定した指標を追求する ▪ チームごとに変更の影響をチェック (ex. 抽出した特徴量の可視化) ▪ リリースサイクルはレポートの方が速い ▪ 検出ロジックの変更のみのパターンが大半 ▪ エッジはハードウェアの制約も大きい AI開発のポイント
  11. Mobility Technologies Co., Ltd. CVエンジニア エッジエンジニア データサイエンティスト サーバサイドエンジニア 21 サービス環境と同等の構成

    (AIテスト環境) を組むことで、低い実装コストで実現 従来の開発・テストのフロー サービス環境 AIテスト環境 Edge Report 推論 前処理 出力 検出 前処理 出力 動画 カメラファイル 可視化 ロジック開発 エッジコード レポートコード 集計 カメラファイル センサファイル テーブル S3 (ファイルストレージ ) Aurora (RDB) SageMaker (≒ Jupyter Notebook) ECS (コンテナ実行環境 ) デプロイ デプロイ コピー コピー AWSアカウントを分 離 サーバサイドで シミュレーション 各自でコピー
  12. Mobility Technologies Co., Ltd. 23 リリース前から約1年半運用し、いくつか大きな問題・課題に直面 ▪ エッジとレポートで一貫させたテストができない ▪ エッジとレポートでテストのシステムが分離していたため

    ▪ 新しいエッジモデルに追随したレポートの変更でバグを埋め込む可能性 ▪ 単一の環境のため複数のテストの同時実行できない ▪ スピーディに改善サイクルを回せない ▪ テスト環境へのデプロイオペレーションが人力 ▪ Dockerビルドからデータサイエンティストに委譲されていた ▪ ロジック開発に必要なデータの収集が困難 ▪ サービス環境から分離されているため これらの解決を目指してAIテスト環境の改善に着手 AIテスト環境の問題・課題
  13. Mobility Technologies Co., Ltd. 以下の新規要件を定義 ▪ 特徴抽出からイベント検出まで一貫した結合テストを実施できること ▪ エッジデバイスのモデルの更新など ▪

    実験を 同時・独立・容易 に実施できること ▪ 収集・生成された特徴量を使って集計やロジック開発ができること 現在のAIテスト環境で実現している要件もカバーする ▪ 変更箇所以外はプロダクション同等を再現して効率的にテストできること ▪ 大量のデータに対しても高速に処理できること 24 AIテスト環境に求められる要件
  14. Mobility Technologies Co., Ltd. Feature store と ETL system を内製

    Kubeflow Pipelines を導入 以下の新規要件を定義 ▪ 特徴抽出からイベント検出まで一貫した結合テストを実施できること ▪ エッジデバイスのモデルの更新など ▪ 実験を 同時・独立・容易 に実施できること ▪ 収集・生成された特徴量を使って集計やロジック開発ができること 現在のAIテスト環境で実現している要件もカバーする ▪ 変更箇所以外はプロダクション同等を再現して効率的にテストできること ▪ 大量のデータに対しても高速に処理できること 25 AIテスト環境に求められる要件
  15. Mobility Technologies Co., Ltd. Test Y Test X データセット ETL

    System 26 改善後のAIテスト環境 Feature store Edge Report 推論 前処理 出力 検出 前処理 出力 可視化 集計 動画 ロジック開発 ▪ Kubeflow Pipelinesの導入 ▪ Feature storeとETL systemを内製 サービス環境 AIテスト環境 エッジコード レポートコード カメラファイル カメラファイル センサファイル テーブル デプロイ デプロイ S3 (ファイルストレージ ) Aurora (RDB) SageMaker (≒ Jupyter Notebook) ECS (コンテナ実行環境 ) Lambda (コンテナ実行環境 )
  16. Mobility Technologies Co., Ltd. 27 KubeflowがDRIVE CHARTのAI開発のユースケースに最もマッチしていた ▪ 実験管理に特化したパイプラインを構築できる ▪

    リッチなWebインタフェースが提供される ▪ Kubernetesインフラの恩恵を受けられる ▪ スケーラビリティ ▪ AWS環境でも構築可能 他のOSSやマネージドサービスではテスト基盤として不足していた ▪ Apache Airflow ▪ AWS Step Functions なぜKubeflow Pipelinesを選択したか?
  17. Mobility Technologies Co., Ltd. 28 Kubeflow Pipelinesでエッジとレポートを結合したテストを実現 -> エッジモデルの変更に対するイベント検出精度への影響を簡単に計測できる ▪

    パイプラインはエッジエンジニアとサーバエンジニアで作成 ▪ エッジとレポートの間で人手を介さない ▪ CVエンジニア・データサイエンティストは作成されたパイプラインを実行 ▪ エッジやレポートのコードバージョンを指定して切り替える エッジ・レポートの一貫テスト (Kubeflow Pipelines)
  18. Mobility Technologies Co., Ltd. 29 テストごとに実験環境が分離 -> 複数人あるいは複数条件の実験を並列実行できる ▪ Kubeflow

    Pipelines + Kubernetes の恩恵 ▪ AWSマネージドサービスのライフサイクル管理が不要 ▪ テストごとに依存するECSやSQSなどを作成・削除する必要がない ▪ コンピューティングリソースもスケーラブルで競合しない ▪ DBやFeature storeは共用しているためボトルネックにはなりうる ▪ 同一実験内でもエッジやレポートのコンポネントレベルでの並列化も実装 実験の並列実行 (Kubeflow Pipelines)
  19. Mobility Technologies Co., Ltd. 31 テストで抽出した特徴量をFeature storeに保存 -> 前処理済みの特徴量を使って集計やロジック開発などができる ▪

    テストパイプラインと開発者の間で特徴量を共有するもの ▪ 必要な機能が限定的なため内製した ▪ 既成のプロダクトもあるが高機能過ぎ・信頼性に不安 ▪ 各データはバージョンを持つ ▪ テストごとにバージョンを切り替えることで干渉を防ぐ ▪ バージョンが同じ特徴量をテスト間で再利用する (= キャッシュ) ▪ Pandas DataFrameをそのまま入出力できるインタフェースを提供 ▪ CVエンジニアやデータサイエンティストも扱いやすい 特徴量をFeature storeに保存
  20. Mobility Technologies Co., Ltd. 32 各種データをサービス環境からコピーしてデータセットを生成 -> データセット生成とテストが連携 ▪ Airflow

    + API + CLI の内製システム ▪ カメラファイル + センサファイル + テーブルデータをコピー ▪ 動画の収集もコントロール ▪ データサイエンティストが集めたデータを使った一貫テストが実施可能 ▪ データガバナンスも担保 ▪ 決まった場所へ決まった経路でデータをコピーする ▪ サービス環境でパージされるデータの保全 ▪ テストで用いたデータは永続化する データセット生成をETL Systemへ集約
  21. Mobility Technologies Co., Ltd. Test Y Test X データセット ETLシステム

    33 改善後のAIテスト環境 Feature store Edge Report 推論 前処理 出力 検出 前処理 出力 可視化 集計 動画 ロジック開発 サービス環境 AIテスト環境 エッジコード レポートコード カメラファイル カメラファイル センサファイル テーブル デプロイ デプロイ S3 (ファイルストレージ ) Aurora (RDB) SageMaker (≒ Jupyter Notebook) ECS (コンテナ実行環境 ) Lambda (コンテナ実行環境 ) テストの同時実行 テストの実行がWeb UIで完結 一貫テスト 前処理済みのデータを用いたロ ジック開発 データセットの連携 指定のバージョンでテスト 指定のバージョンでテスト
  22. Mobility Technologies Co., Ltd. 34 ▪ DRIVE CHARTでは危険な運転行動を発見するためにAIを利用 ▪ カメラとセンサのデータからこれらイベントを検知

    ▪ エッジデバイスはDeep learningモデルを搭載して物体や顔の特徴を抽出 ▪ レポートサーバはデータを統合して ルール + 学習モデル でイベントを検出 ▪ 従来のテスト環境が抱えていた問題・課題に対して、 Kubeflow Pipelines・Feature store・ETL systemを組み合わせて解決 ▪ エッジデバイスとサーバの結合テスト ▪ 複数テストの同時実行 ▪ Web UIからテストの実行 ▪ 前処理済みの特徴量を用いたロジック開発 ▪ データサイエンティストが集めたデータセットをテストへ連携 まとめ