これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.
Launch FAQ
- 1: `wandb launch -d` または `wandb job create image` が、レジストリからプルせずに全体のDockerアーティファクトをアップロードしていますか?
- 2: Dockerキュー内の複数のジョブが同じアーティファクトをダウンロードする場合、キャッシュは使用されますか、それとも毎回のrunで再ダウンロードされますか?
- 3: Kubernetes でエージェントにはどのような権限が必要ですか?
- 4: Launch で "permission denied" エラーを修正するにはどうすればよいですか?
- 5: W&B Launch はどのようにしてイメージを作成しますか?
- 6: W&B Launch を GPU 上での Tensorflow と連携させるにはどうすればよいですか?
- 7: W&B に Dockerfile を指定して、Docker イメージを作成してもらうことはできますか?
- 8: アクセラレータベースイメージにはどのような要件がありますか?
- 9: ターゲット環境で Launch は計算リソースを自動でプロビジョニング (そしてスピンダウン) できますか?
- 10: ローンチは並列化をサポートしていますか?ジョブによって消費されるリソースを制限する方法はありますか?
- 11: ローンチを効果的に使用するためのベストプラクティスはありますか?
- 12: キューにプッシュできる人をどのように制御しますか?
- 13: クリックするのが嫌いです - UI を通さずに Launch を使用できますか?
- 14: ジョブやオートメーションのためのシークレットを指定することはできますか?例えば、ユーザーに直接見せたくないAPIキーのようなものですか?
- 15: 管理者はどのユーザーが修正アクセスを持つかをどのように制限できますか?
- 16: 私が W&B にコンテナを作成してほしくない場合でも、Launch を使用できますか?
1 - `wandb launch -d` または `wandb job create image` が、レジストリからプルせずに全体のDockerアーティファクトをアップロードしていますか?
wandb launch -d
コマンドは、イメージをレジストリにアップロードしません。イメージは別途レジストリにアップロードしてください。以下の手順に従ってください。
- イメージをビルドします。
- イメージをレジストリにプッシュします。
ワークフローは以下の通りです:
docker build -t <repo-url>:<tag> .
docker push <repo-url>:<tag>
wandb launch -d <repo-url>:<tag>
ローンチエージェントは、指定されたコンテナを指すジョブを立ち上げます。コンテナレジストリからイメージを取得するエージェントアクセスの設定例については、Advanced agent setupを参照してください。
Kubernetes を使用する場合は、Kubernetes クラスターのポッドが、イメージがプッシュされたレジストリにアクセスできることを確認してください。
2 - Dockerキュー内の複数のジョブが同じアーティファクトをダウンロードする場合、キャッシュは使用されますか、それとも毎回のrunで再ダウンロードされますか?
キャッシュは存在しません。各ローンチジョブは独立して動作します。キューの設定で Docker の引数を使用して、共有キャッシュをマウントするようにキューまたはエージェントを設定してください。
さらに、特定のユースケースに対して、W&B アーティファクトキャッシュを永続ボリュームとしてマウントします。
3 - Kubernetes でエージェントにはどのような権限が必要ですか?
Kubernetesマニフェストは、wandb
ネームスペースで wandb-launch-agent
という名前のロールを作成します。このロールは、エージェントが wandb
ネームスペースでポッド、configmaps、secretsを作成し、ポッドのログに アクセス することを可能にします。wandb-cluster-role
は、エージェントがポッドを作成し、ポッドのログに アクセス し、secrets、ジョブを作成し、指定されたネームスペース全体でジョブのステータスを確認できるようにします。
4 - Launch で "permission denied" エラーを修正するにはどうすればよいですか?
エラーメッセージ Launch Error: Permission denied
に遭遇した場合、これは、目的のプロジェクトにログを記録するための権限が不十分であることを示しています。考えられる原因は次のとおりです:
- このマシンにログインしていません。コマンドラインで
wandb login
を実行してください。 - 指定されたエンティティが存在しません。エンティティは、ユーザーのユーザー名または既存のチームの名前である必要があります。必要に応じて、Subscriptions page でチームを作成してください。
- プロジェクトの権限がありません。プロジェクトの作成者にプライバシー設定を Open に変更するよう依頼して、プロジェクトに run をログできるようにしてください。
5 - W&B Launch はどのようにしてイメージを作成しますか?
画像のビルド手順は、ジョブのソースとリソース設定で指定されたアクセラレータのベース画像によって異なります。
キューを設定する場合やジョブを送信する際には、キューやジョブのリソース設定にベースアクセラレータ画像を含めてください:
{
"builder": {
"accelerator": {
"base_image": "image-name"
}
}
}
ビルドプロセスには、ジョブタイプと提供されたアクセラレータのベース画像に基づいて、以下のアクションが含まれます:
| | apt を使用して Python をインストール | Python パッケージをインストール | ユーザーと作業ディレクトリを作成 | コードを画像にコピー | エントリーポイントを設定 | |
6 - W&B Launch を GPU 上での Tensorflow と連携させるにはどうすればよいですか?
TensorFlow ジョブで GPU を使用する場合、コンテナビルド用にカスタムベースイメージを指定します。これにより、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
を使用してください。
7 - W&B に Dockerfile を指定して、Docker イメージを作成してもらうことはできますか?
この機能は、要件が安定しているがコードベースが頻繁に変化するプロジェクトに適しています。
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 でジョブをキューに追加する際、Overrides セクションで Dockerfile のパスを指定します。それをキーと値のペアとして入力し、キーを "dockerfile"
、値を Dockerfile のパスとします。
次の JSON は、ローカルディレクトリーに Dockerfile を含む方法を示しています:
{
"args": [],
"run_config": {
"lr": 0,
"batch_size": 0,
"epochs": 0
},
"entrypoint": [],
"dockerfile": "./Dockerfile"
}
8 - アクセラレータベースイメージにはどのような要件がありますか?
アクセラレータを使用するジョブには、必要なアクセラレータコンポーネントを含む基本イメージを提供してください。アクセラレータイメージに関しては、以下の要件を確認してください:
- Debian との互換性(Launch Dockerfile は Python をインストールするために apt-get を使用します)
- サポートされている CPU と GPU ハードウェアの命令セット(意図した GPU に対する CUDA バージョンの互換性を確認)
- 提供されるアクセラレータバージョンと機械学習アルゴリズム内のパッケージとの互換性
- ハードウェアとの互換性のために追加のステップが必要なパッケージのインストール
9 - ターゲット環境で Launch は計算リソースを自動でプロビジョニング (そしてスピンダウン) できますか?
このプロセスは環境に依存します。Amazon SageMaker と Vertex でリソースが提供されます。Kubernetes では、オートスケーラーが需要に基づいてリソースを自動的に調整します。W&B のソリューション アーキテクトが Kubernetes インフラストラクチャーの設定を支援し、再試行、自動スケーリング、およびスポット インスタンス ノード プールの使用を可能にします。サポートについては、support@wandb.com に連絡するか、共有された Slack チャンネルを使用してください。
10 - ローンチは並列化をサポートしていますか?ジョブによって消費されるリソースを制限する方法はありますか?
Launch は、複数の GPU およびノードにわたるジョブのスケーリングをサポートします。詳細については、このガイドを参照してください。
各 Launch エージェントには max_jobs
パラメータが設定されており、同時に実行できるジョブの最大数を決定します。適切なローンチ インフラストラクチャーに接続されていれば、複数のエージェントが単一のキューを指すことができます。
リソース設定では、CPU、GPU、メモリ、およびその他のリソースに対してキューまたはジョブ実行レベルでの制限を設定できます。Kubernetes でリソース制限付きのキューを設定する方法については、このガイドを参照してください。
スイープの場合、以下のブロックをキュー設定に含めて、同時に実行される run の数を制限してください。
scheduler:
num_workers: 4
11 - ローンチを効果的に使用するためのベストプラクティスはありますか?
-
エージェントを起動する前にキューを作成し、簡単に設定を可能にします。これを行わないと、キューが追加されるまでエージェントが正しく動作しないエラーが発生します。
-
W&B のサービスアカウントを作成してエージェントを起動し、個別のユーザーアカウントにリンクされていないことを確認します。
-
wandb.config
を使用してハイパーパラメーターを管理し、ジョブ再実行時に上書きできるようにします。argparse の使用方法については、このガイドを参照してください。
12 - キューにプッシュできる人をどのように制御しますか?
キューはユーザー チームに特有です。 キュー作成時に所有するエンティティを定義します。 アクセスを制限するには、チームメンバーシップを変更します。
13 - クリックするのが嫌いです - UI を通さずに Launch を使用できますか?
はい。標準の wandb
CLI にはジョブをローンンチするための launch
サブコマンドが含まれています。詳細については、以下のコマンドを実行してください。
wandb launch --help
14 - ジョブやオートメーションのためのシークレットを指定することはできますか?例えば、ユーザーに直接見せたくないAPIキーのようなものですか?
はい。次の手順に従ってください:
-
run 用の指定された名前空間に Kubernetes のシークレットを作成します。コマンドは以下の通りです:
kubectl create secret -n <namespace> generic <secret_name> <secret_value>
-
シークレットを作成したら、run が開始する際にシークレットを注入するようにキューを設定します。クラスター管理者だけがシークレットを見ることができ、エンドユーザーはそれを確認できません。
15 - 管理者はどのユーザーが修正アクセスを持つかをどのように制限できますか?
アクセスを制御するために、チームの管理者でないユーザー向けに特定のキューのフィールドを queue config templates を通じて設定します。チーム管理者は、非管理者ユーザーがどのフィールドを閲覧できるかを定義し、編集の制限を設定します。キューを作成または編集する能力を持っているのはチーム管理者のみです。
16 - 私が W&B にコンテナを作成してほしくない場合でも、Launch を使用できますか?
事前に構築された Docker イメージを起動するには、以下のコマンドを実行してください。<>
内のプレースホルダーを具体的な情報に置き換えてください:
wandb launch -d <docker-image-uri> -q <queue-name> -E <entrypoint>
このコマンドはジョブを作成し、run を開始します。
イメージからジョブを作成するには、以下のコマンドを使用してください:
wandb job create image <image-name> -p <project> -e <entity>