What are runs?
11 minute read
W&B에서 run은 로그된 단일 연산 단위입니다. W&B run을 전체 프로젝트의 원자적 요소로 생각할 수 있습니다. 다시 말해, 각 run은 모델 트레이닝 및 결과 로깅, 하이퍼파라미터 스윕 등과 같은 특정 연산의 기록입니다.
run을 시작하는 일반적인 패턴은 다음을 포함하지만 이에 국한되지는 않습니다.
- 모델 트레이닝
- 하이퍼파라미터를 변경하고 새로운 실험 수행
- 다른 모델로 새로운 기계학습 실험 수행
- W&B Artifacts로 데이터 또는 모델 로깅
- W&B Artifacts 다운로드
W&B는 생성한 run을 프로젝트에 저장합니다. W&B 앱 UI에서 run과 해당 속성을 run의 프로젝트 워크스페이스 내에서 볼 수 있습니다. wandb.Api.Run
오브젝트를 사용하여 run 속성에 프로그래밍 방식으로 엑세스할 수도 있습니다.
run.log
로 로그하는 모든 내용은 해당 run에 기록됩니다. 다음 코드 조각을 살펴보십시오.
import wandb
run = wandb.init(entity="nico", project="awesome-project")
run.log({"accuracy": 0.9, "loss": 0.1})
첫 번째 줄은 W&B Python SDK를 임포트합니다. 두 번째 줄은 엔터티 nico
아래의 프로젝트 awesome-project
에서 run을 초기화합니다. 세 번째 줄은 모델의 정확도와 손실을 해당 run에 기록합니다.
터미널 내에서 W&B는 다음을 반환합니다.
wandb: Syncing run earnest-sunset-1
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb:
wandb:
wandb: Run history:
wandb: accuracy
wandb: loss
wandb:
wandb: Run summary:
wandb: accuracy 0.9
wandb: loss 0.5
wandb:
wandb: 🚀 View run earnest-sunset-1 at: https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb: ⭐️ View project at: https://wandb.ai/nico/awesome-project
wandb: Synced 6 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)
wandb: Find logs at: ./wandb/run-20241105_111006-1jx1ud12/logs
터미널에서 W&B가 반환하는 URL은 W&B 앱 UI에서 run의 워크스페이스로 리디렉션합니다. 워크스페이스에서 생성된 패널은 단일 지점에 해당합니다.

단일 시점에 메트릭을 로깅하는 것은 그다지 유용하지 않을 수 있습니다. 판별 모델 트레이닝의 경우 더 현실적인 예는 메트릭을 정기적인 간격으로 로깅하는 것입니다. 예를 들어, 다음 코드 조각을 살펴보십시오.
epochs = 10
lr = 0.01
run = wandb.init(
entity="nico",
project="awesome-project",
config={
"learning_rate": lr,
"epochs": epochs,
},
)
offset = random.random() / 5
# simulating a training run
for epoch in range(epochs):
acc = 1 - 2**-epoch - random.random() / (epoch + 1) - offset
loss = 2**-epoch + random.random() / (epoch + 1) + offset
print(f"epoch={epoch}, accuracy={acc}, loss={loss}")
run.log({"accuracy": acc, "loss": loss})
다음 출력을 반환합니다.
wandb: Syncing run jolly-haze-4
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/pdo5110r
lr: 0.01
epoch=0, accuracy=-0.10070974957523078, loss=1.985328507123956
epoch=1, accuracy=0.2884687745057535, loss=0.7374362314407752
epoch=2, accuracy=0.7347387967382066, loss=0.4402409835486663
epoch=3, accuracy=0.7667969248039795, loss=0.26176963846423457
epoch=4, accuracy=0.7446848791003173, loss=0.24808611724405083
epoch=5, accuracy=0.8035095836268268, loss=0.16169791827329466
epoch=6, accuracy=0.861349032371624, loss=0.03432578493587426
epoch=7, accuracy=0.8794926436276016, loss=0.10331872172219471
epoch=8, accuracy=0.9424839917077272, loss=0.07767793473500445
epoch=9, accuracy=0.9584880427028566, loss=0.10531971149250456
wandb: 🚀 View run jolly-haze-4 at: https://wandb.ai/nico/awesome-project/runs/pdo5110r
wandb: Find logs at: wandb/run-20241105_111816-pdo5110r/logs
트레이닝 스크립트는 run.log
를 10번 호출합니다. 스크립트가 run.log
를 호출할 때마다 W&B는 해당 에포크의 정확도와 손실을 기록합니다. W&B가 이전 출력에서 출력하는 URL을 선택하면 W&B 앱 UI에서 run의 워크스페이스로 이동합니다.
스크립트가 wandb.init
메서드를 한 번만 호출하기 때문에 W&B는 시뮬레이션된 트레이닝 루프를 jolly-haze-4
라는 단일 run 내에서 캡처합니다.

또 다른 예로, 스윕 중에 W&B는 사용자가 지정한 하이퍼파라미터 검색 공간을 탐색합니다. W&B는 스윕이 생성하는 각 새로운 하이퍼파라미터 조합을 고유한 run으로 구현합니다.
Run 초기화
wandb.init()
로 W&B run을 초기화합니다. 다음 코드 조각은 W&B Python SDK를 임포트하고 run을 초기화하는 방법을 보여줍니다.
각도 괄호(<>
)로 묶인 값을 사용자 고유의 값으로 바꾸십시오.
import wandb
run = wandb.init(entity="<entity>", project="<project>")
run을 초기화할 때 W&B는 프로젝트 필드에 지정한 프로젝트(wandb.init(project="<project>")
)에 run을 기록합니다. W&B는 프로젝트가 아직 존재하지 않으면 새 프로젝트를 만듭니다. 프로젝트가 이미 존재하는 경우 W&B는 해당 프로젝트에 run을 저장합니다.
Uncategorized
라는 프로젝트에 저장합니다.W&B의 각 run에는 run ID라고 하는 고유 식별자가 있습니다. 고유 ID를 지정하거나 W&B가 임의로 ID를 생성하도록 할 수 있습니다.
각 run에는 사람이 읽을 수 있는 run 이름이라고 하는 고유하지 않은 식별자도 있습니다. run 이름을 지정하거나 W&B가 임의로 이름을 생성하도록 할 수 있습니다.
예를 들어, 다음 코드 조각을 살펴보십시오.
import wandb
run = wandb.init(entity="wandbee", project="awesome-project")
코드 조각은 다음 출력을 생성합니다.
🚀 View run exalted-darkness-6 at:
https://wandb.ai/nico/awesome-project/runs/pgbn9y21
Find logs at: wandb/run-20241106_090747-pgbn9y21/logs
이전 코드는 id 파라미터에 대한 인수를 지정하지 않았으므로 W&B는 고유한 run ID를 만듭니다. 여기서 nico
는 run을 기록한 엔터티이고, awesome-project
는 run이 기록된 프로젝트의 이름이고, exalted-darkness-6
은 run의 이름이고, pgbn9y21
은 run ID입니다.
노트북 사용자
run이 끝날 때 run.finish()
를 지정하여 run이 완료되었음을 표시합니다. 이렇게 하면 run이 프로젝트에 올바르게 기록되고 백그라운드에서 계속되지 않습니다.
import wandb
run = wandb.init(entity="<entity>", project="<project>")
# Training code, logging, and so forth
run.finish()
각 run에는 run의 현재 상태를 설명하는 상태가 있습니다. 가능한 run 상태의 전체 목록은 Run 상태를 참조하십시오.
Run 상태
다음 표는 run이 가질 수 있는 가능한 상태를 설명합니다.
상태 | 설명 |
---|---|
Finished | run이 종료되고 데이터가 완전히 동기화되었거나 wandb.finish() 가 호출되었습니다. |
Failed | run이 0이 아닌 종료 상태로 종료되었습니다. |
Crashed | run이 내부 프로세스에서 하트비트 전송을 중단했습니다. 이는 머신이 충돌할 경우 발생할 수 있습니다. |
Running | run이 여전히 실행 중이며 최근에 하트비트를 전송했습니다. |
고유한 run 식별자
Run ID는 run에 대한 고유 식별자입니다. 기본적으로 W&B는 새 run을 초기화할 때 임의의 고유한 run ID를 생성합니다. run을 초기화할 때 고유한 run ID를 지정할 수도 있습니다.
자동 생성된 run ID
run을 초기화할 때 run ID를 지정하지 않으면 W&B는 임의의 run ID를 생성합니다. W&B 앱 UI에서 run의 고유 ID를 찾을 수 있습니다.
- https://wandb.ai/home에서 W&B 앱 UI로 이동합니다.
- run을 초기화할 때 지정한 W&B 프로젝트로 이동합니다.
- 프로젝트의 워크스페이스 내에서 Runs 탭을 선택합니다.
- Overview 탭을 선택합니다.
W&B는 Run path 필드에 고유한 run ID를 표시합니다. run 경로는 팀 이름, 프로젝트 이름 및 run ID로 구성됩니다. 고유 ID는 run 경로의 마지막 부분입니다.
예를 들어, 다음 이미지에서 고유한 run ID는 9mxi1arc
입니다.

사용자 지정 run ID
id
파라미터를 wandb.init
메서드에 전달하여 사용자 고유의 run ID를 지정할 수 있습니다.
import wandb
run = wandb.init(entity="<project>", project="<project>", id="<run-id>")
run의 고유 ID를 사용하여 W&B 앱 UI에서 run의 Overview 페이지로 직접 이동할 수 있습니다. 다음 셀은 특정 run에 대한 URL 경로를 보여줍니다.
https://wandb.ai/<entity>/<project>/<run-id>
각도 괄호(<>
)로 묶인 값은 엔터티, 프로젝트 및 run ID의 실제 값에 대한 자리 표시자입니다.
Run 이름 지정
run 이름은 사람이 읽을 수 있는 고유하지 않은 식별자입니다.
기본적으로 W&B는 새 run을 초기화할 때 임의의 run 이름을 생성합니다. run 이름은 프로젝트의 워크스페이스 내와 run의 Overview 페이지 상단에 나타납니다.
name
파라미터를 wandb.init
메서드에 전달하여 run 이름을 지정할 수 있습니다.
import wandb
run = wandb.init(entity="<project>", project="<project>", name="<run-name>")
Run에 노트 추가
특정 run에 추가하는 노트는 Overview 탭의 run 페이지와 프로젝트 페이지의 run 테이블에 나타납니다.
- W&B 프로젝트로 이동합니다.
- 프로젝트 사이드바에서 Workspace 탭을 선택합니다.
- 노트를 추가할 run을 run 선택기에서 선택합니다.
- Overview 탭을 선택합니다.
- Description 필드 옆에 있는 연필 아이콘을 선택하고 노트를 추가합니다.
Run 중지
W&B 앱 또는 프로그래밍 방식으로 run을 중지합니다.
- run을 초기화한 터미널 또는 코드 편집기로 이동합니다.
Ctrl+D
를 눌러 run을 중지합니다.
예를 들어, 이전 지침을 따르면 터미널이 다음과 유사하게 보일 수 있습니다.
KeyboardInterrupt
wandb: 🚀 View run legendary-meadow-2 at: https://wandb.ai/nico/history-blaster-4/runs/o8sdbztv
wandb: Synced 5 W&B file(s), 0 media file(s), 0 artifact file(s) and 1 other file(s)
wandb: Find logs at: ./wandb/run-20241106_095857-o8sdbztv/logs
W&B 앱 UI로 이동하여 run이 더 이상 활성 상태가 아닌지 확인합니다.
- run이 기록되고 있는 프로젝트로 이동합니다.
- run 이름을 선택합니다.
legendary-meadow-2
입니다.State 필드 옆에 있는 run의 상태가 running
에서 Killed
로 변경됩니다.

- run이 기록되고 있는 프로젝트로 이동합니다.
- run 선택기 내에서 중지할 run을 선택합니다.
- 프로젝트 사이드바에서 Overview 탭을 선택합니다.
- State 필드 옆에 있는 맨 위 버튼을 선택합니다.
State 필드 옆에 있는 run의 상태가 running
에서 Killed
로 변경됩니다.

가능한 run 상태의 전체 목록은 상태 필드를 참조하십시오.
기록된 Run 보기
Run 상태, run에 기록된 Artifacts, run 중에 기록된 로그 파일 등과 같은 특정 run에 대한 정보를 봅니다.

특정 run을 보려면 다음을 수행하십시오.
-
https://wandb.ai/home에서 W&B 앱 UI로 이동합니다.
-
run을 초기화할 때 지정한 W&B 프로젝트로 이동합니다.
-
프로젝트 사이드바 내에서 Workspace 탭을 선택합니다.
-
run 선택기 내에서 보려는 run을 클릭하거나 일치하는 run을 필터링하기 위해 run 이름의 일부를 입력합니다.
기본적으로 긴 run 이름은 가독성을 위해 중간에서 잘립니다. 대신 run 이름을 시작 또는 끝에서 자르려면 run 목록 상단에 있는 작업
...
메뉴를 클릭한 다음 Run name cropping을 설정하여 끝, 중간 또는 시작을 자릅니다.
특정 run의 URL 경로는 다음 형식을 갖습니다.
https://wandb.ai/<team-name>/<project-name>/runs/<run-id>
각도 괄호(<>
)로 묶인 값은 팀 이름, 프로젝트 이름 및 run ID의 실제 값에 대한 자리 표시자입니다.
Overview 탭
Overview 탭을 사용하여 프로젝트에서 다음과 같은 특정 run 정보를 알아봅니다.
- Author: run을 만드는 W&B 엔터티입니다.
- Command: run을 초기화하는 코맨드입니다.
- Description: 사용자가 제공한 run에 대한 설명입니다. run을 만들 때 설명을 지정하지 않으면 이 필드는 비어 있습니다. W&B 앱 UI를 사용하거나 Python SDK를 사용하여 프로그래밍 방식으로 run에 설명을 추가할 수 있습니다.
- Duration: run이 일시 중지 또는 대기 시간을 제외하고 활발하게 연산하거나 데이터를 로깅하는 데 걸리는 시간입니다.
- Git repository: run과 연결된 Git 리포지토리입니다. 이 필드를 보려면 Git을 활성화해야 합니다.
- Host name: W&B가 run을 연산하는 위치입니다. 머신에서 로컬로 run을 초기화하는 경우 W&B는 머신 이름을 표시합니다.
- Name: run 이름입니다.
- OS: run을 초기화하는 운영 체제입니다.
- Python executable: run을 시작하는 코맨드입니다.
- Python version: run을 만드는 Python 버전을 지정합니다.
- Run path:
entity/project/run-ID
형식으로 고유한 run 식별자를 식별합니다. - Runtime: run 시작부터 종료까지의 총 시간을 측정합니다. run에 대한 실제 시간입니다. Runtime에는 run이 일시 중지되거나 리소스를 기다리는 시간이 포함되지만 Duration에는 포함되지 않습니다.
- Start time: run을 초기화한 타임스탬프입니다.
- State: run 상태입니다.
- System hardware: W&B가 run을 연산하는 데 사용하는 하드웨어입니다.
- Tags: 문자열 목록입니다. 태그는 관련 run을 함께 구성하거나
베이스라인
또는프로덕션
과 같은 임시 레이블을 적용하는 데 유용합니다. - W&B CLI version: run 코맨드를 호스팅한 머신에 설치된 W&B CLI 버전입니다.
W&B는 Overview 섹션 아래에 다음 정보를 저장합니다.
- Artifact Outputs: run에서 생성된 Artifacts 출력입니다.
- Config:
wandb.config
로 저장된 구성 파라미터 목록입니다. - Summary:
wandb.log()
로 저장된 요약 파라미터 목록입니다. 기본적으로 W&B는 이 값을 마지막으로 기록된 값으로 설정합니다.

여기에서 프로젝트 Overview의 예를 봅니다.
Workspace 탭
Workspace 탭을 사용하여 자동 생성된 플롯 및 사용자 지정 플롯, 시스템 메트릭 등과 같은 시각화를 보고, 검색하고, 그룹화하고, 정렬합니다.

여기에서 프로젝트 워크스페이스의 예를 봅니다.
Runs 탭
Runs 탭을 사용하여 run을 필터링, 그룹화 및 정렬합니다.

다음 탭은 Runs 탭에서 수행할 수 있는 몇 가지 일반적인 작업을 보여줍니다.
Runs 탭에는 프로젝트의 run에 대한 세부 정보가 표시됩니다. 기본적으로 많은 열이 표시됩니다.
- 표시되는 모든 열을 보려면 페이지를 가로로 스크롤합니다.
- 열 순서를 변경하려면 열을 왼쪽이나 오른쪽으로 드래그합니다.
- 열을 고정하려면 열 이름 위로 마우스를 가져간 다음 나타나는 작업 메뉴
...
를 클릭하고 Pin column을 클릭합니다. 고정된 열은 Name 열 뒤에 페이지 왼쪽에 가깝게 나타납니다. 고정된 열을 고정 해제하려면 Unpin column을 선택합니다. - 열을 숨기려면 열 이름 위로 마우스를 가져간 다음 나타나는 작업 메뉴
...
를 클릭하고 Hide column을 클릭합니다. 현재 숨겨진 모든 열을 보려면 Columns를 클릭합니다.- 숨겨진 열 이름을 클릭하여 숨김을 해제합니다.
- 보이는 열 이름을 클릭하여 숨깁니다.
- 보이는 열 옆에 있는 핀 아이콘을 클릭하여 고정합니다.
Runs 탭을 사용자 지정하면 사용자 지정이 Workspace 탭의 Runs 선택기에 반영됩니다.
지정된 열의 값을 기준으로 테이블의 모든 행을 정렬합니다.
- 마우스를 열 제목 위로 가져갑니다. 케밥 메뉴(세 개의 세로 문서)가 나타납니다.
- 케밥 메뉴(세 개의 세로 점)를 선택합니다.
- Sort Asc 또는 Sort Desc를 선택하여 행을 각각 오름차순 또는 내림차순으로 정렬합니다.

위의 이미지는 val_acc
라는 테이블 열에 대한 정렬 옵션을 보는 방법을 보여줍니다.
대시보드 위의 Filter 버튼으로 표현식을 사용하여 모든 행을 필터링합니다.

Add filter를 선택하여 행에 하나 이상의 필터를 추가합니다. 세 개의 드롭다운 메뉴가 나타납니다. 왼쪽에서 오른쪽으로 필터 유형은 열 이름, 연산자 및 값을 기준으로 합니다.
열 이름 | 이항 관계 | 값 | |
---|---|---|---|
허용된 값 | String | =, ≠, ≤, ≥, IN, NOT IN, | Integer, float, string, 타임스탬프, null |
표현식 편집기는 열 이름과 논리적 술어 구조에 대한 자동 완성 기능을 사용하여 각 용어에 대한 옵션 목록을 보여줍니다. “and” 또는 “or”(때로는 괄호)를 사용하여 여러 논리적 술어를 하나의 표현식으로 연결할 수 있습니다.

대시보드 위의 Group by 버튼을 사용하여 특정 열의 값을 기준으로 모든 행을 그룹화합니다.

기본적으로 이렇게 하면 다른 숫자 열이 해당 그룹 전체의 해당 열에 대한 값 분포를 보여주는 히스토그램으로 바뀝니다. 그룹화는 데이터에서 상위 수준 패턴을 이해하는 데 유용합니다.
System 탭
System 탭은 CPU 사용률, 시스템 메모리, 디스크 I/O, 네트워크 트래픽, GPU 사용률 등과 같은 특정 run에 대해 추적된 시스템 메트릭을 보여줍니다.
W&B가 추적하는 시스템 메트릭의 전체 목록은 시스템 메트릭을 참조하십시오.

여기에서 시스템 탭의 예를 봅니다.
Logs 탭
Log 탭은 표준 출력(stdout
) 및 표준 오류(stderr
)와 같은 코맨드라인에 출력된 내용을 보여줍니다.
로그 파일을 다운로드하려면 오른쪽 상단 모서리에 있는 Download 버튼을 선택합니다.

여기에서 로그 탭의 예를 봅니다.
Files 탭
Files 탭을 사용하여 모델 체크포인트, 검증 세트 예제 등과 같은 특정 run과 연결된 파일을 봅니다.

여기에서 파일 탭의 예를 봅니다.
Artifacts 탭
Artifacts 탭에는 지정된 run에 대한 입력 및 출력 artifacts가 나열됩니다.

여기에서 artifacts 탭의 예를 봅니다.
Run 삭제
W&B 앱으로 프로젝트에서 하나 이상의 run을 삭제합니다.
- 삭제할 run이 포함된 프로젝트로 이동합니다.
- 프로젝트 사이드바에서 Runs 탭을 선택합니다.
- 삭제할 run 옆에 있는 확인란을 선택합니다.
- 테이블 위에 있는 Delete 버튼(휴지통 아이콘)을 선택합니다.
- 나타나는 모달에서 Delete를 선택합니다.
Run 구성
이 섹션에서는 그룹 및 job 유형을 사용하여 run을 구성하는 방법에 대한 지침을 제공합니다. run을 그룹(예: 실험 이름)에 할당하고 job 유형(예: 전처리, 트레이닝, 평가, 디버깅)을 지정하면 워크플로우를 간소화하고 모델 비교를 개선할 수 있습니다.
Run에 그룹 또는 Job 유형 할당
W&B의 각 run은 그룹과 Job 유형으로 분류할 수 있습니다.
- Group: 실험에 대한 광범위한 범주로, run을 구성하고 필터링하는 데 사용됩니다.
- Job 유형:
전처리
,트레이닝
또는평가
와 같은 run의 기능입니다.
다음 예제 워크스페이스는 Fashion-MNIST 데이터셋에서 점점 더 많은 양의 데이터를 사용하여 베이스라인 모델을 트레이닝합니다. 워크스페이스는 색상을 사용하여 사용된 데이터 양을 나타냅니다.
- 노란색에서 진한 녹색은 베이스라인 모델에 대해 점점 더 많은 양의 데이터를 나타냅니다.
- 밝은 파란색에서 보라색에서 마젠타색은 추가 파라미터가 있는 더 복잡한 “이중” 모델에 대한 데이터 양을 나타냅니다.
W&B의 필터링 옵션과 검색 창을 사용하여 다음과 같은 특정 조건을 기준으로 run을 비교합니다.
- 동일한 데이터셋에서 트레이닝합니다.
- 동일한 테스트 세트에서 평가합니다.
필터를 적용하면 Table 보기가 자동으로 업데이트됩니다. 이렇게 하면 모델 간의 성능 차이를 식별할 수 있습니다(예: 특정 클래스가 다른 모델에 비해 훨씬 더 어려운지 확인).
Filter and search runs
프로젝트 페이지에서 사이드바 및 테이블을 사용하는 방법
Fork a run
W&B run 포크하기
Group runs into experiments
트레이닝 및 평가 run을 그룹화하여 더 큰 Experiments로 구성
Resume a run
일시 중지되었거나 종료된 W&B Run 다시 시작
Rewind a run
되감기
Send an alert
Slack 또는 이메일로 Python 코드에서 트리거되는 알림을 보냅니다.
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.