徹底解説!Kubernetes上で動く機械学習プラットフォームKubeflow 1

Kubeflowとは

Kubeflowとは

KubeflowはKubernetes上で動くクラウドネイティブな機械学習プラットフォームです。Kubeflowは、Google社内で使われていた機械学習基盤をオープンソースとして公開したもので、Kubernetes上での機械学習ワークフローのデプロイをシンプル、ポータブル、スケーラブルにすることをコンセプトとしています。

Kubeflowのコンポーネント

Kubeflowを構成するコンポーネントは主に次の通りとなっています。

Kubeflow UI(ダッシュボード)

Kubeflowを起動すると、以下のようなダッシュボードにアクセスできます。

図4-1:Kubeflow UI

図4-1:Kubeflow UI

Kubeflow UIは各種機能へのポータル画面となっています。基本的に機械学習モデルの開発者と運用者の作業は、この画面上から実行可能となっています。機械学習モデルの開発環境となるノートブックサーバーの起動や機械学習パイプラインの管理や実行・停止、実行履歴の閲覧、メタデータの参照ができます。

Notebook Servers

機械学習モデルの開発環境として広く利用されているJupyter notebookの環境が Kubeflowに統合されています。以下のような管理画面上で、ユーザー自身で新しいノートブックサーバーを起動し、その環境で機械学習モデルの開発や機械学習パイプラインの開発を進めることができます。

図4-2:Notebook Servers

図4-2:Notebook Servers

Kubeflow Pipelines

Kubeflow Pipelinesは、機械学習パイプラインのステップをエンドツーエンドにオーケストレートするポータブルかつ、スケーラブルなワークフローツールで、Kubeflow の中で、もっともパワフルな機能ともいえるでしょう。

図4-3:Kubeflow Pipelines

図4-3:Kubeflow Pipelines

図4-3は構築した機械学習パイプラインを可視化した例で、Kubeflow UIで参照することができます。Kubeflow Pipelinesでは、パイプライン内の各ステップはコンテナ化されるため、一度作ったパイプラインはさまざまな環境で再利用できます。

KFServing

作成した機械学習モデルを商用システムで利用可能にするためには、モデルをサービングし、推論結果を取得するためのインターフェースを公開する必要があります。KFServingは、TensorFlowscikit-learnPyTorchなど複数の機械学習フレームワークに対応しており、商用システムでの利用時におけるさまざまなユースケースに対応できる機能を提供しています。

なお、監視ツールはKubeflowの標準コンポーネントには含まれていませんが、GrafanaPrometheusといった一般的な監視ツールとも容易に連携可能です。これはクラウドネイティブな機械学習プラットフォームならではのメリットと言えるでしょう。

機械学習パイプラインを構築するためのフレームワーク(TFX)

Kubeflow Pipelinesとして機械学習パイプラインを構築するためのフレームワークはいくつかありますが、本連載では、TensorFlow Extended(TFX)を使用して機械学習パイプラインの解説を行っていきます。TFXは、機械学習パイプラインを構成する一連のコンポーネントを提供しており、特にスケーラブルで高いパフォーマンスが必要な機械学習タスクを念頭に設計されています。

また、MLMD(Machine Learning Metadata:TFXのコンポーネントの一部)というメタデータ管理機能と連携することにより、TFXパイプラインが実行されると、それらの実行に関する情報(パラメータ等)や結果のアーティファクト(学習済みのモデル等)に関する情報を含むメタデータが自動で生成・保存されます。これにより、例えば、「特定のデータセットでトレーニングしたモデルは何か?」などを追跡することや、再現性を担保することができ、さまざまなユースケースを実現できます。まさに実運用を見据えた場合に、適したフレームワークとなっています。

TFXの主な特徴は以下の通りです。

  • 研究開発から本番環境まで大小問わず幅広いユースケースをサポートしており、Kubeflowなどの機械学習プラットフォームと緊密に統合されています
  • 機械学習を利用するプロジェクトにおいて求められる、さまざまな機能(例えば、データ検証を行うツールやモデル分析を行うツール)をアドオンとして組み合わせて利用することが可能です
  • オープンソースのツールであるため、利用に制限はありません

本連載では、機械学習パイプラインの構築に関する解説のうち、特にTFXについては、複数回にわたって詳しく解説する予定です。

Kubeflowで機械学習プラットフォームを構築する場合の全体像

ここまでの内容を踏まえて、Kubeflowで機械学習プラットフォームを構築する場合は、以下のような構成となります。

図5:Kubeflowで構築する機械学習プラットフォームの構成

図5:Kubeflowで構築する機械学習プラットフォームの構成

この構成に加え、Kubeflowでは、Kubeflow UI(ポータル画面)や機械学習モデルやパイプラインの開発環境となるノートブックサーバー等が提供されます。

次回以降、この構成を実際に構築しながら、解説をすすめていきます。

おわりに

今回は、Kubeflow登場の背景から、Kubeflowの概要、機械学習パイプラインフレームワークであるTensorFlow Extended(TFX)の概要を説明しました。

次回は、Kubernetesクラスタの構築から、Kubeflowを実際にデプロイする手順について、解説していきます。

記事内に記載のOSS一覧

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る