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
Devsumi 2021 MLOps for Self-driving car
Search
shibuiwilliam
March 15, 2022
Technology
1
130
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 自動運転を支えるMLOps
shibuiwilliam
March 15, 2022
Tweet
Share
More Decks by shibuiwilliam
See All by shibuiwilliam
生成AIのためのデータ収集とデータエンジニアリング
shibuiwilliam
3
380
LLMで推論するライブラリを整理する
shibuiwilliam
5
1.1k
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
65
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
570
今日からRAGを 始めることを考える
shibuiwilliam
2
1.6k
2024年生成AI新年会登壇資料
shibuiwilliam
0
300
Creative as Software Engineering
shibuiwilliam
2
620
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
310
機械学習システム構築実践ガイド
shibuiwilliam
1
880
Other Decks in Technology
See All in Technology
kargoの魅力について伝える
magisystem0408
0
210
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
190
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
110
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
320
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
270
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
110
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Side Projects
sachag
452
42k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Gamification - CAS2011
davidbonilla
80
5.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Become a Pro
speakerdeck
PRO
26
5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Writing Fast Ruby
sferik
628
61k
How to Ace a Technical Interview
jacobian
276
23k
Bash Introduction
62gerente
608
210k
Transcript
自動運転を支えるMLOps 2021/02/18 shibui yusuke 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
Developers Summit 2021 We are new normal! 3
Issue with NEW NORMAL! CatOps in work from home 放置しているとネコに
椅子を奪われる。 ネコ障害対応(餌、遊ぶ)。 「遊ぶ」を自動化する。 椅子に座っていても ハンズフリーで遊べる。 day 奪 わ れ 回 数 ハンズフリー導入 飽き始める Dev Data-driven 4
今日お伝えしたいこと • 機械学習をプロダクションで使うためのノウハウやプラクティスや 失敗談を説明します • 自社でプロダクト開発している企業で機械学習を実用化するために、 これまでやってきたことや今後やっていきたいことを含めて話します • 実世界に存在する課題を機械学習で解決する端緒になれば幸いです •
今日話さないこと:機械学習の論文やアルゴリズムや実装 5
Agenda • 自動運転は難しい • MLOpsも難しい • 自動運転 x MLOpsへの挑戦 •
おわりに 6
自動運転は難しい 7
8 • (実証実験)新宿エリアを走る 5G活用自動運転タクシー。 ティアフォーの実績
西新宿走行シーン 9 ティアフォーの実績 eve autonomy 走行シーン
滋賀県草津市 (大学キャンパス) セントレア (空港) 愛知県一宮市 (5G) 愛知県豊橋市
(テーマパーク) 東京都お台場 (臨海・観光) 神奈川県横須賀市 (リサーチパーク) 東京都江東区 (商業施設) 仙台空港 (空港) 大阪府 (鉄道車両基地) 東京都新宿区 (遠隔監視・保険) 長野県飯田市 (VR連動) 東京都三宅島 (離島・観光) 愛・地球博 記念公園 (公園) 日本郵便 (物流) エコパ (スタジアム) 山口県宇部市 (道の駅) 大津市 (道の駅) 豊田市 (道の駅) 大阪府堺市 (無線充電) 2018年下期以降に ティアフォーが支援した実証実験 10 これまでに国内で 実施した実証実験 累計実施回数 : 70回 走行場所 : 18都道府県50 市区町村 事故件数 : ゼロ (2019年末時点) 多様な地域で実証実験
自動運転のシステム(一部) 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
難しいその1 データ • 巨大な非構造化データの収集と管理 一日の記録 • ログ(圧縮):100GB • 解凍し画像に変換:1,000GB • 画像枚数:1,000,000枚
この中から学習に必要なデータを探す! 12
難しいその2 モデル • 学習したモデルを評価する モデル GPU データ 評価 どの環境で評価すれば production readyといえる?
テスト データで 評価 シミュレーショ ンで 評価 デバイスで 評価 実車で 評価 13
難しいその3 エンジニアリング • 信号機をどう認識する? • 地図で自車と信号機の位置を把握 • カメラ、LiDAR、センサーで周囲を 認識 • 周囲の情報をデータとして
色認識、画像認識、物体検知で 信号機と色を把握 • 実行 14
MLOpsも難しい 15
50m手前から信号機の位置と色を 99%正確に認識できるモデルがあるとする。 公道で信号機を認識するにはどう使う? 16
機械学習のシステム • ユーザから見たAI • MLエンジニアから見たML • ソフトウェアエンジニアから見た MLシステム 猫! 犬!
猫! https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf Accuracy 99.99% 17
機械学習を社会実装する Web + 機械学習 スマホ + 機械学習 製品 + 機械学習
+ 推論リクエスト 推論レスポンス + 推論リクエスト 推論レスポンス OR リアルタイム推論 18
MLOpsとは • 機械学習をDevOpsに則って開発、運用する手法と文化 • 機械学習はモデルを作るだけでなく、モデルを本番環境に導入して ビジネスインパクトを創出することが重要 • 本番環境で機械学習モデルを稼働させ、継続的に改善していく (CI、CD、CT)ことで価値を最大化 •
機械学習のワークフローをシステムとして開発、運用することが望ましい 19
MLOpsを会社に実装する Web企業 大企業 スタートアップ この溝を埋めるのが MLOps モデル モデル モデル 20
ML as Engineering https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf 21
本番システム 実験環境 ML as Engineering データ収集 データ分析 前処理 学習 評価
推論器開発 システム テスト デプロイ ABテスト 運用 外部 システム リファクタリン グとコード解 読 評価 22
システムとして考える機械学習 推論器 インターフェイ ス 前処理 推論 後処理 ↓最低限必要 赤! 23
システムとして考える機械学習 推論器 インターフェイ ス ログ 学習 評価 モデル 管理 レポジトリ
運用監視 推論 イメージ スト レージ CI 前処理 推論 後処理 BI → 機械学習で DevOpsを 回すために必要 ↓最低限必要 24
学習のためのシステム データ取得 前処理 学習 評価 ビルド 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
学習環境と推論環境 データ取得 前処理 学習 評価 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
ソフトウェアエンジニアリングとモデル開発 • ソフトウェア開発ではプログラムを通してロジックをテストする • 機械学習ではコードを通してデータで確率をテストする 入力 正解 出力 assert 指標
推論 evaluate YES or NO 0 ~ 1 ソフトウェア開発のテスト 機械学習のテスト モデル 関数 関数 テスト通過率:95/100 Accuracy:99% Precision:95% Recall:60% 27
ソフトウェアエンジニアリングとモデル開発 • ソフトウェア開発ではプログラムを通してロジックをテストする • 機械学習ではコードを通してデータで確率をテストする 入力 正解 出力 assert 指標
推論 evaluate YES or NO 0 ~ 1 ソフトウェア開発のテスト 機械学習のテスト モデル 関数 関数 機械学習を実行するための プログラムのテストが 足りていない。 28
ソフトウェアエンジニアリングとモデル開発 • CIとしてコードとモデルを推論環境にインストールしてテストする モデル 管理 レポジトリ 実行環境 • CI環境を起動 •
推論用イメージをPull • レポジトリからコードを checkout • モデルをダウンロード • プログラムのテスト • モデルの稼働テスト • 推論テスト • CI終了 model development application development • (モデルのビルド) モデルが取得・導入可能 であることを確認 ソースコードのテスト コードからモデルを ロードできることを検証 コードから推論を検証 +負荷テスト +プロファイル +脆弱性診断 +外れ値検知・・・ テスト 管理 29
システム作ったッ! MLOps完! ・・・とはならない 30
自動運転 x MLOpsへの挑戦 31
NEW NORMAL WORK-FROM-HOME! • 課題: Work-from-homeでリアルタイムな コミュニケーションの機会損失 • 解決策: 端末とディスプレイを増やして
コミュニケーション機会の損失防止 • 結果: bluetoothがどの端末に接続しているか わからなくなった 32
自動運転における機械学習 • 並列・多段階の認識プロセスが稼働 信号機を検知し、色を判別 歩行者を検知し、 移動方向や行動を判別 道路の範囲を セグメンテーション 20m 33
信号認識 • 物体検知、画像認識、色認識の組み合わせ 信号機を検知し、色を判別 20m 物体検知 画像認識 色認識 前処理 地図
→赤! 34
信号認識 • 確率的な処理の信頼性を上げる(漏れをなくす)にはデータが必要 物体検知 画像認識 色認識 前処理 地図 →赤! 入力データと
モデルに依存 機械学習 ではないけど 確率的 確率的 確率的 ルールベース 本当に? 35
天気との戦い 信号? 信号? 36
天気との戦い うおっまぶしっ 37
変化との戦い 消えた信号 38
信号機以外との戦い 信号? 信号? 信号? 39
クラウド 自動運転におけるMLOps 自動車 実験環境 データ収集 組み込み システム テスト 組み込み 実証実験
リファクタリン グとコード解 読 データ分析 前処理 学習 評価 評価 コンパイル 最初重要だと 思った箇所 実は最も 重要な課題 40
データは21世紀の石油=発掘作業が必要 一日の記録 • ログ(圧縮):100GB • 解凍し画像に変換:1,000GB • 画像枚数:1,000,000枚 この中から学習に必要なデータを探す! 41
データは21世紀の石油=発掘作業が必要 1GB 2GB right camera left camera 42
データからワークフローを考える CI データ収 集 データ 管理 データ検 索 学習 モデル
単体テスト システムテスト 43
おわりに 44
おわりに • 実世界の課題を機械学習で解決するには機械学習以外の工夫が必要 • 組織やドメイン固有の課題 ↔ データとワークフロー • 課題とデータを常にアップデートし追随する 45
宣伝 2021年5月に翔泳社から MLOps本を出版します! 46 表紙(作成中)
© 2020 Tier IV, Inc. 47 2021