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

DRIVE CHART における OSS を活用した実践 AI 開発【DeNA TechCon 2023】

GO Inc. dev
February 28, 2023

DRIVE CHART における OSS を活用した実践 AI 開発【DeNA TechCon 2023】

交通事故削減を支援する、次世代AIドラレコサービス「DRIVE CHART」では、 エッジやクラウド上で稼働する様々な種類の AI によって交通事故に繋がる可能性の高い危険運転を自動検知し、運転傾向を分析しています。

本セッションでは DRIVE CHART が OSS を活用しつつ、幅広い種類の AI の開発をどのように実践しているかをお話いたします。

資料内でのリンク集:
p20, https://mo-t.com/career/

◆ You Tube
https://youtu.be/RJAp60KYDfg

◆ DeNA TechCon 2023 公式サイト
https://techcon2023.dena.dev/

GO Inc. dev

February 28, 2023
Tweet

More Decks by GO Inc. dev

Other Decks in Technology

Transcript

  1. DRIVE CHART における OSS を活 用した実践 AI 開発 株式会社Mobility Technologies

    スマートドライビング事業部システム開発部AI基盤グループ 石井 健太朗
  2. 企業は社有車の事故を防止する必要がある ▪ 社員が社有車で事故を起こせば会社の責任 ▪ 企業は事故を起こさないための仕組みづくりが必要 ▪ やみくもに事故削減活動を行ってもキリがない ▪ すべての運転記録をチェックするのは現実的ではない ▪

    社員それぞれの事故のリスクを把握し効率・効果的な指導、改善が求められる ▪ 運転の癖を可視化し、社員ごとに指導内容をカスタマイズできる 11 https://drive-chart.com/magazines/mg_220131
  3. DRIVE CHARTが提供する代表的な機能 ▪ 危険シーン検知 ▪ 脇見運転、車間距離不足、一時不停止、速度超過、急ハンドル、急加速、急減速、急後退 ▪ 日報・月報自動作成機能 ▪ 車両別

    / ドライバー別の走行データをもとに日報 / 月報を生成 ▪ ライブマップ機能 ▪ 車両の位置、直近のリスク運転が発生した場所を地図上に描画 ▪ ヒヤリハット通知メール ▪ 危険度が高い項目の検出時には警報でドライバーに知らせ、管理者にもメール通知 13
  4. DRIVE CHARTのAI 15 • エッジからクラウド上のサーバーまであらゆる環境・目的で動作する機械学習モデル • センサーデータやGPSデータ、動画など多様なデータを扱う イベント検出モデル 急加速 急減速

    急ハンドル ⼀時不停⽌ 速度超過 ⾞間距離不⾜ 脇⾒ 急後退 検出結果 エッジデバイス クラウドサーバー データベースやS3 外カメ画像 検出結果 内カメ画像 深層学習 モデル センサー 加速度センサ、 ジャイロセンサ GPS 動画
  5. DRIVE CHARTのAI 16 • エッジからクラウド上のサーバーまであらゆる環境・目的で動作する機械学習モデル • センサーデータやGPSデータ、動画など多様なデータを扱う イベント検出モデル 急加速 急減速

    急ハンドル ⼀時不停⽌ 速度超過 ⾞間距離不⾜ 脇⾒ 急後退 検出結果 エッジデバイス クラウドサーバー データベースやS3 外カメ画像 検出結果 内カメ画像 深層学習 モデル センサー 加速度センサ、 ジャイロセンサ GPS 動画
  6. DRIVE CHARTのAI 17 • エッジからクラウド上のサーバーまであらゆる環境・目的で動作する機械学習モデル • センサーデータやGPSデータ、動画など多様なデータを扱う イベント検出モデル 急加速 急減速

    急ハンドル ⼀時不停⽌ 速度超過 ⾞間距離不⾜ 脇⾒ 急後退 検出結果 エッジデバイス クラウドサーバー データベースやS3 外カメ画像 検出結果 内カメ画像 深層学習 モデル センサー 加速度センサ、 ジャイロセンサ GPS 動画
  7. DRIVE CHARTのAI開発の特徴 20 様々なバックボーンを持った開発メンバー • CV(コンピュータビジョン) • データサイエンス • エッジAI開発

    • サーバーサイド開発 余談ですが… 色々な領域にチャレンジできます! 採用ページ: https://mo-t.com/career/ CVモデル開発 サーバーサイドAI の推論高速化 エッジアプリケー ション開発
  8. Notaを利用したアノテーションフロー 26 ストレージ ① アノテーション用動画のデー タセット作成 CVエンジニア / データサイエンティスト ④

    タスク振り 分け ② アノテーション仕様書 を作成しアノテーション を依頼 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーション管理者 ③ タスクを作 成 アノテーター ⑤ アノテーション
  9. Notaを利用したアノテーションフロー 27 ストレージ ① アノテーション用動画のデー タセット作成 CVエンジニア / データサイエンティスト ④

    タスク振り 分け ② アノテーション仕様書 を作成しアノテーション を依頼 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーション管理者 ③ タスクを作 成 アノテーター ⑤ アノテーション
  10. Notaを利用したアノテーションフロー 28 ストレージ ① アノテーション用動画のデー タセット作成 CVエンジニア / データサイエンティスト ④

    タスク振り 分け ② アノテーション仕様書 を作成しアノテーション を依頼 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーション管理者 ③ タスクを作 成 アノテーター ⑤ アノテーション
  11. Notaを利用したアノテーションフロー 29 ストレージ ① アノテーション用動画のデー タセット作成 CVエンジニア / データサイエンティスト ④

    タスク振り 分け ② アノテーション仕様書 を作成しアノテーション を依頼 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーション管理者 ③ タスクを作 成 アノテーター ⑤ アノテーション
  12. Notaを利用したアノテーションフロー 30 ストレージ ① アノテーション用動画のデー タセット作成 CVエンジニア / データサイエンティスト ④

    タスク振り 分け ② アノテーション仕様書 を作成しアノテーション を依頼 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーション管理者 ③ タスクを作 成 アノテーター ⑤ アノテーション
  13. ClearML 35 • Allegro AI社製の実験管理ツール • 標準的な実験管理ツールに含まれる機能は全て備わっている ◦ メトリクスの記録 ◦

    ハイパーパラメータの記録 ◦ 過去の実験の検索 ◦ 実験同士の比較 ◦ … • それらに加えて、実験の再現性を高めるための機能が充実 ◦ 未コミットのソースコードの記録 ◦ ライブラリやPythonのバージョンの記録 データ収集・加工 モデル開発・学習 推論・モニタリング
  14. DRIVE CHARTチームではAWS環境上にホスティングしており、データサイエンティストやCVエンジニアが利用している ClearML 37 データ収集・加工 モデル開発・学習 推論・モニタリング AWS Cloud VPC

    Private subnet Public subnet Web UI用エンドポイント(ALB) web web用portのみ アクセス許可 実験インスタンス api/file server portのみ アクセス許可 実験インスタンスからの アクセス用エンドポイント(ALB) api file アーティファクトを保 存 clearml server(https://github.com/allegroai/clearml-server)を フォークし、マネージドサービスと連携できるよう修正し ビルドしたイメージ + redis
  15. ClearML 38 データ収集・加工 モデル開発・学習 推論・モニタリング AWS Cloud VPC Private subnet

    Public subnet Web UI用エンドポイント(ALB) web web用portのみ アクセス許可 実験インスタンス api/file server portのみ アクセス許可 実験インスタンスからの アクセス用エンドポイント(ALB) api file アーティファクトを保 存 clearml server(https://github.com/allegroai/clearml-server)を フォークし、マネージドサービスと連携できるよう修正し ビルドしたイメージ + redis ClearML DRIVE CHARTチームではAWS環境上にホスティングしており、データサイエンティストやCVエンジニアが利用している
  16. ClearML 39 データ収集・加工 モデル開発・学習 推論・モニタリング AWS Cloud VPC Private subnet

    Public subnet Web UI用エンドポイント(ALB) web web用portのみ アクセス許可 実験インスタンス api/file server portのみ アクセス許可 実験インスタンスからの アクセス用エンドポイント(ALB) api file アーティファクトを保 存 clearml server(https://github.com/allegroai/clearml-server)を フォークし、マネージドサービスと連携できるよう修正し ビルドしたイメージ + redis DRIVE CHARTチームではAWS環境上にホスティングしており、データサイエンティストやCVエンジニアが利用している
  17. ClearML 40 データ収集・加工 モデル開発・学習 推論・モニタリング AWS Cloud VPC Private subnet

    Public subnet Web UI用エンドポイント(ALB) web web用portのみ アクセス許可 実験インスタンス api/file server portのみ アクセス許可 実験インスタンスからの アクセス用エンドポイント(ALB) api file アーティファクトを保 存 clearml server(https://github.com/allegroai/clearml-server)を フォークし、マネージドサービスと連携できるよう修正し ビルドしたイメージ + redis DRIVE CHARTチームではAWS環境上にホスティングしており、データサイエンティストやCVエンジニアが利用している
  18. 実データを使用した検証実験 47 モデルやパラメータの変更、検出ロジックの調整などを行った場合、最終的なリスク運転検出数にどのような変化がある かを確認する必要がある。たとえば… データ収集・加工 モデル開発・学習 推論・モニタリング イベント検出モデル 急加速 急減速

    急ハンドル ⼀時不停⽌ 速度超過 ⾞間距離不⾜ 脇⾒ 急後退 検出結果 エッジデバイス クラウドサーバー データベースや S3 外カメ画像 検出結果 内カメ画像 深層学習 モデル センサー 加速度センサ、 ジャイロセンサ GPS 動画 デプロイ 新しいCVモデルを実装 & 学習
  19. 実データを使用した検証実験 48 モデルやパラメータの変更、検出ロジックの調整などを行った場合、最終的なリスク運転検出数にどのような変化がある かを確認する必要がある。たとえば… データ収集・加工 モデル開発・学習 推論・モニタリング イベント検出モデル 急加速 急減速

    急ハンドル ⼀時不停⽌ 速度超過 ⾞間距離不⾜ 脇⾒ 急後退 検出結果 エッジデバイス クラウドサーバー データベースや S3 外カメ画像 検出結果 内カメ画像 深層学習 モデル センサー 加速度センサ、 ジャイロセンサ GPS 動画 新しいCVモデルを実装 & 学習 デプロイ ここにも影響が出る! モデルへの入力が変化し…
  20. 実データを使用した検証実験 51 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード モデル開発・学習 推論・モニタリング

    通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する
  21. 実データを使用した検証実験 52 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する
  22. 実データを使用した検証実験 53 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト • 設定ファイルを書き換え モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する
  23. 実データを使用した検証実験 54 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト • 設定ファイルを書き換え • イメージをビルド モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する
  24. 実データを使用した検証実験 55 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト • 設定ファイルを書き換え • イメージをビルド • 処理を順番に実行 モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する
  25. 実データを使用した検証実験 56 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト • 設定ファイルを書き換え • イメージをビルド • 処理を順番に実行 モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する 変更前後で結果の比較を行いたい場合、×2
  26. 実データを使用した検証実験 57 データ収集・加工 仮に仮想マシン上で全ての作業を手作業で行おうとすると… • 実験に使用するデータをリストアップしてストレージからダウンロード • モデルのウェイトファイルのダウンロード • 検出処理を実装しているリポジトリのクローン

    & チェックアウト • 設定ファイルを書き換え • イメージをビルド • 処理を順番に実行 モデル開発・学習 推論・モニタリング 通常のAI開発における単体のモデルの精度確認だけでなく、システム全体のリスク検出数への影響を実験により検証する 必要がある → 大量の実データに対して変更前後の検出処理を実行し、リスク検出数の変化を比較・確認する 変更前後で結果の比較を行いたい場合、×2 ← 本当に全てのデータをダウンロードできていた? ← 間違ったバージョン使ってない? ← ブランチ間違ってない? ← 設定間違ってない? ← ビルド手順あってる? ← 順番あってる? 結果が違うけど設定間違ってたのかも?どうやってそれを後から確認するんだっけ?
  27. 実データを使用した検証実験 60 データ収集・加工 要件: 解決策: Kubeflow Pipelinesを使用した実験パイプラインの使用 • 準備に必要な作業が多いので、それらを自動化する →

    イメージのビルドなどの定型処理作業をパイプラインのタスクとして実装し自動化(属人性の排除) • 実験の設定を容易に変更でき、後から確認することができる → Web UI上から変更。実験の履歴を保存することで後から設定値を確認できるようになる • デバイス上で実行するように開発されたエッジAIをサーバーで実行できるようにする → エッジAIをシミュレーションするイメージの利用 • 複数の実験が同時に実行されることが想定されるため、負荷が上がっても自動でスケールアウトする → Kubeflow Pipelinesのスケーラビリティを活用 モデル開発・学習 推論・モニタリング
  28. Kubeflow Pipelines 61 KubeflowはOSSのMLOpsフレームワーク。Kubeflow Pipelinesはそのコンポーネントの一つ パイプライン実行ツールはいくつか存在するものの、以下のような理由でKubeflow Pipelinesを採用 • k8sのスケーラビリティの恩恵を受けられる •

    リッチなWeb UI 特に下の理由が重要。 実験はパラメータを一部変えたものやモデルのバージョンを変えたものを同時並行で実行するような ケースが多い。 Kubeflow PipelinesのWeb UIは画面上からパラメータを変更する作業が行うことができる データ収集・加工 モデル開発・学習 推論・モニタリング
  29. Kubeflow Pipelinesを使用した実験基盤 63 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  30. Kubeflow Pipelinesを使用した実験基盤 64 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  31. Kubeflow Pipelinesを使用した実験基盤 65 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  32. Kubeflow Pipelinesを使用した実験基盤 66 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  33. Kubeflow Pipelinesを使用した実験基盤 67 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  34. Kubeflow Pipelinesを使用した実験基盤 68 データ収集・加工 モデル開発・学習 推論・モニタリング エッジAIシミュレーションコンテナ 前処理 推論 出力

    ストレージ エッジAIモデルによる 推論結果を保存 検出サーバー 前処理 検出 出力 動画データを ダウンロード センサー、GPS、エッ ジAI推論結果データを ダウンロード Test X Test Y ソースコードをクローン してビルド & デプロイ ソースコードをクローン してビルド & デプロイ エッジAI開発 repo 検出AI開発 repo 検出結果をDBに登録 ※ エッジAIを変更したケース
  35. まとめ 71 データ収集・加工 モデル開発・学習 推論・モニタリング アノテーションチーム によるアノテーション データの量産 タスクを作成 アノテーション

    データセットを作成 アノテーションを依頼 データセットに アノテーション 情報を付与 アノテーション管理者 アノテーター CVエンジニア/データサイエ ンティスト
  36. まとめ 72 データ収集・加工 モデル開発・学習 推論・モニタリング より再現性が高まった 実験管理基盤 簡単かつ大規模に検証 を行うことができる 検証実験基盤

    実験を記録 モデルを保存 検証実験 デプロイ 学習 テストB(変更前) テストA(変更後) アノテーション管理者 アノテーター CVエンジニア/データサイエ ンティスト アノテーション済み動画データ
  37. まとめ 73 データ収集・加工 モデル開発・学習 推論・モニタリング データウェアハウス スピーディーに項目 を追加できるモニタ リング基盤 デプロイ

    推論・検出 テストB(変更前) テストA(変更後) アノテーション管理者 アノテーター CVエンジニア/データサイエ ンティスト CVエンジニア/データサイエ ンティスト サーバーサイドエンジニア 監視 監視項目の追加 集計
  38. まとめ 74 データ収集・加工 モデル開発・学習 推論・モニタリング データウェアハウス アノテーションチーム によるアノテーション データの量産 より再現性が高まった

    実験管理基盤 簡単かつ大規模に検証 を行うことができる 検証実験基盤 スピーディーに項目 を追加できるモニタ リング基盤 タスクを作成 データセットを作成 アノテーションを依頼 実験を記録 モデルを保存 検証実験 デプロイ 推論・検出 学習 テストB(変更前) テストA(変更後) データセットに アノテーション 情報を付与 アノテーション管理者 アノテーター CVエンジニア/データサイエ ンティスト CVエンジニア/データサイエ ンティスト サーバーサイドエンジニア 監視 監視項目の追加 集計
  39. 75