arrow_back

TensorFlow、PyTorch、XGBoost、scikit-learn モデルを使用した KubeFlow および AI Platform パイプラインでの継続的なトレーニング

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

TensorFlow、PyTorch、XGBoost、scikit-learn モデルを使用した KubeFlow および AI Platform パイプラインでの継続的なトレーニング

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

概要

このラボでは、TensorFlow、PyTorch、XGBoost、scikit-learn の ML モデルをトレーニングするコンテナ化されたアプリケーションを作成します。次に、これらのイメージを KubeFlow パイプラインの op として使用し、複数のモデルを並行してトレーニングします。その後、UI で KubeFlow パイプラインの繰り返し実行を設定します。

目標

  • トレーニング スクリプトを作成する
  • トレーニング スクリプトを Docker イメージにパッケージ化する
  • トレーニング イメージをビルドして、Google Cloud Container Registry に push する
  • BigQuery にクエリを実行してトレーニング / 検証用のスプリットを作成し、その結果をシャーディングされた CSV ファイルとして GCS にエクスポートする Kubeflow パイプラインを構築する
  • エクスポートされた CSV データを入力として使用し、4 つのコンテナ化されたトレーニング アプリケーションで AI Platform のトレーニング ジョブを起動する

設定と要件

各ラボでは、新しい 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. Cloud Storage バケットを作成する

  • Cloud Shell で、次のコマンドを実行して Cloud Storage バケットを作成します。わかりやすくするために、このバケットを公開にします。
PROJECT_ID=`gcloud config list --format 'value(core.project)'` gsutil mb -p $PROJECT_ID gs://$PROJECT_ID gsutil acl ch -u AllUsers:R gs://$PROJECT_ID

完了したタスクをテストする - Cloud Storage バケットを作成する

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

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

  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
  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

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Build サービス アカウントに編集者権限を追加する

タスク 3. AI Platform パイプラインのインスタンスを作成する

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

  2. [AI Platform] から [パイプライン] に移動します。

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

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

  5. クラスタを作成するには、 として [ゾーン] を選択した後、[次の Cloud API へのアクセスを許可する] をオンにし、名前をそのままにして、[クラスタを新規作成] をクリックします。

注: クラスタの作成には 3~5 分かかります。次のステップに進む前に、このステップが完了するまで待つ必要があります。
  1. ページの一番下までスクロールして Marketplace の利用規約に同意し、[デプロイ] をクリックします。KubeFlow パイプラインの個々のサービスが GKE クラスタにデプロイされます。デプロイが完了するまで次のタスクに進まないでください。

  2. Cloud Shell で次のコマンドを実行して、kubectl コマンドライン アクセスを構成します。

gcloud container clusters get-credentials cluster-1 --zone {{{project_0.default_zone|place_holder_text}}} --project {{{project_0.project_id|place_holder_text}}}
  1. Cloud Shell で次のコマンドを実行して、KFP デプロイのエンドポイントを取得します。
kubectl describe configmap inverse-proxy-config | grep googleusercontent.com 重要: タスク 6 では、ノートブック内のセルの 1 つに KFP のエンドポイントを設定する必要があります。上記の出力をエンドポイントとして使用します。

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

タスク 4. Vertex AI Platform Notebooks のインスタンスを作成する

Vertex AI Platform Notebooks のインスタンスは、主要なテスト / 開発ワークベンチとして使用されます。

  1. Google Cloud コンソール のナビゲーション メニューで、[Vertex AI] > [ワークベンチ] をクリックします。

  2. まだ有効になっていない場合は、[Notebooks API を有効にする] をクリックします。

  3. ワークベンチのページで [新規作成] をクリックします。

  4. [新しいインスタンス] ダイアログで、リージョンとして [] を選択し、ゾーンとして [] を選択します。

  5. 次に、オペレーティング システムとして [Debian 10] を選択し、環境として [Python 3(with Intel MKL and CUDA 11.3)] を選択します。

  6. その他のフィールドはすべてデフォルトのままにして、[作成] をクリックします。

注: ノートブック インスタンスが表示されるまでに 5 分程度かかることがあります。注: インスタンスが利用可能な状態になるまで待ってから次の手順に進んでください。
  1. [JupyterLab を開く] をクリックします。JupyterLab ウィンドウが新しいタブで開きます。

  2. 「Build Recommended」というポップアップが表示されたら、[Build] をクリックします。ビルドがエラーになった場合は無視してかまいません。

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

タスク 5. 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. 次のコマンドを実行して、必要なパッケージをインストールします。

    pip install kfp==0.2.5 fire gcsfs requests-toolbelt==0.10.1

タスク 6. ラボのノートブックに移動する

  1. JupyterLab UI で、mlops-on-gcp/continuous_training/kubeflow/labs に移動し、multiple_frameworks_lab.ipynb を開きます。

  2. ノートブックのすべてのセルをクリア(ノートブックのツールバーの [クリア] ボタンを使用)したうえで、セルを 1 つずつ実行します。 なお、#TODO が付いているセルについては、セルの実行前にコードを書く必要があります。

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

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

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

完了したタスクをテストする - BigQuery データセットとテーブルを作成し、イメージをビルドしてプロジェクトの Container Registry に push します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery データセットとテーブルを作成し、イメージをビルドして、プロジェクトの Container Registry に push します

完了したタスクをテストする - KubeFlow パイプラインをデプロイする

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 KubeFlow パイプラインをデプロイする

完了したタスクをテストする - パイプライン実行を作成する

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 パイプライン実行を作成する

お疲れさまでした

このラボでは、トレーニング アプリケーションの開発、Docker イメージとしてのパッケージ化、AI Platform Training での実行に関する方法を学習しました。

ラボを終了する

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

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

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

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

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

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

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

始める前に

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

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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