BETA

MLOpsフレームワークをざっくり比較する

投稿日:2020-06-09
最終更新:2020-06-09

環境

GCP上での運用を想定する。

目的

MLOpsで発生する、データの取得、前処理、特徴量抽出、学習、予測、比較、デプロイなどを包括的に管理できるベストプラクティスを探す。
結論から言うと無いです。

MLOpsフレームワークとは?

厳密にはフレームワークではなく、パイプラインとワークフローエンジンが組み合わされたものという感じだが、イメージしやすいようにフレームワークとする。

DVC

https://dvc.org/
Data Version Control用のフレームワーク。基本的にCLIでの管理になるのでちょっと運用するには厳しい。

Kubeflow

https://www.kubeflow.org/
Kubernetes上でMLOps全部入り。ワークフローエンジンにArgoを使っている。
GCP上にどうやってKubernetesを構築・運用していくかが課題になる。
全部入りで自由度も高い分、求められるスキルも高い。

Metaflow

https://metaflow.org/
Netflix社謹製。
書きやすい。しかし、モデル精度比較のダッシュボードが無いなど、基本的にMLOpsというよりはワークフローエンジンの性格が強い。
また、AWSとの親和性が高いので他のクラウドで使う場合はちょっと苦労しそう。

MLFlow

https://mlflow.org/
モデルのバージョン管理や精度比較に強い。ただ、ダッシュボード用にサーバープロセスが必要なのでGCP上に構築するのがやや面倒。

Digdag

https://www.digdag.io/
ワークフローエンジンの性格が強いのでembulk等と組み合わせて使用する。MLOps向けというよりは汎用的なのであまり使い勝手は良くない。

GCP Composer

https://cloud.google.com/composer
MLOpsというよりは汎用ワークフローエンジン。GCPの各サービスとの相性は当然良い。モデル精度の比較にはダッシュボードを自作するしかない。

GCP AutoML Tables

https://cloud.google.com/automl-tables
モデル精度の比較に特化したGCPのサービス。GCPの各サービスとの相性も良くダッシュボードも見やすい。残念ながらカスタムコードでのモデルは使用できない。

AI Platform

https://cloud.google.com/ai-platform
GoogleのMLOps用ワークフローエンジン。しかし、東京リージョンだと既成モデルでのオンライン予測にしか対応していない…

Flyte

https://flyte.org/
Lyft社謹製。ワークフローダイアグラムをPythonで書けるのが特徴。導入事例が少なすぎるのでなんとも…

Michelangelo

https://eng.uber.com/michelangelo/
Uber社謹製。最近の更新もなくGithubからも消えてるぽく良く分からないプロダクト。

Luigi

https://github.com/spotify/luigi
Spotify社謹製。歴史が古いながらも開発もいまだ活発なプロダクト。
そのままだと若干使いにくいのでM3社が出しているgokartをラッパーにすると良さそう。
機能自体は十分なイメージだがスケジューラは無いので別に用意する必要がある。

Kedro

https://github.com/quantumblacklabs/kedro
QuantumBlack社謹製。MLFlowやKubeflowと同等の全部入りフレームワーク。
Pythonで書かれているのでpipでインストールできるが、プロジェクトをつくろうとするとエラーになる。
まだ不安定な印象。

考察

どのフレームワークも長短あるが、DVCとDigdagはMLOpsには機能が不足している。
Metaflowもダッシュボードが弱いので現時点では不向き。
k8sに強いSREチームがいる場合はKubeflowを使うのもあり。
データポータルの利用やダッシュボード作成が強いチームはComposerを使うのもあり。
MLFlowはバランス型なので、一度試してみてそこからKubeflowやComposerに移行するかを考えるのもあり。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@yoko8maの技術ブログ システムと人間について

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう