1.7K Views
June 12, 19
スライド概要
2019年4月末に行われたSpark+AI Summit 2019の参加報告会の資料です。
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
ML flow + ubeflow K 2019/06/12 Spark eetup Tokyo #1 ML プラットフォーム事例 M 桑折 慧 ヤフー株式会社 ( ) 1
発表者 桑折 慧 ( R ei, @2k0 i) Webフロントエンド ⇢ 学⼠(映像学) ⇢ Webインフラ ⇢ データインフラ / インフラ ヤフー株式会社 データ統括本部 データプラットフォーム本部 KO I K r ML '17 4 ⽉ 中途⼊社 adoop 運⽤・⾃動化 adoop3 プロダクション導⼊ H H ML P latform on ubernetes K opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 検証・導⼊ 2
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/2 3
紹介事例 ow to Utilize flow and ubernetes to uild an nterprise latform H E ML K B ML P KeynoteでMLflowの先⾏事例として登壇 Winning the udience with A AI : H opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C ow omcast uilt n gile ata nd i latform t Scale C B A A D A A P A 4
1. 課題・要件 2. アーキテクチャ 3. コンポーネント 4. 開発フロー opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 5
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/4 6
課題 ・ モデルの管理・評価のトラッキングができていない ・モデルのパッケージ・デプロイ⼿法が標準化できていない ・デプロイにコード修正が必要 ⇢ 数⽇〜数週間を要する ・応答速度の担保のためにモデルの複雑さに制約がある opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 7
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/5 8
要件 ・デプロイにあたってコード修正が不要であること ・モデルの学習・性能評価が容易であること ・モデル作成者⾃⾝がデプロイできること ・プロダクション環境でモデルのA/Bテストが実施できること ・各ステップでカスタムメトリクスが追加できること opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 9
1. 課題・要件 2. アーキテクチャ コンポーネント 4. 開発フロー 3. opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 10
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/14 11
ML パイプラインの抽象化モデル ストリーム処理基盤とWebアプリケーション基盤の間を流れる データ処理コンポーネントを共通化 opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 12
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/16 13
ストリーム処理基盤 (Spark) ↳ Produce ⇢ MQ C メッセージキュー ⇣ onsumer ( afka onsumer、 inesis onsumer etc) K C K C ⇣ Consume 前処理・変換 ( ⇣ O データ変換・学習 ne-hot エンコーディング、T F -IDF 重み付け etc) モデルオーケストレーション ( / テスト、多腕バンディット、アンサンブル etc) ⇣ モデル呼び出し A B Webアプリケーション基盤 ( ubernetes) K ⇣ Produce ... opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 14
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/6 15
前処理、特徴量作成、学習 ⇢ pache Spark モデル管理、トラッキング ⇢ flow パッケージ、モデルサービング ⇢ ubeflow A ML K opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 16
課題・要件 2. アーキテクチャ 1. 3. コンポーネント 4. 開発フロー opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 17
ML flow: achine earning ifecycle latform A M L L P https://mlflow.org/ ML flow Tracking ソースコード、各種パラメータ、モデルを収集・記録するロガー ML U I flow rojects P モデル⽣成にかかるコード、パラメータのパッケージ規格 学習環境のポータビリティを担保 ML /API/ flow M (D ocker+ naconda) A odels Trackingで保存したモデルの共通パッケージ規格( odel ) Spark lib、T / eras、pyTorch、sklearn、 ython関数、R関数などに対応 M ML F K P モデルのサービングに向けたポータビリティを担保 https://mlflow.org/docs/latest/_static/MLflow-logo-final-black.png Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. API 18
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/22 19
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/24 20
A rgo CD https://argoproj.github.io/ KubernetesへのGitOpsデリバリーツール からのWebHookを受け取り、Kubernetesマニフェストを更新 Kubeflowコンポーネントの反映・更新 GitHub/GHE https://github.com/argoproj/argo/raw/master/argo.png Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 21
Seldon ore C https://www.seldon.io/open-source/ ML モデルへのR E ST/gR PC API の付加、パッケージ、オーケストレーション 、 、 、 等に加えて flow odel に対応 推論のA/Bテスティング、バンディット、アンサンブル等の担保 現状では flow odelsに⽐べてカスタムメトリクス追加が容易なためこちらでパッケ ージング T eras pyTorch XGBoost sklearn F/K ML ML M API M https://github.com/SeldonIO/seldon-core/raw/master/doc/source/seldon.png Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 22
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/20 23
Ambassador https://www.getambassador.io/ L 7 API E ゲートウェイ nvoy ベース スケーリング、ロードバランシング、 ut A h / Z、 N ACL 制御などを付加 モデルサービングの応答性能・可⽤性を担保 性能要件からくるモデルサイズの制約から脱却 ocustロードテスト⇢ ris classifierで630~800 Reqs/sec/ L I https://github.com/datawire/ambassador/raw/master/docs/doc-images/ambassador-logo.svg Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. od ( W P H 構成⾮公表) 24
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/30 25
課題・要件 2. アーキテクチャ 3. コンポーネント 1. 4. 開発フロー opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 26
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/26 27
上でモデル開発、学習 flowで学習の評価・トラッキング 1. Databricks Spark 2. ML 2.5: atabricks ⇢ it ub nterprise リポジトリ同期 D 3. 最善の G E を rgo に記述・更新 から ockerイメージを更新 からSeldon oreを更新 ML 4. Argo CD 5. Argo CD H flow ackage P CD D opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C A C 28
https://www.slideshare.net/databricks/how-to-utilize-mlflow-and-kubernetes-to-build-an-enterprise-ml-platform/28 29
2.5: atabricks ⇢ it ub nterprise間は 制約のため独⾃にソースコードを同 期 ・コードの差分を rgo に同期 ・ flow odel の更新がなければ学習を実⾏ ・ flow odel のタグに変更があれば rgo appを更新・デプロイ D G A ML M API ML M API H E ACL CD 差分のJIRAチケットを作成 A ⇢ opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C 30
ppendix: 開発画⾯キャプチャ ローカル開発時には の onsumer/ roducer odをテストデータでモック ubernetes on ocker for acにコンポーネント⼀式+上記 odをデプロイ ubeflow同梱の rafanaでメトリクス監視 A MQ K K D C P M MQ P G opyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. C P 31
https://youtu.be/cDtzu4WBzWA 32
https://youtu.be/cDtzu4WBzWA 33
https://youtu.be/cDtzu4WBzWA 34
https://youtu.be/cDtzu4WBzWA 35
https://youtu.be/cDtzu4WBzWA 36
https://youtu.be/cDtzu4WBzWA 37
https://youtu.be/cDtzu4WBzWA 38