前書き
このチュートリアルは、TensorFlow Extended(TFX)とCloud AI Platform Pipelinesを紹介し、GoogleCloudで独自の機械学習パイプラインを作成する方法を学ぶのに役立つように設計されています。 TFX、AIプラットフォームパイプライン、Kubeflowとの統合、およびJupyterノートブックでのTFXとの相互作用を示しています。
このチュートリアルの最後に、GoogleCloudでホストされるMLパイプラインを作成して実行します。各実行の結果を視覚化し、作成されたアーティファクトの系統を表示することができます。
データセットを調べることから始めて、完全に機能するパイプラインで終わる、典型的なML開発プロセスに従います。その過程で、パイプラインをデバッグおよび更新し、パフォーマンスを測定する方法を探ります。
シカゴのタクシーデータセット
シカゴ市がリリースしたタクシー旅行データセットを使用しています。
データセットの詳細については、GoogleBigQueryをご覧ください。 BigQueryUIで完全なデータセットを調べます。
モデルの目標-二項分類
顧客は20%以上または20%未満のチップを払いますか?
1. GoogleCloudプロジェクトを設定します
1.a GoogleCloudで環境をセットアップします
開始するには、GoogleCloudアカウントが必要です。すでにお持ちの場合は、スキップして[新しいプロジェクトの作成]に進んでください。
GoogleCloudの利用規約に同意する
あなたは無料トライアルアカウントで起動したい場合は、をクリックして無料でお試し(または無料で始めましょう)。
あなたの国を選択。
利用規約に同意します。
請求の詳細を入力します。
この時点では課金されません。他にGoogleCloudプロジェクトがない場合は、同時に実行される最大8つのコアを含むGoogle Cloud FreeTierの制限を超えることなくこのチュートリアルを完了することができます。
1.b新しいプロジェクトを作成します。
- メインのGoogleCloudダッシュボードから、 Google Cloud Platformヘッダーの横にあるプロジェクトドロップダウンをクリックし、[新しいプロジェクト]を選択します。
- プロジェクトに名前を付け、他のプロジェクトの詳細を入力します
- プロジェクトを作成したら、プロジェクトのドロップダウンからプロジェクトを選択します。
2.新しいKubernetesクラスターにAIプラットフォームパイプラインをセットアップしてデプロイします
AIプラットフォームパイプラインクラスターページに移動します。
メインナビゲーションメニューの下:≡> AIプラットフォーム>パイプライン
[ +新しいインスタンス]をクリックして、新しいクラスターを作成します。
Kubeflow Pipelinesの概要ページで、[構成]をクリックします。
Kubernetes Engine APIが有効になっている間、先に進むまでに数分待たなければならない場合があります。
[ Kubeflowパイプラインのデプロイ]ページ:
クラスターのゾーン(または「リージョン」)を選択します。
重要次のクラウドAPIへのアクセスを許可するというラベルの付いたチェックボックスをオンにします。 (これは、このクラスターがプロジェクトの他の部分にアクセスするために必要です。この手順を見逃した場合、後で修正するのは少し注意が必要です。)
[作成]をクリックし、クラスターが作成されるまで数分待ちます。
名前空間とインスタンス名を選択します(デフォルトを使用しても問題ありません)。 [管理対象ストレージを使用する]をオンにする必要はありません。
[デプロイ]をクリックし、パイプラインがデプロイされるまでしばらく待ちます。 Kubeflow Pipelinesをデプロイすると、利用規約に同意したことになります。
3. Cloud AI PlatformNotebookインスタンスをセットアップします。
AIプラットフォームノートブックページに移動します。
メインナビゲーションメニューの下:≡-> AIプラットフォーム->ノートブック
プロンプトが表示されたら、Compute EngineAPIを有効にします。
TensorFlow 2.1(またはそれ以降)がインストールされた新しいインスタンスを作成します。
新しいインスタンス-> TensorFlow 2.1-> GPUなし
無料利用枠の制限内にとどまるには、ここでデフォルト設定を受け入れないでください。このインスタンスで使用可能なvCPUの数を4から2に減らす必要があります。
- [新しいノートブックインスタンス]フォームの下部にある[カスタマイズ]を選択します。
1つまたは2つのvCPUを備えたマシン構成を選択します。
4.入門ノートブックを起動します
AIプラットフォームパイプラインクラスターページに移動します。
メインナビゲーションメニューの下:≡-> AIプラットフォーム->パイプライン
このチュートリアルで使用しているクラスターの行で、[パイプラインダッシュボードを開く]をクリックします。
[はじめに]ページで、[ TF2.1ノートブックを開く]をクリックします。
このチュートリアルで使用しているNotebookインスタンスを選択し、続行します。
5.ノートブックでの作業を続行します
インストール
はじめにノートブックは、 JupyterLabが実行されているVMにSkaffoldモジュールとともにTFXとKubeflowPipelines(KFP)をインストールすることから始まります。
次に、ユーザーのPythonバイナリディレクトリとskaffold
を含むディレクトリを含むようにPATH
を設定します。
次に、インストールされているTFXのバージョンを確認し、インポートを実行して、プロジェクトIDを設定および出力します。
GoogleCloudサービスに接続する
パイプライン構成にはプロジェクトIDが必要です。プロジェクトIDは、ノートブックを介して取得し、環境変数として設定できます。
# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)
次に、KFPクラスターエンドポイントを設定します。
これは、パイプラインダッシュボードのURLから見つけることができます。 Kubeflow Pipelineダッシュボードに移動し、URLを確認します。エンドポイントは、 https://
後、 googleusercontent.com
までのURL内のすべてgoogleusercontent.com
。
ENDPOINT='' # Enter YOUR ENDPOINT here.
次に、ノートブックはカスタムDockerイメージに一意の名前を設定します。
# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'
6.テンプレートをプロジェクトディレクトリにコピーします
次のノートブックセルを編集して、パイプラインの名前を設定します。このチュートリアルでは、 my_pipeline
を使用しmy_pipeline
。
PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)
次に、ノートブックはtfx
を使用してパイプラインテンプレートをコピーします。このチュートリアルでは、Chicago Taxiデータセットを使用してバイナリ分類を実行するため、テンプレートはモデルをtaxi
設定します。
!tfx template copy \
--pipeline-name={PIPELINE_NAME} \
--destination-path={PROJECT_DIR} \
--model=taxi
次に、ノートブックはCWDコンテキストをプロジェクトディレクトリに変更します。
%cd {PROJECT_DIR}
パイプラインファイルを参照する
Cloud AI Platform Notebookの左側に、ファイルブラウザが表示されます。パイプライン名( my_pipeline
)のディレクトリが必要です。それを開いてファイルを表示します。 (ノートブック環境から開いて編集することもできます。)
# You can also list the files from the shell
ls
上記のtfx template copy
コマンドは、パイプラインを構築するファイルの基本的な足場を作成しました。これらには、Pythonソースコード、サンプルデータ、Jupyterノートブックが含まれます。これらは、この特定の例を対象としています。独自のパイプラインの場合、これらはパイプラインに必要なサポートファイルになります。
Pythonファイルの簡単な説明は次のとおりです。
-
pipeline
-このディレクトリには、パイプラインの定義が含まれていますconfigs.py
—パイプラインランナーの共通定数を定義します- pipe.py —TFXコンポーネントと
pipeline.py
定義します
models
このディレクトリにはMLモデル定義が含まれています。-
features.py
features_test.py
—モデルの特徴を定義します preprocessing.py
/preprocessing_test.py
—tf::Transform
を使用して前処理ジョブを定義しますestimator
このディレクトリには、Estimatorベースのモデルが含まれています。-
constants.py
—モデルの定数を定義します model.py
/model_test.py
推定器を使用してDNNモデルを定義します
-
keras
このディレクトリには、Kerasベースのモデルが含まれています。-
constants.py
—モデルの定数を定義します model.py
/model_test.py
を使用してDNNモデルを定義します
-
-
beam_dag_runner.py
/kubeflow_dag_runner.py
—各オーケストレーションエンジンのランナーを定義します
7.Kubeflowで最初のTFXパイプラインを実行します
ノートブックは、 tfx run
コマンドを使用してパイプラインをtfx run
ます。
ストレージに接続する
パイプラインを実行すると、 ML-Metadataに保存する必要のあるアーティファクトが作成されます。アーティファクトとは、ファイルシステムまたはブロックストレージに保存する必要のあるファイルであるペイロードを指します。このチュートリアルでは、セットアップ中に自動的に作成されたバケットを使用して、GCSを使用してメタデータペイロードを保存します。その名前は<your-project-id>-kubeflowpipelines-default
。
パイプラインを作成する
ノートブックはサンプルデータをGCSバケットにアップロードして、後でパイプラインで使用できるようにします。
gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/data.csv
次に、ノートブックはtfx pipeline create
コマンドを使用してパイプラインを作成します。
!tfx pipeline create \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT} \
--build-target-image={CUSTOM_TFX_IMAGE}
パイプラインの作成中に、 Dockerfile
とbuild.yaml
が生成されてDockerイメージが構築されます。これらのファイルを他のソースファイルと一緒にソース管理システム(たとえば、git)に追加することを忘れないでください。
パイプラインを実行する
次に、ノートブックはtfx run create
コマンドを使用して、パイプラインの実行実行を開始します。この実行は、Kubeflowパイプラインダッシュボードの[実験]の下に一覧表示されます。
tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}
パイプラインは、Kubeflowパイプラインダッシュボードから表示できます。
8.データを検証します
データサイエンスまたはMLプロジェクトの最初のタスクは、データを理解してクリーンアップすることです。
- 各機能のデータ型を理解する
- 異常と欠落値を探します
- 各機能の分布を理解する
コンポーネント
- ExampleGenは、入力データセットを取り込んで分割します。
- StatisticsGenは、データセットの統計を計算します。
- SchemaGen SchemaGenは統計を調べ、データスキーマを作成します。
- ExampleValidatorは、データセット内の異常と欠落値を探します。
Jupyterラボファイルエディターの場合:
pipeline
pipeline.py
/pipeline.pyで、これらのコンポーネントをパイプラインに追加する行のコメントを解除します。
# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)
(テンプレートファイルがコピーされたとき、 ExampleGen
はすでに有効になっています。)
パイプラインを更新して再実行します
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
パイプラインを確認してください
Kubeflow Orchestratorの場合は、KFPダッシュボードにアクセスして、パイプライン実行のページでパイプライン出力を見つけます。左側の[実験]タブをクリックし、[実験]ページの[すべての実行]をクリックします。パイプラインの名前で実行を見つけることができるはずです。
より高度な例
ここに示されている例は、実際には開始することだけを目的としています。より高度な例については、 TensorFlow Data ValidationColabを参照してください。
TFDVを使用してデータセットを探索および検証する方法の詳細については、tensorflow.orgの例を参照してください。
9.機能エンジニアリング
フィーチャエンジニアリングを使用して、データの予測品質を向上させたり、次元を削減したりできます。
- 機能の交差
- 語彙
- 埋め込み
- PCA
- カテゴリエンコーディング
TFXを使用する利点の1つは、変換コードを1回記述するだけで、結果の変換がトレーニングと提供の間で一貫していることです。
コンポーネント
- Transformは、データセットに対して機能エンジニアリングを実行します。
Jupyterラボファイルエディターの場合:
ではpipeline
/ pipeline.py
、検索および追加行コメントを解除変換パイプラインにします。
# components.append(transform)
パイプラインを更新して再実行します
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
パイプライン出力を確認する
Kubeflow Orchestratorの場合は、KFPダッシュボードにアクセスして、パイプライン実行のページでパイプライン出力を見つけます。左側の[実験]タブをクリックし、[実験]ページの[すべての実行]をクリックします。パイプラインの名前で実行を見つけることができるはずです。
より高度な例
ここに示されている例は、実際には開始することだけを目的としています。より高度な例については、 TensorFlow TransformColabを参照してください。
10.トレーニング
きれいで変換されたデータを使用してTensorFlowモデルをトレーニングします。
- 前のステップからの変換を含めて、それらが一貫して適用されるようにします
- 結果を本番用にSavedModelとして保存します
- TensorBoardを使用してトレーニングプロセスを視覚化して調査する
- また、モデルのパフォーマンスを分析するためにEvalSavedModelを保存します
コンポーネント
- トレーナーはTensorFlowモデルをトレーニングします。
Jupyterラボファイルエディターの場合:
ではpipeline
/ pipeline.py
パイプラインにトレーナーを追加し、検索してコメントを解除:
# components.append(trainer)
パイプラインを更新して再実行します
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
パイプライン出力を確認する
Kubeflow Orchestratorの場合は、KFPダッシュボードにアクセスして、パイプライン実行のページでパイプライン出力を見つけます。左側の[実験]タブをクリックし、[実験]ページの[すべての実行]をクリックします。パイプラインの名前で実行を見つけることができるはずです。
より高度な例
ここに示されている例は、実際には開始することだけを目的としています。より高度な例については、 TensorBoardチュートリアルを参照してください。
11.モデルのパフォーマンスの分析
トップレベルの指標以上のものを理解する。
- ユーザーは、クエリに対してのみモデルのパフォーマンスを体験します
- データスライスのパフォーマンスの低下は、トップレベルの指標によって隠すことができます
- モデルの公平性は重要です
- 多くの場合、ユーザーまたはデータの主要なサブセットは非常に重要であり、小さい場合があります
- クリティカルだが異常な状態でのパフォーマンス
- インフルエンサーなどの主要なオーディエンスのパフォーマンス
- 現在生産中のモデルを交換する場合は、最初に新しいモデルの方が優れていることを確認してください
コンポーネント
- 評価者は、トレーニング結果の詳細な分析を実行します。
Jupyterラボファイルエディターの場合:
ではpipeline
/ pipeline.py
、見つけて、パイプラインへの評価者を追加する行のコメントを解除します。
components.append(evaluator)
パイプラインを更新して再実行します
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
パイプライン出力を確認する
Kubeflow Orchestratorの場合は、KFPダッシュボードにアクセスして、パイプライン実行のページでパイプライン出力を見つけます。左側の[実験]タブをクリックし、[実験]ページの[すべての実行]をクリックします。パイプラインの名前で実行を見つけることができるはずです。
12.モデルの提供
新しいモデルの準備ができたら、準備をします。
- プッシャーはSavedModelsをよく知られた場所にデプロイします
展開ターゲットは、よく知られた場所から新しいモデルを受け取ります
- TensorFlowサービング
- TensorFlow Lite
- TensorFlow JS
- TensorFlowハブ
コンポーネント
- プッシャーは、モデルをサービングインフラストラクチャにデプロイします。
Jupyterラボファイルエディターの場合:
ではpipeline
/ pipeline.py
、見つけて、パイプラインにプッシャーを追加する行のコメントを解除します。
# components.append(pusher)
パイプライン出力を確認する
Kubeflow Orchestratorの場合は、KFPダッシュボードにアクセスして、パイプライン実行のページでパイプライン出力を見つけます。左側の[実験]タブをクリックし、[実験]ページの[すべての実行]をクリックします。パイプラインの名前で実行を見つけることができるはずです。
利用可能な展開ターゲット
これでモデルのトレーニングと検証が完了し、モデルの生産準備が整いました。これで、次のようなTensorFlowデプロイターゲットのいずれかにモデルをデプロイできます。
- TensorFlow Serving 、サーバーまたはサーバーファームでモデルを提供し、RESTやgRPC推論リクエストを処理します。
- TensorFlow Lite 、AndroidまたはiOSのネイティブモバイルアプリケーション、またはRaspberry Pi、IoT、またはマイクロコントローラーアプリケーションにモデルを含めるため。
- TensorFlow.js 、WebブラウザまたはNode.JSアプリケーションでモデルを実行するため。
より高度な例
上記の例は、実際には開始することのみを目的としています。以下は、他のクラウドサービスとの統合の例です。
Kubeflowパイプラインのリソースに関する考慮事項
ワークロードの要件に応じて、KubeflowPipelinesデプロイメントのデフォルト構成がニーズを満たす場合と満たさない場合があります。 KubeflowDagRunnerConfig
呼び出しでpipeline_operator_funcs
を使用して、リソース構成をカスタマイズできます。
pipeline_operator_funcs
のリストであるOpFunc
生成されたすべての変換アイテム、 ContainerOp
からコンパイルされたKFPパイプライン仕様にインスタンスをKubeflowDagRunner
。
たとえば、メモリを構成するには、 set_memory_request
を使用して必要なメモリの量を宣言できます。これを行う一般的な方法は、 set_memory_request
ラッパーを作成し、それを使用してパイプラインOpFunc
のリストに追加することです。
def request_more_memory():
def _set_memory_spec(container_op):
container_op.set_memory_request('32G')
return _set_memory_spec
# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
pipeline_operator_funcs=pipeline_op_funcs,
...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)
同様のリソース構成機能は次のとおりです。
-
set_memory_limit
-
set_cpu_request
-
set_cpu_limit
-
set_gpu_limit
BigQueryExampleGen
試しください
BigQueryは、サーバーレスで、拡張性が高く、費用効果の高いクラウドデータウェアハウスです。 BigQueryは、TFXのトレーニング例のソースとして使用できます。このステップでは、 BigQueryExampleGen
をパイプラインに追加します。
Jupyterラボファイルエディターの場合:
ダブルクリックしてpipeline.py
を開きます。 CsvExampleGen
、 BigQueryExampleGen
インスタンスを作成する行のコメントを解除します。また、 create_pipeline
関数のquery
引数のコメントを解除する必要がありcreate_pipeline
。
BigQueryに使用するGCPプロジェクトを指定する必要があります。これは、パイプラインを作成するときにbeam_pipeline_args
--project
を設定することで行われます。
ダブルクリックしてconfigs.py
を開きconfigs.py
。 BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS
およびBIG_QUERY_QUERY
定義のコメントを解除します。このファイルのプロジェクトIDとリージョンの値をGCPプロジェクトの正しい値に置き換える必要があります。
ディレクトリを1レベル上に変更します。ファイルリストの上にあるディレクトリの名前をクリックします。ディレクトリの名前はパイプラインの名前であり、パイプライン名を変更しなかった場合はmy_pipeline
ます。
ダブルクリックしてkubeflow_dag_runner.py
を開きkubeflow_dag_runner.py
。 create_pipeline
関数の2つの引数query
とbeam_pipeline_args
コメントを解除しcreate_pipeline
。
これで、パイプラインはサンプルソースとしてBigQueryを使用する準備が整いました。以前と同じようにパイプラインを更新し、手順5と6で行ったように新しい実行実行を作成します。
パイプラインを更新して再実行します
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
Dataflowをお試しください
いくつかのTFXコンポーネントは、Apache Beamを使用してデータ並列パイプラインを実装します。これは、 Google CloudDataflowを使用してデータ処理ワークロードを分散できることを意味します。このステップでは、ApacheBeamのデータ処理バックエンドとしてDataflowを使用するようにKubeflowオーケストレーターを設定します。
# Select your project:
gcloud config set project YOUR_PROJECT_ID
# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow
# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API. See your account adminstrator.
# Enable the Dataflow service:
gcloud services enable dataflow.googleapis.com
pipeline
をダブルクリックしてディレクトリを変更し、ダブルクリックしてconfigs.py
を開きconfigs.py
。 GOOGLE_CLOUD_REGION
とDATAFLOW_BEAM_PIPELINE_ARGS
定義のコメントを解除します。
ディレクトリを1レベル上に変更します。ファイルリストの上にあるディレクトリの名前をクリックします。ディレクトリの名前はパイプラインの名前であり、変更しなかった場合はmy_pipeline
ます。
ダブルクリックしてkubeflow_dag_runner.py
を開きkubeflow_dag_runner.py
。 beam_pipeline_args
コメントを解除しbeam_pipeline_args
。 (また、ステップ7で追加した現在のbeam_pipeline_args
をbeam_pipeline_args
てください。)
パイプラインを更新して再実行します
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
Dataflowジョブは、 CloudConsoleのDataflowにあります。
KFPでクラウドAIプラットフォームのトレーニングと予測を試す
TFXは、トレーニングと予測のためのCloud AI Platformなど、いくつかのマネージドGCPサービスと相互運用します。 MLモデルをトレーニングするためのマネージドサービスであるCloudAI PlatformTrainingを使用するようにTrainer
コンポーネントを設定できます。さらに、モデルが構築されて提供される準備ができたら、モデルをCloud AI PlatformPredictionにプッシュして提供できます。このステップでは、Cloud AIPlatformサービスを使用するようにTrainer
およびPusher
コンポーネントを設定します。
ファイルを編集する前に、まずAI Platform Training&PredictionAPIを有効にする必要がある場合があります。
pipeline
をダブルクリックしてディレクトリを変更し、ダブルクリックしてconfigs.py
を開きconfigs.py
。 GOOGLE_CLOUD_REGION
、 GCP_AI_PLATFORM_TRAINING_ARGS
、およびGCP_AI_PLATFORM_SERVING_ARGS
の定義のコメントを解除します。我々が設定する必要がありますように、我々は、クラウドAIプラットフォームのトレーニングでモデルを訓練するために私たちのカスタム構築されたコンテナの画像を使用しますmasterConfig.imageUri
でGCP_AI_PLATFORM_TRAINING_ARGS
同じ値にCUSTOM_TFX_IMAGE
以上。
ディレクトリを1レベル上に変更し、ダブルクリックしてkubeflow_dag_runner.py
を開きkubeflow_dag_runner.py
。 ai_platform_training_args
とai_platform_serving_args
コメントを解除しai_platform_serving_args
。
パイプラインを更新して再実行します
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
トレーニングジョブはCloudAI PlatformJobsにあります。パイプラインが正常に完了した場合は、 CloudAIプラットフォームモデルでモデルを見つけることができます。
14.独自のデータを使用する
このチュートリアルでは、ChicagoTaxiデータセットを使用してモデルのパイプラインを作成しました。次に、独自のデータをパイプラインに入れてみてください。データは、Google Cloud Storage、BigQuery、CSVファイルなど、パイプラインがアクセスできる場所であればどこにでも保存できます。
データに対応するためにパイプライン定義を変更する必要があります。
データがファイルに保存されている場合
- 変更
DATA_PATH
でkubeflow_dag_runner.py
位置を示します。
データがBigQueryに保存されている場合
BIG_QUERY_QUERY
BIG_QUERY_QUERYをクエリステートメントに変更します。- 機能の追加
models
/features.py
。 -
models
preprocessing.py
を変更して、トレーニング用の入力データを変換します。 -
models
/keras
model.py
およびmodels
/keras
/constants.py
を変更して、MLモデルを記述します。
トレーナーの詳細
トレーニングパイプラインの詳細については、トレーナーコンポーネントガイドを参照してください。
清掃
このプロジェクトで使用されているすべてのGoogleCloudリソースをクリーンアップするには、チュートリアルで使用したGoogleCloud プロジェクトを削除します。
または、各コンソールにアクセスして、個々のリソースをクリーンアップすることもできます。- GoogleCloud Storage - Google Container Registry - Google Kubernetes Engine