Kubeflow 1.0 : パイプライン : クイックスタート (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/13/2020 (1.0)
* 本ページは、Kubeflow の以下のページを翻訳した上で適宜、補足説明したものです:
- Pipelines : Pipelines Quickstart
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
パイプライン : クイックスタート
Kubeflow パイプラインで単純なパイプラインを素早く実行させることを望むのであればこのガイドを利用してください。
- このクイックスタート・ガイドは、Kubeflow パイプライン・インストールに付随しそして Kubeflow パイプライン・ユーザインターフェイス (UI) で可視のサンプルの一つをどのように使用するかを示します。このガイドを Kubeflow パイプライン UI へのイントロダクションとして利用できます。
- end-to-end チュートリアルはどのようにパイプラインを準備してコンパイルし、それを Kubeflow パイプラインにアップロードしてからそれを実行するかを示します。
Kubeflow を配備してパイプライン UI をオープンする
Kubeflow を配備してパイプライン・ダッシュボードをオープンするにはこれらのステップに従います :
- deploying Kubeflow on GCP へのガイドに従います。
kubeflow/pipelines#1700 のため、Kubeflow パイプラインのコンテナ・ビルダーは Google Cloud Platform (GCP) のためだけにクレデンシャルを準備します。その結果、コンテナ・ビルダーは Google Container Registry だけをサポートします。けれども、イメージを得るために正しくクレデンシャルをセットアップしているとすれば、コンテナイメージを他のレジストリにストアできます。
- Kubeflow が実行されているとき、セットアップガイドで説明されているように、形式 https://<deployment-name>.endpoints.<project>.cloud.goog/ の URL で Kubeflow UI にアクセスしてください。Kubeflow UI はこのように見えます :
Kubeflow を配備するとき Cloud IAP オプションをスキップしたか、Kubeflow エンドポイントをまだセットアップしていない場合には、kubectl とポートフォワーディングを通して Kubeflow にアクセスできます :
- kabectl をインストールしてください、まだそれを行なっていないのであれば、コマンドラインで次のコマンドを実行することによって : gcloud components install kubectl. より多くの情報については、kubectl ドキュメント を見てください。
- “kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80” を実行して http://localhost:8080/ に進んでください。
- パイプライン UI にアクセスするには “Pipelines” をクリックしてください。パイプライン UI はこのように見えます :
基本的なパイプラインを実行する
パイプライン UI はパイプラインを素早く試すために使用できる 2, 3 のサンプルを提供します。下のステップは幾つかの Python 演算子を含み、しかし機械学習 (ML) ワークロードを含まない基本的なサンプルをどのように実行するかを示します :
- パイプライン UI 上、サンプル [Sample] Basic – Parallel Execution の名前をクリックします :
- Create experiment をクリックします :
- 実験 (= experiment) を作成してから 実行 (= run) を作成するためにプロンプトに従います。サンプルは必要な総てのパラメータのためのデフォルト値を供給します。次のスクリーンショットは貴方が既に “My experiment” という名前の実験を作成してそして今は “My first run” という名前の実行を作成していることを仮定しています :
- 実行を作成するために Start をクリックします。
- 実験ダッシュボード上の実行の名前をクリックします :
- グラフと他の UI 要素のコンポーネントをクリックすることにより貴方の実行のグラフと他の様相を調べる :
Kubeflow パイプライン repo で 基本的な並列 join サンプルのためのソースコード を見つけられます。
ML パイプラインを実行する
このセクションはパイプライン UI から利用可能な XGBoost サンプルをどのように実行するかを示します。上で説明された基本的なサンプルとは違い、XGBoost サンプルは ML コンポーネントを含みません。このサンプルを実行する前に、サンプルによる使用のために幾つかの GCP サービスをセットアップする必要があります。
必要な GCP サービスをセットアップしてサンプルを実行するためにこれらのステップに従います :
- Kubeflow のために必要な標準的な GCP API に加えて (GCP セットアップガイド 参照)、以下の API が有効であることを確実にしてください :
- パイプライン実行の結果を保持するために Cloud ストレージ・バケット を作成します。
- バケット名は総ての Cloud ストレージに渡り一意でなければなりません。
- このパイプラインのために新しい実行を作成するたびに、Kubeflow は出力バケット内に一意なディレクトリを作成しますので、各実行の出力は前の実行の出力を override することはありません。
- パイプライン UI 上、サンプル [Sample] ML – XGBoost – Training with Confusion Matrix の名前をクリックします :
- Create experiment をクリックします。
- 実験 を作成してから 実行 を作成するためにプロンプトに従います。以下の 実行パラメータ を供給します :
- output: パイプライン実行の結果を保持するために先に作成した Cloud ストレージ・バケット。
- project: 貴方の GCP プロジェクト ID.
サンプルは他のパラメータのための値を供給します :
- region: GCP 地理的リージョン、そこで訓練と評価データがストアされます。
- train-data: 訓練データへの Cloud ストレージ・パス。
- eval-data: 評価データへの Cloud ストレージ・パス。
- schema: 訓練と評価データを含む CSV フアイルの形式を記述する JSON ファイルへの Cloud ストレージ・パス。
- target: ターゲット変数のカラム名。
- rounds: XGBoost 訓練のためのラウンド数。
- workers: 分散訓練のために使用されるワーカー数。
- true-label: モデルにより出力されるラベルのテキスト表現のために使用されるカラム。
次の部分的なスクリーンショットは、供給しなければならない 2 つのパラメータを含む、実行パラメータを示します :
- 実行を作成するために Start をクリックします。
- 実験ダッシュボード上の実行の名前をクリックします。
- グラフと他の UI 要素のコンポーネント上をクリックすることによりグラフと他の実行の様相を調べます。次のスクリーンショットはパイプラインが実行を終了したときグラフを示します :
Kubeflow パイプライン repo で XGBoost 訓練サンプルのためのソースコードを見つけることができます。
GCP 環境をクリーンアップする
このガイドを通して作業するとき、貴方のプロジェクトは GCP の支払い請求可能な (= billable) コンポーネントを使用します。コストを最小化するために、リソースを (それらで終了したとき) クリーンアップするためにこれらのステップに従います :
- 配備と関連リソースを削除するために Deployment Manager を訪ねます。
- パイプラインの出力を調べ終わったとき Cloud Storage bucket を削除します。
以上