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
MOV お客さま探索ナビの GCP ML開発フローについて
Search
Takashi Suzuki
October 31, 2019
Technology
0
12
MOV お客さま探索ナビの GCP ML開発フローについて
2019/10/31に実施されたMobility.dev2019の発表スライド
https://mobilitydev.jp
Takashi Suzuki
October 31, 2019
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
79
Kubernetes超入門
t24kc
0
87
AI予約サービスのMLOps事例紹介
t24kc
0
14
MLプロジェクトのリリースフローを考える
t24kc
0
8
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
55
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
22
GOの実験環境について
t24kc
0
16
MOVの機械学習システムを支えるMLOps実践
t24kc
0
13
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
t24kc
0
26
Other Decks in Technology
See All in Technology
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
490
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
200
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
630
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
240
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
290
日経電子版のStoreKit2フルリニューアル
shimastripe
1
150
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
3
150
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Side Projects
sachag
452
42k
Fireside Chat
paigeccino
34
3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Code Review Best Practice
trishagee
64
17k
The World Runs on Bad Software
bkeepers
PRO
65
11k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
MOV お客さま探索ナビの GCP ML開発フローについて 鈴木 隆史 AI本部 AIシステム部 MLエンジニアリンググループ 株式会社ディー・エヌ・エー
自己紹介 鈴木 隆史 | Takashi Suzuki AI本部 AIシステム部 MLエンジニアリンググループ 前職では新卒でITメガベンチャーに入社し、サーバーサイドエンジニアとしてゲーム開発とビッグ
データを活用したサービス分析をリード。 その後、大規模データ基盤の新規構築と運用保守などのデータエンジニアリング業務と、レコメンド アルゴリズムの設計開発やチャットボット開発などのMLエンジニアリング業務に従事していた。 2019年にDeNAに入社し、オートモーティブ事業における機械学習の実験基盤やパイプラインの設 計開発を行っている。 2
アジェンダ 3 サービス システム概要 ML開発フロー 1 2 3 まとめ 4
サービス 4 1
タクシー配車アプリ MOV 5
お客さま探索ナビ 6 この車両にとって 最適な走行経路は何か?
システム概要 7 2
全体システム構成 8
9 コンポーネント概要 リアルタイム データ処理 • 車両データのETL • DWH • データ前処理
需要供給予測 • 特徴量作成 • MLモデル予測 走行ルート推薦 • 最適方策の獲得 • 全体最適化
リアルタイム需要供給予測 10 直近の乗車数 周辺の乗車数 各種統計量 MLモデル 直後30分に発生 する乗車数
ML開発フロー 11 3
本番環境 • 推論パイプライン • モデル精度監視 12 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
本番環境 • 推論パイプライン • モデル精度監視 13 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
分析/モデル開発における課題 14 01 セキュアなクラウド環境 権限・証跡がきちんと管理され ローカルPC以上に快適に メンバーと共有しやすい環境 02 学習時のスケール 一番メモリを必要とするモデル学習時に
他タスクに影響ないように スケールする環境
ユーザ認証Jupyter環境 • GKE構築でセキュア(SSL、IP制限)でスケールしやすい • 個人認証(Cloud IAP)をサポート • Notebookを共有しやすい v.s. Datalab
• セキュア要件への柔軟さ • 起動の速さ セキュアなクラウド環境:JupyterHub 15
フルマネージド学習基盤 • 1分単位の起動時間課金 • Dockerカスタムイメージの学習をサポート • ジョブ実行までidle timeが発生する v.s. GKE
• 柔軟なインスタンス変更 • クラスタ作成不要の手軽さ 学習時のスケール:AI Platform Training Job 16 AI Platform
本番環境 • 推論パイプライン • モデル精度監視 17 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
実験管理における課題 18 01 各実験パラメータの管理 複数モデルの実験を行うため各実験のパラメータ管理が必要
comet.ml - 豊富な視覚化/比較 - ハイパラ探索 - コード管理 - Git Integration
- 有料 各実験パラメータの管理 19 mlflow - 視覚化/比較 - 簡易ハイパラ探索 - 無料 BigQuery - 視覚化はDataPortal - リストはDataConnector - カスタムしやすい
本番環境 • 推論パイプライン • モデル精度監視 20 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
CI/CDにおける課題 21 01 コードの再現性 データサイエンティストから MLエンジニアに渡された コード・モデルの実行/再現の担 保 02 ロールバック
新しいモデルにバグが あった場合の 以前のモデルに切り戻し たいとき 03 モデルのテスト パイプラインに反映する前の 簡易な動作テストと 小規模データの検証テスト
コード・モデルの再現性 • コミュニケーションギャップの解消 • 再現性の担保 • GKEやTraining Jobのコンテナで利用しやすい モデルのロールバック •
DockerのImage Tag/Digestでversion管理 • 切り戻す際には以前のImageへ 再現性とロールバック:Docker I/F 22
動作・検証テスト • 時間の関係でCircleCIでチェックするのは動作・検証テストのみ • 小規模データでモデルの有効性と実装エラーを検証 • 本番条件での連携と評価テストは専用Invoke モデルの簡易テスト:pytest 23
本番環境 • 推論パイプライン • モデル精度監視 24 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
02 冪等性担保 パイプラインの再実行などにより データ重複やモデルの精度ズレが 発生しないようにする 推論パイプラインにおける課題 25 01 複雑な依存関係 学習に利用する各種特徴量の作成と
データの前処理や推論や評価など 一連の依存関係を担保
マネージドAirflow • 複雑な依存関係定義によりヒューマンエラー防止 • 冪等性なJob実行により再現性を担保 • 定期的にJobを実行してモデルを更新 • 重い処理はGKEやTraining Jobを利用
v.s. Kubeflow Pipeline • 途中Jobから再実行可能 • 外部トリガー・外部リソースの利用が容易 • 評価指標は管理できない パイプラインにおける課題:Cloud Composer 26 Cloud Composer
本番環境 • 推論パイプライン • モデル精度監視 27 ML開発フロー 実験環境 • 分析/モデル開発
• 実験管理 CI/CD
モデル精度監視における課題 28 01 モデルの経年劣化 日々変化するタクシー需要トレンドに追従して 新しいデータでモデルを再学習させ、精度をモニタリングしたい
モデル推論の精度を監視 • モデルの定期更新はComposerで担保 • モデル精度をカスタムメトリックでMonitoring • ベースモデルと比較して悪ければ通知 モデルの経年劣化:Stackdriver Monitoring 29
Stackdriver Monitoring
まとめ 30 4
MLOpsの立ち位置 • 業務ごとに専門性が増し、生産性向上のために分業化が進むと、個々人が把握できるコン ポーネントは減ってしまう • 再現性の担保、依存関係の管理、精度やエラー監視する仕組みなどのMLOpsを事前に準 備することで、技術的負債を減らすことができる • チームごとの課題を把握し、予めI/Fや方針を握っておくことが重要 大事にしていること
31
本説明会及び説明資料の内容は、発表日時点で入手可能な情報や判断に基づくもの です。将来発生する事象等により内容に変更が生じた場合も、当社が更新や変更の義 務を負うものではありません。 また、本説明会及び説明資料に含まれる将来の見通しに関する部分は、多分に不確 定な要素を含んでいるため、実際の業績等は、さまざまな要因の変化等により、これら の見通しと異なる場合がありますことをご了承ください。 株式会社ディー・エヌ・エー 32