이 섹션의 다중 페이지 출력 화면임. 여기를 클릭하여 프린트.
Create and deploy jobs
- 1: Add job to queue
- 2: Create a launch job
- 3: Manage job inputs
- 4: Monitor launch queue
- 5: View launch jobs
1 - Add job to queue
다음 페이지에서는 launch queue에 launch job을 추가하는 방법을 설명합니다.
queue에 job 추가
W&B App을 사용하여 대화형으로 또는 W&B CLI를 사용하여 프로그래밍 방식으로 queue에 job을 추가합니다.
W&B App을 사용하여 프로그래밍 방식으로 queue에 job을 추가합니다.
- W&B Project 페이지로 이동합니다.
- 왼쪽 패널에서 Jobs 아이콘을 선택합니다:
- Jobs 페이지에는 이전에 실행된 W&B run에서 생성된 W&B launch job 목록이 표시됩니다.
- Job 이름 옆에 있는 Launch 버튼을 선택합니다. 페이지 오른쪽에 모달이 나타납니다.
- Job version 드롭다운에서 사용하려는 launch job 버전을 선택합니다. Launch job은 다른 W&B Artifact처럼 버전이 관리됩니다. job을 실행하는 데 사용되는 소프트웨어 종속성 또는 소스 코드를 수정하면 동일한 launch job의 다른 버전이 생성됩니다.
- Overrides 섹션 내에서 launch job에 대해 구성된 모든 입력에 대해 새 값을 제공합니다. 일반적인 재정의에는 새 진입점 커맨드, 인수 또는 새 W&B run의
wandb.config
의 값이 포함됩니다.Paste from… 버튼을 클릭하여 launch job을 사용한 다른 W&B run에서 값을 복사하여 붙여넣을 수 있습니다.
- Queue 드롭다운에서 launch job을 추가할 launch queue 이름을 선택합니다.
- Job Priority 드롭다운을 사용하여 launch job의 우선 순위를 지정합니다. Launch queue가 우선 순위 지정을 지원하지 않는 경우 launch job의 우선 순위는 “Medium"으로 설정됩니다.
- (선택 사항) 팀 관리자가 queue 설정 템플릿을 만든 경우에만 이 단계를 따르십시오.
Queue Configurations 필드 내에서 팀 관리자가 만든 구성 옵션에 대한 값을 제공합니다.
예를 들어 다음 예에서 팀 관리자는 팀에서 사용할 수 있는 AWS 인스턴스 유형을 구성했습니다. 이 경우 팀 멤버는
ml.m4.xlarge
또는ml.p3.xlarge
컴퓨팅 인스턴스 유형을 선택하여 모델을 학습할 수 있습니다. - 결과 run이 표시될 Destination project를 선택합니다. 이 프로젝트는 queue와 동일한 entity에 속해야 합니다.
- Launch now 버튼을 선택합니다.
wandb launch
커맨드를 사용하여 queue에 job을 추가합니다. 하이퍼파라미터 재정의를 사용하여 JSON 설정을 만듭니다. 예를 들어 퀵스타트 가이드의 스크립트를 사용하여 다음 재정의를 사용하여 JSON 파일을 만듭니다.
{
"overrides": {
"args": [],
"run_config": {
"learning_rate": 0,
"epochs": 0
},
"entry_point": []
}
}
queue 구성을 재정의하려는 경우 또는 launch queue에 구성 리소스가 정의되지 않은 경우 config.json 파일에서 resource_args
키를 지정할 수 있습니다. 예를 들어 위의 예제를 계속 따르면 config.json 파일이 다음과 유사하게 보일 수 있습니다.
{
"overrides": {
"args": [],
"run_config": {
"learning_rate": 0,
"epochs": 0
},
"entry_point": []
},
"resource_args": {
"<resource-type>" : {
"<key>": "<value>"
}
}
}
<>
안의 값을 자신의 값으로 바꿉니다.
queue
(-q
) 플래그에 대한 queue 이름, job
(-j
) 플래그에 대한 job 이름, config
(-c
) 플래그에 대한 구성 파일의 경로를 제공합니다.
wandb launch -j <job> -q <queue-name> \
-e <entity-name> -c path/to/config.json
W&B Team 내에서 작업하는 경우 queue가 사용할 entity를 나타내기 위해 entity
플래그(-e
)를 지정하는 것이 좋습니다.
2 - Create a launch job
Launch 작업은 W&B run을 재현하기 위한 청사진입니다. 작업은 워크로드를 실행하는 데 필요한 소스 코드, 종속성 및 입력을 캡처하는 W&B Artifacts입니다.
wandb launch
코맨드를 사용하여 작업을 생성하고 실행하세요.
wandb job create
코맨드를 사용하세요. 자세한 내용은 코맨드 참조 문서를 참조하세요.Git 작업
W&B Launch를 사용하여 원격 git 저장소의 특정 커밋, 브랜치 또는 태그에서 코드 및 기타 추적된 자산을 복제하는 Git 기반 작업을 만들 수 있습니다. 코드 URI를 지정하려면 --uri
또는 -u
플래그를 사용하고, 하위 디렉토리를 지정하려면 선택적으로 --build-context
플래그를 사용하세요.
다음 코맨드를 사용하여 git 저장소에서 “hello world” 작업을 실행합니다.
wandb launch --uri "https://github.com/wandb/launch-jobs.git" --build-context jobs/hello_world --dockerfile Dockerfile.wandb --project "hello-world" --job-name "hello-world" --entry-point "python job.py"
이 코맨드는 다음을 수행합니다.
- W&B Launch 작업 저장소를 임시 디렉토리에 복제합니다.
- hello 프로젝트에 hello-world-git이라는 작업을 만듭니다. 이 작업은 저장소의 기본 브랜치 헤드에 있는 커밋과 연결됩니다.
jobs/hello_world
디렉토리와Dockerfile.wandb
에서 컨테이너 이미지를 빌드합니다.- 컨테이너를 시작하고
python job.py
를 실행합니다.
특정 브랜치 또는 커밋 해시에서 작업을 빌드하려면 -g
, --git-hash
인수를 추가하세요. 전체 인수 목록을 보려면 wandb launch --help
를 실행하세요.
원격 URL 형식
Launch 작업과 연결된 git 원격은 HTTPS 또는 SSH URL일 수 있습니다. URL 유형은 작업 소스 코드를 가져오는 데 사용되는 프로토콜을 결정합니다.
원격 URL 유형 | URL 형식 | 엑세스 및 인증 요구 사항 |
---|---|---|
https | https://github.com/organization/repository.git |
git 원격으로 인증하기 위한 사용자 이름 및 비밀번호 |
ssh | git@github.com:organization/repository.git |
git 원격으로 인증하기 위한 ssh 키 |
정확한 URL 형식은 호스팅 공급자에 따라 다릅니다. wandb launch --uri
로 생성된 작업은 제공된 --uri
에 지정된 전송 프로토콜을 사용합니다.
코드 Artifact 작업
W&B Artifact에 저장된 소스 코드에서 작업을 만들 수 있습니다. --uri
또는 -u
인수로 로컬 디렉토리를 사용하여 새 코드 아티팩트 및 작업을 만드세요.
시작하려면 빈 디렉토리를 만들고 다음 내용으로 main.py
라는 Python 스크립트를 추가합니다.
import wandb
with wandb.init() as run:
run.log({"metric": 0.5})
다음 내용으로 requirements.txt
파일을 추가합니다.
wandb>=0.17.1
다음 코맨드를 사용하여 디렉토리를 코드 Artifact로 기록하고 작업을 시작합니다.
wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python main.py"
위의 코맨드는 다음을 수행합니다.
- 현재 디렉토리를
hello-world-code
라는 코드 Artifact로 기록합니다. launch-quickstart
프로젝트에hello-world-code
라는 작업을 만듭니다.- 현재 디렉토리와 Launch의 기본 Dockerfile에서 컨테이너 이미지를 빌드합니다. 기본 Dockerfile은
requirements.txt
파일을 설치하고 진입점을python main.py
로 설정합니다.
이미지 작업
또는 미리 만들어진 Docker 이미지에서 작업을 빌드할 수 있습니다. 이는 ML 코드에 대한 기존 빌드 시스템이 이미 있거나 작업에 대한 코드 또는 요구 사항을 조정할 필요는 없지만 하이퍼파라미터 또는 다른 인프라 규모를 실험하려는 경우에 유용합니다.
이미지는 Docker 레지스트리에서 가져와서 지정된 진입점 또는 지정되지 않은 경우 기본 진입점으로 실행됩니다. --docker-image
옵션에 전체 이미지 태그를 전달하여 Docker 이미지에서 작업을 생성하고 실행합니다.
미리 만들어진 이미지에서 간단한 작업을 실행하려면 다음 코맨드를 사용하세요.
wandb launch --docker-image "wandb/job_hello_world:main" --project "hello-world"
자동 작업 생성
W&B는 추적된 소스 코드가 있는 모든 run에 대해 Launch로 생성되지 않은 경우에도 작업을 자동으로 생성하고 추적합니다. run은 다음 세 가지 조건 중 하나라도 충족되면 추적된 소스 코드가 있는 것으로 간주됩니다.
- run에 연결된 git 원격 및 커밋 해시가 있습니다.
- run이 코드 Artifact를 기록했습니다(자세한 내용은
Run.log_code
참조). - run이
WANDB_DOCKER
환경 변수가 이미지 태그로 설정된 Docker 컨테이너에서 실행되었습니다.
Launch 작업이 W&B run에 의해 자동으로 생성되는 경우 Git 원격 URL은 로컬 git 저장소에서 유추됩니다.
Launch 작업 이름
기본적으로 W&B는 자동으로 작업 이름을 생성합니다. 이름은 작업이 생성된 방식(GitHub, 코드 Artifact 또는 Docker 이미지)에 따라 생성됩니다. 또는 환경 변수 또는 W&B Python SDK를 사용하여 Launch 작업의 이름을 정의할 수 있습니다.
다음 표는 작업 소스를 기반으로 기본적으로 사용되는 작업 명명 규칙을 설명합니다.
소스 | 명명 규칙 |
---|---|
GitHub | job-<git-remote-url>-<path-to-script> |
코드 Artifact | job-<code-artifact-name> |
Docker 이미지 | job-<image-name> |
W&B 환경 변수 또는 W&B Python SDK로 작업 이름을 지정하세요.
WANDB_JOB_NAME
환경 변수를 원하는 작업 이름으로 설정하세요. 예를 들어:
WANDB_JOB_NAME=awesome-job-name
wandb.Settings
로 작업 이름을 정의합니다. 그런 다음 wandb.init
로 W&B를 초기화할 때 이 오브젝트를 전달합니다. 예를 들어:
settings = wandb.Settings(job_name="my-job-name")
wandb.init(settings=settings)
컨테이너화
작업은 컨테이너에서 실행됩니다. 이미지 작업은 미리 빌드된 Docker 이미지를 사용하는 반면 Git 및 코드 Artifact 작업에는 컨테이너 빌드 단계가 필요합니다.
작업 컨테이너화는 wandb launch
에 대한 인수와 작업 소스 코드 내의 파일로 사용자 정의할 수 있습니다.
빌드 컨텍스트
빌드 컨텍스트라는 용어는 컨테이너 이미지를 빌드하기 위해 Docker 데몬으로 전송되는 파일 및 디렉토리 트리를 나타냅니다. 기본적으로 Launch는 작업 소스 코드의 루트를 빌드 컨텍스트로 사용합니다. 하위 디렉토리를 빌드 컨텍스트로 지정하려면 작업을 생성하고 시작할 때 wandb launch
의 --build-context
인수를 사용하세요.
--build-context
인수는 여러 프로젝트가 있는 모노레포로 작업하는 데 특히 유용합니다. 하위 디렉토리를 빌드 컨텍스트로 지정하면 모노레포 내의 특정 프로젝트에 대한 컨테이너 이미지를 빌드할 수 있습니다.
공식 W&B Launch 작업 저장소와 함께 --build-context
인수를 사용하는 방법에 대한 데모는 위의 예를 참조하세요.
Dockerfile
Dockerfile은 Docker 이미지를 빌드하기 위한 지침이 포함된 텍스트 파일입니다. 기본적으로 Launch는 requirements.txt
파일을 설치하는 기본 Dockerfile을 사용합니다. 사용자 정의 Dockerfile을 사용하려면 wandb launch
의 --dockerfile
인수로 파일 경로를 지정하세요.
Dockerfile 경로는 빌드 컨텍스트를 기준으로 지정됩니다. 예를 들어 빌드 컨텍스트가 jobs/hello_world
이고 Dockerfile이 jobs/hello_world
디렉토리에 있는 경우 --dockerfile
인수를 Dockerfile.wandb
로 설정해야 합니다. 공식 W&B Launch 작업 저장소와 함께 --dockerfile
인수를 사용하는 방법에 대한 데모는 위의 예를 참조하세요.
Requirements 파일
사용자 정의 Dockerfile이 제공되지 않은 경우 Launch는 설치할 Python 종속성에 대한 빌드 컨텍스트를 찾습니다. requirements.txt
파일이 빌드 컨텍스트의 루트에 있는 경우 Launch는 파일에 나열된 종속성을 설치합니다. 그렇지 않고 pyproject.toml
파일이 발견되면 Launch는 project.dependencies
섹션에서 종속성을 설치합니다.
3 - Manage job inputs
Launch의 핵심 경험은 하이퍼파라미터 및 데이터셋과 같은 다양한 작업 입력을 쉽게 실험하고 이러한 작업을 적절한 하드웨어로 라우팅하는 것입니다. 작업이 생성되면 원래 작성자 이외의 사용자도 W&B GUI 또는 CLI를 통해 이러한 입력을 조정할 수 있습니다. CLI 또는 UI에서 Launch할 때 작업 입력을 설정하는 방법에 대한 자세한 내용은 작업 대기열에 추가 가이드를 참조하세요.
이 섹션에서는 작업을 위해 조정할 수 있는 입력을 프로그래밍 방식으로 제어하는 방법에 대해 설명합니다.
기본적으로 W&B 작업은 전체 Run.config
를 작업에 대한 입력으로 캡처하지만 Launch SDK는 run config에서 선택한 키를 제어하거나 JSON 또는 YAML 파일을 입력으로 지정하는 기능을 제공합니다.
wandb-core
가 필요합니다. 자세한 내용은 wandb-core
README를 참조하세요.Run
오브젝트 재구성
작업에서 wandb.init
에 의해 반환된 Run
오브젝트는 기본적으로 재구성할 수 있습니다. Launch SDK는 작업을 시작할 때 Run.config
오브젝트의 어떤 부분을 재구성할 수 있는지 사용자 정의하는 방법을 제공합니다.
import wandb
from wandb.sdk import launch
# Required for launch sdk use.
wandb.require("core")
config = {
"trainer": {
"learning_rate": 0.01,
"batch_size": 32,
"model": "resnet",
"dataset": "cifar10",
"private": {
"key": "value",
},
},
"seed": 42,
}
with wandb.init(config=config):
launch.manage_wandb_config(
include=["trainer"],
exclude=["trainer.private"],
)
# Etc.
launch.manage_wandb_config
함수는 Run.config
오브젝트에 대한 입력 값을 허용하도록 작업을 구성합니다. 선택적 include
및 exclude
옵션은 중첩된 config 오브젝트 내에서 경로 접두사를 사용합니다. 예를 들어 작업이 최종 사용자에게 노출하고 싶지 않은 옵션이 있는 라이브러리를 사용하는 경우에 유용할 수 있습니다.
include
접두사가 제공되면 include
접두사와 일치하는 config 내의 경로만 입력 값을 허용합니다. exclude
접두사가 제공되면 exclude
목록과 일치하는 경로는 입력 값에서 필터링되지 않습니다. 경로가 include
및 exclude
접두사와 모두 일치하는 경우 exclude
접두사가 우선합니다.
이전 예에서 ["trainer.private"]
경로는 trainer
오브젝트에서 private
키를 필터링하고 ["trainer"]
경로는 trainer
오브젝트에 속하지 않은 모든 키를 필터링합니다.
\
-이스케이프된 .
을 사용하여 이름에 .
이 있는 키를 필터링합니다.
예를 들어 r"trainer\.private"
는 trainer
오브젝트 아래의 private
키 대신 trainer.private
키를 필터링합니다.
위의 r
접두사는 raw 문자열을 나타냅니다.
위의 코드가 패키지되어 작업으로 실행되면 작업의 입력 유형은 다음과 같습니다.
{
"trainer": {
"learning_rate": "float",
"batch_size": "int",
"model": "str",
"dataset": "str",
},
}
W&B CLI 또는 UI에서 작업을 시작할 때 사용자는 4개의 trainer
파라미터만 재정의할 수 있습니다.
Run config 입력 엑세스
Run config 입력으로 시작된 작업은 Run.config
를 통해 입력 값에 엑세스할 수 있습니다. 작업 코드에서 wandb.init
에 의해 반환된 Run
은 입력 값이 자동으로 설정됩니다. 작업 코드의 어디에서든 run config 입력 값을 로드하려면 다음을 사용하십시오.
from wandb.sdk import launch
run_config_overrides = launch.load_wandb_config()
파일 재구성
Launch SDK는 작업 코드의 config 파일에 저장된 입력 값을 관리하는 방법도 제공합니다. 이것은 이 torchtune 예제 또는 이 Axolotl config와 같은 많은 딥러닝 및 대규모 언어 모델 유스 케이스에서 일반적인 패턴입니다.
Run.config
오브젝트를 통해 제어되어야 합니다.launch.manage_config_file
함수를 사용하여 config 파일을 Launch 작업에 대한 입력으로 추가하여 작업을 시작할 때 config 파일 내의 값을 편집할 수 있습니다.
기본적으로 launch.manage_config_file
이 사용되면 run config 입력이 캡처되지 않습니다. launch.manage_wandb_config
를 호출하면 이 동작이 재정의됩니다.
다음 예를 고려하십시오.
import yaml
import wandb
from wandb.sdk import launch
# Required for launch sdk use.
wandb.require("core")
launch.manage_config_file("config.yaml")
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
with wandb.init(config=config):
# Etc.
pass
코드가 인접한 파일 config.yaml
과 함께 실행된다고 상상해 보십시오.
learning_rate: 0.01
batch_size: 32
model: resnet
dataset: cifar10
launch.manage_config_file
을 호출하면 config.yaml
파일이 작업에 대한 입력으로 추가되어 W&B CLI 또는 UI에서 시작할 때 재구성할 수 있습니다.
include
및 exclude
키워드 arugment는 launch.manage_wandb_config
와 같은 방식으로 config 파일에 허용되는 입력 키를 필터링하는 데 사용할 수 있습니다.
Config 파일 입력 엑세스
Launch에서 생성된 Run에서 launch.manage_config_file
이 호출되면 launch
는 config 파일의 내용을 입력 값으로 패치합니다. 패치된 config 파일은 작업 환경에서 사용할 수 있습니다.
launch.manage_config_file
을 호출하십시오.작업의 Launch drawer UI 사용자 정의
작업 입력에 대한 스키마를 정의하면 작업을 시작하기 위한 사용자 정의 UI를 만들 수 있습니다. 작업의 스키마를 정의하려면 launch.manage_wandb_config
또는 launch.manage_config_file
호출에 포함합니다. 스키마는 JSON 스키마 형식의 python dict이거나 Pydantic 모델 클래스일 수 있습니다.
다음 예제는 다음과 같은 속성이 있는 스키마를 보여줍니다.
seed
, 정수trainer
, 지정된 일부 키가 있는 사전:trainer.learning_rate
, 0보다 커야 하는 floattrainer.batch_size
, 16, 64 또는 256 중 하나여야 하는 정수trainer.dataset
,cifar10
또는cifar100
중 하나여야 하는 문자열
schema = {
"type": "object",
"properties": {
"seed": {
"type": "integer"
}
"trainer": {
"type": "object",
"properties": {
"learning_rate": {
"type": "number",
"description": "Learning rate of the model",
"exclusiveMinimum": 0,
},
"batch_size": {
"type": "integer",
"description": "Number of samples per batch",
"enum": [16, 64, 256]
},
"dataset": {
"type": "string",
"description": "Name of the dataset to use",
"enum": ["cifar10", "cifar100"]
}
}
}
}
}
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
schema=schema,
)
일반적으로 다음 JSON 스키마 속성이 지원됩니다.
속성 | 필수 | 메모 |
---|---|---|
type |
예 | number , integer , string 또는 object 중 하나여야 합니다. |
title |
아니요 | 속성의 표시 이름을 재정의합니다. |
description |
아니요 | 속성 도우미 텍스트를 제공합니다. |
enum |
아니요 | 자유 형식 텍스트 항목 대신 드롭다운 선택을 만듭니다. |
minimum |
아니요 | type 이 number 또는 integer 인 경우에만 허용됩니다. |
maximum |
아니요 | type 이 number 또는 integer 인 경우에만 허용됩니다. |
exclusiveMinimum |
아니요 | type 이 number 또는 integer 인 경우에만 허용됩니다. |
exclusiveMaximum |
아니요 | type 이 number 또는 integer 인 경우에만 허용됩니다. |
properties |
아니요 | type 이 object 인 경우 중첩된 구성을 정의하는 데 사용됩니다. |
다음 예제는 다음과 같은 속성이 있는 스키마를 보여줍니다.
seed
, 정수trainer
, 지정된 일부 하위 속성이 있는 스키마:trainer.learning_rate
, 0보다 커야 하는 floattrainer.batch_size
, 1에서 256 사이여야 하는 정수(포함)trainer.dataset
,cifar10
또는cifar100
중 하나여야 하는 문자열
class DatasetEnum(str, Enum):
cifar10 = "cifar10"
cifar100 = "cifar100"
class Trainer(BaseModel):
learning_rate: float = Field(gt=0, description="Learning rate of the model")
batch_size: int = Field(ge=1, le=256, description="Number of samples per batch")
dataset: DatasetEnum = Field(title="Dataset", description="Name of the dataset to use")
class Schema(BaseModel):
seed: int
trainer: Trainer
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
schema=Schema,
)
클래스의 인스턴스를 사용할 수도 있습니다.
t = Trainer(learning_rate=0.01, batch_size=32, dataset=DatasetEnum.cifar10)
s = Schema(seed=42, trainer=t)
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
input_schema=s,
)
작업 입력 스키마를 추가하면 Launch drawer에 구조화된 양식이 만들어져 작업을 더 쉽게 시작할 수 있습니다.

4 - Monitor launch queue
대화형 Queue monitoring dashboard 를 사용하여 Launch 대기열의 사용량이 많은지 유휴 상태인지 확인하고, 실행 중인 워크로드를 시각화하고, 비효율적인 작업을 찾아보세요. Launch 대기열 대시보드는 컴퓨팅 하드웨어나 클라우드 리소스를 효과적으로 사용하고 있는지 여부를 결정하는 데 특히 유용합니다.
더 자세한 분석을 위해 페이지는 W&B experiment 추적 워크스페이스와 Datadog, NVIDIA Base Command 또는 클라우드 콘솔과 같은 외부 인프라 모니터링 제공업체에 대한 링크를 제공합니다.
대시보드 및 플롯
Monitor 탭을 사용하여 지난 7일 동안 발생한 대기열의 활동을 확인하세요. 왼쪽 패널을 사용하여 시간 범위, 그룹화 및 필터를 제어합니다.
대시보드에는 성능 및 효율성에 대한 자주 묻는 질문에 답변하는 다양한 플롯이 포함되어 있습니다. 다음 섹션에서는 대기열 대시보드의 UI 요소를 설명합니다.
작업 상태
작업 상태 플롯은 각 시간 간격으로 실행 중, 대기 중, 큐에 대기 중 또는 완료된 작업 수를 보여줍니다. 작업 상태 플롯을 사용하여 대기열의 유휴 기간을 식별합니다.

예를 들어 고정 리소스 (예: DGX BasePod)가 있다고 가정합니다. 고정 리소스로 유휴 대기열을 관찰하는 경우 스윕과 같은 우선 순위가 낮은 선점형 Launch 작업을 실행할 수 있는 기회를 제시할 수 있습니다.
반면에 클라우드 리소스를 사용하고 주기적인 활동 버스트가 표시된다고 가정합니다. 주기적인 활동 버스트는 특정 시간에 리소스를 예약하여 비용을 절약할 수 있는 기회를 제시할 수 있습니다.
플롯의 오른쪽에는 Launch 작업 상태를 나타내는 색상을 보여주는 키가 있습니다.
Queued
항목은 워크로드를 다른 대기열로 이동할 수 있는 기회를 나타낼 수 있습니다. 실패 급증은 Launch 작업 설정에 도움이 필요한 사용자를 식별할 수 있습니다.대기 시간
대기 시간 플롯은 지정된 날짜 또는 시간 범위에 대해 Launch 작업이 대기열에 있었던 시간 (초)을 보여줍니다.

x축은 사용자가 지정하는 시간 프레임을 보여주고 y축은 Launch 작업이 Launch 대기열에 있었던 시간 (초)을 보여줍니다. 예를 들어 특정 날짜에 10개의 Launch 작업이 큐에 있다고 가정합니다. 해당 10개의 Launch 작업이 평균 60초씩 기다리면 대기 시간 플롯은 600초를 보여줍니다.
왼쪽 막대의 Grouping
컨트롤을 사용하여 각 작업의 색상을 사용자 정의합니다.
이는 어떤 사용자와 작업이 부족한 대기열 용량으로 인해 어려움을 겪고 있는지 식별하는 데 특히 유용할 수 있습니다.
작업 Runs

이 플롯은 시간 간격으로 실행된 모든 작업의 시작과 끝을 보여주며 각 run에 대해 서로 다른 색상을 사용합니다. 이를 통해 특정 시간에 대기열에서 어떤 워크로드를 처리하고 있는지 한눈에 쉽게 알 수 있습니다.
패널 오른쪽 하단의 Select 툴을 사용하여 작업을 브러시하여 아래 표에 세부 정보를 채웁니다.
CPU 및 GPU 사용량
GPU use by a job, CPU use by a job, GPU memory by job 및 System memory by job을 사용하여 Launch 작업의 효율성을 확인합니다.

예를 들어 GPU memory by job을 사용하여 W&B run을 완료하는 데 시간이 오래 걸렸는지 여부와 CPU 코어의 낮은 비율을 사용했는지 여부를 확인할 수 있습니다.
각 플롯의 x축은 Launch 작업으로 생성된 W&B run의 지속 시간 (초)을 보여줍니다. 마우스를 데이터 포인트 위에 올려 놓으면 run ID, run이 속한 프로젝트, W&B run을 생성한 Launch 작업 등과 같은 W&B run에 대한 정보를 볼 수 있습니다.
오류
Errors 패널은 지정된 Launch 대기열에서 발생한 오류를 보여줍니다. 보다 구체적으로 Errors 패널은 오류가 발생한 타임스탬프, 오류가 발생한 Launch 작업의 이름, 생성된 오류 메시지를 보여줍니다. 기본적으로 오류는 최신순에서 가장 오래된 순으로 정렬됩니다.

Errors 패널을 사용하여 사용자를 식별하고 차단을 해제합니다.
외부 링크
대기열 관찰 가능성 대시보드의 보기는 모든 대기열 유형에서 일관되지만, 많은 경우 환경별 모니터로 직접 이동하는 것이 유용할 수 있습니다. 이를 위해 대기열 관찰 가능성 대시보드에서 직접 콘솔에서 링크를 추가합니다.
페이지 하단에서 Manage Links
를 클릭하여 패널을 엽니다. 원하는 페이지의 전체 URL을 추가합니다. 다음으로 레이블을 추가합니다. 추가한 링크는 External Links 섹션에 나타납니다.
5 - View launch jobs
다음 페이지에서는 대기열에 추가된 Launch 작업에 대한 정보를 보는 방법을 설명합니다.
작업 보기
W&B 앱으로 대기열에 추가된 작업을 봅니다.
- https://wandb.ai/home에서 W&B 앱으로 이동합니다.
- 왼쪽 사이드바의 Applications 섹션에서 Launch를 선택합니다.
- All entities 드롭다운을 선택하고 Launch 작업이 속한 entity를 선택합니다.
- Launch Application 페이지에서 축소 가능한 UI를 확장하여 해당 특정 대기열에 추가된 작업 목록을 봅니다.
예를 들어 다음 이미지는 job-source-launch_demo-canonical
이라는 작업에서 생성된 두 개의 run을 보여줍니다. 이 작업은 Start queue
라는 대기열에 추가되었습니다. 대기열에 나열된 첫 번째 run은 resilient-snowball
이라고 하고 두 번째 run은 earthy-energy-165
라고 합니다.

W&B 앱 UI 내에서 Launch 작업에서 생성된 run에 대한 다음과 같은 추가 정보를 찾을 수 있습니다.
- Run: 해당 작업에 할당된 W&B run의 이름입니다.
- Job ID: 작업의 이름입니다.
- Project: run이 속한 project의 이름입니다.
- Status: 대기열에 있는 run의 상태입니다.
- Author: run을 생성한 W&B entity입니다.
- Creation date: 대기열이 생성된 타임스탬프입니다.
- Start time: 작업이 시작된 타임스탬프입니다.
- Duration: 작업을 완료하는 데 걸린 시간(초)입니다.
작업 나열
W&B CLI를 사용하여 project 내에 존재하는 작업 목록을 봅니다. W&B 작업 목록 코맨드를 사용하고 Launch 작업이 속한 project 및 entity의 이름을 각각 --project
및 --entity
플래그와 함께 제공합니다.
wandb job list --entity your-entity --project project-name
작업 상태 확인
다음 표는 대기열에 있는 run이 가질 수 있는 상태를 정의합니다.
상태 | 설명 |
---|---|
Idle | run이 활성 에이전트가 없는 대기열에 있습니다. |
Queued | run이 에이전트가 처리하기를 기다리는 대기열에 있습니다. |
Pending | run이 에이전트에 의해 선택되었지만 아직 시작되지 않았습니다. 이는 클러스터에서 리소스를 사용할 수 없기 때문일 수 있습니다. |
Running | run이 현재 실행 중입니다. |
Killed | 사용자가 작업을 중단했습니다. |
Crashed | run이 데이터 전송을 중단했거나 성공적으로 시작되지 않았습니다. |
Failed | run이 0이 아닌 종료 코드로 종료되었거나 run을 시작하지 못했습니다. |
Finished | 작업이 성공적으로 완료되었습니다. |