参考
プロダクト
- Feast
- Feast
- Feast Bridging ML Models and Data
- メモ
- Feature Store for Machine Learning https://feast.dev
- GoJek/Google released Feast in early 2019 and it is built around Google Cloud services: Big Query (offline) and Big Table (online) and Redis (low-latency), using Beam for feature engineering.
- Delta Lake
- メモ
- Delta Lake is an open-source storage layer that brings ACID transactions to Apache Spark™ and big data workloads.
- メモ
- Hopsworks
- メモ
- The Platform for Data-Intensive AI
- Feature Storeに限らない
- Hopsworks
- HopsworksのGitHub
- Hopsworks Feature Store The missing data layer in ML pipelines?
- Hopsworksの公式ドキュメントのFeature Store
- メモ
- Metaflow
- メモ
- Netflixの機械学習パイプライン管理用のライブラリ
- 特徴量を保存するためのライブラリを内容(割と素朴に保存する仕組み)
- メモ
- Petastorm
- メモ
- いろいろなフレームワークから利用できるデータ入出力のためのライブラリ Parquetを利用する。
- メモ
- Zadara
- どちらかということ純粋にストレージ
- Netapp
- Dell EMC
- メモ
- 単独の技術というより、コンピューティングと合わせてのソリューション、サーバ
- ENTERPRISE MACHINE & DEEP LEARNING WITH INTELLIGENT STORAGE
- メモ
- IBM
- メモ
- Watsonの名のもとに様々なソリューションを集結
- IBM Storage for AI and big data
- IBM Spectrum Storage for AI with Power Systems
- メモ
- Kafka
- メモ
- 推論用のイベントをやり取りするためのハブとして用いる
- 最近開発されているTiered Storage機能を利用し、長期保存用のストレージと組み合わせた使い方が可能になる つまり学習データ(ヒストリカルデータ)を含めて、Kafkaでデータをサーブすることが描かれている。
- Streaming
Machine Learning with Tiered Storage and Without a Data Lake
- Tiered Storageの紹介と機械学習への応用例
- メモ
- Cognitive
SSD
- メモ
- USENIX ATC'19
- 非構造データを記憶装置の階層間で移動するのが無駄。そこでSSDのNAND Flash横にDeep Learning用、グラフ検索用のエンジンを積む
- メモ
- Ignite
- Bandana
- Bandana Using Non-Volatile Memory for Storing Deep Learning Models
- Facebook Research
- 深層学習モデルをストアするためのストレージの提案。 NVMを活用。一緒に読み込まれるベクトルを物理的近く配置し、プリフェッチの効果を向上。 キャッシュポリシーをシミュレーションに基づいて最適化。
企業アーキテクチャ
- Pinterest - Big Data Machine Learning Platform at Pinterest
- Michelangelo
- メモ
- UberのMLプラットフォーム。必ずしもFeature Storeに限らない。
- Feature Storeに関して特筆すると、「online」と「offline」のデータを統合して扱う、という発想。
- Michelangelo_0
- Michelangelo_1
- メモ
- Twiter
- 特徴量をライブラリとして保持、アプリケーションから使いやすくした?
- Comcas
- ReidsをFeature Storeに利用
- Zipline
まとめ
- Feature Stores for ML
- 割とよくまとまっている。観点が参考になる。
- Rethinking
Feature Stores
- プロダクトは、 Feature Stores for ML と重なっているが、考察が載っている。
- Feature
Stores Components of a Data Science Factory
- Feature Storeの要件を整理しようとしている
- Accelerating
Machine Learning as a Service with Automated Feature Engineering
- Feature Storeの定義、ビジネスメリットまで言及されている。
- Data
Storage Architectures for Machine Learning and Artificial
Intelligence
- ベンダリストが載っていて便利そう。発行が2019/11なので比較的最近。
- AI/ML向けのストレージアーキテクチャを「2層型」、「1層型」で分けている。
- 2層型は性能層と容量層に別れる。また性能層は1層型として用いられることもある。
- 各層に用いられる、ベンダ製品を例示している。
- ベンダリスト
- Dell EMC(Isilon、ECS)
- Qumulo
- WekaIO
- Scality RING
- DataDirect Networks
- IBM(Spectrum Scale、COS)
- Minio
- Netapp
- OpenIO
- Pavilion Data Systems
- Pure Storage AIRI
- Quobyte
- VAST Data
メモ
傾向
- Google Big Query、Big Table、Redisあたりを特徴量置き場として使っている例が見られた。
Feature Storeとして挙げられている特徴・機能
主に、featuer storeとしての特徴
機能・分析補助
- オンライン・オフライン統合(一貫性の実現、共通API)
- Feature Stores for ML
- Rethinking Feature Stores
- Feature Stores Components of a Data Science Factory
- Feast Bridging ML Models and Data
- Hopsworksの公式ドキュメントのFeature
Store
- Hopsworksではオンライン用にMySQL、オフライン用にHiveを利用
- また一方でHudiにも対応
- バージョンニング、point-in-time correctness(特定のタイミングのレコードに対するラベルの更新)、タイムトラベル
- ストレージレイヤ(実体の保存方法)
- 自動特徴量分析、ドキュメンテーション、特徴量のテスト
- Hopsworks Feature Store The missing data layer in ML pipelines?
- Hopsworksの公式ドキュメントのFeature
Store
- HopsworksではDeequを使った特徴量のユニットテストが可能
- マルチテナンシ(ネームスペース、リソース)
- 読み書きAPI
- アクセス管理
- クエリプランナ(複数の特徴量グループの自動結合)
- 必要な特徴量だけ選んでデータセットを定義(DBMSでいうビュー)
計算
- 遅延評価(必要なタイイングでの計算実行)
- 自動再計算(auto backfill)
性能
- オンラインFeature Storeとしての良いレスポンス、スケーラビリティ
- オフラインデータストアの性能(スケーラビリティ)
- 特徴量サービングの分散化・非中央集権化(サービングのコピー)
連係
- 特徴量エンジニアリング手段との連係
- 共通フォーマットでのデータのマテリアライズ、複数のフレームワークから読み書き可能なフォーマット
- メタデータ管理との統合、データカタログ、登録・探索、探索用のGUI
rawデータストアを含めた特徴
- 画像、動画、音声など非テキストデータとテキストデータの統合的な取り扱い
特徴量エンジニアリングの例
Hopsworks Feature Store The missing data layer in ML pipelines? に一例が載っていたのでついでに転記。
- Converting categorical data into numeric data;
- Normalizing data (to alleviate ill-conditioned optimization when features originate from different distributions);
- One-hot-encoding/binarization;
- Feature binning (e.g., convert continuous features into discrete);
- Feature hashing (e.g., to reduce the memory footprint of one-hot-encoded features);
- Computing polynomial features;
- Representation learning (e.g., extract features using clustering, embeddings, or generative models);
- Computing aggregate features (e.g., count, min, max, stdev).
feature storeにおける画像の取扱は?
feature storeのレベルになると行列化されているので、画像を特別なものとして扱わない? rawデータストア上では画像は画像として扱う。
Feastにおけるデータフロー概要
※Feastから幾つか図を引用。
Feast Bridging ML Models and Data に載っていたイメージ。
データオーナ側はストリームデータ(Kafka)、DWH(BigQuery)、File(BigQuery)が書かれている。 また真ん中にはApache Beamが書かれており、ストリームETLを経ながらデータがサービングシステムに渡されている。 データは基本的にはストリームとして扱うようだ。
また特徴量を取得するときは以下のようにする。
hopsworksにおけるfeature store
※Hopsworksから幾つか図を引用。
Hopsworksの公式ドキュメントのFeature Store に掲載されていたイメージは以下の通り。 Rawデータストアとは異なる位置づけ。
Feastでも言われているが、データエンジニアとデータサイエンティストの間にあるもの、とされている。
データストアする部分の全体アーキテクチャ。
複数のコンポーネントを組み合わせて、ひとつのfeature storeを構成しているようである。
ストレージ製品の動向
Netapp
Accelerated AI and deep learning pipelines across edge, core, and cloud では、
- Create a smooth, secure flow of data for your AI workloads.
- Unify AI compute and data silos across sites and regions.
- Your data, always available: right place, right time.
が挙げられている。 また、クラウド・オンプレ、エッジ・センタを統合する、というのが重要なアピールポイントに見えた。 詳しくは、 Edge to Core to Cloud Architecture for AI を読めばわかりそう。
Dell EMC
単独の技術というより、コンピューティングの工夫を含めてのソリューションのようにみえる。 ENTERPRISE MACHINE & DEEP LEARNING WITH INTELLIGENT STORAGE に思想が書いてありそう。まだ読んでいない。