arrow_back

Vertex Pipelines の概要

ログイン 参加
700 以上のラボとコースにアクセス

Vertex Pipelines の概要

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 上級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、Vertex Pipelines を使った ML パイプラインの作成方法と実行方法について学びます。

目標

  • Workbench インスタンス ノートブックを作成する
  • Kubeflow Pipelines SDK を使用してスケーラブルな ML パイプラインを構築する
  • 入力としてテキストを受け取る簡単なパイプラインを 3 つのステップで作成して実行する

Vertex AI には、Workbench と Colab Enterprise の 2 つのノートブック ソリューションがあります。

Workbench

Vertex AI Workbench は、制御性とカスタマイズ性が重視されるプロジェクトに適した選択肢です。依存関係が複雑な、複数のファイルにわたる複雑なプロジェクトに特に適しています。また、ワークステーションやノートパソコンからクラウドへの移行を行っているデータ サイエンティストにも適した選択肢です。

Vertex AI Workbench のインスタンスには、ディープ ラーニング パッケージのスイート(TensorFlow と PyTorch のフレームワークへの対応を含む)がプリインストールされています。

設定と要件

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

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

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

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

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

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

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

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

Cloud Shell を起動する

このラボでは、Cloud Shell セッションで作業します。Cloud Shell は、Google のクラウド内で実行されている仮想マシンによってホストされたコマンド インタープリタです。このセクションは、パソコンでもローカルで簡単に実行できますが、Cloud Shell を使用することで、誰もが一貫した環境での再現可能な操作性を利用できるようになります。本ラボの後、このセクションをパソコン上で再度実行してみてください。

承認を必要とするリクエストを Cloud Shell で初めて行うと、「Cloud Shell の承認」というダイアログが表示されます。その場合は [承認] ボタンをクリックしてください。

Cloud Shell をアクティブにする

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

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

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

サンプル コマンド

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

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

Cloud Shell には、現在の Cloud プロジェクトの名前が格納されている GOOGLE_CLOUD_PROJECT など、いくつかの環境変数があります。本ラボではさまざまな場所でこれを使用します。次を実行すると確認できます。

echo $GOOGLE_CLOUD_PROJECT

API を有効にする

  • これらのサービスがどんな場面で(なぜ)必要になるのかは、後の手順でわかります。とりあえず、次のコマンドを実行して Compute Engine、Container Registry、Vertex AI の各サービスへのアクセス権を取得します。
gcloud services enable compute.googleapis.com \ containerregistry.googleapis.com \ aiplatform.googleapis.com \ cloudbuild.googleapis.com \ cloudfunctions.googleapis.com

成功すると次のようなメッセージが表示されます。

Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.

Vertex AI の概要

このラボでは、Google Cloud 全体の ML サービスを統合してシームレスな開発エクスペリエンスを提供する Vertex AI を使用します。以前は、AutoML でトレーニングしたモデルやカスタムモデルには、個別のサービスを介してアクセスする必要がありました。Vertex AI は、これらの個別のサービスを他の新しいプロダクトとともに 1 つの API へと結合します。既存のプロジェクトを Vertex AI に移行することもできます。

Vertex AI には、モデルのトレーニングとデプロイ サービスに加え、このラボで取り上げる Vertex Pipelines、Model Monitoring、Feature Store など、さまざまな MLOps プロダクトが含まれています。以下の図ですべての Vertex AI プロダクトを確認できます。

ML パイプラインはなぜ有用か?

本題に入る前に、なぜパイプラインを使用するのかについて理解しておきましょう。データの処理、モデルのトレーニング、ハイパーパラメータのチューニング、評価、モデルのデプロイを含む ML ワークフローを構築しているとします。これらのステップにはそれぞれ異なる依存関係があり、ワークフロー全体をモノリスとして扱うと、扱いづらくなる場合があります。

ML プロセスをスケールする際は、チームの他のメンバーがワークフローを実行し、またコーディングに参加できるように、ML ワークフローを共有したいところですが、信頼性と再現性のあるプロセスがなければ困難です。パイプラインでは、ML プロセスの各ステップがそれぞれのコンテナとなります。これにより、ステップを独立して開発し、各ステップからの入力と出力を再現可能な方法で追跡できます。また、新しいトレーニング データが利用可能になったらパイプラインの実行を開始するなど、クラウド環境内の他のイベントに基づいてパイプラインの実行をスケジュールまたはトリガーすることもできます。

タスク 1. Cloud Storage バケットを作成する

Vertex AI でトレーニング ジョブを実行するには、保存対象のモデルアセットを格納するストレージ バケットが必要です。これはリージョンのバケットである必要があります。ここでは リージョンを使用しますが、別のリージョンを使用することもできます(その場合はラボ内の該当箇所をすべて置き換えてください)。

すでにバケットがある場合は、この手順を省略できます。

  1. Cloud Shell で次のコマンドを実行して、バケットを作成します。
BUCKET_NAME=gs://$GOOGLE_CLOUD_PROJECT-bucket gcloud storage buckets create $BUCKET_NAME --location {{{project_0.default_region | Region}}}

次に、このバケットへのアクセス権をコンピューティング サービス アカウントに付与します。こうすることで、Vertex Pipelines にこのバケットへのファイルの書き込みに必要な IAM ロールを付与できます。

  1. 次のコマンドを実行して、この IAM ロールを追加します。
gcloud projects describe $GOOGLE_CLOUD_PROJECT > project-info.txt PROJECT_NUM=$(cat project-info.txt | sed -nre 's:.*projectNumber\: (.*):\1:p') SVC_ACCOUNT="${PROJECT_NUM//\'/}-compute@developer.gserviceaccount.com" gcloud projects add-iam-policy-binding $GOOGLE_CLOUD_PROJECT --member serviceAccount:$SVC_ACCOUNT --role roles/storage.objectAdmin

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage バケットを作成する

タスク 2. Vertex AI Workbench のインスタンスを起動する

  1. Google Cloud コンソールのナビゲーション メニュー)で [Vertex AI] を選択します。

  2. [すべての推奨 API を有効化] をクリックします。

  3. ナビゲーション メニューで [ワークベンチ] をクリックします。

    [ワークベンチ] ページの上部で、[インスタンス] ビューになっていることを確認します。

  4. [新規作成] をクリックします。

  5. インスタンスの構成:

    • 名前: lab-workbench
    • リージョン: リージョンを に設定します
    • ゾーン: ゾーンを に設定します
    • 詳細オプション(任意): 必要に応じて [詳細オプション] をクリックして、より詳細なカスタマイズを行います(マシンタイプ、ディスクサイズなど)。

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

インスタンスが作成されるまで数分かかります。作成が完了するとインスタンスの名前の横に緑色のチェックマークが付きます。

  1. インスタンス名の横に表示されている [JupyterLab を開く] をクリックして、JupyterLab インターフェースを起動します。ブラウザで新しいタブが開きます。

  1. [Python 3] アイコンをクリックして、新規の Python ノートブックを起動します。

  1. メニューバーでファイル Untitled.ipynb を右クリックし、[ノートブック名を変更] を選択して、わかりやすい名前を付けます。

これで環境が設定されました。これで Vertex AI Workbench ノートブックを使い始める準備ができました。

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

タスク 3. JupyterLab インターフェース内でコース リポジトリのクローンを作成する

GitHub リポジトリには、コースのラボファイルとソリューション ファイルの両方が含まれています。

  1. ノートブックの最初のセルに次のコードをコピーして実行し、training-data-analyst リポジトリのクローンを作成します。
!git clone https://github.com/GoogleCloudPlatform/training-data-analyst

  1. リポジトリのクローンが作成されたことを確認します。training-data-analyst ディレクトリをダブルクリックし、リポジトリのコンテンツが表示されることを確認します。

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

タスク 4. Vertex Pipelines の概要

  1. ノートブック インターフェースで、[training-data-analyst] > [courses] > [machine_learning] > [deepdive2] > [machine_learning_in_the_enterprise] > [labs] に移動して、intro_to_vertex_pipelines.ipynb を開きます。

  1. [Select Kernel] で [Python 3 (ipykernel) (Local)] を選択します。

  2. ノートブック インターフェースで、[編集] > [出力をすべて消去] をクリックします。

  3. ノートブックの手順をよく読み、コードを入力する必要がある場所である「#TODO」のマークが付いた行に入力します。各セルを実行し、出力を観察します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Vertex Pipelines の概要

ラボを終了する

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

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

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

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

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

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

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

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

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

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。