1. 1
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
JapanTaxiにおける ML Ops
?機械学習の開発運用プロセス?
CCSE2019
2019/7/13
JapanTaxi
次世代モビリティ事業部
渡部徹太郎
2. 2
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
2
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
自己紹介
ID : fetaro
名前:渡部 徹太郎
研究:東京工業大学でデータベースと情報検索の研究(@日本データベース学会)
前職:
- 大手SIer: オンライントレードシステム基盤
- 大手SIer: オープンソース技術部隊
- 大手インターネットサービス: ビッグデータ分析基盤
現職:
- JapanTaxi:次世代モビリティ研究開発
副業 :
- ビッグデータコンサルタント
- 非常勤講師
エディタ : emacs派
趣味 : 自宅サーバ 日本AWSユーザ会(JAWS)
ビッグデータ支部
3. 3
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
3
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
自己紹介
ID : fetaro
名前:渡部 徹太郎
研究:東京工業大学でデータベースと情報検索の研究(@日本データベース学会)
前職:
- 大手SIer: オンライントレードシステム基盤
- 大手SIer: オープンソース技術部隊
- 大手インターネットサービス: ビッグデータ分析基盤
現職:
- JapanTaxi:次世代モビリティ研究開発
副業 :
- ビッグデータコンサルタント
- 非常勤講師
エディタ : emacs派
趣味 : 自宅サーバ 日本AWSユーザ会(JAWS)
ビッグデータ支部
私は
データサイエンティスト .
データエンジニア
4. 4
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
4
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
今日話すこと
研究や機械学習 .
いかに本番システムで機械学習を動かすか
(=利益に直結させるか)
5. 5
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
5
Proprietary and Confidential ?2019 JapanTaxi, Inc. All Rights Reserved
700万DL超 日本No1タクシーアプリ『JapanTaxi』
アプリマップ上で指定したピン位置にタクシーを手配。
全国47都道府県で約7万台と、全国のタクシー車両1/3がアプリで呼べる。
Google Mapsや音声AIなど様々な注文チャネル、決済、経費精算に対応。
*App Annie調べ タクシー配車/ライドシェアアプリ内における、日本国内累計ダウンロード数/月間平均アクティブユーザー数(iOS/Google Play合算値)調査期間:2017年10月1日?2018年9月30日
*Apple と Apple ロゴは米国および他の国で登録された Apple Inc. の商標です。App Store は Apple Inc.のサービスマークです。Android、Google Play、Google Playロゴは、Google LLC の商標です。
外部注文チャネル 地図?経路検索
Google Maps iphone map
経費精算
Concur MoneyForward
タクシー配車アプリ『JapanTaxi』
海外
KakaoT TaxiGomy route
iphone siri Alexa/echo spot mydaiz LINE clova
Yahoo!乗換案内
外部注文チャネル 音声AI
NAVITIME
6. 6
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
6
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
課題:注文キャンセルによる乗車機会の損失
キャンセル配車注文
車を探す 配車決定を通知
受諾 乗車機会の損失
ユーザー
タクシー会社配車システム
ドライバー
キャンセル通知
迎車開始
7. 7
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
7
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
原因:到着時間の期待値のギャップ
5分くらいで
来るかな?
それなら
他の交通手段を
使おう
キャンセル配車注文
車を探す 配車決定を通知
受諾 乗車機会の損失
ユーザー
タクシー会社配車システム
ドライバー
キャンセル通知
迎車開始
10分
かかります
8. 8
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
8
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
解決策:期待値調整をするために到着予想時間を表示
5分くらいで
来るかな?
配車注文
しない
ユーザー
タクシー会社配車システム
ドライバー
到着時間
予想システム
10分
かかるなら
他を探そう
乗車機会の損失
解決!!
10分
かかります
9. 9
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
9
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
解決手段:ディープラーニングにより到着時間を予測する
候補1
目的地
? ポイント:お迎え場所に向かうタクシーは確定していない
お迎え場所
候補2
候補3
候補4
10. 10
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
10
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
実装:Attention機構を使ったお迎え時間予測モデル
配車候補の車両の特徴量
? 出発地の緯度経度
? お迎え場所緯度経度
? 出発時の方向?速度
? お迎え場所への方向?直線距離
? 直線距離が近い順番
車両以外の環境の特徴量
? 日、曜日、時間
? 祝日、休日
Attention機構
? 機械翻訳や画像認識などで使われる
ネットワーク構造
? 入力に応じて注目するべき特徴量に大
きな重みが付与される
? 実際に配車される車両の重みが大きく
なることを期待
到着時間
11. 11
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
11
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
結果:ABテストの結果
注文率の低下は抑止できた
狙い通り
キャンセル率は
低下
12. 12
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
12
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
めでたしめでたし????
Ops(運用)に課題あり!!
13. 13
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
13
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
? 課題1:再現できない成果物
? ワークフローがJupyter Notebookでかかれている
? バージョン管理されない学習データ
? 課題2:精度評価がなされないモデル
? モデルがどういう状態が正しいか定義されていない
? 精度モニタリングがなく、経年劣化に気付けない
? 課題3:あぶなっかしい本番システム
? リリースは手動で一括切り替え
? エラー件数監視なし、応答速度監視なし
? 課題4:確保されない運用人材
? 作ったデータサイエンティストは次の案件にアサイン
Ops(運用)の課題
14. 14
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
14
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
? 対応策
? Jupyter Notebookに書かれたワークフローをバッチ処理化
? 処理を再実行可能な単位に分割
? 分割単位:データマート生成のSQL処理、学習データ生成、モデル推定、デプロイ
? 運用に必要な機能の追加
? ログの出力、設定をファイルに分離、エラーハンドリング、テストコード作成 etc
? ML成果物のバージョン管理
? 学習データ:生成したソースコードのgitコミット番号をデータ名に付与
? モデル:AWS Sagemakerでバージョン管理
? 手動作業の撲滅
? ジョブ実行ツール(Jenkins)で自動化
課題1「再現されない成果物」の対応
15. 15
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
15
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
データウェアハウス
(BigQuery)
ストレージ
(S3)
ストレージ
(S3)
課題1「再現されない成果物」の対応
生データ ML用
データ
マート
学習
データ
ver C
モデル
モデル生成
ジョブ
(Sagemaker)
学習データ
生成ジョブ
(Python)
学習データ
マート生成ジョブ
(SQL)
ジョブ実行基盤
(Jenkins)
SQL
git
モデル生成
プログラム
学習データ
生成
プログラム
エンジニアサイエンティスト
16. 16
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
16
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
? 対応策
? モデルの精度評価方法の定義
? 精度異常しきい値の定義と監視
? 5分以上早く予測していしまった割合
? 5分以上予測がズレた割合
? 予測分布の目視確認
? タクシー会社ごとの予測分布を目視で確認し、前週と比較して大きな違いがないか
? デプロイ前の精度評価
? 新しいモデルをデプロイする前に、精度を確認
? デプロイ後の定期的な精度評価
? 経年劣化していないことを確認するために、毎週最新のデータを使って精度を確認
? 敷居を超えていた場合、チャットツール(Slack)にアラートメール
? 予測分布はBIツール(Tableau)で可視化して目視確認
課題2「精度評価がなされないモデル」の対応
17. 17
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
17
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
課題2「精度評価がなされないモデル」の対応
ストレージ
(S3)
モデル
バッチ推論
(Sagemaker
Batch Transform)
データウェ
アハウス
BigQuery
ストレージ
(S3)
ML用
データ
マート
評価
データ
評価データ
生成ジョブ
(Python)
ストレージ
(S3)
評価
結果
データウェ
アハウス
BigQuery
評価
結果
マート
BIツール
(Tableau)
ロード
サイエンティスト
モデル
ジョブ実行基盤
(Jenkins)
PushMetrics
チャット
(Slack)
エンジニア
18. 18
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
18
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
? 対応策
? 自動リリース
? ジョブ実行ツール(Jenkins)でリリースジョブを作成
? カナリアリリース
? いきなり新しいモデルで置き換えるのではなく、まずは10%だけ新しいモデルに置き換
える
? 問題がなければすべて新しいモデルでリリース
? これを「カナリアリリース」という。由来は「炭鉱のカナリア」
? 実現するためにAWS Sagemaker Endpointの機能を利用
? 監視とアラート
? 応答速度とエラー数の監視
? 実現するためにAWS CloudWatchの利用
課題3「あぶなっかしい本番システム」の対応
19. 19
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
19
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
課題3「あぶなっかしい本番システム」の対応
S3
新モデル
旧モデル
推論
Sagemaker
Endpoint
処理
(Lambda)
API
(API
Gateway)
新
JapanTaxi
アプリ
監視
(Cloud Watch)
応答時間 応答時間
エラー率
応答時間
旧
ロード
ロード
自動リリース
(jenkins)
90%
10%
エンジニア
カスタマ
20. 20
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
20
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
? 対応策
課題4「確保されない運用人材」の対応
JapanTaxiに入社した!
fetaro
21. 21
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
21
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
一緒に働いてくれる仲間を募集中!
クラウド
Kubernetes
車載デバイス(IoT)
自社製の車載デバイスからデータを収集
ディープラーニングの分散処理
AWS, GCP両刀使い
データエンジニアの仕事データサイエンティストの仕事
タクシービッグデータ解析
白線検出
例)ドライブレコーダ動画解析
ガソリンスタンド
料金検出
22. 22
Proprietary and Confidential ?2017 JapanTaxi, Inc. All Rights Reserved
〒102-0094 東京都千代田区紀尾井町3-12
3-12 Kioicho Chiyoda-ku, Tokyo 102-0094 Japan
TEL 03-6265-6265 FAX 03-3239-8115
www.japantaxi.co.jp
文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。
Proprietary and Confidential ?2017 JapanTaxi, Inc.
All Rights Reserved