Kubeflowは、Kubernetes上で機械学習とMLOpsを実現するために設計されたオープンソースプラットフォームであり、当初はGoogleによって導入されました。これは、モデル開発、トレーニング、サービング、自動機械学習など、典型的な機械学習ライフサイクルのさまざまな段階に対応するソフトウェアコンポーネントのコレクションを提供します。各コンポーネントは個別にデプロイでき、ユーザーはプラットフォーム全体ではなく、必要な部分のみを採用できます。
このプラットフォームは、Kubernetesをオーケストレーション、スケーリング、インフラストラクチャ管理に活用することで、機械学習システムのデプロイと管理を簡素化することを目的としています。また、さまざまな人気フレームワークやツールをサポートしており、研究環境と本番環境の両方で柔軟な選択肢となっています。
歴史
Kubeflowプロジェクトは、2017年にGoogleのエンジニアであるDavid Aronchick、Jeremy Lewi、Vishnu Kannanによって、KubeCon + CloudNativeCon North America 2017で初めて発表されました。この取り組みは、本番環境に対応した機械学習システムを構築するための柔軟なオプションが不足しているという認識に対処するものでした。また、このプロジェクトは、Googleが内部でTensorFlowを実行していた方法をオープンソース化する方法としても始まりました。
最初のリリースであるKubeflow 0.1は、KubeCon + CloudNativeCon Europe 2018で発表されました。Kubeflow 1.0は2020年3月に続き、多くのコンポーネントが「安定したステータス」に達したことを発表する公開ブログ投稿があり、本番環境での使用準備が整ったことを示しました。2022年10月、GoogleはKubeflowがCloud Native Computing Foundation(CNCF)への参加を申請したことを発表しました。財団は2023年7月にKubeflowをインキュベーション段階のプロジェクトとして受け入れることを投票で決定しました。
コンポーネント
モデル開発のためのKubeflow Notebooks
機械学習モデルは、Kubeflow Notebooksコンポーネントで開発されます。このコンポーネントは、Kubernetesクラスター内でWebベースの開発環境を実行し、Jupyter Notebook、Visual Studio Code、RStudioをネイティブにサポートします。これにより、データサイエンティストは使い慣れたインターフェースで作業しながら、クラスターリソースを活用できます。
モデルトレーニングのためのKubeflow Pipelines
開発後、モデルはKubeflow Pipelinesコンポーネントを使用してトレーニングされます。このプラットフォームは、Dockerコンテナに基づく移植可能でスケーラブルな機械学習ワークフローを構築およびデプロイします。Google Cloud Platformは、Vertex AI Pipelines製品内でKubeflow Pipelines DSLを採用しており、クラウド環境での有用性を示しています。
モデルトレーニングのためのKubeflow Training Operator
特定の機械学習モデルとライブラリに対して、Kubeflow Training OperatorはKubernetesカスタムリソースを提供します。これは、TensorFlow、PyTorch、Apache MXNet、XGBoost、MPIの分散または非分散トレーニングジョブをKubernetes上で実行します。このコンポーネントは、複雑なトレーニングタスクのオーケストレーションを簡素化します。
モデルサービングのためのKServe
KServe(以前はKFServingと呼ばれていました)は、TensorFlow、XGBoost、scikit-learn、PyTorch、ONNXなどのフレームワークで機械学習モデルをサービングするためのKubernetesカスタムリソースを提供します。これは、Google、IBM、Bloomberg、NVIDIA、Seldonによって共同開発されました。公に開示されている採用者には、Bloomberg、Gojek、Wikimedia Foundationが含まれます。
自動機械学習のためのKatib
Katibは、機械学習モデルの自動トレーニングと開発のためのKubernetesネイティブプロジェクトです。ハイパーパラメータチューニング、早期停止、ニューラルアーキテクチャ検索を特徴としており、モデルパフォーマンスの自動最適化を可能にします。
リリースタイムライン
Kubeflowは、開始以来、いくつかのリリースを通じて進化してきました。2018年の初期の0.1リリースは基盤を築き、2020年の1.0リリースは本番環境対応のマイルストーンを示しました。その後のバージョンでは、コンポーネントの改良と機能の追加が続けられ、プロジェクトは2023年にCNCFのインキュベーションステータスを獲得しました。
採用とエコシステム
Kubeflowは、さまざまな業界で機械学習ワークフローに使用されています。Kubernetesとの統合は、すでにコンテナオーケストレーションを使用している組織にとって魅力的です。プラットフォームのモジュール設計により、チームは機械学習エコシステム内の他のツール、例えば深層学習フレームワークや人工知能サービスと組み合わせることができます。