GCP:AI platform pipelinesで MLOpsを実践した

こんにちは、GMOアドマーケティングのS.Rです。 
前回は機械学習開発の標準戦略MLOpsを皆さんへ紹介しました。
今日はKubeflowを実践する為にGoogle Cloud のMLOps サービスAI platform pipelines で 簡単に手書き数字の分類システム(MNIST)を開発する例を紹介させていただきます。
※なお、この記事中の図示は、特に断りが無い限り筆者が作成したものです。

AI platform pipelinesとは

AI platform pipelinesはGoogle Cloudが提供している、機械学習開発の標準戦略MLOpsを自動化するクラウドサービスです。

AI platform pipelinesとKubeflow

AI platform pipelinesはKubeflowに基づいて開発されたクラウドサービスです。AI Platformを利用するとKubeflowの環境構築をする時間を短縮できます。 

AI platform pipelinesの環境構築

 Google Cloud プロジェクトを用意する

AI Platform pipelines の利用には Google Cloud プロジェクトの設定が必要です。もしGoogle Cloud プロジェクトを持っていなければこちらの公式サイト参考にして、アカウントを作成してください。

 GCPの権限を設定する

AI Platform Pipelinesの利用はプロジェクトの閲覧者(roles/viewer)と Kubernetes Engine 管理者(roles/container.admin)のロールか、プロジェクトのオーナー(roles/owner)のロールなどと同等の権限を含むロールが必要です。Cloud Shell で次のコマンドを実行して上記の権限を設定しましょう。 PROJECT_ID は、利用したいGoogle Cloud プロジェクトの ID に置き換えてください。

新しいAI Platform Pipelinesのインスタンスを立ち上げ

  1. AI Platform Pipelinesの管理画面へ遷移してください
  2. [NEW INSTANCE] をクリックして新しいclusterを立ち上げましょう。
  3. Cloud リソースへのアクセス権許可して[Create cluster] をクリックします
  4. clusterが作成されるまで待ってください。
  5. AI Platform Pipelinesをdeployする。
    [DEPLOY]をクリックしてください。
  6. OPEN PIPELINES DASHBOARD]を押してKubeflow PipelinesのDashboard UIへ飛ぶ
  7. Kubeflow PipelinesのDashboard UI
  

Kubeflow Pipelines SDKをインストール

こちらの公式サイトを参考にしてKubeflow Pipelines SDKをインストールしてください。

MNISTのKubeflow Pipelinesを定義するファイルを書く

今回のモデルは下記の4 のpipelineがあります。
  1.  データを前処理
  2. モデルを学習
  3. モデルの精度を計算
  4. モデルの精度を可視化
  4 のpipelineごとのyamlファイルの準備が必要です  
pipelineの役割 ファイル名
データを前処理 load_mnist_data.yaml
モデルを学習 train_model.yaml
モデルの精度を計算 evaluate_model.yaml
モデルの精度を可視化 confusion_matrix.yaml
pipelineを組み合わせるscript mnist_training.py
load_mnist_data.yamlを作成する train_model.yamlを作成する。 evaluate_model.yamlを作成する。 confusion_matrix.yamlを作成します。 mnist_training.pyを作成します。 4つのpipelineを組み合わせるためmnist_training.pyを書きましょう。 Kubeflow Pipelines SDK(Kubeflow Pipelines SDKのインストール方法こちら参考してください)でKubeflowのpackageを作成します。 インストール後、下記のコマンドを実行してmnist_training.zipを作成します。

MNISTのKubeflow Pipelinesをuploadする

Kubeflow PipelinesのDashboard UIで[Upload pipeline]をクリックしてください。  前に作成していたmnist_training.zipをuploadしましょう。  mnist_training.zipをupload した様子 

MNISTのKubeflow Pipelinesを実行する

それでは、右上の[Create run]をクリックして早速MNIST Kubeflow Pipelines を走ってみましょう。    defaultの設定のまま実行します。    3分ぐらい待って実行は完了できました。  最後のconfusion matrixpipelineを押すと今回のモデルのテストデータが確認できます。

終わりに

今回GCP:AI platform pipelinesで を構築する方法を紹介しました。もし今回のブログが皆さんのMLOpsの開発にお役に立てば幸いです。