Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

5

Share

Download to read offline

JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用

Download to read offline

JapanTaxiでは配車アプリケーションに機械学習による予測を利用しており本番で運用しています。機械学習モデルはビジネス状況の変化とともに精度が劣化していく可能性があるため、日々の精度モニタリングと、モデル更新のための開発フローの整備が必要でした。それをSagemaker + αを用いて実現した内容を発表します。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用

  1. 1. 1 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved JapanTaxiにおける SageMaker+αによる 機械学習アプリケーションの本番運用 2019/7/18 JapanTaxi 次世代モビリティ事業部 渡部徹太郎 第6回 Amazon SageMaker事例祭り
  2. 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: オープンソース技術部隊 (MongoDB等) - リクルートテクノロジーズ: ビッグデータ分析基盤 (EMR, Hortonworks, BigQuery, Oracle Exadata) 現職: - JapanTaxi: データエンジニア 好きなAWSのサービス : - Lambda 日本AWSユーザ会(JAWS) ビッグデータ支部
  3. 3. 3 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 3 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved データエンジニアです データ サイエンティスト ビジネス データ エンジニア 機械学習をビジネスで成功させるために必要な3つの人種
  4. 4. 4 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 4 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
  5. 5. 5 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 5 Proprietary and Confidential ©2019 JapanTaxi, Inc. All Rights Reserved タクシー配車アプリ『JapanTaxi』 今いる場所 行きたい場所 呼ぶ
  6. 6. 6 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 6 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  ビジネス課題と機械学習による解決  機械学習アプリケーションの運用  まとめ アジェンダ
  7. 7. 7 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights ReservedProprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved ビジネス課題と 機械学習による解決
  8. 8. 8 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 8 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 課題:注文キャンセルによる乗車機会の損失 キャンセル注文 車を探す 配車決定を通知 受諾 乗車機会の損失 ユーザー タクシー会社配車システム ドライバー キャンセル通知 迎車開始
  9. 9. 9 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 9 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 原因:到着時間の期待値のギャップ 5分くらいで 来るかな? それなら 他の交通手段を 使おう キャンセル注文 車を探す 配車決定を通知 受諾 乗車機会の損失 ユーザー タクシー会社配車システム ドライバー キャンセル通知 迎車開始 10分 かかります
  10. 10. 10 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 10 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 解決策:期待値調整をするために到着予想時間を表示 5分くらいで 来るかな? 注文 しない ユーザー タクシー会社配車システム ドライバー 注文前 到着時間 予想システム 10分 かかるなら 他を探そう 乗車機会の損失 解決!! 10分 かかります
  11. 11. 11 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 11 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 解決手段:ディープラーニングにより注文前到着時間を予測する 候補1 目的地 • ポイント:注文する前なので、お迎え場所に向かうタクシーは確定していない お迎え場所 候補2 候補3 候補4
  12. 12. 12 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 12 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 実装:Attention機構を使った注文前お迎え時間予測モデル 配車候補の車両の特徴量 • 出発地の緯度経度 • お迎え場所緯度経度 • 出発時の方向・速度 • お迎え場所への方向・直線距離 • 直線距離が近い順番 車両以外の環境の特徴量 • 日、曜日、時間 • 祝日、休日 Attention機構 • 機械翻訳や画像認識などで使われ るネットワーク構造 • 入力に応じて注目するべき特徴量 に大きな重みが付与される • 実際に配車される車両の重みが大 きくなることを期待 到着時間
  13. 13. 13 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 13 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 結果:ABテストの結果 注文率の低下は抑止できた 狙い通り 注文キャンセル率は低下
  14. 14. 14 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights ReservedProprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 機械学習アプリケーションの運用
  15. 15. 15 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 15 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved データ収集 前処理・モデル推定 モデルの精度評価 モデルサービング 運用で行うこと
  16. 16. 16 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 16 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved データ収集 データウェアハウス 生 データ アプリ DB アプリ システム バッチデータ収集 (torocco) ストリームデータ 収集 (Lambda) タクシーの GPS等 DWH データ SQL Kinesis DataStream 事業システム ジョブ実行基盤 (マネージドAirflow) アプリ データ = embulk サービス 毎日 実行毎日 実行 リアル タイム バッチ バッチ リアルタイム
  17. 17. 17 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 17 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved データウェアハウス S3 前処理・モデル推定 DWH データ ML用 データ マート 学習 データ JSON モデル生成 ジョブ SageMaker 学習 データ 生成 (Python) ワークフロー管理 (Jenkins) SQL ソースコード (GitHub) モデル生成 プログラム 学習データ 生成 プログラム エンジニア サイエンティスト データ加工 SQL S3 SageMaker モデル ジョブ実行基盤 (マネージドAirflow) 毎日実行 エンハンスのときに実行 定期実行 手動実行
  18. 18. 18 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 18 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  SageMakerモデルとは o SageMaker上のオブジェクト o S3のディレクトリに対応している o S3のディレクトリには「前処理スクリプト」と「推定済 みモデル」が含まれる  前処理スクリプト o Pythonのコード o データウェアハウスから生成したJSONから特徴量抽出し て、モデルへの入力(Numpyの配列)に変換する o 特徴量抽出の例 • 例:「日付」→「曜日の数値」 • 例:「タクシーの位置」→「注文場所からの距離」  推定済みモデル o Tensorflowの生成物 前処理・モデル推定 SageMaker SageMaker モデルオブジェクト S3 SageMakerモデル用 ディレクトリ 推定済み モデル 前処理 スクリプト SageMakerモデルとは
  19. 19. 19 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 19 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  バージョン管理 o ソースコード • GitHubを利用 • JapanTaxiの開発フローがGitHubメインであるため、CodeCommitは利用せず o 学習データファイル • 自前でバージョン管理 • 学習データを生成したソースコードのgitコミット番号をデータ名に付与 o モデル • SageMakerのモデルのバージョン管理を利用 • モデル名にGitHubのコミットハッシュを付与 前処理・モデル推定
  20. 20. 20 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 20 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  ジョブ管理 o 日次自動実行 • 処理量が大きく毎日少しづつ行う必要のある処理 • 実施する処理: ML用データマート生成 • マネージドAirflowの利用 • JapanTaxiの分析基盤の標準ジョブ実行基盤であり、他のデータ収集ジョブと一緒 にまとめて管理 o 手動実行 • モデルをエンハンスする時に実行 • 実施する処理:学習データの作成、モデル推定ジョブの実行、精度評価の実行 • Jenkinsの利用 • 採用理由 • 実行毎にパラメータを変えて実行できる • 15分以上の長時間処理ができる(Lambdaではダメ) • 求められるSLAは低く、使う時だけ起動すれば良い(マネージドである必要な し) 前処理・モデル推定
  21. 21. 21 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 21 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved モデルの精度評価 S3 モデル バッチ推論 SageMaker Batch transform jobs データ ウェアハウ ス S3 ML用 データ マート 評価用 データ JSON 評価用 データ 生成ジョブ (Python) S3 評価 結果 JSON データ ウェアハ ウス 評価 結果 マート BIツール (Tableau) ロード (Python) サイエンティスト モデル ワークフロー管理 (Jenkins) Slack連携 チャット (Slack) エンジニア
  22. 22. 22 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 22 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  モデルの精度評価とは o 精度異常しきい値の定義と監視 • 5分以上早く予測してしまった割合の監視 • 5分以上予測がズレた割合の監視 o 予測分布の目視確認 • タクシー会社ごとの予測分布を目視で確認し、前週と比較して大きな違いがないか  モデル精度評価タイミング o リリース前 • 過去データでの精度評価 • 本番リリースするのに十分な精度が出せている事を確認 o リリース後 • 最新データでの精度評価 • モデルが経年劣化していないことを確認する モデルの精度評価
  23. 23. 23 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 23 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  推論の種類と使い分け o 応答速度重視:SageMaker Endpoint o スループット重視:SageMaker Batch transform jobs→コチラを使う  SageMaker Batch transform jobsの使い方 o モデルへの入力をファイルに改行区切りで配置 • 設定:S3 data type = “S3Prefix” , Split type = “Line” , Batch strategy = “SingleRecord”  結果 o Endpointにクエリを投げていたときは3時間かかっていた処理が20分に短縮できた モデルの精度評価 S3 モデル SageMaker Batch transform jobs S3 {input 1のJSON} {input 2のJSON} ・ ・ {input NのJSON} S3 モデル {input 1の推論結果} {input 2の推論結果} ・ ・ {input Nの推論結果}
  24. 24. 24 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 24 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved モデルサービング S3 新モデル 旧モデル 推論 SageMaker Endpoint 処理 (Lambda) API (API Gateway) 新 JapanTaxi アプリ 監視 (Amazon CloudWatch) 応答時間 応答時間 エラー率 応答時間 旧 ロード ロード ワークフロー管理 (jenkins) 90% 10% エンジニア カスタマ デプロイ時 オンライン デプロイ アラート
  25. 25. 25 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 25 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  カナリアリリース o カナリアリリースとは 1. 10%だけ新しいモデルに置き換える 2. 問題がなければすべて新しいモデルでリ リース o 実現方法 • AWS SageMaker Endpointの機能を利用 • 「ProductionVariants」を複数用意 する モデルサービング SageMaker Endpoint オートスケール Application Autoscaling コンテナ1 新 モデル コンテナ2 新 モデル ・・・ オートスケール Application Autoscaling コンテナ1 コンテナ2 ・・・旧 モデル 旧 モデル旧 Production Variant 新 Production Variant
  26. 26. 26 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 26 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  実測した処理性能 o マシン:ml.m4.xlarge(4vcore, 16G RAM) x 1台 o リクエスト:平均1.4回/秒、最大20回/秒 o Lambda平均応答時間:20ms • 推論の時間はもっと短い  なぜこんなに早いのか? o 入力が10台(タクシー台数) x 50次元 程度であり、ニューラルネットの計算量が多くないため モデルサービング
  27. 27. 27 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 27 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  会場から出た質問 o Lambdaを挟む必要があるのか。API-Gateway から直接 SageMaker Endpointではダメなの か?  答え o いろいろ融通がきくから o 融通がきいた例 • アプリから飛んでくる電文の仕様が変わることがあったが、Lambdaで仕様変更を吸収す ることにより、モデルへのインプットを変え無くてすんだ • 稀にモデルが明らかに異常な値を推論してしまうことがあったが、異常値をLambdaで消 すことにより、アプリには応答しないようにした モデルサービング
  28. 28. 28 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 28 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  MLの概念が整理されてコンポーネント化されている o トレーニングジョブ/ハイパーパラメータチューニング/モデル/エンドポイント等 o 成果物管理や開発プロセスの設計がしやすい  ML成果物が整理される o 学習データ、モデル、バッチ推論ジョブ、エンドポイントが紐付いてトレースできる  モデルサービングが簡単 o カナリアリリースができる o API-Gateway + Lambdaとの相性が抜群 所感:SageMakerの良い点
  29. 29. 29 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 29 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  「Notebookをそのまま渡せばOK」ではない・・・ o Notebookはサイエンティストの試行錯誤ツール o 本番化に向けてはバッチ処理化する必要がある • コンポーネント分割、ログ出力、設定値のファイル化、エラーハンドリング、テスト コード生成etc...  開発のプロセスにマッチしたワークフロー管理が無い o StepFunctionは一連の処理を数珠つなぎには良いが、一つ一つの工程を確認しながら実行す るには不向き o 学習データの作成→(人が確認)→モデル推定→(人が確認)→デプロイ といった開発のフローに乗らない  定期ジョブを実行するジョブコントローラがない o マネージドAirflowサービスのようなものがほしい 所感:改善して欲しいポイント
  30. 30. 30 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights ReservedProprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved まとめ
  31. 31. 31 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 31 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved  ビジネス課題と機械学習による解決 o JapanTaxiのビジネス課題である注文後キャンセルの課題を機械学習で低減  機械学習アプリケーションの運用 o データ収集 • TorrocoとKinesis DataStream o 前処理・モデル推定 • 学習データとモデルのバージョン管理 • 日次自動実行ジョブと手動実行ジョブ o モデルの精度評価 • 精度異常しきい値監視と予測値分布の目視確認 • リリース前の過去データでの評価と、毎週の最新データでの評価 • SageMaker Batch Transform jobsによる一括推論 o モデルサービング • API Gateway + Lambda + SageMaker Endpoint • SageMaker Endpointを用いたカナリアリリース まとめ
  32. 32. 32 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights ReservedProprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 宣伝 これから取り組もうとしている事
  33. 33. 33 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 33 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved
  34. 34. 34 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 34 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved タクシーから取れるデータを役立てようという試み センシングカーとしてのタクシー車両
  35. 35. 35 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 35 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 1日のタクシー動態の様子 タクシーは常に膨大な数走り回っており、 道沿いのリアルタイムなデータを収集できる
  36. 36. 36 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 36 Proprietary and Confidential ©2017 JapanTaxi, Inc. All Rights Reserved 一緒に働いてくれる仲間を募集中 クラウド Kubernetes 車載デバイス(IoT) 自社製の車載デバイスからデータを収集 ディープラーニングの分散処理 オンプレ一切なし データエンジニアデータサイエンティスト タクシービッグデータ解析 白線検出 例)ドライブレコーダ動画解析 ガソリンスタンド 料金検出
  37. 37. 37 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
  • ssusere45267

    Aug. 21, 2020
  • YskKn

    Aug. 19, 2020
  • YoshinobuYoshinobu

    Jul. 22, 2019
  • NobuhikoNiida

    Jul. 22, 2019
  • riekontss

    Jul. 22, 2019

JapanTaxiでは配車アプリケーションに機械学習による予測を利用しており本番で運用しています。機械学習モデルはビジネス状況の変化とともに精度が劣化していく可能性があるため、日々の精度モニタリングと、モデル更新のための開発フローの整備が必要でした。それをSagemaker + αを用いて実現した内容を発表します。

Views

Total views

2,318

On Slideshare

0

From embeds

0

Number of embeds

570

Actions

Downloads

25

Shares

0

Comments

0

Likes

5

×