메인 콘텐츠로 건너뛰기
W&B 프로젝트에서 사용자 정의 차트를 만들어 보세요. 원하는 데이터 테이블을 로깅하고 원하는 대로 시각화할 수 있습니다. Vega의 강력한 기능을 활용해 글꼴, 색상, 툴팁 등의 세부 설정을 제어할 수 있습니다.
vega.github.io/vega에서 지원하는 차트

동작 방식

  1. 데이터 로깅: 스크립트에서 config와 요약 데이터를 로깅합니다.
  2. 차트 사용자 정의: GraphQL 쿼리로 로깅된 데이터를 가져옵니다. 강력한 시각화 문법인 Vega로 쿼리 결과를 시각화합니다.
  3. 차트 로깅: 스크립트에서 wandb.plot_table()로 사용자 정의 프리셋을 호출합니다.
PR 및 ROC 곡선
예상한 데이터가 보이지 않으면, 찾고 있는 열이 선택된 실행에서 로깅되지 않았을 수 있습니다. 차트를 저장한 다음 실행 테이블로 돌아가 eye 아이콘을 사용해 선택된 실행을 확인합니다.

스크립트에서 차트 기록하기

기본 제공 프리셋

W&B에는 스크립트에서 바로 로깅해 사용할 수 있는 여러 가지 내장 차트 프리셋이 있습니다. 여기에는 선 그래프, 산점도, 막대그래프, 히스토그램, PR 커브, ROC 커브 등이 포함됩니다.
wandb.plot.line()사용자 지정 선 플롯을 로그로 남깁니다. x와 y라는 임의의 축 위에 있는 (x, y) 점들을 순서대로 연결한 목록입니다.
with wandb.init() as run:
  data = [[x, y] for (x, y) in zip(x_values, y_values)]
  table = wandb.Table(data=data, columns=["x", "y"])
  run.log(
      {
          "my_custom_plot_id": wandb.plot.line(
              table, "x", "y", title="Custom Y vs X Line Plot"
          )
      }
  )
선 그래프(line plot)는 임의의 두 차원에서 곡선을 기록합니다. 두 개의 값 리스트를 서로에 대해 플로팅하는 경우, 각 리스트의 값 개수가 반드시 정확히 같아야 합니다(예: 각 점에는 x와 y가 모두 있어야 합니다).
Custom line plot
예시 리포트 보기 또는 예시 Google Colab 노트북 사용해 보기.

사용자 지정 프리셋

기본 제공 프리셋을 수정하거나 새 프리셋을 만든 다음 차트를 저장합니다. 스크립트에서 해당 사용자 지정 프리셋으로 직접 로그 데이터를 남기려면 차트 ID를 사용하세요. 예제 Google Colab 노트북 실행해 보기.
# 플롯할 열이 포함된 테이블 생성
table = wandb.Table(data=data, columns=["step", "height"])

# 테이블의 열을 차트의 필드에 매핑
fields = {"x": "step", "value": "height"}

# 테이블을 사용하여 새 커스텀 차트 프리셋 채우기
# 저장된 차트 프리셋을 사용하려면 vega_spec_name을 변경
my_custom_chart = wandb.plot_table(
    vega_spec_name="carey/new_chart",
    data_table=table,
    fields=fields,
)
사용자 지정 차트 프리셋

데이터 로깅

스크립트에서 다음과 같은 데이터 유형을 로깅하고 커스텀 차트에서 사용할 수 있습니다:
  • Config: 실험의 초기 설정(독립 변수)입니다. 여기에 학습 시작 시 wandb.Run.config에 키로 로깅한 모든 이름 있는 필드가 포함됩니다. 예를 들어, wandb.Run.config.learning_rate = 0.0001
  • Summary: 학습 중에 로깅되는 단일 값(결과 또는 종속 변수)입니다. 예를 들어, wandb.Run.log({"val_acc" : 0.8}). 학습 중 wandb.Run.log()를 통해 이 키에 여러 번 값을 쓰는 경우, Summary에는 해당 키의 최종 값이 저장됩니다.
  • History: 로깅된 스칼라 값의 전체 시계열은 history 필드를 통해 쿼리에서 사용할 수 있습니다.
  • summaryTable: 여러 값의 목록을 로깅해야 하는 경우, wandb.Table()을 사용해 해당 데이터를 저장한 다음 커스텀 패널에서 이를 쿼리하십시오.
  • historyTable: 히스토리 데이터를 확인해야 하는 경우, 커스텀 차트 패널에서 historyTable을 쿼리하십시오. wandb.Table()을 호출하거나 커스텀 차트를 로깅할 때마다 해당 step에 대한 새로운 테이블이 history에 생성됩니다.

커스텀 테이블을 로깅하는 방법

wandb.Table()을 사용하여 데이터를 2차원 배열 형태로 로깅합니다. 일반적으로 이 테이블의 각 행은 하나의 데이터 포인트를 나타내고, 각 열은 시각화하려는 각 데이터 포인트의 관련 필드/차원을 나타냅니다. 커스텀 패널을 구성하면 전체 테이블은 wandb.Run.log()에 전달된 이름이 지정된 키(아래 예시의 custom_data_table)를 통해 접근할 수 있으며, 개별 필드는 열 이름(x, y, z)을 통해 접근할 수 있습니다. 실험을 진행하는 동안 여러 시점에 테이블을 로깅할 수 있습니다. 각 테이블의 최대 크기는 10,000행입니다. Google Colab에서 예제를 사용해 보세요.
with wandb.init() as run:
  # 커스텀 데이터 테이블 로깅
  my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
  run.log(
      {"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
  )

차트 사용자 지정

새 사용자 지정 차트를 추가해 시작한 다음, 현재 표시된 실행에서 데이터를 선택하도록 쿼리를 편집하세요. 쿼리는 GraphQL을 사용하여 실행의 config, summary, history 필드에서 데이터를 가져옵니다.
사용자 지정 차트 생성

사용자 지정 시각화

오른쪽 상단에서 Chart를 선택해 기본 프리셋 중 하나로 시작합니다. 그런 다음 Chart fields를 선택해 쿼리에서 가져온 데이터를 차트의 해당 필드에 매핑합니다. 다음 이미지는 메트릭을 선택한 다음, 그 메트릭을 아래 막대 차트 필드에 매핑하는 방법의 예를 보여 줍니다.
Creating a custom bar chart

Vega 편집 방법

패널 상단에서 Edit을 클릭해 Vega 편집 모드로 들어갑니다. 여기에서 UI에 표시될 대화형 차트를 만드는 Vega specification을 정의할 수 있습니다. 차트의 모든 요소를 변경할 수 있습니다. 예를 들어, 제목을 바꾸거나 다른 색상 스키마를 선택하거나, 곡선을 연결된 선 대신 일련의 점으로 표시하도록 바꿀 수 있습니다. 또한 Vega transform을 사용해 값 배열을 히스토그램 구간으로 나누는 등, 데이터 자체를 변경할 수도 있습니다. 패널 미리보기는 실시간으로 업데이트되므로, Vega spec 또는 쿼리를 편집하면서 변경 사항의 효과를 바로 확인할 수 있습니다. 자세한 내용은 Vega documentation and tutorials 를 참고하십시오. 필드 참조 W&B에서 차트로 데이터를 가져오려면, Vega spec 어디에나 "${field:<field-name>}" 형식의 템플릿 문자열을 추가하십시오. 그러면 오른쪽 Chart Fields 영역에 드롭다운이 생성되며, 사용자는 이를 사용해 Vega에 매핑할 쿼리 결과 열을 선택할 수 있습니다. 필드의 기본값을 설정하려면 다음 구문을 사용하십시오: "${field:<field-name>:<placeholder text>}"

차트 프리셋 저장하기

모달 하단의 버튼을 사용해 특정 시각화 패널에 대한 변경 사항을 적용할 수 있습니다. 또는 Vega 스펙을 저장해 프로젝트의 다른 곳에서 사용할 수 있습니다. 재사용 가능한 차트 정의를 저장하려면 Vega Editor 상단에서 Save as를 클릭하고 프리셋 이름을 입력하세요.

문서 및 가이드

  1. W&B 머신 러닝 시각화 IDE
  2. NLP 어텐션 기반 모델 시각화
  3. 어텐션이 그래디언트 흐름에 미치는 영향 시각화
  4. 임의 곡선 기록하기

일반적인 사용 사례

  • 오차 막대가 있는 막대 그래프를 사용자 지정합니다
  • 사용자 지정 x-y 좌표가 필요한 모델 검증 지표를 표시합니다(예: 정밀도-재현율 곡선)
  • 두 개의 서로 다른 모델/실험의 데이터 분포를 히스토그램으로 겹쳐서 표시합니다
  • 학습 중 여러 시점에서 찍은 스냅샷을 통해 메트릭 변화를 보여줍니다
  • 아직 W&B에 없는 고유한 시각화를 만들고, 가능하면 전 세계와 공유합니다