Kubeflowとは

2021年9月24日(金)
張替 清音(はりがえ きよなり)
連載第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一覧

著者
張替 清音(はりがえ きよなり)
NTTデータ先端技術株式会社

ソフトウェアソリューション事業本部 AIソリューション事業部 ビッグデータ基盤担当

2017年入社。HadoopやSparkといったOSSのビッグデータ基盤の導入支援や技術開発を経て、現在はサイバーセキュリティ対策のためのデータ分析基盤の構築や、 OSSをベースとしたクラウドネイティブなデータ分析・活用基盤に関する技術検証やソリューション開発に従事。

連載バックナンバー

AI・人工知能技術解説
第9回

機械学習モデルの継続的な改善に向けて

2022/6/13
連載の最終回となる今回は、機械学習モデルの開発と運用におけるパイプライン全体を協調動作させモデルを継続的に改善する仕組みについて解説します。
AI・人工知能技術解説
第8回

KFServingで機械学習モデルをサービング

2022/4/27
連載の8回目となる今回は、学習済みモデルのデプロイの手順とその運用で利用するKubeflowの機能やコンポーネントについて解説します。
AI・人工知能技術解説
第7回

TFXを使った機械学習パイプラインの構築(デプロイ編)

2022/3/30
連載の7回目となる今回は、実装編で構築した機械学習パイプラインをKubeflow Pipelinesにデプロイし実行します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています