Skip to main content
Kubeflow Pipelines (kfp) は、Dockerコンテナーをベースとした、移植性とスケーラビリティに優れた機械学習 (ML) ワークフローを構築・デプロイするためのプラットフォームです。 このガイドでは、パイプラインコンポーネントのパラメーターとアーティファクトが W&B で自動的にトラッキングされるように、W&B を Kubeflow Pipelines と統合する方法を説明します。このガイドを終える頃には、各コンポーネントの本体を変更することなく、kfp の Python 関数コンポーネントにデコレータを適用して、入力、出力、アーティファクトを W&B にログできるようになります。 この機能は wandb==0.12.11 で利用可能になり、kfp<2.0.0 が必要です。

登録してAPIキーを作成する

APIキーは、お使いのマシンをW&Bに対して認証するために使用します。APIキーはユーザープロフィールから発行できます。
より手早く行うには、User Settings にアクセスしてAPIキーを作成してください。APIキーはすぐにコピーし、パスワードマネージャーなどの安全な場所に保存してください。
  1. 右上にあるユーザープロフィールアイコンをクリックします。
  2. User Settings を選択し、API Keys セクションまでスクロールします。

wandb ライブラリをインストールしてログインする

wandb ライブラリをローカルにインストールしてログインするには、次の手順に従います。
  1. WANDB_API_KEY 環境変数 に APIキーを設定します。<> で囲まれた値はご自身の値に置き換えてください。
  2. wandb ライブラリをインストールし、ログインします。

コンポーネントをデコレートする

wandb ライブラリをインストールすると、個々のパイプラインコンポーネントで W&B のトラッキングを有効にできるようになります。@wandb_log デコレータを追加し、通常どおりコンポーネントを作成します。これにより、パイプラインを実行するたびに、入力/出力のパラメーターとアーティファクトが自動的に W&B にログされます。

コンテナーに環境変数を渡す

各パイプラインコンポーネントはそれぞれ独自のコンテナーで実行されるため、ローカルマシンで利用可能な W&B の認証情報はコンポーネントに自動的には渡されません。各コンポーネントが W&B に認証できるように、環境変数をコンテナーに明示的に渡す必要がある場合があります。双方向リンクを有効にするには、環境変数 WANDB_KUBEFLOW_URL に Kubeflow Pipelines インスタンスのベース URL も設定してください。たとえば、https://kubeflow.mysite.com です。

データにプログラムでアクセスする

パイプラインの runs が W&B にログされると、トラッキングされたデータをいくつかの方法で確認したり取得したりできます。以下のセクションでは、Kubeflow Pipelines UI、W&B Web アプリ、W&B Public API から runs にアクセスする方法を説明します。

Kubeflow Pipelines UI

W&B にログされている Kubeflow Pipelines UI 内の任意の Run をクリックし、次の操作を行います。
  • Input/Output タブと ML Metadata タブで、入力と出力の詳細を確認できます。
  • Visualizations タブから W&B Web アプリを表示できます。
Kubeflow UI の W&B

W&B Web アプリ UI

web app UI には、Kubeflow Pipelines の Visualizations タブと同じ内容が、より広い表示領域で表示されます。詳細については、W&B Web アプリ のドキュメントを参照してください。
run の詳細
パイプライン DAG

Public API

プログラムからアクセスするには、Public APIを参照してください。

Kubeflow Pipelines と W&B の概念対応

次の表は、Kubeflow Pipelines の概念と W&B の対応関係を示しています。

より細かなログ制御

@wandb_log デコレータは入力と出力を自動的に処理しますが、各エポックにわたるトレーニング メトリクスなどの中間値は取得しません。ログをより細かく制御したい場合は、コンポーネント内で wandb.log()wandb.log_artifact() を適宜呼び出せます。

wandb.log_artifact() を明示的に呼び出す

以下の例では、モデルをトレーニングします。@wandb_log デコレータは、関連する入力と出力を自動的にトラッキングします。トレーニングプロセスもログしたい場合は、次のようにそのログを明示的に追加できます。

暗黙的な wandb インテグレーションを使用する

サポート対象のフレームワーク インテグレーションを使用している場合は、コールバックを直接渡すこともできます。