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/

LINE Developers
PRO

April 12, 2019
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. Clovaにおける
    機械学習モジュールの配信管理基盤
    Rekcurd について
    Keigo Hattori, Search & Clova Center
    2019.04.12. 分析基盤トーク DAFT #2
    Twitter #DAFT

    View Slide

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

    View Slide

  3. 担当プロダクトはClova

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  8. 必要要件はわかった
    ・・・だれがやる?

    View Slide

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

    View Slide

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

    View Slide

  11. わかった
    テクノロジーでサポートしよう

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

  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

    View Slide

  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
    で全ての課題を解決(したい)
    まだ課題あるかも

    View Slide

  17. 余談

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 閑話休題

    View Slide

  23. Rekcurdについて

    View Slide

  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)

    View Slide

  25. Kubernetes
    Most famous container orchestration system
    Features
    • Container / microservices platform
    • Auto-scaling
    • Auto-healing
    • Rolling update (Auto-deployment without stopping services)
    • more...

    View Slide

  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...

    View Slide

  27. Developer-Friendly interface (v0.4)
    Demo スクリーンショットをGitHubで公開中

    View Slide

  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

    View Slide

  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

    View Slide

  30. RekcurdはApache2.0ライセンスで公開!
    https://github.com/rekcurd
    Welcome Feedback and Pull Request!!!
    私もRekcurd使える?
    スターくださいスターくださいスターください

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide