- 아티팩트 버전으로 기록된 두 개의 W&B Tables를 비교하여 데이터 또는 모델 성능 변화를 분석합니다.
- 데이터의 상위 수준 패턴을 파악합니다.
- 테이블에 기록한 값이 전체 실행 동안 어떻게 변하는지 확인합니다.
W&B Tables는 다음과 같은 동작 특성을 가집니다:
- 아티팩트 컨텍스트에서의 비상태성(stateless): 아티팩트 버전과 함께 기록된 모든 테이블은 브라우저 창을 닫으면 기본 상태로 초기화됩니다.
- 워크스페이스 또는 Report 컨텍스트에서의 상태성(stateful): 단일 실행 워크스페이스, 다중 실행 프로젝트 워크스페이스 또는 Report에서 테이블에 가한 변경 사항은 유지됩니다.
테이블 비교 옵션

- W&B App에서 자신의 프로젝트로 이동합니다.
- 왼쪽 패널에서 아티팩트 아이콘을 선택합니다.
- 아티팩트 버전을 선택합니다.

- 사이드바에서 비교하려는 두 번째 아티팩트 버전에 마우스를 올리면 나타나는 Compare를 클릭합니다. 예를 들어, 아래 이미지에서는 “v4”로 라벨링된 버전을 선택하여, 동일한 모델이 5 epoch 학습 후 생성한 MNIST 예측과 비교합니다.

통합 보기

- 조인 키 선택: 왼쪽 상단의 드롭다운을 사용해 두 테이블의 조인 키로 사용할 열을 지정합니다. 일반적으로 각 행의 고유 식별자(예: 데이터셋의 특정 예시의 파일 이름 또는 생성된 샘플의 증가하는 인덱스)를 사용합니다. 현재는 어떤 열이든 선택할 수 있으므로, 테이블이 알아보기 어려워지거나 쿼리가 느려질 수 있다는 점에 유의하세요.
- 조인 대신 연결(concatenate): 이 드롭다운에서 “concatenating all tables”를 선택해 두 테이블의 모든 행을 합쳐 하나의 더 큰 테이블로 만들고, 열을 기준으로 조인하지 않도록 합니다.
- 각 테이블을 명시적으로 참조: 필터 식에서 0, 1, * 를 사용해 한 개 또는 두 테이블 인스턴스 중 어느 쪽의 열인지 명시적으로 지정할 수 있습니다.
- 자세한 수치 차이를 히스토그램으로 시각화: 각 셀의 값을 한눈에 비교할 수 있습니다.
나란히 비교

- 테이블을 한눈에 비교: 두 테이블 모두에 정렬, 필터, 그룹과 같은 작업을 동시에 적용해 변경 사항이나 차이점을 빠르게 확인합니다. 예를 들어, 추측값별로 그룹화된 잘못된 예측, 전체에서 가장 어려운 네거티브, 실제 레이블별 신뢰도 점수 분포 등을 볼 수 있습니다.
- 두 테이블을 독립적으로 탐색: 스크롤하여 관심 있는 측/행에 집중합니다.
아티팩트 비교
시간에 따른 테이블 비교

모델 변형 간 테이블 비교
2x_layers_2x_lr와 baseline 모델의 예측 결과를 비교할 수 있습니다. 이 라이브 예시에서 좌우 나란히 보기(side-by-side view)를 사용한 뒤, 1 에포크 학습 후의 오분류(왼쪽 탭)와 5 에포크 학습 후의 오분류(오른쪽 탭)만 보이도록 필터링합니다.
- 1 training epoch
- 5 training epochs

실행 전체에서 값이 어떻게 변하는지 시각화하기
_step이며, 이는 W&B가 자동으로 기록하는 특수 키입니다. _step 키는 코드에서 wandb.Run.log()를 호출할 때마다 1씩 증가하는 정수입니다.
W&B Table에 스텝 슬라이더를 추가하려면:
- 프로젝트의 워크스페이스로 이동합니다.
- 워크스페이스 오른쪽 상단에서 Add panel을 클릭합니다.
- Query panel을 선택합니다.
- 쿼리 표현식 편집기에서
runs를 선택한 후 키보드에서 Enter를 누릅니다. - 톱니바퀴 아이콘을 클릭해 패널 설정을 확인합니다.
- Render As 선택기를 Stepper로 설정합니다.
- Stepper Key를
_step또는 스텝 슬라이더의 단위로 사용할 키로 설정합니다.

사용자 정의 step 키
epoch 또는 global_step처럼 실행에서 step 키로 로그하는 임의의 숫자형 메트릭이 될 수 있습니다. 사용자 정의 step 키를 사용하면 W&B는 해당 키의 각 값을 실행의 step(_step)에 매핑합니다.
다음 표는 사용자 정의 step 키 epoch가 세 개의 서로 다른 실행인 serene-sponge, lively-frog, vague-cloud에서 _step 값에 어떻게 매핑되는지 보여줍니다. 각 행은 실행에서 특정 _step에서 호출된 wandb.Run.log()를 나타냅니다. 각 열은 해당 step에서 로그된 값이 있을 경우, 그에 대응하는 epoch 값을 보여줍니다. 공간을 절약하기 위해 일부 _step 값은 생략했습니다.
wandb.Run.log()가 처음 호출되었을 때는 어떤 실행도 epoch 값을 로그하지 않았기 때문에, 표에는 epoch에 대해 비어 있는 값이 표시됩니다.
_step | vague-cloud (epoch) | lively-frog (epoch) | serene-sponge (epoch) |
|---|---|---|---|
| 1 | |||
| 2 | 1 | ||
| 4 | 1 | 2 | |
| 5 | 1 | ||
| 6 | 3 | ||
| 8 | 2 | 4 | |
| 10 | 5 | ||
| 12 | 3 | 6 | |
| 14 | 7 | ||
| 15 | 2 | ||
| 16 | 4 | 8 | |
| 18 | 9 | ||
| 20 | 3 | 5 | 10 |
epoch = 1로 설정되어 있으면 다음이 발생합니다.
vague-cloud는epoch = 1을 찾아_step = 5에서 로그된 값을 반환합니다.lively-frog는epoch = 1을 찾아_step = 4에서 로그된 값을 반환합니다.serene-sponge는epoch = 1을 찾아_step = 2에서 로그된 값을 반환합니다.
epoch = 9로 설정되어 있으면 다음과 같습니다.
vague-cloud도epoch = 9를 로그하지 않았으므로, W&B는 직전의 최신 값인epoch = 3을 사용하고_step = 20에서 로그된 값을 반환합니다.lively-frog는epoch = 9를 로그하지 않았지만, 직전의 최신 값이epoch = 5이므로_step = 20에서 로그된 값을 반환합니다.serene-sponge는epoch = 9를 찾아_step = 18에서 로그된 값을 반환합니다.
뷰 저장하기
아티팩트 컨텍스트에서 상호작용하는 테이블은 상태를 유지하지 않습니다.
- 워크스페이스 시각화 패널 오른쪽 상단의 kebab 아이콘(세로 점 3개)을 선택합니다.
- Share panel 또는 Add to report 중 하나를 선택합니다.

