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
340
LLMで推論するライブラリを整理する
shibuiwilliam
5
980
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
57
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
520
今日からRAGを 始めることを考える
shibuiwilliam
2
1.5k
2024年生成AI新年会登壇資料
shibuiwilliam
0
290
Creative as Software Engineering
shibuiwilliam
2
610
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
300
機械学習システム構築実践ガイド
shibuiwilliam
1
850
Other Decks in Technology
See All in Technology
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
The Rise of LLMOps
asei
7
1.7k
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
160
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
3
140
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Cult of Friendly URLs
andyhume
78
6k
Optimizing for Happiness
mojombo
376
70k
Music & Morning Musume
bryan
46
6.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Docker and Python
trallard
40
3.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
KATA
mclloyd
29
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
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