> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-hivemind-launch.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 분석을 위해 병합 보기 또는 나란히 보기에서 W&B Tables 데이터를 비교, 필터링, 그룹화, 정렬하고 시각화합니다.

# 테이블 시각화 및 분석

W\&B Tables를 사용자 지정해 머신 러닝 모델 성능에 관한 질문에 답하고, 데이터를 분석하는 등 다양한 작업을 수행할 수 있습니다.

대화형으로 데이터를 탐색해 다음을 수행할 수 있습니다.

* [artifact 버전으로 로깅된 두 개의 W\&B Tables를 비교](#table-comparison-options)하여 데이터 또는 모델 성능의 변화를 분석합니다.
* 데이터에서 더 상위 수준의 패턴을 파악합니다.
* [run 전반에 걸쳐 테이블에 로깅한 값이 어떻게 변하는지 확인](#visualize-how-values-change-throughout-your-runs)합니다.

<Note>
  W\&B Tables에는 다음과 같은 동작이 있습니다.

  1. **artifact 컨텍스트에서는 상태를 유지하지 않음**: artifact 버전과 함께 로깅된 테이블은 브라우저 창을 닫으면 기본 상태로 재설정됩니다.
  2. **workspace 또는 Report 컨텍스트에서는 상태 유지**: 단일 run workspace, 다중 run 프로젝트 workspace 또는 Report에서 테이블에 적용한 변경 사항은 유지됩니다.

  현재 W\&B Table 뷰를 저장하는 방법은 [뷰 저장](#save-your-view)을 참조하세요.
</Note>

<div id="table-comparison-options">
  ## 테이블 비교 옵션
</div>

[병합 뷰](#merged-view) 또는 [나란히 뷰](#side-by-side-view)로 두 개의 테이블을 비교할 수 있습니다. 예를 들어, 아래 이미지는 MNIST 데이터의 테이블 비교를 보여줍니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/table_comparison.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=3c976404724079a866ae9c0b92760d19" alt="트레이닝 에포크 비교" max-width="90%" width="2256" height="1182" data-path="images/data_vis/table_comparison.png" />
</Frame>

두 개의 테이블을 비교하려면 다음 단계를 따르세요:

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

다음 이미지는 5개 에포크 각각 이후의 MNIST 검증 데이터에 대한 모델의 예측을 보여줍니다([여기에서 대화형 예제 보기](https://wandb.ai/stacey/mnist-viz/artifacts/predictions/baseline/d888bc05719667811b23/files/predictions.table.json)).

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/preds_mnist.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=85208afbf709fbde396f095e77402f2c" alt="'predictions'를 클릭하여 Table 보기" max-width="90%" width="1698" height="1062" data-path="images/data_vis/preds_mnist.png" />
</Frame>

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/preds_2.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=d528b802917cb6ca9895fba67d0fbc6b" alt="모델 예측 비교" max-width="90%" width="1328" height="1292" data-path="images/data_vis/preds_2.png" />
</Frame>

<div id="merged-view">
  ### 병합 뷰
</div>

처음에는 두 테이블이 병합된 상태로 함께 표시됩니다. 먼저 선택한 첫 번째 테이블은 인덱스 0으로 표시되고 파란색으로 강조되며, 두 번째 테이블은 인덱스 1로 표시되고 노란색으로 강조됩니다. [여기에서 병합된 테이블의 라이브 예제를 확인하세요](https://wandb.ai/stacey/mnist-viz/artifacts/predictions/baseline/d888bc05719667811b23/files/predictions.table.json#7dd0cd845c0edb469dec).

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/merged_view.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=ca72b1ca4e9f83a9e27e99330884964c" alt="병합된 뷰" max-width="90%" width="2048" height="1039" data-path="images/data_vis/merged_view.png" />
</Frame>

병합된 뷰에서는 다음을 할 수 있습니다.

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

<div id="side-by-side-view">
  ### 나란히 비교 뷰
</div>

두 개의 테이블을 나란히 보려면 첫 번째 드롭다운을 "Merge Tables: Table"에서 "List of: Table"로 변경한 다음, 그에 맞게 "Page size"를 업데이트합니다. 여기서 먼저 선택한 Table은 왼쪽에, 두 번째 Table은 오른쪽에 표시됩니다. 또한 "Vertical" 체크박스를 클릭하면 이 테이블들을 세로 방향으로도 비교할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/side_by_side.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=5dcd42a12f4d6000692a8d4be98fa4c6" alt="나란히 표시된 테이블 뷰" max-width="90%" width="2762" height="1254" data-path="images/data_vis/side_by_side.png" />
</Frame>

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

<div id="compare-artifacts">
  ## Artifacts 비교
</div>

데이터 또는 모델 성능의 변화를 분석하려면 artifact 버전으로 기록된 두 개의 W\&B Tables를 비교하세요. 테이블을 비교하려면 병합 뷰 또는 나란히 뷰로 비교하세요.

<div id="compare-tables-across-time">
  ### 시간 경과에 따른 테이블 비교
</div>

트레이닝 과정에서 모델 성능을 분석하려면, 의미 있는 각 step마다 artifact에 테이블을 기록하세요. 예를 들어 각 검증 step이 끝날 때마다, 트레이닝 50에포크마다, 또는 파이프라인에 맞는 주기로 테이블을 기록할 수 있습니다. 나란히 뷰를 사용해 모델 예측의 변화를 시각화하세요.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/RkwlHgADGOiVkimG/images/data_vis/compare_across_time.png?fit=max&auto=format&n=RkwlHgADGOiVkimG&q=85&s=e9423f0146beb3b6ee67ff2ad53b29a5" alt="트레이닝 진행 상황 비교" max-width="90%" width="2620" height="1384" data-path="images/data_vis/compare_across_time.png" />
</Frame>

트레이닝 과정 전반의 예측 시각화에 대한 더 자세한 워크스루는 [시간 경과에 따른 예측 리포트](https://wandb.ai/stacey/mnist-viz/reports/Visualize-Predictions-over-Time--Vmlldzo1OTQxMTk)와 이 대화형 [노트북 예제](https://colab.research.google.com/github/wandb/examples/blob/master/colabs/datasets-predictions/W%26B_Tables_Quickstart.ipynb?_gl=1*kf20ui*_gcl_au*OTI3ODM1OTcyLjE3MzE0MzU1NjU.*_ga*ODEyMjQ4MjkyLjE3MzE0MzU1NjU.*_ga_JH1SJHJQXJ*MTczMTcwNTMwNS45LjEuMTczMTcwNTM5My4zMy4wLjA.*_ga_GMYDGNGKDT*MTczMTcwNTMwNS44LjEuMTczMTcwNTM5My4wLjAuMA..)를 참조하세요.

<div id="compare-tables-across-model-variants">
  ### 모델 변형 간 테이블 비교하기
</div>

서로 다른 두 모델에서 같은 step에 로깅된 두 artifact 버전을 비교해, 서로 다른 설정(하이퍼파라미터, 기본 아키텍처 등)에 따른 모델 성능을 분석합니다.

예를 들어, 첫 번째 합성곱 레이어가 32에서 64로, 두 번째가 128에서 256으로, 학습률이 0.001에서 0.002로 증가한 새 모델 변형 `2x_layers_2x_lr`와 `baseline`의 예측을 비교할 수 있습니다. [이 라이브 예시](https://wandb.ai/stacey/mnist-viz/artifacts/predictions/baseline/d888bc05719667811b23/files/predictions.table.json#2bb3b1d40aa777496b5d\$2x_layers_2x_lr)에서 나란히 뷰를 사용해 1 트레이닝 에포크 후(왼쪽 탭)와 5 트레이닝 에포크 후(오른쪽 탭)의 올바르지 않은 예측만 필터링해 보세요.

<Tabs>
  <Tab title="1 트레이닝 에포크">
    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/RkwlHgADGOiVkimG/images/data_vis/compare_across_variants.png?fit=max&auto=format&n=RkwlHgADGOiVkimG&q=85&s=bb3f502c4700275d3e2c0a0d310b6a4c" alt="성능 비교" width="2636" height="1436" data-path="images/data_vis/compare_across_variants.png" />
    </Frame>
  </Tab>

  <Tab title="5 트레이닝 에포크">
    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/RkwlHgADGOiVkimG/images/data_vis/compare_across_variants_after_5_epochs.png?fit=max&auto=format&n=RkwlHgADGOiVkimG&q=85&s=e2a90f90d97a58677cb1a2c1cf061e13" alt="변형 성능 비교" width="2628" height="1390" data-path="images/data_vis/compare_across_variants_after_5_epochs.png" />
    </Frame>
  </Tab>
</Tabs>

<div id="visualize-how-values-change-throughout-your-runs">
  ## run 전반에 걸친 값 변화 시각화하기
</div>

step 슬라이더를 사용하면 테이블에 로깅한 값이 여러 run에 걸쳐 어떻게 변하는지 확인할 수 있습니다. step 슬라이더를 움직여 서로 다른 step에 로깅된 값을 확인하세요. 예를 들어 각 run 이후 `loss`, `accuracy`, 또는 다른 메트릭이 어떻게 변하는지 볼 수 있습니다.

슬라이더는 키를 사용해 step 값을 확인합니다. 슬라이더의 기본 키는 `_step`이며, 이는 W\&B가 자동으로 로깅해 주는 특수 키입니다. `_step` 키는 코드에서 `wandb.Run.log()`를 call할 때마다 1씩 증가하는 정수입니다.

W\&B Table에 step 슬라이더를 추가하려면 다음과 같이 하세요:

1. 프로젝트의 Workspace로 이동합니다.
2. Workspace의 오른쪽 상단에서 **Add panel**을 클릭합니다.
3. **Query panel**을 선택합니다.
4. query expression editor에서 `runs`를 선택한 다음 키보드에서 **Enter**를 누릅니다.
5. 패널 설정을 보려면 톱니바퀴 아이콘을 클릭합니다.
6. **Render As** 선택기를 **Stepper**로 설정합니다.
7. **Stepper Key**를 `_step` 또는 step 슬라이더의 [단위로 사용할 키](#custom-step-keys)로 설정합니다.

다음 이미지는 W\&B run 세 개와 각 run이 step 295에서 로깅한 값을 보여주는 Query panel입니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/stepper_key.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=de76f55613d4592c5a7a2ade12900275" alt="Step 슬라이더 기능" width="3492" height="2370" data-path="images/data_vis/stepper_key.png" />
</Frame>

W\&B App UI에서는 여러 step에서 중복된 값이 보일 수 있습니다. 이러한 중복은 여러 run이 서로 다른 step에서 같은 값을 로깅했거나, 어떤 run이 모든 step마다 값을 로깅하지 않은 경우 발생할 수 있습니다. 특정 step의 값이 없으면 W\&B는 마지막으로 로깅된 값을 슬라이더 키로 사용합니다.

<div id="custom-step-key">
  ### 맞춤형 step 키
</div>

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`에서 로깅된 값을 반환합니다

<div id="save-your-view">
  ## 뷰 저장하기
</div>

run 워크스페이스, 프로젝트 워크스페이스 또는 Reports에서 상호작용하는 테이블은 뷰 상태를 자동으로 저장합니다. 테이블 오퍼레이션을 적용한 후 브라우저를 닫아도, 다음에 해당 테이블로 이동하면 마지막으로 보던 설정이 유지됩니다.

<Note>
  artifact 컨텍스트에서 상호작용하는 테이블은 상태를 유지하지 않습니다.
</Note>

워크스페이스의 테이블을 특정 상태로 저장하려면 W\&B Reports로 내보내세요. 테이블을 Reports로 내보내려면 다음과 같이 하세요.

1. 워크스페이스 시각화 패널의 오른쪽 상단에서 **action (<Icon icon="ellipsis-vertical" iconType="solid" />)** 메뉴를 선택합니다.
2. **Share panel** 또는 **Add to report**를 선택합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/GExaOHOKeIAPE2Yp/images/data_vis/share_your_view.png?fit=max&auto=format&n=GExaOHOKeIAPE2Yp&q=85&s=5eb230eb65bab44eb3222cf7a3188db2" alt="Reports 공유 옵션" max-width="90%" width="1128" height="434" data-path="images/data_vis/share_your_view.png" />
</Frame>

<div id="examples">
  ## 예시
</div>

다음 Reports는 W\&B Tables의 다양한 사용 사례를 보여줍니다:

* [시간 경과에 따른 예측 시각화](https://wandb.ai/stacey/mnist-viz/reports/Visualize-Predictions-over-Time--Vmlldzo1OTQxMTk)
* [Workspaces에서 Tables 비교하기](https://wandb.ai/stacey/xtable/reports/How-to-Compare-Tables-in-Workspaces--Vmlldzo4MTc0MTA)
* [이미지 및 분류 모델](https://wandb.ai/stacey/mendeleev/reports/Tables-Tutorial-Visualize-Data-for-Image-Classification--VmlldzozNjE3NjA)
* [텍스트 및 생성형 언어 모델](https://wandb.ai/stacey/nlg/reports/Tables-Tutorial-Visualize-Text-Data-Predictions---Vmlldzo1NzcwNzY)
* [개체명 인식](https://wandb.ai/stacey/ner_spacy/reports/Named-Entity-Recognition--Vmlldzo3MDE3NzQ)
* [AlphaFold 단백질](https://wandb.ai/wandb/examples/reports/AlphaFold-ed-Proteins-in-W-B-Tables--Vmlldzo4ODc0MDc)
