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

Devsumi 2021 MLOps for Self-driving car

Devsumi 2021 MLOps for Self-driving car

Devsumi 2021 自動運転を支えるMLOps

shibuiwilliam

March 15, 2022
Tweet

More Decks by shibuiwilliam

Other Decks in Technology

Transcript

  1. 自己紹介 shibui yusuke • いろいろ → メルカリ → TierIV(いまここ) •

    MLOpsエンジニア • もともとクラウド基盤の開発、運用。 • ここ5年くらいMLOpsで仕事。 • Github: @shibuiwilliam • Qiita: @cvusk • FB: yusuke.shibui • 最近の趣味:本の執筆と自宅勤務改善 cat : 0.55 dog: 0.45 human : 0.70 gorilla : 0.30 物体検知 2
  2. Issue with NEW NORMAL! CatOps in work from home 放置しているとネコに

    椅子を奪われる。 ネコ障害対応(餌、遊ぶ)。 「遊ぶ」を自動化する。 椅子に座っていても ハンズフリーで遊べる。 day 奪 わ れ 回 数 ハンズフリー導入 飽き始める Dev Data-driven 4
  3. 滋賀県草津市 
 (大学キャンパス) 
 セントレア
 (空港)
 愛知県一宮市 
 (5G)
 愛知県豊橋市

    
 (テーマパーク) 
 東京都お台場 (臨海・観光) 
 神奈川県横須賀市 (リサーチパーク) 
 東京都江東区 
 (商業施設) 
 仙台空港
 (空港)
 大阪府
 (鉄道車両基地) 
 東京都新宿区 (遠隔監視・保険) 
 長野県飯田市 
 (VR連動)
 東京都三宅島 (離島・観光) 愛・地球博
 記念公園
 (公園)
 日本郵便
 (物流)
 エコパ
 (スタジアム) 
 山口県宇部市 
 (道の駅)
 大津市
 (道の駅)
 豊田市
 (道の駅)
 大阪府堺市 
 (無線充電) 
 2018年下期以降に
 ティアフォーが支援した実証実験 
 10 これまでに国内で
 実施した実証実験
 累計実施回数 : 70回
 走行場所 : 18都道府県50 市区町村 事故件数 : ゼロ
 (2019年末時点)
 多様な地域で実証実験
  4. 自動運転のシステム(一部) Dynamic Object Traffic Light Detection Classifier Scenario Selector Control

    Localization Sensing Map Data Vehicle Interface Sensors Lane Driving Parking Etc. Scenario Planning Perception Detection Tracking Prediction Mission 11
  5. 難しいその2 モデル • 学習したモデルを評価する モデル GPU データ 評価 どの環境で評価すれば production readyといえる?

    テスト データで 評価 シミュレーショ ンで 評価 デバイスで 評価 実車で 評価 13
  6. 機械学習のシステム • ユーザから見たAI • MLエンジニアから見たML • ソフトウェアエンジニアから見た MLシステム 猫! 犬!

    猫! https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf Accuracy 99.99% 17
  7. 機械学習を社会実装する Web + 機械学習 スマホ + 機械学習 製品 + 機械学習

    + 推論リクエスト 推論レスポンス + 推論リクエスト 推論レスポンス OR リアルタイム推論 18
  8. 本番システム 実験環境 ML as Engineering データ収集 データ分析 前処理 学習 評価

    推論器開発 システム テスト デプロイ ABテスト 運用 外部 システム リファクタリン グとコード解 読 評価 22
  9. システムとして考える機械学習 推論器 インターフェイ ス ログ 学習 評価 モデル 管理 レポジトリ

    運用監視 推論 イメージ スト レージ CI 前処理 推論 後処理 BI → 機械学習で DevOpsを 回すために必要 ↓最低限必要 24
  10. 学習のためのシステム データ取得 前処理 学習 評価 ビルド DWH ストレージ テストデータ アーティファクト

    管理 Image builder Docker registry Docker registry パラメータ チューニング PROJECT - project_id - project_name - description MODEL - model_id - project_id - model_name - description EXPERIMENT - experiment_id - model_id - algorithm - parameters - metrics - evaluations - artifacts 25
  11. 学習環境と推論環境 データ取得 前処理 学習 評価 Local server Library 学習環境のみ -

    Jupyter Notebook - バッチ学習用のライブラリ  (例:PyTorch、TensorFlow、Keras) - バッチ学習用のインフラ( GPUとか) - データ・モデルバージョニングツール 両環境に共通 - モデルファイル - 前処理で使うライブラリ  (例:Sklearn、OpenCV、Mecab、Tensorflow) - 入出力のデータ型と形 推論環境のみ - 推論用のライブラリ  例:ONNX Runtime, TF Serving、    TF Lite、TensorRT・・・。 - 推論用のインフラ  例:CPU, GPU, FPGA, NNAPI, MetalAPI - ランタイムと外部インターフェイス - ロガーとモニタリングツール infrastructure Runtime Model 入力 前処理 推論 出力 26
  12. ソフトウェアエンジニアリングとモデル開発 • ソフトウェア開発ではプログラムを通してロジックをテストする • 機械学習ではコードを通してデータで確率をテストする 入力 正解 出力 assert 指標

    推論 evaluate YES or NO 0 ~ 1 ソフトウェア開発のテスト 機械学習のテスト モデル 関数 関数 テスト通過率:95/100 Accuracy:99% Precision:95% Recall:60% 27
  13. ソフトウェアエンジニアリングとモデル開発 • ソフトウェア開発ではプログラムを通してロジックをテストする • 機械学習ではコードを通してデータで確率をテストする 入力 正解 出力 assert 指標

    推論 evaluate YES or NO 0 ~ 1 ソフトウェア開発のテスト 機械学習のテスト モデル 関数 関数 機械学習を実行するための プログラムのテストが 足りていない。 28
  14. ソフトウェアエンジニアリングとモデル開発 • CIとしてコードとモデルを推論環境にインストールしてテストする モデル 管理 レポジトリ 実行環境 • CI環境を起動 •

    推論用イメージをPull • レポジトリからコードを checkout • モデルをダウンロード • プログラムのテスト • モデルの稼働テスト • 推論テスト • CI終了 model development application development • (モデルのビルド) モデルが取得・導入可能 であることを確認 ソースコードのテスト コードからモデルを ロードできることを検証 コードから推論を検証 +負荷テスト +プロファイル +脆弱性診断 +外れ値検知・・・ テスト 管理 29
  15. NEW NORMAL WORK-FROM-HOME! • 課題: Work-from-homeでリアルタイムな コミュニケーションの機会損失 • 解決策: 端末とディスプレイを増やして

    コミュニケーション機会の損失防止 • 結果: bluetoothがどの端末に接続しているか わからなくなった 32
  16. クラウド 自動運転におけるMLOps 自動車 実験環境 データ収集 組み込み システム テスト 組み込み 実証実験

    リファクタリン グとコード解 読 データ分析 前処理 学習 評価 評価 コンパイル 最初重要だと 思った箇所 実は最も 重要な課題 40