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

Feature Store in DRIVE CHART

Feature Store in DRIVE CHART

DRIVE CHARTにおいてFeature Storeと呼ばれる特徴量管理システムを内製、導入した経緯や効果について紹介します。

Ryosuke Kamesawa

November 18, 2020
Tweet

More Decks by Ryosuke Kamesawa

Other Decks in Technology

Transcript

  1. 2 亀澤諒亮 / Ryosuke Kamesawa - DeNA18新卒 - AI創薬: 2018/04

    ~ 2019/09 - グラフML - CHART: 2019/10 ~ (MoT 2020/04 ~) - エッジML、MLOps - 趣味とか - Rust https://github.com/emakryo/rustdef - 竸プロ (MoT #雑談_競技プログラミング) - ボルダリング 自己紹介
  2. 4 中央集約的な特徴量管理システム - 最近の機械学習システムの多くが大規模、複雑化 - データソース、特徴量、モデルの組み合わせが複数存在 - 問題点 - 開発環境と本番環境の違いによるデグレ

    - モデル開発からデプロイまでが長期間化 - デプロイ後の検証が困難 - これらを解消する手段としてFeature Storeと 呼ばれるものを用意するケースが増えてきている Feature Store とは https://www.featurestore.org
  3. 5 - どこまでをFeature Storeと呼ぶかは結構曖昧 - APIやETL(前処理)のワーカーなどを含むこともあれば 特徴量保存のストレージだけを指すことも - 機能、特色 -

    特徴量の保存/取得/共有 - Online/Offlineで共通のAPI - Online: 推論、本番用、高速小容量 - Offline: 学習、検証用、低速大容量 - APIを通したfeature engineering とmodel training の分離 - 共通の特徴量の再利用、再現性の担保 - Time travel: 特定の時点の特徴量の取得 Feature Store とは
  4. 6 - 各社事例 - Michelangelo (Uber) - Zipline (Airbnb) -

    Comcast - and more https://www.featurestore.org/ - OSS - Hopsworks - Feast (GoJek/Google) - SaaS - Tecton https://www.tecton.ai/blog/what-is-a-feature-store/ 事例・OSS
  5. 11 AIアシスタントのためのMLパイプライン - Online/Offline Feature Store - 特徴量生成パイプライン - Streaming

    / On-Demand Comcast https://www.slideshare.net/databricks/operationalizing-machine-learningmanaging-pro venance-from-raw-data-to-predictions-with-nabeel-sarwar
  6. 12 シンプルなFeature Store OSS - Online/Offline - Historical retrieval -

    Python / Java / Go SDK Feast https://docs.feast.dev/user-guide/architecture
  7. 15 機械学習プラットフォームOSS - 多機能 - ユーザー管理 - クラスタ管理 - 管理UI

    - Notebook管理 - Feature Store Hopsworks https://hopsworks.readthedocs.io/en/stable/featurestore/guides/featurestore.html
  8. 16 - Online/Offline store - On-demand/cached features - Time travel

    (w/ Apache Hudi) - Python SDK / Scale SDK / SparkSQL Hopsworks Feature Store https://hopsworks.readthedocs.io/en/stable/featurestore/guides/featurestore.html
  9. 18 - 生データ(ドライブレコーダーから取得) - センサーデータ(加速度、GPS、etc) - エッジ推論データ(ドライバー顔ランドマーク、前方物体検出、etc) - AWS EFS上に生データをCSVで保存

    - 特徴量(前処理済データ)生成はデータサイエンティストが都度実行 - CSV以外のデータソースにアクセスする必要があり再現が大変 - EFSによるコスト(> S3) - 明示的なCSVのスキーマ管理はなし - 低コストでCSV管理を置き換えるようなFeature Storeが必要 DRIVE CHARTでのデータ管理(これまで)
  10. 19 方針 - 内製 - Feast: GCP (BQ, GCS) が前提(CHARTはAWS)

    - Hopsworks: 必要以上に複雑、運用が大変そう - まずは現状のCSV管理を置き換える - Data lakeのWrapper APIという側面 - 最初はミニマルな構成でOffline (学習用)だけを実装 - 最低限のAPI - 保存/取得/削除 - スキーマ管理(validation / versioning) DRIVE CHARTでのFeature Store
  11. 20 構成: 単純なサーバー・クライアント - サーバー:ストレージの実体を隠蔽したい - 将来的にOffline/Onlineでストレージを切り替えても問題がないように - Offline -

    S3: 特徴量(parquet encoding) - MySQL: メタデータ(スキーマ、バージョン) - Offlineといってもサーバーをボトルネックにしない - 実装はRust(高速・安全) DRIVE CHARTでのFeature Store ECS
  12. 21 構成: 単純なサーバー・クライアント - クライアント:ユーザーは基本的にPython - APIはFeastを参考 - pandas DataFrameを用いるAPI

    - スキーマとデータの分離 - キャッシュの管理も行う - S3の遅さを補う - 内部的にはgRPCなので他言語からも利用可能 - gRPC: 高速・Streaming DRIVE CHARTでのFeature Store ECS
  13. 22 - Web UI - 再利用性、一覧性、検索性 - 統計量のモニタリング - Data

    driftの検出 - 複雑なクエリ - 複数entities (primary key)の join - Time travel - 過去の特定の時点の特徴量の取得 DRIVE CHART Feature Store - Future Direction
  14. 23 - Feature Store - 中央集約的な特徴量管理 - 大規模な機械学習システムではよく用いられる - DRIVE

    CHARTでは内製 - 低コストでCSV管理を置き換えたい - 現状はシンプルな構成、API - 拡張の余地はある まとめ