Kubeflow とは

Kubeflow は、Kubernetes での ML ワークフローのデプロイと管理を簡素化するように設計されたオープンソースの ML プラットフォームです。Kubeflow は、Kubernetes の機能と ML 固有のツールやライブラリを組み合わせることで、堅牢な ML オペレーション(MLOps)の実装を容易にします。また、Kubeflow を使用すると、Google Kubernetes Engine(GKE)ユーザーは AI ハイパーコンピュータのデプロイの一環として ML ワークフローをより簡単に構築できます。

Kubeflow は、ML エンジニアとデータ サイエンティストが Kubernetes のスケーラビリティとポータビリティを活用できるように支援します。ユーザーは、コンテナ化の複雑さを抽象化して、ML モデルの構築、トレーニング、デプロイに集中できます。

Kubeflow の用途

Kubeflow は、次のようなさまざまな ML タスクに使用されることがあります。

  • 移植可能でスケーラブルな ML ワークフローの構築: ユーザーは、ML ワークフローをパイプラインとして定義し、さまざまな環境で簡単に共有、デプロイできるため、ML プロセスの一貫性と再現性が促進されます。
  • 大規模な ML モデルのトレーニング: Kubeflow はトレーニング ワークロードを Kubernetes クラスタ全体に分散させ、より大規模なデータセットでモデルを効率的にトレーニングできるようにします。このスケーラビリティは、最新の ML アプリケーションで増大するデータ量を処理するうえで有益です。
  • 本番環境での ML モデルのデプロイ: Kubeflow を使用すると、トレーニング済みの ML モデルをスケーラブルで信頼性の高いサービスとしてデプロイし、モデルの開発とデプロイのギャップを埋めるのが簡単になります。これにより、試験運用からプロダクション レディな ML モデルへの移行を効率化できます。
  • ML ライフサイクルの管理: Kubeflow には、実験の追跡、モデル バージョンの管理、モデルのパフォーマンスのモニタリングなどの機能が含まれることが多く、ML ライフサイクル全体を合理化できます。この包括的な管理は、継続的なモニタリングと改善という MLOps の原則に沿っています。

Kubeflow コンポーネント

Kubeflow は、包括的なプラットフォームを提供するために連携できる複数のコンポーネントで構成されています。主なコンポーネントをいくつかご紹介します。

パイプライン

Kubeflow Pipelines は Docker コンテナを活用し、移植可能かつスケーラブルな ML ワークフローを作成してデプロイするためのプラットフォームを提供します。各パイプラインはブループリントとして機能し、ML ワークフローのステップとその相互接続を詳細に示します。Kubeflow Pipelines のユーザー フレンドリーなインターフェースにより、テストの効率的な管理と追跡、パイプライン実行の可視化、ログとパフォーマンス指標の詳細な調査が可能になります。

Katib

Katib は、ML モデルのハイパーパラメータ調整システムです。モデルに最適なハイパーパラメータを見つけることは、時間のかかるプロセスですが、Katib はこのプロセスを自動化します。Katib は、グリッド検索、ランダム検索、ベイズ最適化など、さまざまな検索アルゴリズムをサポートしているため、モデルのパフォーマンスをより効率的に最適化できます。

KFServing

KFServing は、トレーニング済みの ML モデルをデプロイするためのサーバーレス推論プラットフォームを提供します。トレーニング済みモデルのデプロイとスケーリングが簡素化されます。KFServing は、TensorFlow、PyTorch、scikit-learn などのさまざまな ML フレームワークをサポートしているため、フレームワークに依存せず、さまざまな ML エコシステムに適応できます。

メタデータ

Kubeflow のメタデータ コンポーネントでは、リネージとアーティファクトのトラッキングが可能となります。このコンポーネントを使用することで、データ サイエンティストはテスト、データセット、モデルをトラッキングできるため、作業の管理と再現が容易になります。メタデータ トラッキングを通じてチームメンバー間の協力が促進され、結果の再現性が確保されます。

Kubeflow のメリット

ML プロセスを合理化、強化しようとしている組織は、Kubeflow が提供する多くの利点に気づくかもしれません。

スケーラビリティとポータビリティ

Kubeflow を使用すると、ユーザーは必要に応じて ML ワークフローをスケールアップまたはスケールダウンできます。また、オンプレミス、クラウド、ハイブリッド環境など、さまざまなインフラストラクチャにデプロイできます。この柔軟性により、組織は ML インフラストラクチャを特定の要件に合わせて調整し、ベンダー ロックインを回避できます。

再現性とテスト追跡

Kubeflow を使用する主なメリットの一つは、コンポーネントベースのアーキテクチャにより、テストやモデルを簡単に再現できることです。データセット、コード、モデル パラメータのバージョニングとトラッキングのためのツールが提供されます。この再現性により、ML テストの一貫性が確保され、データ サイエンティスト間の協力が促進されます。

拡張性と統合

Kubeflow は拡張性を考慮して設計されているため、クラウドベースの ML プラットフォームなど、さまざまなツールやサービスと統合できます。また、追加のコンポーネントでカスタマイズすることもできます。これにより、組織は既存のツールとワークフローを活用し、Kubeflow を ML エコシステムにシームレスに組み込むことができます。

運用上の複雑さを軽減

Kubeflow は、ML ワークフローのデプロイと管理に関連する多くのタスクを自動化することで、データ サイエンティストやエンジニアがモデルの開発や最適化などの価値の高いタスクに集中できるようにします。運用上の負担が軽減されることで、生産性と効率性が大幅に向上する可能性があります。

リソース利用の改善

Kubernetes との緊密な統合により、Kubeflow ではリソースの利用効率が高まります。組織はハードウェア リソースの割り当てを最適化し、ML ワークロードの実行に伴う費用を削減することができます。

Kubeflow のスタートガイド

ユーザーの個々のニーズと経験レベルに応じて、Kubeflow の使用を開始する方法はいくつかあります。

  • Google Kubernetes Engine(GKE)への Kubeflow のデプロイ: このオプションは、Kubeflow のデプロイに大きな柔軟性と制御性を提供します。ユーザーは、特定の要件を満たすようにインストールをカスタマイズし、基盤となる Kubernetes クラスタに完全なアクセス権を持つことができます。ただし、この方法では Kubernetes の専門知識が必要になる可能性があり、より複雑になる可能性があります。
  • Vertex AI Pipelines の利用: このオプションは、Google Cloud で Kubeflow Pipelines をデプロイして実行することが簡単になるフルマネージド サービスです。Vertex AI Pipelines がインフラストラクチャ管理のすべてを処理するため、ユーザーは ML ワークフローの構築と実行に集中できます。このアプローチは、迅速かつ簡単に設定できるマネージド ソリューションをお探しの方に適したオプションです。
  • 他のプラットフォームでの Kubeflow の検討: Kubeflow は、他の Kubernetes 環境にもデプロイできます。これらのプラットフォームのインストール手順とドキュメントは、Kubeflow のウェブサイトで確認できます。
最適なアプローチを決定するには、Kubernetes の使用経験、インフラストラクチャに対する制御の希望レベル、予算を考慮する必要があります。Kubernetes を初めて使用するユーザーや、より管理されたソリューションを希望するユーザーには、Vertex AI Pipelines が適しているかもしれません。より柔軟性が必要な場合や、Kubeflow をオンプレミスで実行したい場合は、GKE や別の Kubernetes プラットフォームへのデプロイが適している可能性があります。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud