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
320
LLMで推論するライブラリを整理する
shibuiwilliam
5
940
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
56
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
510
今日からRAGを 始めることを考える
shibuiwilliam
2
1.5k
2024年生成AI新年会登壇資料
shibuiwilliam
0
290
Creative as Software Engineering
shibuiwilliam
2
610
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
290
機械学習システム構築実践ガイド
shibuiwilliam
1
850
Other Decks in Technology
See All in Technology
地理情報データをデータベースに格納しよう~ GPUを活用した爆速データベース PG-Stromの紹介 ~
sakaik
1
110
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
280
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
ytaka23
5
760
軽量DDDはもういらない! スタイルガイド本で OOPの実装パターンを学ぼう
panda_program
29
11k
利きプロセススケジューラ
sat
PRO
4
2.6k
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
280
AWS パートナー企業でテクニカルサポートに従事して 3年経ったので思うところをまとめてみた
kazzpapa3
1
220
TinyGoを使ったVSCode拡張機能実装
askua
2
200
全社横断データ活用推進のコツと その負債とのつき合い方
masatoshi0205
0
170
データ活用促進のためのデータ分析基盤の進化
takumakouno
2
530
エンジニア候補者向け資料2024.11.07.pdf
macloud
0
4.5k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
300
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
A Philosophy of Restraint
colly
203
16k
Speed Design
sergeychernyshev
24
600
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Six Lessons from altMBA
skipperchong
27
3.5k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Docker and Python
trallard
40
3.1k
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