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.

機械学習のマイクロサービスでの運用の実験について #mlops

9,068 views

Published on

ML Ops Study # 1 https://ml-ops.connpass.com/event/73814/ での発表資料です。メルカリで機械学習をどんな風に改善していったかなどの内容となっています

Published in: Engineering

機械学習のマイクロサービスでの運用の実験について #mlops

  1. 1. 機械学習のマイクロサービスでの 運用の実験について 私はは好きにした.みんなも好きにすればいい ML Ops Study(仮) #1 @Hmj_kd
  2. 2. 自己紹介 ■ @Hmj_kd - 株式会社メルカリ - ソフトウェアエンジニア(機械学習 /自然言語処理) - 2017年1月 ~ - 現在4社目 ■ 経歴 - 北海道釧路市出身 - 釧路高専 情報工学科卒業 - 大学 : 物理学科 (Black Hole, Inflation など) - プログラマ,データ分析,機械学習エンジニア
  3. 3. 今日はこんなことを話します - 機械学習をやりたいけどやり始めるためにしたこと - 課題設定 (<-- このあたりは座談会などで - システムの話 - 運用しはじめてでてきたこと - これから実現したいこと
  4. 4. 目次 1. 機械学習の導入初期 a. どんな風に進めたか ? b. 運用面でどんなことが課題としてでてきたか ? 2. ML microservice 前夜 a. 構成 b. 事例 3. これから
  5. 5. メルカリでの機械学習プロダクトの導入初期の構成 (codename : フルバーニアン) JP Prod US Prod Mercari-API Mercari-API lb lb endpoint : hogehoge3 endpoint : hogehoge1 endpoint : hogehoge2 ML webapi admin s3と定期的or更新時 にsyncする仕組み ML Engineer
  6. 6. フルバーニアンの運用時の問題点 1. Django 縛り 2. 俺のmecabと本番のmecabが違うぅ(T T) 問題 3. 誰かのDeployによって,誰かのmodelがdegradeしちゃった 4. 1インスタンスに複数modelがメモリにのってスケールと監視大変 5. 本番と同等の環境の複製がしにくく,QA大変だった 6. Deployしたいとき, SRE Teamに都度お願いして申し訳ない 7. Train codeはなくても稼動する,しかし...メンテナンスしにくい
  7. 7. microservice 前夜 hmj は悩んでいた. 次なる機械学習プロダクトの リリースが決まったが, またフルバーニアンで 運用するのか...と
  8. 8. ML microservice 前夜 docker imageさえ作ってくれれば, Spinnaker で GKE にデプロイしちゃいます よ!! (どんなものか話をきいて ...) え!! やりましょう
  9. 9. 前夜 ~ 利害の一致 JPでMicroserviceとしてweb apiでは初めてで色々試 したかったし,どうなるか検証したかった 今後も考えてこの継続的なデプロイの仕組みは,フル バーニアンの運用の問題を解決してくれると思った
  10. 10. HTTP Architecture Overview in JP, for ML Mercari API model A model B Load balancer …... HTTP Google Container Registry Deploy
  11. 11. Architecture Overview in US, for ML Double API Mercari API HTTP search Personalization Offer gRPC HTTP Machine Learning New!!
  12. 12. どう解消されるか ? 1. 1task ≒ 1リポジトリ a. Django 縛り 2. docker image a. 俺のmecabと本番のmecabが違うぅ(T T) 問題 b. 誰かのDeployによって,誰かのmodelがdegradeしちゃった c. 1インスタンスに複数modelがメモリにのってスケールと監視大変 3. Blue/Green deploy & Immutable, MLにも裁量が割当たった a. Deployしたいとき, SRE Teamに都度お願いして申し訳ない b. 本番と同等の環境の複製がしにくく, QA大変だった 4. Spinnaker によるDeployと継続的な学習job a. Train codeはなくても稼動するけどメンテナンスしにくい
  13. 13. 1. Deployment a. Blue/Green Deploy b. Immutable 2. 評価をして学習を継続させる 事例紹介
  14. 14. Blue/Green Deployment & Immutable Infrastructure MLservice001 - 0.0.1 - 0.0.2 LB domain/hoge 0.0.1 0.0.2 health check - 0.0.1 がGCRにアップロードされると,それをSpinnakerが検知する - 既に0.0.1がapiを受けているとする - 0.0.2 が立ち上がりhealthcheckでokとなると,自動で切り替わる docker container Deploy
  15. 15. Pipelines(evaluate-->train & evaluate) exitcode:0 exitcode:1 ここでpipelineは 正常終了 Evaluate Pipeline Train Pipeline 前のPipeline status = failed をトリガーとして 起動 ./evaluate.sh ./train.sh storage daily cron docker image
  16. 16. Run job zeta/spamdesc/base - 0.0.1 - 0.0.2 ★ Pipelines(evaluate-->train-->build) docker image zeta/spamdesc - 0.0.2-$DATE - 0.0.2-$DATE ★ evaluate train 0.0.2 0.0.2 cloudbuild 0.0.2 0.0.2-$DATE - Dockerfile - dockerfiles/server/Dockerfile - cloudbuild.yaml $TAG Run job, docker image tag 指定
  17. 17. Pipelines(evaluate-->train-->build)
  18. 18. これから ➔ パイプライン処理 ➔ ML Ops Eng ➔ Auto ML
  19. 19. 基盤もつくっていく Training Evalutation Deployment いま取り組めているところ Data flow & Preprocessing Data Definition まだ ML
  20. 20. 人材募集中 !! - 機械学習・自然言語処理エンジニア - ↑ いまある職種 - Machine Learning Operations Engineer - ↑ 今後できるんじゃないかと勝手に思っています - でもいまとても必要な職種 - 今後とても熱い分野
  21. 21. 来年以降で試していきたいこと - 機械学習基盤の構築 - 引き続き,開発&改善 - Auto MLについて本格的に実験したい - 比較的シンプルなモデルでも解決できることはたくさんある - 人間リソースが追いつかない - いつか “部下はAutoML” という世界でもよいと思っています(個人的に
  22. 22. ありがとうございました!!

×