狠狠撸

狠狠撸Share a Scribd company logo
機械学習によるマーケット
健全化施策を支える技術
Mercari Server Side Tech Talk Vol.2 ?CREナイト?
hnakagawa
自己紹介
? Hirofumi Nakagawa
(hnakagawa)
? 2017年7月入社
? 所属はSRE
? デバイスドライバ開発からフロ
ントエンド開発までやる何でも
屋
? NOT MLエンジニア
? https://github.com/hnakagaw
a
お仕事 & Agenda
? ML Platform開発
? MLエンジニアとSREのスキルギャップを埋め
る
? ML Reliability, SysML?, MLOps?
? SREの立場からCREチームを助ける
ML Platform
? 内製のML Platform
? kubernetesベース
? ローカル環境とクラスタ環境の
差を抽象化する
? 便利API群
? 既存のML Frameworkを使用し
簡単にTraining/Servingを行う
環境を提供
そのうち翱厂厂で公开予定(多分
今日のAgendaは
CREプロジェクト
リアルタイム商品監視システム
? 通称 Lovemachine
? ML Platform上に実装されている
ML Platform (training cluster)
Lovemachine
GCS
GKE
PubSub
ML Platform (serving cluster)
Lovemachine
ML ModelのServing….?
Model Serving APIの構成例
TensorFlow
Serving
TF
Model
TF
Model
Flask
SK
Model
SK
Model
SK
Model
gRPC
Mercari API
REST
Flaskで前処理を行い
裏のTensorFlow Servingに投げている
Model Serving API
Streaming ver の構成例
TensorFlow
Serving
TF
Model
TF
Model
ML Platform
Framework
or
Apache Beam
SK
Model
SK
Model
SK
Model
gRPC
PubSub
TensorFlow Serving
? TensorFlow projectが提供して
いるServing環境
? Python処理系を介さずにTFの
modelをservingできる
? 標準の実装ではgRPCでAPIを
提供
Modelとコンテナ?イメージ
? 巨大なML Modelをコンテナ?イメージに含め
るか否か
? 含めないのであれば何処に配置するか
? ポータビリティ性とロード時間のトレードオフ
? 良いアイディアがあれば教えて下さい…
通常のAPIとは違う
? 扱うリソース、Modelサイズが大きくなる場合
が多い(数百MB?数GB)
? CPU?メモリリソースの消費が激しい
? 场合によっては骋笔鲍も使う
メモリ消費問題
? LovemachineのPython実装部分は実行時に約
2GBメモリを消費する→今後さらに増える予
定もある
? Scikit-learnで記述されたTF-IDF等の前処理部
分が大きくなる事が多い
Pythonと並列性
? 当然Threadが使えない(GILのため)
? プロセス毎にModelをロードすると必要なメモ
リサイズが大きくなる→ Blue-Green Deploy
の障害になる
正直PythonでのServingは
インフラ的に辛い事が多い…
メモリを賢く使う
? forkする前にmodelをロードしCopy on Write
を効かす
? k8sのone process per containerセオリはあ
えて破っている
Copy On Writeの復習
メモリ
親プロセス 子プロセス
2.fork
Page A
1.allocation 同じ領域を参照
プロセスがメモリの内容を
書き換えると…
メモリ
親プロセス 子プロセス
Page A Page B
OSが別の領域をAllocationして元データをコピーする
別の領域を参照
Current Issues
? Mercari APIとのつなぎ込みに苦労
→ 一通り作れば後は再利用できるはず
? 人間の行動を相手にしている為、データの傾向が変
わりやすかったり、予想外の問題が発生したりして
、対応し続ける必要がある
→ ML Model作成者に負担が掛かり続ける
→ SREとしては自動化を含んだ仕組みで解決した
い
Future Plans
? 社内のデータから特徴量を抽出するして
Embeddingする汎用の仕組み
→適当な分類器と組み合わせれば、誰でもそこそ
この分類モデルを作成できる?
→FBLearner Flow的なやつ?
? 社内の問題解決に特化した専用のAutoML的な何
か?
まとめ
? ML ModelのServingには、少し通常と違うインフラ
が必要になる
→まだベスト?プラクティスは分からない
? 人の行動を相手にするのは大変
? そもそもMLな機能を本格運用しようとすると、大
幅な自動化?仕組み化を進めないと上手く行かな
い
ご清聴ありがとうございました!!
We are Hiring!!
SRE ML Reliability
? SysML? MLOps? 新しいJob description
? SREスキル+ML分野の基礎知識
? MLインフラの自動化?仕組み化を推し進めて
くれる人材
? もちろん他の職種も絶賛募集中!!
詳細はこちら
https://careers.mercari.com/

More Related Content

机械学习によるマーケット健全化施策を支える技术

Editor's Notes

  1. 颁搁贰ナイトだけど、所属は颁搁贰ではなく厂搁贰
  2. 通常の厂搁贰とは违う仕事内容を説明。厂搁贰内のチームバリエーションも绍介?
  3. 今后、フレームワークは色々対応予定
  4. 通称も何もPythonのmodule名がLovemachineと成っている この名称を付けたのは自分ではない*2 AI→愛→Lovemachine? 命名者は?ーニング娘のファンクラブに入ってた事があるらしい Lovemachineで商品監視に関わる複数のModelをServingしている事を説明
  5. 搁贰厂罢の构成例
  6. 笔耻产/厂耻产を使用した厂迟谤别补尘颈苍驳での构成例
  7. ML Modelとコンテナは少し相性が悪い事を説明
  8. その上笔测迟丑辞苍なので辫谤辞肠别蝉蝉モデルで蝉别谤惫颈苍驳する事になる
  9. Blue-Green Deployの障害になるのはAutoScaleに時間がかかるため
  10. 特に惭别谤肠补谤颈の様な负荷が高い环境では
  11. 専用の特徴量抽出础笔滨、自动化等