概要
Kubeflow (読み方は「キューブフロー」) は、機械学習 (ML) ワークロードを開発、管理、実行するための、Kubernetes ネイティブのオープンソース・フレームワークです。Kubeflow は、AI/ML の主要なユースケース (データ探索、データパイプライン、モデルのトレーニング、モデルの提供) で使える複数のツールをまとめた AI/ML プラットフォームです。
Kubeflow は、これらのツールを操作するための高レベルの抽象化を提供するポータルを介して、データサイエンティストがこれらの機能にアクセスできるようにします。そのためデータサイエンティストは、Kubernetes がこれらの各ツールにどのようにプラグインされるかというような詳細を学ぶ必要がありません。Kubeflow 自体は、Kubernetes 上で動作するように特別に設計されており、Operator モデルを含む主要なコンセプトの多くを完全に取り入れています。
Kubeflow の用途
Kubeflow は、ML モデルのトレーニングや 広範にわたるデプロイを単純化する一連のツールと API を提供することで、機械学習パイプラインのオーケストレーションに関わる多数の課題を解決します。「パイプライン」とは ML のワークフローを意味し、ワークフローの構成要素とそれらの構成要素がどのように相互作用するかも含まれます。Kubeflow は複数のチームのニーズを 1 つのプロジェクトで対応することもでき、これらのチームがどのインフラストラクチャからでも作業できるようにします。このため、データサイエンティストは、IBM Cloud、Google Cloud、Amazon の AWS、Azure など自分たちが選んだクラウドから ML モデルをトレーニングして提供できます。
総合すると、Kubeflow は、プロジェクトをまとめながらクラウド・コンピューティングの能力を活用することで、機械学習運用 (MLOPs) を標準化します。Kubeflow の主なユースケースとして、データの準備、モデルのトレーニング、評価、最適化、デプロイメントが挙げられます。
Red Hat のリソース
Kubernetes 上で機械学習ワークロードを実行する理由
Kubernetes は、ML ライフサイクルの高速化にとって重要です。これらのテクノロジーにより、データサイエンティストが ML モデルをトレーニング、テスト、デプロイするためのアジリティ、柔軟性、可搬性、スケーラビリティが得られるからです。
スケーラブル:Kubernetes により、ユーザーは必要に応じて ML ワークロードをスケールアップまたはスケールダウンできます。このため、プロジェクトの他の要素を妨害することなく、機械学習パイプラインで大規模な処理およびトレーニングに対応できます。
効率:Kubernetes は、可用性と容量に基づいてワークロードをノードにスケジュールすることで、リソース割り当てを最適化します。コンピューティング・リソースを意図的に使用することで、ユーザーはコスト削減とパフォーマンス向上を期待できます。
可搬性:Kubernetes はプラットフォームに依存しない標準化された環境を提供するので、データサイエンティストは 1 つの ML パイプラインを開発して複数の環境とクラウド・プラットフォームにデプロイできます。互換性の問題やベンダーロックインを気にする必要はありません。
フォールトトレランス:組み込みのフォールトトレランスおよび自己修復機能により、ハードウェアやソフトウェアに障害が発生しても ML パイプラインの稼働を継続できるという信頼感を Kubernetes に持つことができます。
Kubeflow のコンポーネントとは
- Kubeflow Central Dashboard は、Kubeflow とそのエコシステムのコンポーネントにアクセスするための認証された Web インタフェースを提供します。一元化されたハブとして機能し、クラスタ内のさまざまなツールやサービスのユーザー・インタフェースを集約し、機械学習プラットフォームを管理するための統一されたアクセスポイントを提供します。
- Kubeflow は Jupyter Notebooks と統合でき、データ探索、実験、モデル開発のためのインタラクティブな環境を提供します。Notebooks は Python、R、Scala を含むさまざまなプログラミング言語をサポートしているため、ユーザーは ML ワークフローを協調的かつ再現可能な方法で作成および実行できます。
- Kubeflow Pipelines により、複雑な ML ワークフローを有向非巡回グラフ (DAG) として定義し、実行できます。Kubeflow Pipelines は、データの前処理、モデルのトレーニング、評価、デプロイのエンドツーエンドプロセスをオーケストレーションして自動化する方法を提供し、ML プロジェクトにおける再現性、スケーラビリティ、コラボレーションを促進します。Kubeflow Pipelines SDK は Python パッケージのコレクションです。ユーザーは機械学習ワークフローを正確かつ効率的に定義し、実行することができます。
- Kubeflow Training Operator は、機械学習モデルを大規模にトレーニングするためのツールを提供します。これには、TensorFlow、PyTorch、XGBoost などのフレームワークを使用した分散トレーニングのサポートも含まれます。Kubernetes 特有のスケーラビリティとリソース管理機能を活用することで、マシンのクラスタ間で効率的にモデルをトレーニングすることが可能です。
- Kubeflow Serving により、トレーニング済みの ML モデルをスケーラブルでプロダクション対応のサービスとしてデプロイすることができます。TensorFlow Serving、Seldon Core、またはカスタム推論サーバーのような一般的なフレームワークを使用してモデルを提供するための一貫したインタフェースを提供します。モデルはリアルタイムまたはバッチ処理のシナリオでデプロイでき、HTTP エンドポイント経由で予測を提供します。
- Kubeflow Metadata ML の実験、実行、成果物に関連するメタデータを追跡および管理するための一元化されたリポジトリです。ワークフロー全体にわたって ML メタデータの一貫したビューを提供し、MLプロジェクトにおける再現性、コラボレーション、ガバナンスを可能にします。
また、Kubeflow は ML 実験、モデルトレーニングジョブ、推論サービスを監視および管理するための Web ベースのユーザー・インタフェース (UI) を提供します。これらの UI は、可視化、メトリクス、ログを提供することで、ML ワークフローの進捗の追跡、問題のトラブルシューティング、情報に基づいた意思決定を支援します。
Kubeflow は Kubernetes Operator モデルを採用しているため、拡張性があり、特定のユースケースや環境に適応するためのカスタマイズをサポートしています。データ前処理ツール、特徴量ストア、監視ソリューション、外部データソースなどの追加コンポーネントを統合して、ML ワークフローの機能を強化することができます。
Red Hat のサポート内容
Red Hat® OpenShift® は、あらゆる環境におけるアプリケーション開発、デプロイ、管理のための、信頼できる包括的で一貫したプラットフォームです。DevOps 機能 (OpenShift Pipelines、OpenShift GitOps、Red Hat Quay など) およびハードウェア・アクセラレーターとの統合により、Red Hat OpenShift はより優れたコラボレーションを実現し、AI を活用したアプリケーションを迅速に提供します。
Red Hat OpenShift AI は、Kubeflow パイプラインをベースとしたデータサイエンス・パイプラインと実験の作成と自動化のためのビジュアルエディターを提供します。OpenShift AI は、AI 対応アプリケーションや予測モデル、基盤モデルをハイブリッドクラウド環境全体で大規模に構築、トレーニング、デプロイ、監視するための統合 MLOps プラットフォームです。ソフトウェア開発プロセス、本番環境のロールアウト、監視、再トレーニング、再デプロイに ML モデルを統合する反復プロセスを自動化および単純化して、継続的な予測精度の向上を実現します。
Red Hat OpenShift は、IBM Cloud、Google Cloud、AWS、Azure でネイティブに利用できるため、ユーザーは kubernetes クラスタの管理を自動化して、本番環境に対応したアプリケーション・プラットフォームでアプリケーションをすばやく構築、デプロイ、スケーリングできます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。