メインコンテンツへスキップ
このチュートリアルでは、ML エンジニアが W&B から直接トレーニングのワークロードを送信して管理できるように、クラスター管理者向けに Kubernetes クラスター上で W&B Launch を設定する方法を説明します。W&B Launch を使用すると、ML ワークロードを Kubernetes クラスターに送信でき、ML エンジニアは W&B 上から、すでに Kubernetes で管理しているリソースを利用できます。 W&B は、W&B が提供する Helm chart を使ってクラスターにデプロイできる、公式の Launch agent image を提供しています。 W&B は Kaniko builder を使用して、Launch agent が Kubernetes クラスター内で Docker イメージをビルドできるようにしています。Launch agent 用に Kaniko を設定する方法や、ジョブのビルドを無効にしてビルド済みの Docker イメージのみを使用する方法について詳しくは、Advanced agent setup を参照してください。
Helm をインストールし、W&B Launch agent の Helm chart を適用またはアップグレードするには、Kubernetes リソースの作成、更新、削除に必要な十分な権限を持つ kubectl でクラスターにアクセスできる必要があります。通常は、cluster-admin または同等の権限を持つカスタムロールが割り当てられたユーザーが必要です。

Kubernetes向けのキューを設定する

Launchキューは、各ジョブの実行時にエージェントが使用するKubernetesワークロードspecを定義します。Kubernetesのターゲットリソースに対するLaunchのキュー設定は、Kubernetes job spec または Kubernetes custom resource spec のいずれかに似たものになります。 Launchキューの作成時には、Kubernetesワークロードリソースのspecのあらゆる要素を制御できます。
セキュリティ上の理由から、これらが指定されていない場合、W&Bは次のリソースをLaunchキューに追加します。
  • securityContext
  • backOffLimit
  • ttlSecondsAfterFinished
次のYAMLスニペットは、これらの値がLaunchキュー内でどのように表示されるかを示しています。
example-spec.yaml

キューを作成する

Kubernetes をコンピュートリソースとして使用するキューを W&B App で作成します。
  1. Launch ページにアクセスします。
  2. Create Queue ボタンをクリックします。
  3. キューを作成する Entity を選択します。
  4. Name フィールドにキューの名前を入力します。
  5. Resource として Kubernetes を選択します。
  6. Configuration フィールドに、Configure a queue for Kubernetes で設定した Kubernetes job workflow spec または custom resource spec を指定します。

Helm を使用して Launch agent を設定する

キューを用意したら、次にそのキューからジョブを取得してクラスター上で実行する Launch agent をデプロイします。W&B が提供する Helm chart を使用して、Launch agent を Kubernetes クラスターにデプロイします。Launch agent の動作は、values.yaml file で制御できます。 values.yaml file の launchConfig キーには、通常は Launch agent の設定ファイル (~/.config/wandb/launch-config.yaml) で定義する内容を指定します。 たとえば、Kaniko Docker image builder を使用して EKS 上で Launch agent を実行できるようにする Launch agent 設定があるとします。[QUEUE-NAME][MAX-CONCURRENT-JOBS][MY-REGISTRY-URI][S3-BUCKET-URI] をご自身の値に置き換えてください。
launch-config.yaml
values.yaml ファイルでは、次のようになります。[QUEUE-NAME]、[MAX-CONCURRENT-JOBS]、[AWS-REGION]、[MY-REGISTRY-URI]、および [S3-BUCKET-URI] は、ご自身の値に置き換えてください。
values.yaml
レジストリ、環境、必須のエージェント権限の詳細については、エージェントの高度な設定を参照してください。