Note 当文書はMLOps Toolsを日本語に翻訳したものです。
ツールとは儚いもので、あらゆるソフトウェアはいずれ時代遅れになってしまうので、本書の中ではツールについて解説することは控えました。ただし、要点の説明の役に立つ場合には本書の中でもツールに言及している箇所があります。初期の読者の皆さんから、本書のおかげで便利なツールを見つけることができたという声や、お勧めのツールをもっと教えてほしいという声を頂きましたので、ここで紹介してみようと思います。
当文書では、まずはじめに他の方がまとめてくださった膨大なツールのリストを掲載し、その後に私が特にお勧めしたいツールを簡単にいくつか掲載します。リストが長くなり過ぎないようにデータサイエンスのコミュニティで既によく知られているツールは割愛しています。新たなお勧めのツールがあれば、お気軽にissueを起票、またはプルリクエストをお送りください。ありがとうございます。
また、MLOpsのDiscordのチャンネル(#tools-watch)でも興味深いツールについての議論が交わされています。
言うまでもなくMLOps関連のツールは山のように存在しています。多数のツールを掲載したリストが既にいくつも存在するので、ここで新たにリストを作成するつもりはありません。膨大なツールのリストを見たい場合は、次のような情報源が有名です。
Warning
- このリストの多くはベンダーが後援するコミュニティによって作成されています。スポンサーを得ることに問題はありません。コミュニティ運営にもコストがかかりますから、スポンサーを得ることができるコミュニティは賞賛に値します。しかしながら、ベンダーのスポンサーシップとレビューのベンダー中立性との間で利害が対立することもあるでしょう。
- ツールをカテゴリーに分けて機能で評価していますが、状況の変化が激しいためカテゴリがまだはっきりと定まっているわけではありません。同様にベストプラクティスについても過渡期にあり、企業にとってどの機能が自分たちに必要かを判断することが難しくなっています。
- MLOps Community’s Learn: 現時点で、特徴ストア、監視、メタデータストレージと管理ツール(モデルストアも含む)の3つのカテゴリで構成されており、新たにデプロイのカテゴリが追加されようとしているところです。ツールを複数選択して比較検討することができます。
- TwiML Solutions Guide: サポートする機能やデプロイ可能な場所に応じてカテゴリ別にツールがグループ化されています
- StackShare: 様々な開発ツールを閲覧でき、そのツールを採用している企業や、言及している採用情報を確認できます。代替ツールをチェックしたりレビューを読んだりすることもできます。また、有名なテック系企業の技術スタックを見ることもできますし、複数のツールを比較検討することもできます。私が思うに、StackShareは多くのMLOpsソリューションガイドが目指しているものですが、StackShareはMLOpsだけでなく、あらゆる技術スタックに対応しています。
- AI Infrastructure Landscape: AIインフラにフォーカスしたメンバーシップ制の団体(オープンソースにフォーカスしたLFAI & Dataよりも一般的)で、MLOpsツールに関する包括的な調査と分析を多数手がけています。
- Matt Turckが毎年発表しているMachine Learning, AI and Data (MAD) Landscape: 投資家の観点からのハイレベルな分析です。
- Leigh Marie BraswellのStartup Opportunities in Machine Learning Infrastructure: 別の投資家の視点からMLOpsの展望のギャップを分析したものです。
- こちらは私が作成したMLOps Landscapeです。284のツールをリストアップしたGoogleスプレッドシート(最終更新日:2020年12月)と、これをインタラクティブに可視化したものです。膨大な手間がかかることと他にも同じようなことに取り組んでいる人々がいるため、このリストをメンテナンスするのを止めました。
私はイケてるオープンソースツールを見つけるたびにスターを付けています。こちらで全リストをチェックできます。
免責: このリストがすべてのツールを網羅できているわけではありません。
PandasのDataFrameなどの表形式はデータの操作に最適です。しかしPandasは遅く、癖があり、GPUをうまく活用できません。当然ながら、これらの問題を解決しようとするプロジェクトが数多く存在します。そのいくつかを以下に紹介します。
- modin:
import pandas as pd
の代わりにimport modin.pandas as pd
を使ってPandasを簡単に置き換えられます。Ponderはこれをベースにエンタープライズ版の開発に取り組んでいます。 - dask・cuDF: daskの主要な開発者がNVIDIAを離れてCoiledを立ち上げるまでは、いずれのプロジェクトもNVIDIAのRAPIDS AIチームによってメンテナンスされていました。Coiledはdaskをベースにしたエンタープライズ版です。
- Polars: PolarsはApache Arrow上にRustで構築されており、高速なことがウリです。
H2Oは面白いデータベース風のopsベンチマークを実現しています(願わくばグラフの配色を再検討してほしいものですが)。
- オンライン分析データベース(予測とユーザーフィードバックを組み合わせてリアルタイムでモデルのパフォーマンスを監視したい場合など): ClickHouse、Druid。
- ストリーミング処理: ksql、faust、materialize、Redpanda (WASM上)
- 可視化: D3、Superset、Facets、 redash、visdom、plotly, Altair、pandas-profiling、lux (DataFrames用のみ)、bokeh
- データ検証: : Great Expectations、deepchecks、pandera
- ラベル付け: Snorkel、Label Studio、doccano
- データのバージョン管理: DVC、Dolt、pachyderm
- 非構造化データのホスティング: Hub
- メタデータストア(特徴を探す用途で): LyftのAmundsenやLinkedInのDataHub。
- 特徴ストア: FEAST(OSS)。FEASTベースで構築されている商用の特徴ストアもあります。
- データパイプライン: ploomber、hamilton、NVTabular
- 全体的にarrowとflightのエコシステムが急速に成長しています。
- 実験管理: MLflow、aim。当カテゴリのツールの大半はオープンソースではありません。理由は成果物をホストして可視化する難易度が高いためです。
- モデル最適化: TVM、TensorRT、Triton、hummingbird、composer
- 分散訓練: DeepSpeed(超いいです), accelerate
- 連合学習(Federated learning): PySyft、FedML、FATE、TensorFlow Federated
- 評価: checklist(NLP)、reclist(レコメンドシステム)
- オンライン実験(A/Bテストなど): growthbook、Ax
ただ私が個人的に興味があるユースケースを採り上げているだけです。あまり気にしないでください。
- ニューラルレコメンドシステム/CTR: DLRM、DeepCTR, tensorflow-DeepFM、Transformers4Rec
- 対話型AI: rasa、NeMo
- 類似検索: annoy, Faiss, Milvus
- Deepfake: faceswap、deepface
- タイムラグコンバージョンモデリング: convoys
- チャーン予測: WTTE-RNN
- 生存分析(Survival analysis): lifelines
- CLIツール: fzf (fuzzy search)、lipgloss
- IDE: VSCodeを使いましょう(ノートブックもとても素晴らしいです)
- 依存関係の管理: Poetry
- 設定の管理: Hydra、gin-config
- ドキュメンテーション: docusaurus
- Kubernetesでのデバッグ: k9s
- 仮想ホワイトボード: excalidraw
- CI/CD: earthly
- 監視: Sentry、Prometheus、vector、M3
- ダッシュボード: Grafana、Metabase
- DevOps全般: Chaos Monkey、k6