arrow_back

TFX 標準コンポーネントのチュートリアル

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

TFX 標準コンポーネントのチュートリアル

ラボ 2時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

概要

このラボでは、Covertype Data Set と TFX を使用してデータセットの分析、把握、前処理を行い、地図作成データから森林被覆の種類を予測するマルチクラス分類モデルのトレーニング、分析、検証、デプロイを行います。

目標

  • TFX パイプライン コンポーネントの概要を理解する
  • TFX Interactive Context を使用して TFX パイプラインのプロトタイプを開発する方法を理解する
  • Tensorflow Data Validation(TFDV)ライブラリを使用して入力データを確認、分析する。
  • Tensorflow Transform(TFT)ライブラリを使用してスケーラブルなデータの前処理と特徴量変換を行う
  • Tensorflow Model Analysis(TFMA)ライブラリを使用してモデルを評価する

設定

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールが組み込まれた仮想マシンです。5 GB の永続ホーム ディレクトリを提供し、Google Cloud 上で実行されます。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。gcloud は Google Cloud のコマンドライン ツールで、Cloud Shell にプリインストールされており、Tab キーによる入力補完がサポートされています。

  1. Google Cloud Console のナビゲーション パネルで、「Cloud Shell をアクティブにする」アイコン(Cloud Shell アイコン)をクリックします。

  2. [次へ] をクリックします。
    環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続の際に認証も行われ、プロジェクトは現在のプロジェクト ID に設定されます。次に例を示します。

Cloud Shell ターミナル

サンプル コマンド

  • 有効なアカウント名前を一覧表示する:

gcloud auth list

(出力)

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

(出力例)

Credentialed accounts: - google1623327_student@qwiklabs.net
  • プロジェクト ID を一覧表示する:

gcloud config list project

(出力)

[core] project = <プロジェクト ID>

(出力例)

[core] project = qwiklabs-gcp-44776a13dea667a6

タスク 1. クラウド サービスを有効にする

  1. Cloud Shell で次のコマンドを実行して、Google Cloud プロジェクトにプロジェクト ID を設定します。
PROJECT_ID={{{project_0.project_id|Project ID}}} gcloud config set project $PROJECT_ID
  1. 次に、以下のコマンドを実行して必要なクラウド サービスを有効にします。
gcloud services enable \ cloudbuild.googleapis.com \ container.googleapis.com \ cloudresourcemanager.googleapis.com \ iam.googleapis.com \ containerregistry.googleapis.com \ containeranalysis.googleapis.com \ ml.googleapis.com \ dataflow.googleapis.com \ notebooks.googleapis.com
  1. 次に、Cloud Build サービス アカウントの編集者権限を追加します。
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") CLOUD_BUILD_SERVICE_ACCOUNT="${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$CLOUD_BUILD_SERVICE_ACCOUNT \ --role roles/editor
  1. ここではカスタム サービス アカウントを作成して CAIP トレーニング ジョブに AI Platform Vizier サービスへのアクセス権を付与し、パイプラインのハイパーパラメータをチューニングできるようにします。
SERVICE_ACCOUNT_ID=tfx-tuner-caip-service-account gcloud iam service-accounts create $SERVICE_ACCOUNT_ID \ --description="CAIP トレーニング ジョブが AI Platform Vizier サービスにアクセスしてパイプラインのハイパーパラメータ チューニングを行うためのカスタム サービス アカウント)"\ --display-name="TFX Tuner CAIP Vizier"
  1. パイプラインのハイパーパラメータをチューニングするために、AI Platform のサービス アカウントに AI Platform Vizier サービスへのアクセス権を追加で付与します。
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") CAIP_SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@cloud-ml.google.com.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$CAIP_SERVICE_ACCOUNT \ --role=roles/storage.objectAdmin gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$CAIP_SERVICE_ACCOUNT \ --role=roles/ml.admin
  1. サービス アカウントにストレージ管理者ロールへのアクセス権を付与します。
SERVICE_ACCOUNT_ID=tfx-tuner-caip-service-account gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com \ --role=roles/storage.objectAdmin
  1. サービス アカウントに AI Platform Vizier ロールへのアクセス権を付与します。
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com \ --role=roles/ml.admin
  1. プロジェクトの AI Platform の Google が管理するサービス アカウントに、AI Platform サービス アカウントのサービス アカウント管理者ロールを付与します。
gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:service-${PROJECT_NUMBER}@cloud-ml.google.com.iam.gserviceaccount.com \ ${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 クラウド サービスを有効にする

タスク 2. AI Platform Pipelines のインスタンスを作成する

  1. ナビゲーション メニューで、下にスクロールして [AI Platform] を見つけます。以降の作業でアクセスしやすくするために、ピンのアイコンをクリックして固定します。

展開されたナビゲーション メニューに固定された [AI Platform] オプションと、[AI Platform] サブメニューが表示されている

  1. [パイプライン] をクリックします。

[AI Platform] サブメニューでハイライト表示された [パイプライン] オプション

  1. [新しいインスタンス] をクリックします。

[AI Platform Pipelins] ページに [新しいインスタンス] ボタンがハイライト表示されている

  1. [構成] をクリックします。

[Kubeflow Pipelines] ダイアログ ボックスでハイライト表示された [構成] ボタン

  1. [Kubeflow パイプライン] ページで、[次の Cloud API へのアクセスを許可する] をオンにし、名前をそのままにして、[クラスタを新規作成] をクリックします。

完了までに 2~3 分かかります。クラスタの作成が完了するまで次のステップに進まないでください。開いている最初のタブで、Cloud Console の GKE セクションに移動してクラスタの作成状況を確認したり、Cloud Console の GCE セクションに移動して個々の VM の起動状況を確認したりすることもできます。

  1. クラスタの作成が完了したら、[利用規約] をチェックして、その他の設定は変更せずに [デプロイ] をクリックします。KFP の個々のサービスが GKE クラスタにデプロイされます。

インストールが実行されている間に次の手順に進みます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 AI Platform Pipelines のインスタンスを作成する

タスク 3. Cloud AI Platform Notebooks のインスタンスを作成する

  1. Cloud Shell で次のコマンドを実行して、ユーザー管理のノートブックを作成します。
gcloud notebooks instances create tfx-on-googlecloud --vm-image-project=deeplearning-platform-release --vm-image-family=tf2-2-3-cpu --machine-type=e2-medium --location={{{project_0.default_zone|zone_to_be_set}}}
  1. ナビゲーション メニューのアイコンをクリックします。[Vertex AI] に移動し、[ワークベンチ] に移動します。

  2. [USER-MANAGED NOTEBOOKS] をクリックします。

    ノートブックが作成されるまでに 2~3 分かかります。

  3. 自分のノートブック名の横にある [JupyterLab を開く] をクリックします。JupyterLab ウィンドウが新しいタブで開きます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud AI Platform Notebooks のインスタンスを作成する

タスク 4. AI Platform Notebooks インスタンス内でサンプル リポジトリのクローンを作成する

mlops-on-gcp ノートブックのクローンを JupyterLab インスタンス内に作成するには、次の手順を行います。

  1. JupyterLab で、[Terminal] アイコンをクリックして新しいターミナルを開きます。

  2. コマンドライン プロンプトで、次のコマンドを入力して Enter キーを押します。

    git clone https://github.com/GoogleCloudPlatform/mlops-on-gcp 注: クローンが作成されたリポジトリが JupyterLab UI に表示されない場合、上部に並んだメニューの [Git] > [Clone a repository] から、UI を使ってリポジトリ(https://github.com/GoogleCloudPlatform/mlops-on-gcp)のクローンを作成できます。

    クローンの作成ダイアログ

  3. リポジトリのクローンが作成されたことを確認するには、mlops-on-gcp ディレクトリをダブルクリックし、リポジトリのコンテンツが表示されることを確認します。このディレクトリには、本コースのすべての Jupyter ノートブック ラボで使用するファイルが含まれています。

サンプル ノートブックに移動する

  1. JupyterLab でターミナルを開き、次のコマンドを実行します。
cd mlops-on-gcp/workshops/tfx-caip-tf23 ./install.sh 注: pip の非互換性に関する警告と 404 クライアント エラーは無視してください。
  1. 次に AI Platform Notebooks で mlops-on-gcp/workshops/tfx-caip-tf23/lab-01-tfx-walkthrough/labs に移動し、lab-01.ipynb を開きます。

  2. ノートブックのすべてのセルを消去([編集] > [出力をすべて消去] をクリック)し、セルを 1 つずつ実行します。

  3. メッセージが表示されたら、以下の手順に沿って進行状況を確認します。

さらに情報が必要な場合は、mlops-on-gcp/workshops/tfx-caip-tf23/lab-01-tfx-walkthrough/solutions に移動して lab-01.ipynb を開くことで、ソリューションの全体を見ることもできます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 AI Platform Notebooks インスタンス内でサンプル リポジトリのクローンを作成する

タスク 5. クラウドでトレーニング ジョブを実行する

完了したタスクをテストする - CsvExampleGen を構成して実行する

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 CsvExampleGen を構成して実行する

完了したタスクをテストする - トレーニング コンポーネントを作成して実行する

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 トレーニング コンポーネントを作成して実行する

お疲れさまでした

これで、TFX パイプライン コンポーネントの紹介チュートリアルは終了です。このラボでは、TFX を使用してデータセットの分析、把握、前処理を行い、地図作成データから森林被覆の種類を予測するマルチクラス分類モデルのトレーニング、分析、検証、デプロイを行いました。

ラボを終了する

ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバック、ご提案、修正が必要な箇所については、[サポート] タブからお知らせください。

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

このコンテンツは現在ご利用いただけません

We will notify you via email when it becomes available

ありがとうございます。

We will contact you via email if it becomes available