機械学習(ML)ワークフローには、データの準備と分析、モデルのトレーニングと評価、トレーニング済みモデルの本番環境へのデプロイ、ML アーティファクトの追跡、依存関係の理解などが含まれます。こうしたステップをアドホック方式で管理することは困難で、時間がかかる可能性があります。
MLOps は、ML ワークフローの自動化、管理、監査のために DevOps プラクティスを適用するプラクティスです。AI Platform Pipelines では、ワークフローのステップをパイプラインとしてオーケストレートできるプラットフォームを提供することで、MLOps を実現できます。ML パイプラインは、ML ワークフローの移植可能で再現可能な定義です。
AI Platform Pipelines を使用すると、TensorFlow Extended(TFX)を使用して Kubeflow Pipelines を設定する手間が省け、MLOps の実践を簡単に始めることができます。Kubeflow Pipelines は、Kubernetes で ML パイプラインの実行、モニタリング、監査、管理を行うためのオープンソース プラットフォームです。 TFX は、エンドツーエンドの ML ワークフローをオーケストレートする ML パイプラインを構築するためのオープンソース プロジェクトです。
Kubeflow Pipelines と Kubeflow Pipelines プラットフォームについて
Kubeflow は、Kubernetes で ML ワークロードを実行するためのオープンソース ツールキットです。Kubeflow Pipelines は ML ワークフローの構築とデプロイを行うためのプラットフォーム(パイプライン)を提供する Kubeflow のコンポーネントです。
TensorFlow Extended について
TFX は、TensorFlow ベースの ML ワークフローをパイプラインとして定義するために使用できるオープンソース プロジェクトです。TFX には、データの取り込みと変換、モデルのトレーニングと評価、推論用のトレーニング済みモデルのデプロイなどのために再利用できるコンポーネントがあります。TFX コンポーネントを再利用することによって、ステップごとにカスタム コンポーネントを構築する必要なしに ML プロセスをオーケストレートできます。
AI Platform Pipelines について
AI Platform Pipelines を使用すると、次のような手間を省けます。
- Google Kubernetes Engine クラスタの設定
- Cloud Storage バケットの作成
- Kubeflow Pipelines のインストール
AI Platform Pipelines を使用すると、Kubeflow Pipelines クラスタを 15 分で設定できるため、ML パイプラインの使用をすぐに開始できます。また、AI Platform Pipelines では、Cloud Storage バケットを作成して、パイプラインのチュートリアルを実行し、TFX パイプライン テンプレートの使用を開始することが容易になります。
ML パイプラインについて
ML パイプラインは、移植可能でスケーラブルなコンテナベースの ML ワークフローです。ML パイプラインは、一連の入力パラメータとタスクのリストで構成されます。各タスクはパイプライン コンポーネントのインスタンスです。
ML パイプラインを使用して、次のことができます。
- MLOps 戦略を適用して、繰り返し可能なプロセスを自動化する。
- ハイパーパラメータのさまざまなセット、多数のトレーニング ステップやイテレーションなどがある ML ワークフローを実行してテストを行う。
- パイプラインのワークフローを再利用して新しいモデルをトレーニングする。
パイプラインを構築するには、TensorFlow Extended パイプライン テンプレートまたは Kubeflow Pipelines SDK を使用できます。
- TFX パイプライン テンプレートからパイプラインを構築する方法については、チュートリアルをご覧ください。
- 詳しくは、Kubeflow パイプラインの構築をご覧ください。
パイプラインのコンポーネントについて
パイプライン コンポーネントは、パイプラインのワークフローで 1 つのステップ(データの前処理、データの変換、モデルのトレーニングなど)を実行する自己完結型のコードセットです。
コンポーネントは、一連の入力パラメータ、一連の出力、コンテナ イメージの場所で構成されます。コンポーネントのコンテナ イメージとは、コンポーネントの実行可能コードと、コードが実行される環境の定義が含まれるパッケージのことです。
パイプライン ワークフローについて
パイプラインの各タスクでは、パイプラインのワークフローのステップを実行します。タスクはパイプライン コンポーネントのインスタンスであるため、タスクには入力パラメータ、出力、コンテナ イメージが含まれます。タスク入力パラメータは、パイプラインの入力パラメータから設定することも、このパイプライン内の他のタスクの出力に応じて設定することもできます。Kubeflow Pipelines ではこれらの依存関係を使用して、パイプラインのワークフローを有向非巡回グラフとして定義します。
たとえば、次のタスクが含まれるパイプラインがあるとします。
- 前処理: このタスクではトレーニング データを準備します。
- トレーニング: このタスクでは、前処理されたトレーニング データを使用してモデルをトレーニングします。
- 予測: このタスクでは、トレーニング済みモデルを ML サービスとしてデプロイし、テスト データセットの予測を行います。
- 混同行列: このタスクでは、予測タスクの出力を使用して、混同行列を作成します。
- ROC: このタスクでは、予測タスクの出力を使用して、受信者操作特性(ROC)曲線を分析します。
ワークフロー グラフを作成するには、Kubeflow Pipelines SDK でタスクの依存関係を分析します。
- 前処理タスクは他のタスクに依存しないため、ワークフロー内の最初のタスクにすることも、他のタスクと同時に実行することもできます。
- トレーニング タスクは前処理タスクによって生成されたデータに依存するため、トレーニングは前処理の後に行う必要があります。
- 予測タスクはトレーニング タスクによって生成されたトレーニング済みモデルに依存するため、予測はトレーニングの後に行う必要があります。
- 混同行列の作成と ROC 分析はどちらも予測タスクの出力に依存するため、これらは予測が完了した後に行う必要があります。混同行列の構築と ROC 分析は予測タスクの出力に依存するため、これらは同時に行うことができます。
Kubeflow Pipelines システムでは、この分析に基づいて前処理タスク、トレーニング タスク、予測タスクを順次実行した後、混同行列タスクと ROC タスクを同時に実行します。
次のステップ
- AI Platform Pipelines のクイックスタート ガイドに沿って Kubeflow Pipelines をインストールし、最初の ML パイプラインを実行する。