1 - Are there best practices for using Launch effectively?

  1. 簡単な 設定 を可能にするために、 エージェント を開始する前に キュー を作成してください。これに失敗すると、 キュー が追加されるまで エージェント が機能しなくなるエラーが発生します。

  2. 個人 の ユーザー アカウント にリンクされていないことを確認して、 エージェント を開始するために W&B サービス アカウント を作成します。

  3. wandb.config を使用して ハイパーパラメーター を管理し、ジョブ の再実行中に 上書きできるようにします。argparse の使用に関する詳細については、この ガイドを参照してください。

2 - Can I specify a Dockerfile and let W&B build a Docker image for me?

この機能は、要件は安定しているものの、コードベースが頻繁に変更される プロジェクトに適しています。

Dockerfile を構成した後、W&B に次の 3 つの方法のいずれかで指定します。

  • Dockerfile.wandb を使用する
  • W&B CLI を使用する
  • W&B App を使用する

W&B run のエントリポイントと同じ ディレクトリーに Dockerfile.wandb ファイルを含めます。W&B は、組み込みの Dockerfile の代わりにこのファイルを利用します。

ジョブをキューに入れるには、wandb Launch コマンドで --dockerfile フラグを使用します。

wandb launch --dockerfile path/to/Dockerfile

W&B App でジョブをキューに追加するときに、オーバーライド セクションで Dockerfile のパスを指定します。キーと 値 のペアとして、"dockerfile" を キー として、Dockerfile へのパスを 値 として入力します。

次の JSON は、ローカル ディレクトリーに Dockerfile を含める方法を示しています。

{
  "args": [],
  "run_config": {
    "lr": 0,
    "batch_size": 0,
    "epochs": 0
  },
  "entrypoint": [],
  "dockerfile": "./Dockerfile"
}

3 - Can Launch automatically provision (and spin down) compute resources for me in the target environment?

このプロセス は 環境 に依存します。Amazon SageMaker と Vertex でプロビジョニングされたリソース。Kubernetes では、オートスケーラーが需要に応じてリソースを自動的に調整します。W&B のソリューションアーキテクトは、再試行、オートスケーリング、スポットインスタンスノードプールの使用を可能にするために、Kubernetes の インフラストラクチャー の構成を支援します。サポートが必要な場合は、support@wandb.com にお問い合わせいただくか、共有の Slack チャンネル をご利用ください。

4 - Can you specify secrets for jobs/automations? For instance, an API key which you do not wish to be directly visible to users?

はい。以下の手順に従ってください。

  1. 次のコマンドを使用して、 run 用の指定された名前空間に Kubernetes シークレットを作成します。 kubectl create secret -n <namespace> generic <secret_name> <secret_value>

  2. シークレットを作成したら、 run 開始時にシークレットを注入するようにキューを設定します。クラスター管理者のみがシークレットを表示でき、エンド ユーザー は表示できません。

5 - Does Launch support parallelization? How can I limit the resources consumed by a job?

Launch は、複数の GPU とノードにまたがるジョブのスケーリングをサポートしています。詳細については、こちらのガイドを参照してください。

各 Launch エージェント は、実行できる同時ジョブの最大数を決定する max_jobs パラメータ で設定されています。複数の エージェント は、適切な起動 インフラストラクチャ に接続している限り、単一のキューを指すことができます。

リソース設定では、CPU、GPU、メモリ、およびその他のリソースの制限を、キューまたはジョブ run レベルで設定できます。Kubernetes でリソース制限付きのキューを設定する方法については、こちらのガイドを参照してください。

Sweeps の場合、同時 run の数を制限するには、次のブロックをキュー設定に含めます。

  scheduler:
    num_workers: 4

6 - How can admins restrict which users have modify access?

キュー設定テンプレート を使用して、チーム管理者ではない ユーザー が特定のキューフィールドへの アクセス を制御できます。チーム管理者は、管理者以外の ユーザー が表示できるフィールドを定義し、編集制限を設定します。チーム管理者のみが、キューを作成または編集する権限を持ちます。

7 - How do I control who can push to a queue?

キューは、特定のユーザー の Teams に固有のものです。キューの作成時に、所有 Entity を定義します。アクセスを制限するには、Teams のメンバーシップを変更します。

8 - How do I fix a "permission denied" error in Launch?

Launch Error: Permission denied というエラーメッセージが表示された場合、これは目的の プロジェクト にログを記録するための権限が不十分であることを示しています。考えられる原因は次のとおりです。

  1. このマシンにログインしていません。 コマンドライン でwandb login を実行してください。
  2. 指定された Entity が存在しません。 Entity は、 ユーザー 名または既存の Team 名である必要があります。必要に応じて、Subscriptions page で Team を作成してください。
  3. プロジェクト の権限がありません。 プロジェクト の作成者にプライバシー設定を Open に変更して、 run を プロジェクト に記録できるように依頼してください。

9 - How do I make W&B Launch work with Tensorflow on GPU?

GPU を使用する TensorFlow ジョブの場合、コンテナを構築するためのカスタムベースイメージを指定します。これにより、run 中の適切な GPU 使用率が保証されます。リソース設定の builder.accelerator.base_image キーの下にイメージタグを追加します。以下に例を示します。

{
    "gpus": "all",
    "builder": {
        "accelerator": {
            "base_image": "tensorflow/tensorflow:latest-gpu"
        }
    }
}

W&B 0.15.6 より前のバージョンでは、base_image の親キーとして accelerator の代わりに cuda を使用します。

10 - How does W&B Launch build images?

イメージを構築する手順は、ジョブのソースと、リソース設定で指定されたアクセラレータのベースイメージによって異なります。

構築プロセスには、ジョブタイプと指定されたアクセラレータのベースイメージに基づいて、次のアクションが含まれます。

| | aptを使用してPythonをインストール | Pythonパッケージをインストール | ユーザーとワークディレクトリを作成 | コードをイメージにコピー | エントリーポイントを設定 | |

11 - I do not like clicking- can I use Launch without going through the UI?

はい。標準の wandb CLI には、ジョブを ローンチ するための launch サブ コマンド が含まれています。詳細については、以下を実行してください。

wandb launch --help

12 - I do not want W&B to build a container for me, can I still use Launch?

事前に構築されたDockerイメージをローンチするには、次のコマンドを実行します。< >内のプレースホルダーを、お客様固有の情報に置き換えてください。

wandb launch -d <docker-image-uri> -q <queue-name> -E <entrypoint>

このコマンドは、ジョブを作成し、runを開始します。

イメージからジョブを作成するには、次のコマンドを使用します。

wandb job create image <image-name> -p <project> -e <entity>

13 - Is `wandb launch -d` or `wandb job create image` uploading a whole docker artifact and not pulling from a registry?

いいえ、wandb Launch -d コマンドはイメージをレジストリにアップロードしません。イメージは別途レジストリにアップロードしてください。以下の手順に従ってください。

  1. イメージを構築します。
  2. イメージをレジストリにプッシュします。

ワークフローは次のとおりです。

docker build -t <repo-url>:<tag> .
docker push <repo-url>:<tag>
wandb launch -d <repo-url>:<tag>

次に、Launch エージェントが、指定されたコンテナを指すジョブを起動します。コンテナレジストリからイメージをプルするためのエージェントのアクセスを設定する例については、高度なエージェントの設定を参照してください。

Kubernetes の場合、Kubernetes クラスターの Pod がイメージのプッシュ先のレジストリにアクセスできることを確認してください。

14 - What permissions does the agent require in Kubernetes?

以下の Kubernetes マニフェストは、wandb 名前空間に wandb-launch-agent という名前のロールを作成します。このロールにより、エージェントは wandb 名前空間に Pod、configmap、secret を作成し、Pod の ログ に アクセス できるようになります。wandb-cluster-role を使用すると、エージェントは Pod の作成、Pod の ログ への アクセス 、secret、ジョブの作成、および指定された名前空間全体のジョブステータスの確認を行うことができます。

15 - What requirements does the accelerator base image have?

アクセラレーターを利用するジョブの場合、必要なアクセラレーターコンポーネントを含むベースイメージを指定してください。アクセラレーターイメージには、以下の要件を満たすようにしてください。

  • Debian との互換性 ( Launch の Dockerfile は、apt-get を使用して Python をインストールします)
  • サポートされている CPU および GPU ハードウェア命令セット (目的の GPU との CUDA バージョンの互換性を確認してください)
  • 提供されるアクセラレーターバージョンと機械学習アルゴリズムのパッケージとの互換性
  • ハードウェア互換性のため追加の手順が必要なパッケージのインストール

16 - When multiple jobs in a Docker queue download the same artifact, is any caching used, or is it re-downloaded every run?

キャッシュは存在しません。各 Launch ジョブは独立して動作します。キューまたは エージェント を設定して、キューの設定で Docker の 引数 を使用して共有キャッシュをマウントします。

さらに、特定の ユースケース では、W&B Artifacts キャッシュを永続ボリュームとしてマウントします。