- artifact 버전으로 로깅된 두 개의 W&B Tables를 비교하여 데이터 또는 모델 성능의 변화를 분석합니다.
- 데이터에서 더 상위 수준의 패턴을 파악합니다.
- run 전반에 걸쳐 테이블에 로깅한 값이 어떻게 변하는지 확인합니다.
W&B Tables에는 다음과 같은 동작이 있습니다.
- artifact 컨텍스트에서는 상태를 유지하지 않음: artifact 버전과 함께 로깅된 테이블은 브라우저 창을 닫으면 기본 상태로 재설정됩니다.
- workspace 또는 Report 컨텍스트에서는 상태 유지: 단일 run workspace, 다중 run 프로젝트 workspace 또는 Report에서 테이블에 적용한 변경 사항은 유지됩니다.
테이블 비교 옵션

- W&B App에서 프로젝트로 이동합니다.
- 프로젝트 사이드바에서 artifacts 아이콘을 선택합니다.
- artifact 버전을 선택합니다.

- 사이드바에서 비교하려는 두 번째 artifact 버전 위에 마우스를 올리고 Compare가 나타나면 클릭합니다. 예를 들어, 아래 이미지에서는 “v4”로 표시된 버전을 선택해 같은 모델을 5 에포크 동안 트레이닝한 후의 MNIST 예측과 비교합니다.

병합 뷰

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

- 테이블을 한눈에 비교: 모든 오퍼레이션(정렬, 필터, 그룹화)을 두 테이블에 동시에 적용해 변경 사항이나 차이를 빠르게 확인할 수 있습니다. 예를 들어, 추측값별로 그룹화한 올바르지 않은 예측, 전체적으로 가장 어려운 음성 사례, 실제 레이블별 신뢰도 점수 분포 등을 볼 수 있습니다.
- 두 테이블을 독립적으로 탐색: 스크롤하면서 관심 있는 쪽이나 행에 집중할 수 있습니다.
Artifacts 비교
시간 경과에 따른 테이블 비교

모델 변형 간 테이블 비교하기
2x_layers_2x_lr와 baseline의 예측을 비교할 수 있습니다. 이 라이브 예시에서 나란히 뷰를 사용해 1 트레이닝 에포크 후(왼쪽 탭)와 5 트레이닝 에포크 후(오른쪽 탭)의 올바르지 않은 예측만 필터링해 보세요.
- 1 트레이닝 에포크
- 5 트레이닝 에포크

run 전반에 걸친 값 변화 시각화하기
loss, accuracy, 또는 다른 메트릭이 어떻게 변하는지 볼 수 있습니다.
슬라이더는 키를 사용해 step 값을 확인합니다. 슬라이더의 기본 키는 _step이며, 이는 W&B가 자동으로 로깅해 주는 특수 키입니다. _step 키는 코드에서 wandb.Run.log()를 call할 때마다 1씩 증가하는 정수입니다.
W&B Table에 step 슬라이더를 추가하려면 다음과 같이 하세요:
- 프로젝트의 Workspace로 이동합니다.
- Workspace의 오른쪽 상단에서 Add panel을 클릭합니다.
- Query panel을 선택합니다.
- query expression editor에서
runs를 선택한 다음 키보드에서 Enter를 누릅니다. - 패널 설정을 보려면 톱니바퀴 아이콘을 클릭합니다.
- Render As 선택기를 Stepper로 설정합니다.
- Stepper Key를
_step또는 step 슬라이더의 단위로 사용할 키로 설정합니다.

맞춤형 step 키
epoch 또는 global_step처럼 run에서 step 키로 사용할 수 있도록 로깅한 숫자형 metric이면 무엇이든 될 수 있습니다. 맞춤형 step 키를 사용하면 W&B는 해당 키의 각 값을 run의 step(_step)에 매핑합니다.
이 표는 맞춤형 step 키 epoch가 서로 다른 세 개의 run인 serene-sponge, lively-frog, vague-cloud에서 _step 값에 어떻게 매핑되는지 보여줍니다. 각 행은 run의 특정 _step에서 wandb.Run.log()를 호출한 한 번의 call을 나타냅니다. 열에는 각 step에서 로깅된 epoch 값이 있는 경우 그에 해당하는 값이 표시됩니다. 공간 절약을 위해 일부 _step 값은 생략했습니다.
wandb.Run.log()가 처음 호출되었을 때는 어떤 run도 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에서 로깅된 값을 반환합니다
뷰 저장하기
artifact 컨텍스트에서 상호작용하는 테이블은 상태를 유지하지 않습니다.
- 워크스페이스 시각화 패널의 오른쪽 상단에서 action () 메뉴를 선택합니다.
- Share panel 또는 Add to report를 선택합니다.

