Successfully reported this slideshow.
Your SlideShare is downloading. ×

How to break the machine learning system barrier ?

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

How to break the machine learning system barrier ?

  1. 1. How to break the Machine Learning system barrier? @hurutoriya #MLCT 5 2018/07/13
  2. 2. Outline ● 機械学習システムバリアの破壊方法 ● Better Machine Learning Workflow
  3. 3. $ whoami ● 上田隼也 :: @hurutoriya ● Machine Learning Engineer in Mercari, Inc. ● Machine Learning Casual Talks Co-Organizer ● https://shunyaueta.com/
  4. 4. 機械学習システムバリアの破壊方法 ● 機械学習システムを構築するために立ちはだかバリア ○ 継続的再学習 (Continuous Learning) ○ システムに必ずヒトが介在する (Human-in-the-loop) ○ データは不変の存在ではない (Data is mutable)
  5. 5. 継続的なモデルの学習 ● なぜ必要? ○ データは水物 ○ 一度モデルを学習して終わりではない ○ 継続的なモデルの再学習は必須
  6. 6. 柔軟なモデル設計 ● 問題: 流通する商品から特定のn種類の商品を検出したい ○ Bad: (n+1)値分類によるアプローチ ○ Good: 2値分類モデルをn個用意する ■ 問題の切り分け ■ モデルのスイッチングが容易 ■ タスク変更時にも柔軟性を持つ
  7. 7. Data Versioning ● 学習データのアノテーションにはヒトが介在 ● 異変が起きる前提で考える ○ データのバージョン管理 ■ AWS: S3 Versioning , GCP: GCS Versioning ○ 学習データも日付ごとに分割して管理 ■ モデルの精度をモニタリング、低下した際に 学習データのロールバックが可能
  8. 8. 余談: Annotation tips ● ちょっとした学習データ欲しい際に Google Spread Sheetsを愛用 ○ ImageURL()でCellの中に画像表示 ○ 1時間で4000回くらいアノテーションができる ImageURL()CDN URL Annoation
  9. 9. Metricsを誰でも見れる環境へ ● 従来: モデル推論結果をBQから叩いてSpreadSheetsで確認 ● 現在: BIツールのlookerで確認できるように移行中 ○ 利点 ■ 閲覧のみ可能で編集不可 ■ 誰でも気軽に閲覧可能 ■ 属人性を排除できる
  10. 10. Machine Learning Workflow ● Cookiecutterによる標準化されたプロジェクトの生成 ● Better Machine Learning Code by PeerReview ○ 2段階に分けてレビューを行う ■ Better Model (より良いモデルか?) ■ Better & Clean Code (より良いコードか?)
  11. 11. Cookiecutterによる標準化されたプロジェクトの生成 ● CLIで機械学習のプロジェクトテンプレート作成 ● CircleCIによる UnitTest, Lint を自動化 ● make replication ○ モデル再学習 ○ 精度可視化 (AUC など) $ pip3 install cookiecutter $ cookiecutter https://github.com/{mercari-ml-skeleton}
  12. 12. Making Pipeline, Not Imperative Ref: mercari-solution
  13. 13. Making Pipeline, Not Imperative Ref: mercari-solution
  14. 14. Unit Test for Machine Learning Code ● 想定していないデータによって即死するケース ○ NaN-Trap ● 沢山の罠が存在するが、ある程度はUnitTestで排除可能 ● e.g. 文書の前処理が想定通り行われているか assert "おお" == normalize("おお “) assert “自分 は ペンパイナッポーアッポーペン" == func(“自分はペンパイナッポーアッポーペン”)
  15. 15. 問題を包括的に解決するための個人的な注目 ● TFX: TensorFlow Extend ○ プロダクションレベルの信頼性とスケーラビリティを提供す る ● Kubeflow ○ k8sベースの機械学習toolkit Jupyter Hub, TF, TF Serving, Argo, Katib, ~Operator, etc.
  16. 16. Reference ★ Strategy ○ TFX: A TensorFlow-Based Production-Scale Machine Learning Platform ○ Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective ○ Introducing FBLearner Flow: Facebook’s AI backbone ○ Machine Learning in Uber's Data Science Platforms ○ Rules os ML: EN, JP ○ Machine Learning Glossary ○ CVPR 2018: Software Engineering in Computer Vision System ○ Machine Learning That Matters ○ TRAIN AI 2018- Building Software 2.0 Stack ★ Code & Tools ○ Mercari 1st winners solution ○ Cookiecutter Data Science ○ Kubeflow
  17. 17. Another Story

×