Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction of Rekcurd; A flexible managing system for machine learning models.

Introduction of Rekcurd; A flexible managing system for machine learning models.

Clovaにおける機械学習モジュールの配信管理基盤 Rekcurd について
分析基盤トーク DAFT #2
https://daft.connpass.com/event/124408/

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers
PRO

April 12, 2019
Tweet

Transcript

  1. Clovaにおける 機械学習モジュールの配信管理基盤 Rekcurd について Keigo Hattori, Search & Clova Center

    2019.04.12. 分析基盤トーク DAFT #2 Twitter #DAFT
  2. Who I am @keigohtr Keigo Hattori keigohtr Keigo Hattori Software

    Engineer 2009 東北大学 情報工学 修士 2009~2017.10 富士ゼロックス 2017.11~ LINE 自然言語処理 x 機械学習が専 門。担当プロダクトはClova。 Apitore創業者。
  3. 担当プロダクトはClova

  4. Agenda • 機械学習の実運用における課題 • Rekcurdについて • (時間があれば) Q&A

  5. mlOps (機械学習のワークフロー) 分析 クレンジング アノテーション 学習 データ収集 評価 配信

  6. 配信において考慮すべき点は?

  7. 1. High Availability 2. Management i. Upload the latest ML

    model ii. Switch a model without stopping services iii. Versioning models 3. Monitor i. Load balancing ii. Auto healing iii. Auto scaling iv. Performance/Results check 4. Others i. Server setup (development/staging/production) ii. Integration to the existing services iii. AB testing iv. Managing many ML services v. Logging Tasks in serving ML service
  8. 必要要件はわかった ・・・だれがやる?

  9. 機械学習モジュールの実運用の現状1 • 機械学習モジュールの開発者自身が管理運用をする  配信や管理、監視、運用に関する知識が乏しく担当者に よってサービス品質がバラつく  インフラ周りの知識が乏しく高可用運用やセキュリティの 設定などに時間がかかる上に設定内容も過不足ある 

    サービスの更新やトラブル時の対応に時間を取られ、機械 学習モジュールの開発に注力できない
  10. 機械学習モジュールの実運用の現状2 • インフラ担当者が機械学習モジュールの管理運用を 任される  そもそもコレの仕様どうなってるの?仕様書あるの?  メモリ効率や処理速度が問題になったときにどこまで手を 入れていいか分からない 

    サービスの更新やトラブルの度に機械学習担当者と連携す る必要があり時間がかかる
  11. わかった テクノロジーでサポートしよう

  12. Rekcurd のコンセプト • 機械学習モジュールの配信を簡単に • 機械学習モデルの管理と運用を簡単に • 既存のシステムへの統合を簡単に

  13. Rekcurd のコンセプト • 機械学習モジュールの配信を簡単に Rekcurd • 機械学習モデルの管理と運用を簡単に Rekcurd dashboard (x

    Kubernetes) • 既存のシステムへの統合を簡単に Rekcurd client
  14. Rekcurd Features Rekcurd is a flexible managing system for ML

    modules Features • Kubernetes • Service Mesh (Istio, Envoy) • Developer-Friendly interface (Rekcurd dashboard) • Django-like gRPC micro-framework (Rekcurd) • SDK (Rekcurd client)
  15. Architecture (v1.0) grpc Reckurd dashboard Existing service Rekcurd client grpc

    Online storage MySQL/sqlite [Optional] Internal/External service [Optional] WorkFlow rest Kubernetes Rekcurd Istio-proxy Rekcurd Istio-proxy Rekcurd Istio-proxy
  16. 1. High Availability 2. Management i. Upload the latest ML

    model ii. Switch a model without stopping services iii. Versioning models 3. Monitor i. Load balancing ii. Auto healing iii. Auto scaling iv. Performance/Results check 4. Others i. Server setup (development/staging/production) ii. Integration to the existing services iii. AB testing iv. Managing many ML services v. Logging Tasks in serving ML service Rekcurd on Kubernetes で全ての課題を解決(したい) まだ課題あるかも
  17. 余談

  18. Rekcurd のコンセプト • 機械学習モジュールの配信を簡単に • 機械学習モデルの管理と運用を簡単に • 既存のシステムへの統合を簡単に

  19. Rekcurdの設計コンセプトは 「簡単」であることに拘りました。 理由は・・・

  20. 人類、新しいこと覚えない問題 ユ「便利だけどコスト(学習時間, お金)が必要なら使わない」 • Kubernetes • Istio • Docker •

    High availability configuration • fluentd • gRPC • Traffic control (nginx, LB, AB testing)
  21. 人類、やったことならできる(真理) 私「Rekcurdで全部サポートします」ユ「使ってやろう」 • Kubernetes • Istio • Docker • High

    availability configuration • fluentd • gRPC • Traffic control (nginx, LB, AB testing)
  22. 閑話休題

  23. Rekcurdについて

  24. Rekcurd Features (v1.0) Rekcurd is a flexible managing system for

    ML modules Features • Kubernetes • Service Mesh (Istio, Envoy) • Developer-Friendly interface (Rekcurd dashboard) • Django-like gRPC micro-framework (Rekcurd) • SDK (Rekcurd client)
  25. Kubernetes Most famous container orchestration system Features • Container /

    microservices platform • Auto-scaling • Auto-healing • Rolling update (Auto-deployment without stopping services) • more...
  26. Service Mesh (Istio) Traffic management plane without changing your code

    Features • Add traffic management (e.g. AB testing, canary rollouts, traffic splits, circuit breakers, timeouts, retries, ...) • Add security (e.g. authentication, authorization, encryption) • Add observability (e.g. Zipkin, Jaeger, Querying from Prometheus, Grafana) • more...
  27. Developer-Friendly interface (v0.4) Demo スクリーンショットをGitHubで公開中

  28. Django-like gRPC micro-framework (v1.0) Procedures 1. Run commands $ pip

    install rekcurd $ rekcurd startapp sample $ cd sample 2. Implement the contents $ vi app.py 3. Boot it $ python app.py
  29. Rekcurd Roadmap v2.0 v1.x v1.0 v0.x Now Apr 30th 2019

    TBD TBD v1.0 • Dashboard renewal • Istio • AB testing • GitOps / ImageOps option • Less necessity component • AirFlow support v1.x • ML model evaluation and visualization • Canary release • GPU support • Log visualization v2.0 • TBD
  30. RekcurdはApache2.0ライセンスで公開! https://github.com/rekcurd Welcome Feedback and Pull Request!!! 私もRekcurd使える? スターくださいスターくださいスターください

  31. THANK YOU Let’s Q&A and Discussion

  32. Node1 label: dev Node2 label : stg Node4 label :

    prod Node3 label : prod Appendix: Service level independency Pod App: hoge label: dev Pod App: hoge label : stg Pod App: hoge label : prod Pod App: hoge label : prod Pod App: hoge SL: prod
  33.  fluentd official Daemonset  Can be log-forwarded to the

    specific server (e.g. Kibana)  Just output logs to stdout/stderr Appendix: fluentd-kubernetes-daemonset