이 섹션의 다중 페이지 출력 화면임. 여기를 클릭하여 프린트.

이 페이지의 일반 화면으로 돌아가기.

Panels

workspace 패널 시각화를 사용하여 키별로 기록된 데이터를 탐색하고, 하이퍼파라미터와 출력 메트릭 간의 관계를 시각화하는 등의 작업을 수행할 수 있습니다.

workspace 모드

W&B 프로젝트는 두 가지 다른 workspace 모드를 지원합니다. workspace 이름 옆의 아이콘은 해당 모드를 나타냅니다.

아이콘 workspace 모드
automated workspace icon 자동화된 workspaces는 프로젝트에 기록된 모든 키에 대한 패널을 자동으로 생성합니다. 자동 workspace를 선택하는 경우:
  • 프로젝트에 사용 가능한 모든 데이터를 시각화하여 빠르게 시작합니다.
  • 더 적은 키를 기록하는 소규모 프로젝트에 적합합니다.
  • 보다 광범위한 분석에 적합합니다.
자동 workspace에서 패널을 삭제한 경우 빠른 추가를 사용하여 다시 만들 수 있습니다.
manual workspace icon 수동 workspaces는 빈 상태로 시작하여 사용자가 의도적으로 추가한 패널만 표시합니다. 수동 workspace를 선택하는 경우:
  • 프로젝트에 기록된 키의 일부에만 주로 관심이 있는 경우.
  • 보다 집중적인 분석을 위해.
  • workspace 성능을 향상시키기 위해 덜 유용한 패널의 로딩을 방지합니다.
빠른 추가를 사용하여 유용한 시각화로 수동 workspace 및 해당 섹션을 빠르게 채울 수 있습니다.

workspace가 패널을 생성하는 방식을 변경하려면 workspace 재설정을 수행합니다.

workspace 재설정

workspace를 재설정하려면:

  1. workspace 상단에서 액션 메뉴 ...를 클릭합니다.
  2. workspace 재설정을 클릭합니다.

workspace 레이아웃 구성

workspace 레이아웃을 구성하려면 workspace 상단의 설정을 클릭한 다음 workspace 레이아웃을 클릭합니다.

  • 검색 중에 비어 있는 섹션 숨기기(기본적으로 켜져 있음)
  • 패널을 알파벳순으로 정렬(기본적으로 꺼져 있음)
  • 섹션 구성(기본적으로 첫 번째 접두사로 그룹화됨). 이 설정을 수정하려면:
    1. 자물쇠 아이콘을 클릭합니다.
    2. 섹션 내에서 패널을 그룹화하는 방법을 선택합니다.

workspace의 라인 플롯에 대한 기본값을 구성하려면 라인 플롯을 참조하십시오.

섹션 레이아웃 구성

섹션의 레이아웃을 구성하려면 해당 기어 아이콘을 클릭한 다음 표시 기본 설정을 클릭합니다.

  • 툴팁에서 색상이 지정된 run 이름 켜거나 끄기(기본적으로 켜져 있음)
  • 컴패니언 차트 툴팁에서 강조 표시된 run만 표시(기본적으로 꺼져 있음)
  • 툴팁에 표시되는 run 수(단일 run, 모든 runs 또는 기본값)
  • 기본 차트 툴팁에 전체 run 이름 표시(기본적으로 꺼져 있음)

전체 화면 모드에서 패널 보기

전체 화면 모드에서 run 선택기가 표시되고 패널은 그렇지 않은 경우 1000개의 버킷이 아닌 10,000개의 버킷이 있는 완전한 충실도 샘플링 모드 플롯을 사용합니다.

전체 화면 모드에서 패널을 보려면:

  1. 패널 위로 마우스를 가져갑니다.
  2. 패널의 액션 메뉴 ...를 클릭한 다음 뷰파인더 또는 정사각형의 네 모서리를 보여주는 윤곽선처럼 보이는 전체 화면 버튼을 클릭합니다. 패널 전체 화면 보기
  3. 전체 화면 모드에서 보고 있는 동안 패널을 공유하면 결과 링크가 자동으로 전체 화면 모드로 열립니다.

전체 화면 모드에서 패널의 workspace로 돌아가려면 페이지 상단의 왼쪽 화살표를 클릭합니다.

패널 추가

이 섹션에서는 workspace에 패널을 추가하는 다양한 방법을 보여줍니다.

패널 수동으로 추가

workspace에 패널을 한 번에 하나씩, 전체적으로 또는 섹션 수준에서 추가합니다.

  1. 패널을 전체적으로 추가하려면 패널 검색 필드 근처의 컨트롤 바에서 패널 추가를 클릭합니다.
  2. 대신 섹션에 직접 패널을 추가하려면 섹션의 액션 ... 메뉴를 클릭한 다음 + 패널 추가를 클릭합니다.
  3. 추가할 패널 유형(예: 차트)을 선택합니다. 패널의 구성 세부 정보가 기본값으로 선택되어 나타납니다.
  4. 선택적으로 패널 및 해당 표시 기본 설정을 사용자 정의합니다. 구성 옵션은 선택한 패널 유형에 따라 다릅니다. 각 유형의 패널에 대한 옵션에 대한 자세한 내용은 아래의 관련 섹션(예: 라인 플롯 또는 막대 플롯)을 참조하십시오.
  5. 적용을 클릭합니다.
패널 추가 데모

패널 빠르게 추가

빠른 추가를 사용하여 선택한 각 키에 대해 전체적으로 또는 섹션 수준에서 자동으로 패널을 추가합니다.

  1. 빠른 추가를 사용하여 패널을 전체적으로 추가하려면 패널 검색 필드 근처의 컨트롤 바에서 패널 추가를 클릭한 다음 빠른 추가를 클릭합니다.
  2. 빠른 추가를 사용하여 패널을 섹션에 직접 추가하려면 섹션의 액션 ... 메뉴를 클릭하고 패널 추가를 클릭한 다음 빠른 추가를 클릭합니다.
  3. 패널 목록이 나타납니다. 확인 표시가 있는 각 패널은 이미 workspace에 포함되어 있습니다.
    • 사용 가능한 모든 패널을 추가하려면 목록 상단의 패널 개 추가 버튼을 클릭합니다. 빠른 추가 목록이 닫히고 새 패널이 workspace에 표시됩니다.
    • 목록에서 개별 패널을 추가하려면 패널의 행 위로 마우스를 가져간 다음 추가를 클릭합니다. 추가할 각 패널에 대해 이 단계를 반복한 다음 오른쪽 상단의 X를 클릭하여 빠른 추가 목록을 닫습니다. 새 패널이 workspace에 표시됩니다.
  4. 선택적으로 패널의 설정을 사용자 정의합니다.

패널 공유

이 섹션에서는 링크를 사용하여 패널을 공유하는 방법을 보여줍니다.

링크를 사용하여 패널을 공유하려면 다음 중 하나를 수행할 수 있습니다.

  • 전체 화면 모드에서 패널을 보는 동안 브라우저에서 URL을 복사합니다.
  • 액션 메뉴 ...를 클릭하고 패널 URL 복사를 선택합니다.

해당 링크를 사용자 또는 팀과 공유합니다. 링크에 액세스하면 패널이 전체 화면 모드로 열립니다.

전체 화면 모드에서 패널의 workspace로 돌아가려면 페이지 상단의 왼쪽 화살표를 클릭합니다.

패널의 전체 화면 링크를 프로그래밍 방식으로 구성

자동화 생성와 같은 특정 상황에서는 패널의 전체 화면 URL을 포함하는 것이 유용할 수 있습니다. 이 섹션에서는 패널의 전체 화면 URL 형식을 보여줍니다. 다음 예제에서 괄호 안의 entity, project, 패널 및 섹션 이름을 바꿉니다.

https://wandb.ai/<ENTITY_NAME>/<PROJECT_NAME>?panelDisplayName=<PANEL_NAME>&panelSectionName=<SECTON_NAME>

동일한 섹션에 이름이 같은 여러 패널이 있는 경우 이 URL은 해당 이름의 첫 번째 패널을 엽니다.

소셜 미디어에 패널 포함 또는 공유

웹 사이트에 패널을 포함하거나 소셜 미디어에 공유하려면 링크가 있는 모든 사람이 패널을 볼 수 있어야 합니다. 프로젝트가 비공개인 경우 프로젝트의 멤버만 패널을 볼 수 있습니다. 프로젝트가 공개인 경우 링크가 있는 모든 사람이 패널을 볼 수 있습니다.

소셜 미디어에 패널을 포함하거나 공유하는 코드를 얻으려면:

  1. workspace에서 패널 위로 마우스를 가져간 다음 해당 액션 메뉴 ...를 클릭합니다.
  2. 공유 탭을 클릭합니다.
  3. 초대된 사람만 액세스할 수 있음링크가 있는 모든 사람이 볼 수 있음으로 변경합니다. 그렇지 않으면 다음 단계의 선택 사항을 사용할 수 없습니다.
  4. 트위터에 공유, 레딧에 공유, 링크드인에 공유 또는 임베드 링크 복사를 선택합니다.

패널 리포트 이메일 보내기

단일 패널을 독립 실행형 리포트로 이메일로 보내려면:

  1. 패널 위로 마우스를 가져간 다음 패널의 액션 메뉴 ...를 클릭합니다.
  2. 리포트에서 패널 공유를 클릭합니다.
  3. 초대 탭을 선택합니다.
  4. 이메일 주소 또는 사용자 이름을 입력합니다.
  5. 선택적으로 볼 수 있음편집할 수 있음으로 변경합니다.
  6. 초대를 클릭합니다. W&B는 공유하는 패널만 포함된 리포트로 연결되는 클릭 가능한 링크가 있는 이메일을 사용자에게 보냅니다.

패널 공유와 달리 수신자는 이 리포트에서 workspace로 이동할 수 없습니다.

패널 관리

패널 편집

패널을 편집하려면:

  1. 해당 연필 아이콘을 클릭합니다.
  2. 패널의 설정을 수정합니다.
  3. 패널을 다른 유형으로 변경하려면 유형을 선택한 다음 설정을 구성합니다.
  4. 적용을 클릭합니다.

패널 이동

패널을 다른 섹션으로 이동하려면 패널의 드래그 핸들을 사용할 수 있습니다. 대신 목록에서 새 섹션을 선택하려면:

  1. 필요한 경우 마지막 섹션 뒤에 섹션 추가를 클릭하여 새 섹션을 만듭니다.
  2. 패널의 액션 ... 메뉴를 클릭합니다.
  3. 이동을 클릭한 다음 새 섹션을 선택합니다.

드래그 핸들을 사용하여 섹션 내에서 패널을 재정렬할 수도 있습니다.

패널 복제

패널을 복제하려면:

  1. 패널 상단에서 액션 ... 메뉴를 클릭합니다.
  2. 복제를 클릭합니다.

원하는 경우 복제된 패널을 사용자 정의하거나 이동할 수 있습니다.

패널 제거

패널을 제거하려면:

  1. 패널 위로 마우스를 가져갑니다.
  2. 액션 ... 메뉴를 선택합니다.
  3. 삭제를 클릭합니다.

수동 workspace에서 모든 패널을 제거하려면 해당 액션 ... 메뉴를 클릭한 다음 모든 패널 지우기를 클릭합니다.

자동 또는 수동 workspace에서 모든 패널을 제거하려면 workspace를 재설정할 수 있습니다. 자동을 선택하여 기본 패널 세트로 시작하거나 수동을 선택하여 패널이 없는 빈 workspace로 시작합니다.

섹션 관리

기본적으로 workspace의 섹션은 키의 로깅 계층 구조를 반영합니다. 그러나 수동 workspace에서는 패널을 추가하기 시작한 후에만 섹션이 나타납니다.

섹션 추가

섹션을 추가하려면 마지막 섹션 뒤에 섹션 추가를 클릭합니다.

기존 섹션 앞이나 뒤에 새 섹션을 추가하려면 섹션의 액션 ... 메뉴를 클릭한 다음 아래에 새 섹션 또는 위에 새 섹션을 클릭할 수 있습니다.

섹션의 패널 관리

많은 수의 패널이 있는 섹션은 표준 그리드 레이아웃을 사용하는 경우 기본적으로 페이지로 나뉩니다. 페이지당 패널의 기본 수는 패널의 구성과 섹션에 있는 패널의 크기에 따라 다릅니다.

  1. 섹션에서 사용하는 레이아웃을 확인하려면 섹션의 액션 ... 메뉴를 클릭합니다. 섹션의 레이아웃을 변경하려면 레이아웃 그리드 섹션에서 표준 그리드 또는 사용자 정의 그리드를 선택합니다.
  2. 패널의 크기를 조정하려면 패널 위로 마우스를 가져가 드래그 핸들을 클릭하고 드래그하여 패널의 크기를 조정합니다.
  • 섹션에서 표준 그리드를 사용하는 경우 하나의 패널 크기를 조정하면 섹션의 모든 패널 크기가 조정됩니다.
  • 섹션에서 사용자 정의 그리드를 사용하는 경우 각 패널의 크기를 개별적으로 사용자 정의할 수 있습니다.
  1. 섹션이 페이지로 나뉘면 페이지에 표시할 패널 수를 사용자 정의할 수 있습니다.
  2. 섹션 상단에서 1에서 개 중 를 클릭합니다. 여기서 <X>는 보이는 패널의 수이고 <Y>는 총 패널 수입니다.
  3. 페이지당 표시할 패널 수를 최대 100개까지 선택합니다.
  4. 많은 수의 패널이 있는 경우 모든 패널을 표시하려면 사용자 정의 그리드 레이아웃을 사용하도록 패널을 구성합니다. 섹션의 액션 ... 메뉴를 클릭한 다음 레이아웃 그리드 섹션에서 사용자 정의 그리드를 선택합니다.
  5. 섹션에서 패널을 삭제하려면:
  6. 패널 위로 마우스를 가져간 다음 해당 액션 ... 메뉴를 클릭합니다.
  7. 삭제를 클릭합니다.

workspace를 자동 workspace로 재설정하면 삭제된 모든 패널이 다시 나타납니다.

섹션 이름 바꾸기

섹션 이름을 바꾸려면 해당 액션 ... 메뉴를 클릭한 다음 섹션 이름 바꾸기를 클릭합니다.

섹션 삭제

섹션을 삭제하려면 해당 ... 메뉴를 클릭한 다음 섹션 삭제를 클릭합니다. 이렇게 하면 섹션과 해당 패널이 제거됩니다.

1 - Line plots

메트릭 을 시각화하고, 축을 사용자 정의하고, 플롯에서 여러 라인을 비교합니다.

라인 플롯은 wandb.log() 로 시간에 따른 메트릭을 플롯할 때 기본적으로 표시됩니다. 차트 설정을 사용하여 동일한 플롯에서 여러 라인을 비교하고, 사용자 정의 축을 계산하고, 레이블 이름을 바꿀 수 있습니다.

라인 플롯 설정 편집

이 섹션에서는 개별 라인 플롯 패널, 섹션의 모든 라인 플롯 패널 또는 워크스페이스의 모든 라인 플롯 패널에 대한 설정을 편집하는 방법을 보여줍니다.

개별 라인 플롯

라인 플롯의 개별 설정은 섹션 또는 워크스페이스에 대한 라인 플롯 설정을 재정의합니다. 라인 플롯을 사용자 정의하려면:

  1. 마우스를 패널 위로 이동한 다음 기어 아이콘을 클릭합니다.
  2. 나타나는 모달 내에서 탭을 선택하여 설정을 편집합니다.
  3. 적용을 클릭합니다.

라인 플롯 설정

라인 플롯에 대해 이러한 설정을 구성할 수 있습니다.

날짜: 플롯의 데이터 표시 세부 정보를 구성합니다.

  • X: X축에 사용할 값을 선택합니다 (기본값은 Step). x축을 Relative Time으로 변경하거나 W&B로 기록하는 값을 기반으로 사용자 정의 축을 선택할 수 있습니다.
    • Relative Time (Wall) 은 프로세스가 시작된 이후의 시계 시간이므로 run을 시작하고 하루 후에 다시 시작하여 기록한 경우 24시간으로 플롯됩니다.
    • Relative Time (Process) 는 실행 중인 프로세스 내부의 시간이므로 run을 시작하고 10초 동안 실행한 다음 하루 후에 다시 시작하면 해당 지점이 10초로 플롯됩니다.
    • Wall Time은 그래프에서 첫 번째 run이 시작된 이후 경과된 시간 (분) 입니다.
    • Step은 기본적으로 wandb.log()가 호출될 때마다 증가하며 모델에서 기록한 트레이닝 스텝 수를 반영해야 합니다.
  • Y: 시간에 따라 변하는 메트릭 및 하이퍼파라미터를 포함하여 기록된 값에서 하나 이상의 y축을 선택합니다.
  • X축Y축 최소 및 최대값 (선택 사항).
  • 포인트 집계 방식. Random sampling (기본값) 또는 Full fidelity. Sampling을 참조하십시오.
  • Smoothing: 라인 플롯의 Smoothing을 변경합니다. 기본값은 Time weighted EMA입니다. 다른 값으로는 No smoothing, Running averageGaussian이 있습니다.
  • Outliers: 기본 플롯 최소 및 최대 스케일에서 이상값을 제외하도록 스케일을 재조정합니다.
  • 최대 run 또는 그룹 수: 이 숫자를 늘려 라인 플롯에 더 많은 라인을 한 번에 표시합니다. 기본값은 10개의 run입니다. 사용 가능한 run이 10개 이상이지만 차트가 보이는 수를 제한하는 경우 차트 상단에 “Showing first 10 runs"라는 메시지가 표시됩니다.
  • 차트 유형: 라인 플롯, 영역 플롯 및 백분율 영역 플롯 간에 변경합니다.

Grouping: 플롯에서 run을 그룹화하고 집계할지 여부와 방법을 구성합니다.

  • Group by: 열을 선택하면 해당 열에서 동일한 값을 가진 모든 run이 함께 그룹화됩니다.
  • Agg: 집계— 그래프의 라인 값. 옵션은 그룹의 평균, 중앙값, 최소값 및 최대값입니다.

차트: 패널, X축 및 Y축의 제목과 -축을 지정하고 범례를 숨기거나 표시하고 위치를 구성합니다.

범례: 패널의 범례 모양을 사용자 정의합니다 (활성화된 경우).

  • 범례: 플롯의 각 라인에 대한 범례의 필드입니다.
  • 범례 템플릿: 범례에 대한 완전히 사용자 정의 가능한 템플릿을 정의하여 라인 플롯 상단에 표시할 텍스트와 변수 및 마우스를 플롯 위로 이동할 때 나타나는 범례를 정확하게 지정합니다.

Expressions: 사용자 정의 계산된 표현식을 패널에 추가합니다.

  • Y축 표현식: 계산된 메트릭을 그래프에 추가합니다. 기록된 메트릭과 하이퍼파라미터와 같은 구성 값을 사용하여 사용자 정의 라인을 계산할 수 있습니다.
  • X축 표현식: 사용자 정의 표현식을 사용하여 계산된 값을 사용하도록 x축의 스케일을 재조정합니다. 유용한 변수에는 기본 x축에 대한**_step**이 포함되며 요약 값을 참조하는 구문은 ${summary:value}입니다.

섹션의 모든 라인 플롯

섹션의 모든 라인 플롯에 대한 기본 설정을 사용자 정의하려면 라인 플롯에 대한 워크스페이스 설정을 재정의합니다.

  1. 섹션의 기어 아이콘을 클릭하여 설정을 엽니다.
  2. 나타나는 모달 내에서 데이터 또는 표시 기본 설정 탭을 선택하여 섹션의 기본 설정을 구성합니다. 각 데이터 설정에 대한 자세한 내용은 이전 섹션인 개별 라인 플롯을 참조하십시오. 각 표시 기본 설정에 대한 자세한 내용은 섹션 레이아웃 구성을 참조하십시오.

워크스페이스의 모든 라인 플롯

워크스페이스의 모든 라인 플롯에 대한 기본 설정을 사용자 정의하려면:

  1. 워크스페이스의 설정을 클릭합니다. 여기에는 설정 레이블이 있는 기어가 있습니다.
  2. 라인 플롯을 클릭합니다.
  3. 나타나는 모달 내에서 데이터 또는 표시 기본 설정 탭을 선택하여 워크스페이스의 기본 설정을 구성합니다.
    • 데이터 설정에 대한 자세한 내용은 이전 섹션인 개별 라인 플롯을 참조하십시오.

    • 표시 기본 설정 섹션에 대한 자세한 내용은 워크스페이스 표시 기본 설정을 참조하십시오. 워크스페이스 수준에서 라인 플롯에 대한 기본 확대/축소 동작을 구성할 수 있습니다. 이 설정은 일치하는 x축 키가 있는 라인 플롯에서 확대/축소를 동기화할지 여부를 제어합니다. 기본적으로 비활성화되어 있습니다.

플롯에서 평균값 시각화

여러 개의 다른 Experiments가 있고 플롯에서 해당 값의 평균을 보려면 테이블에서 그룹화 기능을 사용할 수 있습니다. run 테이블 위에서 “그룹"을 클릭하고 “모두"를 선택하여 그래프에 평균값을 표시합니다.

평균화하기 전의 그래프 모양은 다음과 같습니다.

다음 이미지는 그룹화된 라인을 사용하여 run에서 평균값을 나타내는 그래프를 보여줍니다.

플롯에서 NaN 값 시각화

wandb.log를 사용하여 라인 플롯에 PyTorch 텐서를 포함한 NaN 값을 플롯할 수도 있습니다. 예:

wandb.log({"test": [..., float("nan"), ...]})

하나의 차트에서 두 개의 메트릭 비교

  1. 페이지 오른쪽 상단에서 패널 추가 버튼을 선택합니다.
  2. 나타나는 왼쪽 패널에서 평가 드롭다운을 확장합니다.
  3. Run comparer를 선택합니다.

라인 플롯의 색상 변경

경우에 따라 run의 기본 색상이 비교에 도움이 되지 않을 수 있습니다. 이를 극복하기 위해 wandb는 색상을 수동으로 변경할 수 있는 두 가지 인스턴스를 제공합니다.

각 run은 초기화 시 기본적으로 임의의 색상이 지정됩니다.

Run에 지정된 임의의 색상

색상 중 하나를 클릭하면 색상 팔레트가 나타나고 여기에서 원하는 색상을 수동으로 선택할 수 있습니다.

색상 팔레트
  1. 설정을 편집할 패널 위로 마우스를 가져갑니다.
  2. 나타나는 연필 아이콘을 선택합니다.
  3. 범례 탭을 선택합니다.

다른 x축에서 시각화

experiment가 소요된 절대 시간을 보거나 experiment가 실행된 날짜를 보려면 x축을 전환할 수 있습니다. 다음은 단계를 상대 시간으로 전환한 다음 벽 시간으로 전환하는 예입니다.

영역 플롯

라인 플롯 설정의 고급 탭에서 다른 플롯 스타일을 클릭하여 영역 플롯 또는 백분율 영역 플롯을 얻습니다.

확대/축소

사각형을 클릭하고 드래그하여 수직 및 수평으로 동시에 확대/축소합니다. 그러면 x축 및 y축 확대/축소가 변경됩니다.

차트 범례 숨기기

이 간단한 토글로 라인 플롯에서 범례를 끕니다.

1.1 - Line plot reference

X축

Selecting X-Axis

W&B.log 로 기록한 값이 항상 숫자로 기록되는 한, 선 그래프의 X축을 원하는 값으로 설정할 수 있습니다.

Y축 변수

wandb.log 로 기록한 값이 숫자, 숫자 배열 또는 숫자 히스토그램인 경우 Y축 변수를 원하는 값으로 설정할 수 있습니다. 변수에 대해 1500개 이상의 포인트를 기록한 경우 W&B 는 1500개 포인트로 샘플링합니다.

X 범위 및 Y 범위

플롯의 X 및 Y의 최대값과 최소값을 변경할 수 있습니다.

X 범위의 기본값은 X축의 최소값에서 최대값까지입니다.

Y 범위의 기본값은 메트릭의 최소값과 0부터 메트릭의 최대값까지입니다.

최대 Runs/그룹

기본적으로 10개의 run 또는 run 그룹만 플롯됩니다. Runs은 run 테이블 또는 run 세트의 맨 위에서 가져오므로 run 테이블 또는 run 세트를 정렬하면 표시되는 run 을 변경할 수 있습니다.

범례

차트의 범례를 제어하여 생성 시간 또는 run 을 생성한 user 와 같은 run 의 모든 config 값과 메타 데이터를 표시할 수 있습니다.

예시:

${run:displayName} - ${config:dropout} 은 각 run 에 대한 범례 이름을 royal-sweep - 0.5 와 같이 만듭니다. 여기서 royal-sweep 은 run 이름이고 0.5dropout 이라는 config 파라미터입니다.

[[ ]] 안에 값을 설정하여 차트 위로 마우스를 가져갈 때 십자선에 특정 포인트 값을 표시할 수 있습니다. 예를 들어 \[\[ $x: $y ($original) ]] 은 “2: 3 (2.9)” 와 같이 표시됩니다.

[[ ]] 내에서 지원되는 값은 다음과 같습니다.

의미
${x} X 값
${y} Y 값 (스무딩 조정 포함)
${original} Y 값 (스무딩 조정 미포함)
${mean} 그룹화된 run 의 평균
${stddev} 그룹화된 run 의 표준 편차
${min} 그룹화된 run 의 최소값
${max} 그룹화된 run 의 최대값
${percent} 합계의 백분율 (누적 영역 차트의 경우)

그룹화

그룹화를 켜서 모든 run 을 집계하거나 개별 변수별로 그룹화할 수 있습니다. 테이블 내에서 그룹화하여 그룹화를 켤 수도 있으며 그룹이 그래프에 자동으로 채워집니다.

스무딩

스무딩 계수를 0과 1 사이로 설정할 수 있습니다. 여기서 0은 스무딩 없음, 1은 최대 스무딩입니다.

이상치 무시

기본 플롯 최소 및 최대 스케일에서 이상치를 제외하도록 플롯의 스케일을 다시 조정합니다. 플롯에 대한 설정의 영향은 플롯의 샘플링 모드에 따라 다릅니다.

  • 임의 샘플링 모드를 사용하는 플롯의 경우 이상치 무시를 활성화하면 5%에서 95%의 포인트만 표시됩니다. 이상치가 표시되더라도 다른 포인트와 다르게 서식이 지정되지는 않습니다.
  • 전체 충실도 모드를 사용하는 플롯의 경우 모든 포인트가 항상 표시되며 각 버킷의 마지막 값으로 압축됩니다. 이상치 무시를 활성화하면 각 버킷의 최소 및 최대 경계가 음영 처리됩니다. 그렇지 않으면 영역이 음영 처리되지 않습니다.

표현식

표현식을 사용하면 1-정확도와 같은 메트릭에서 파생된 값을 플롯할 수 있습니다. 현재 단일 메트릭을 플롯하는 경우에만 작동합니다. 간단한 산술 표현식 +, -, *, / 및 %는 물론 거듭제곱에 대한 **를 수행할 수 있습니다.

플롯 스타일

선 그래프의 스타일을 선택합니다.

선 그래프:

영역 그래프:

백분율 영역 그래프:

1.2 - Point aggregation

Data Visualization 정확도와 성능을 향상시키려면 라인 플롯 내에서 포인트 집계 방법을 사용하세요. 포인트 집계 모드에는 전체 충실도임의 샘플링의 두 가지 유형이 있습니다. W&B는 기본적으로 전체 충실도 모드를 사용합니다.

전체 충실도

전체 충실도 모드를 사용하면 W&B는 데이터 포인트 수를 기반으로 x축을 동적 버킷으로 나눕니다. 그런 다음 라인 플롯에 대한 포인트 집계를 렌더링하는 동안 각 버킷 내의 최소값, 최대값 및 평균값을 계산합니다.

포인트 집계에 전체 충실도 모드를 사용하면 다음과 같은 세 가지 주요 이점이 있습니다.

  • 극단값 및 스파이크 보존: 데이터에서 극단값 및 스파이크를 유지합니다.
  • 최소 및 최대 포인트 렌더링 방법 구성: W&B 앱을 사용하여 극단(최소/최대) 값을 음영 영역으로 표시할지 여부를 대화식으로 결정합니다.
  • 데이터 정확도를 잃지 않고 데이터 탐색: 특정 데이터 포인트를 확대하면 W&B가 x축 버킷 크기를 다시 계산합니다. 이는 정확도를 잃지 않고 데이터를 탐색하는 데 도움이 됩니다. 캐싱은 이전에 계산된 집계를 저장하여 로딩 시간을 줄이는 데 사용되며, 이는 대규모 데이터셋을 탐색할 때 특히 유용합니다.

최소 및 최대 포인트 렌더링 방법 구성

라인 플롯 주위에 음영 영역을 사용하여 최소값과 최대값을 표시하거나 숨깁니다.

다음 이미지는 파란색 라인 플롯을 보여줍니다. 밝은 파란색 음영 영역은 각 버킷의 최소값과 최대값을 나타냅니다.

라인 플롯에서 최소값과 최대값을 렌더링하는 세 가지 방법이 있습니다.

  • 없음: 최소/최대값은 음영 영역으로 표시되지 않습니다. x축 버킷에서 집계된 라인만 표시합니다.
  • 호버 시: 차트 위로 마우스를 가져가면 최소/최대값에 대한 음영 영역이 동적으로 나타납니다. 이 옵션은 뷰를 깔끔하게 유지하면서 범위를 대화식으로 검사할 수 있도록 합니다.
  • 항상: 최소/최대 음영 영역이 차트의 모든 버킷에 대해 일관되게 표시되어 항상 전체 값 범위를 시각화할 수 있습니다. 차트에 시각화된 Runs가 많은 경우 시각적 노이즈가 발생할 수 있습니다.

기본적으로 최소값과 최대값은 음영 영역으로 표시되지 않습니다. 음영 영역 옵션 중 하나를 보려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 화면 오른쪽 상단에서 패널 추가 버튼 바로 왼쪽에 있는 기어 아이콘을 선택합니다.
  4. 나타나는 UI 슬라이더에서 라인 플롯을 선택합니다.
  5. 포인트 집계 섹션 내에서 최소/최대값을 음영 영역으로 표시 드롭다운 메뉴에서 호버 시 또는 항상을 선택합니다.
  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 전체 충실도 모드를 활성화할 라인 플롯 패널을 선택합니다.
  4. 나타나는 모달 내에서 최소/최대값을 음영 영역으로 표시 드롭다운 메뉴에서 호버 시 또는 항상을 선택합니다.

데이터 정확도를 잃지 않고 데이터 탐색

극단값 또는 스파이크와 같은 중요한 포인트를 놓치지 않고 데이터셋의 특정 영역을 분석합니다. 라인 플롯을 확대하면 W&B는 각 버킷 내에서 최소값, 최대값 및 평균값을 계산하는 데 사용되는 버킷 크기를 조정합니다.

W&B는 x축을 기본적으로 1000개의 버킷으로 동적으로 나눕니다. 각 버킷에 대해 W&B는 다음 값을 계산합니다.

  • 최소값: 해당 버킷의 가장 낮은 값입니다.
  • 최대값: 해당 버킷의 가장 높은 값입니다.
  • 평균값: 해당 버킷의 모든 포인트의 평균값입니다.

W&B는 전체 데이터 표현을 보존하고 모든 플롯에 극단값을 포함하는 방식으로 버킷의 값을 플롯합니다. 1,000포인트 이하로 확대하면 전체 충실도 모드는 추가 집계 없이 모든 데이터 포인트를 렌더링합니다.

라인 플롯을 확대하려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 필요에 따라 워크스페이스에 라인 플롯 패널을 추가하거나 기존 라인 플롯 패널로 이동합니다.
  4. 클릭하고 드래그하여 확대할 특정 영역을 선택합니다.

임의 샘플링

임의 샘플링은 1500개의 임의로 샘플링된 포인트를 사용하여 라인 플롯을 렌더링합니다. 임의 샘플링은 데이터 포인트 수가 많은 경우 성능상의 이유로 유용합니다.

임의 샘플링 활성화

기본적으로 W&B는 전체 충실도 모드를 사용합니다. 임의 샘플링을 활성화하려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 화면 오른쪽 상단에서 패널 추가 버튼 바로 왼쪽에 있는 기어 아이콘을 선택합니다.
  4. 나타나는 UI 슬라이더에서 라인 플롯을 선택합니다.
  5. 포인트 집계 섹션에서 임의 샘플링을 선택합니다.
  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 임의 샘플링을 활성화할 라인 플롯 패널을 선택합니다.
  4. 나타나는 모달 내에서 포인트 집계 방법 섹션에서 임의 샘플링을 선택합니다.

샘플링되지 않은 데이터에 엑세스

W&B Run API를 사용하여 Run 중에 기록된 메트릭의 전체 기록에 엑세스할 수 있습니다. 다음 예제에서는 특정 Run에서 손실 값을 검색하고 처리하는 방법을 보여줍니다.

# W&B API 초기화
run = api.run("l2k2/examples-numpy-boston/i0wt6xua")

# 'Loss' 메트릭의 기록 검색
history = run.scan_history(keys=["Loss"])

# 기록에서 손실 값 추출
losses = [row["Loss"] for row in history]

1.3 - Smooth line plots

꺾은선 그래프에서 스무딩을 사용하여 노이즈가 많은 데이터의 추세를 확인하세요.

W&B는 세 가지 유형의 평활화를 지원합니다:

대화형 W&B report에서 실시간으로 확인하세요.

지수 이동 평균 (기본값)

지수 평활화는 이전 점의 가중치를 지수적으로 감쇠시켜 시계열 데이터를 평활화하는 기술입니다. 범위는 0에서 1 사이입니다. 배경 정보는 지수 평활화를 참조하세요. 시계열의 초기 값이 0으로 치우치지 않도록 편향 제거 항이 추가되었습니다.

EMA 알고리즘은 선의 점 밀도 (x축 범위 단위당 y 값의 수)를 고려합니다. 이를 통해 특성이 다른 여러 선을 동시에 표시할 때 일관된 평활화가 가능합니다.

다음은 내부 작동 방식에 대한 샘플 코드입니다:

const smoothingWeight = Math.min(Math.sqrt(smoothingParam || 0), 0.999);
let lastY = yValues.length > 0 ? 0 : NaN;
let debiasWeight = 0;

return yValues.map((yPoint, index) => {
  const prevX = index > 0 ? index - 1 : 0;
  // VIEWPORT_SCALE scales the result to the chart's x-axis range
  const changeInX =
    ((xValues[index] - xValues[prevX]) / rangeOfX) * VIEWPORT_SCALE;
  const smoothingWeightAdj = Math.pow(smoothingWeight, changeInX);

  lastY = lastY * smoothingWeightAdj + yPoint;
  debiasWeight = debiasWeight * smoothingWeightAdj + 1;
  return lastY / debiasWeight;
});

에서 어떻게 보이는지 살펴보세요:

가우시안 평활화

가우시안 평활화 (또는 가우시안 커널 평활화)는 점의 가중 평균을 계산하며, 가중치는 평활화 파라미터로 지정된 표준 편차를 갖는 가우시안 분포에 해당합니다. 자세한 내용은 . 평활화된 값은 모든 입력 x 값에 대해 계산됩니다.

TensorBoard의 동작과 일치하는 데 관심이 없다면 가우시안 평활화는 평활화를 위한 좋은 표준 선택입니다. 지수 이동 평균과 달리 점은 값 이전과 이후에 발생하는 점을 기반으로 평활화됩니다.

에서 어떻게 보이는지 살펴보세요:

이동 평균

이동 평균은 주어진 x 값 이전과 이후의 창에서 점의 평균으로 점을 대체하는 평활화 알고리즘입니다. https://en.wikipedia.org/wiki/Moving_average의 “Boxcar Filter"를 참조하세요. 이동 평균에 대해 선택된 파라미터는 Weights and Biases에 이동 평균에서 고려할 점의 수를 알려줍니다.

점이 x축에서 고르지 않게 배치된 경우 가우시안 평활화를 사용하는 것이 좋습니다.

다음 이미지는 이동 앱이 에서 어떻게 보이는지 보여줍니다:

지수 이동 평균 (더 이상 사용되지 않음)

TensorBoard EMA 알고리즘은 x축 단위당 플롯된 점의 수가 일관되지 않은 동일한 차트에서 여러 선을 정확하게 평활화할 수 없으므로 더 이상 사용되지 않습니다.

지수 이동 평균은 TensorBoard의 평활화 알고리즘과 일치하도록 구현됩니다. 범위는 0에서 1 사이입니다. 배경 정보는 지수 평활화를 참조하세요. 시계열의 초기 값이 0으로 치우치지 않도록 편향 제거 항이 추가되었습니다.

다음은 내부 작동 방식에 대한 샘플 코드입니다:

  data.forEach(d => {
    const nextVal = d;
    last = last * smoothingWeight + (1 - smoothingWeight) * nextVal;
    numAccum++;
    debiasWeight = 1.0 - Math.pow(smoothingWeight, numAccum);
    smoothedData.push(last / debiasWeight);

에서 어떻게 보이는지 살펴보세요:

구현 세부 정보

모든 평활화 알고리즘은 샘플링된 데이터에서 실행됩니다. 즉, 1500개 이상의 점을 기록하면 평활화 알고리즘은 서버에서 점을 다운로드한 후에 실행됩니다. 평활화 알고리즘의 의도는 데이터에서 패턴을 빠르게 찾는 데 도움을 주는 것입니다. 많은 수의 기록된 점이 있는 메트릭에 대해 정확한 평활화된 값이 필요한 경우 API를 통해 메트릭을 다운로드하고 자체 평활화 methods를 실행하는 것이 좋습니다.

원본 데이터 숨기기

기본적으로 원본의 평활화되지 않은 데이터가 배경에 희미한 선으로 표시됩니다. 원본 보기 토글을 클릭하여 이 기능을 끄세요.

2 - Bar plots

메트릭을 시각화하고, 축을 사용자 정의하고, 범주형 데이터를 막대로 비교하세요.

막대 그래프는 범주형 데이터를 직사각형 막대로 나타내며, 이 막대는 수직 또는 수평으로 플롯할 수 있습니다. 모든 기록된 값이 길이가 1인 경우 막대 그래프는 기본적으로 wandb.log() 와 함께 표시됩니다.

Plotting Box and horizontal Bar plots in W&B

차트 설정을 사용하여 표시할 최대 Runs 수를 제한하고, 모든 config별로 Runs를 그룹화하고, 레이블 이름을 바꿀 수 있습니다.

막대 그래프 사용자 정의

Box 또는 Violin 플롯을 생성하여 여러 요약 통계를 하나의 차트 유형으로 결합할 수도 있습니다.

  1. Runs 테이블을 통해 Runs를 그룹화합니다.
  2. 워크스페이스에서 ‘패널 추가’를 클릭합니다.
  3. 표준 ‘막대 차트’를 추가하고 플롯할 메트릭을 선택합니다.
  4. ‘그룹화’ 탭에서 ‘box plot’ 또는 ‘Violin’ 등을 선택하여 이러한 스타일 중 하나를 플롯합니다.
Customize Bar Plots

3 - Parallel coordinates

기계 학습 실험 전반에서 결과를 비교하세요.

병렬 좌표 차트는 많은 수의 하이퍼파라미터와 모델 메트릭 간의 관계를 한눈에 요약합니다.

  • Axes: wandb.config 의 다양한 하이퍼파라미터와 wandb.log 의 메트릭.
  • Lines: 각 라인은 단일 run을 나타냅니다. 라인 위에 마우스를 올리면 run에 대한 세부 정보가 담긴 툴팁이 표시됩니다. 현재 필터와 일치하는 모든 라인이 표시되지만, 눈 모양 아이콘을 끄면 라인이 회색으로 표시됩니다.

병렬 좌표 패널 만들기

  1. 워크스페이스 랜딩 페이지로 이동합니다.
  2. 패널 추가를 클릭합니다.
  3. 병렬 좌표를 선택합니다.

패널 설정

패널을 구성하려면 패널 오른쪽 상단에 있는 편집 버튼을 클릭합니다.

  • Tooltip: 마우스 오버 시 각 run에 대한 정보가 담긴 범례가 나타납니다.
  • Titles: 축 제목을 더 읽기 쉽게 편집합니다.
  • Gradient: 원하는 색상 범위로 그레이디언트를 사용자 정의합니다.
  • Log scale: 각 축을 독립적으로 로그 스케일로 보도록 설정할 수 있습니다.
  • Flip axis: 축 방향을 전환합니다. 정확도와 손실을 모두 열로 사용할 때 유용합니다.

라이브 병렬 좌표 패널과 상호 작용하기

4 - Scatter plots

이 페이지에서는 W&B에서 산점도를 사용하는 방법을 보여줍니다.

유스 케이스

산점도를 사용하여 여러 run을 비교하고 실험의 성능을 시각화합니다.

  • 최소, 최대 및 평균값에 대한 선을 플롯합니다.
  • 메타데이터 툴팁을 사용자 정의합니다.
  • 포인트 색상을 제어합니다.
  • 축 범위를 조정합니다.
  • 축에 로그 스케일을 사용합니다.

예시

다음 예시는 몇 주간의 실험에 걸쳐 다양한 model의 검증 정확도를 표시하는 산점도를 보여줍니다. 툴팁에는 배치 크기, 드롭아웃 및 축 값이 포함됩니다. 선은 또한 검증 정확도의 이동 평균을 보여줍니다.

라이브 예시 보기 →

Example of validation accuracy of different models over a couple of weeks of experimentation

산점도 만들기

W&B UI에서 산점도를 만들려면 다음을 수행합니다.

  1. Workspaces 탭으로 이동합니다.
  2. Charts 패널에서 액션 메뉴 ...을 클릭합니다.
  3. 팝업 메뉴에서 Add panels를 선택합니다.
  4. Add panels 메뉴에서 Scatter plot을 선택합니다.
  5. xy 축을 설정하여 보려는 데이터를 플롯합니다. 선택적으로 축의 최대 및 최소 범위를 설정하거나 z 축을 추가합니다.
  6. Apply를 클릭하여 산점도를 만듭니다.
  7. Charts 패널에서 새로운 산점도를 봅니다.

5 - Save and diff code

기본적으로 W&B는 가장 최근의 git 커밋 해시만 저장합니다. 더 많은 코드 기능을 켜면 UI에서 Experiments 간의 코드를 동적으로 비교할 수 있습니다.

wandb 버전 0.8.28부터 W&B는 wandb.init()을 호출하는 메인 트레이닝 파일의 코드를 저장할 수 있습니다.

라이브러리 코드 저장

코드 저장을 활성화하면 W&B는 wandb.init()을 호출한 파일의 코드를 저장합니다. 추가 라이브러리 코드를 저장하려면 다음 세 가지 옵션이 있습니다.

wandb.init()을 호출한 후 wandb.run.log_code(".") 호출

import wandb

wandb.init()
wandb.run.log_code(".")

code_dir이 설정된 settings 오브젝트를 wandb.init에 전달

import wandb

wandb.init(settings=wandb.Settings(code_dir="."))

이렇게 하면 현재 디렉토리와 모든 하위 디렉토리의 모든 파이썬 소스 코드 파일이 artifact로 캡처됩니다. 저장되는 소스 코드 파일의 유형 및 위치를 보다 세밀하게 제어하려면 참조 문서를 참조하세요.

UI에서 코드 저장 설정

프로그래밍 방식으로 코드 저장을 설정하는 것 외에도 W&B 계정 설정에서 이 기능을 토글할 수도 있습니다. 이는 계정과 연결된 모든 Teams에 대해 코드 저장을 활성화합니다.

기본적으로 W&B는 모든 Teams에 대해 코드 저장을 비활성화합니다.

  1. W&B 계정에 로그인합니다.
  2. Settings > Privacy로 이동합니다.
  3. Project and content security에서 Disable default code saving을 켭니다.

코드 비교기

서로 다른 W&B Runs에서 사용된 코드를 비교합니다.

  1. 페이지 오른쪽 상단에서 Add panels 버튼을 선택합니다.
  2. TEXT AND CODE 드롭다운을 확장하고 Code를 선택합니다.

Jupyter 세션 기록

W&B는 Jupyter 노트북 세션에서 실행된 코드의 기록을 저장합니다. Jupyter 내에서 **wandb.init()**을 호출하면 W&B는 현재 세션에서 실행된 코드의 기록이 포함된 Jupyter 노트북을 자동으로 저장하는 훅을 추가합니다.

  1. 코드가 포함된 project 워크스페이스로 이동합니다.
  2. 왼쪽 네비게이션 바에서 Artifacts 탭을 선택합니다.
  3. code artifact를 확장합니다.
  4. Files 탭을 선택합니다.

이렇게 하면 iPython의 display 메소드를 호출하여 생성된 모든 출력과 함께 세션에서 실행된 셀이 표시됩니다. 이를 통해 지정된 Run 내에서 Jupyter 내에서 실행된 코드를 정확히 볼 수 있습니다. 가능한 경우 W&B는 코드 디렉토리에서도 찾을 수 있는 노트북의 최신 버전도 저장합니다.

6 - Parameter importance

모델의 하이퍼파라미터와 출력 메트릭 간의 관계를 시각화합니다.

어떤 하이퍼파라미터가 가장 예측력이 높고 메트릭의 바람직한 값과 상관관계가 높은지 알아보세요.

**상관 관계(Correlation)**는 하이퍼파라미터와 선택한 메트릭 (이 경우 val_loss) 간의 선형 상관 관계입니다. 따라서 상관 관계가 높다는 것은 하이퍼파라미터의 값이 높을 때 메트릭도 더 높은 값을 갖고 그 반대도 마찬가지임을 의미합니다. 상관 관계는 살펴보기에 좋은 메트릭이지만 입력 간의 2차 상호 작용을 포착할 수 없으며 범위가 매우 다른 입력을 비교하는 것이 복잡해질 수 있습니다.

따라서 W&B는 중요도(importance) 메트릭도 계산합니다. W&B는 하이퍼파라미터를 입력으로, 메트릭을 대상 출력으로 사용하여 랜덤 포레스트를 트레이닝하고 랜덤 포레스트에 대한 특징 중요도 값을 리포트합니다.

이 기술에 대한 아이디어는 Fast.ai에서 하이퍼파라미터 공간을 탐색하기 위해 랜덤 포레스트 특징 중요도를 사용하는 것을 개척한 Jeremy Howard와의 대화에서 영감을 받았습니다. 이 강의 (및 이 노트)를 확인하여 이 분석의 동기에 대해 자세히 알아보는 것이 좋습니다.

하이퍼파라미터 중요도 패널은 상관관계가 높은 하이퍼파라미터 간의 복잡한 상호 작용을 해결합니다. 이를 통해 모델 성능 예측 측면에서 가장 중요한 하이퍼파라미터를 보여줌으로써 하이퍼파라미터 검색을 미세 튜닝하는 데 도움이 됩니다.

하이퍼파라미터 중요도 패널 만들기

  1. W&B 프로젝트로 이동합니다.
  2. 패널 추가 버튼을 선택합니다.
  3. 차트 드롭다운을 확장하고 드롭다운에서 평행 좌표를 선택합니다.
Using automatic parameter visualization

파라미터 관리자를 사용하면 표시 및 숨겨진 파라미터를 수동으로 설정할 수 있습니다.

Manually setting the visible and hidden fields

하이퍼파라미터 중요도 패널 해석하기

이 패널은 트레이닝 스크립트의 wandb.config 오브젝트에 전달된 모든 파라미터를 보여줍니다. 다음으로 이러한 config 파라미터의 특징 중요도와 모델 메트릭과 관련된 상관 관계를 보여줍니다 (이 경우 val_loss).

중요도

중요도 열은 각 하이퍼파라미터가 선택한 메트릭을 예측하는 데 얼마나 유용한지를 보여줍니다. 수많은 하이퍼파라미터를 튜닝하기 시작하고 이 플롯을 사용하여 추가 탐색할 가치가 있는 하이퍼파라미터를 정확히 찾아내는 시나리오를 상상해 보십시오. 후속 스윕은 가장 중요한 하이퍼파라미터로 제한되어 더 좋고 저렴한 모델을 더 빠르게 찾을 수 있습니다.

위의 이미지에서 epochs, learning_rate, batch_sizeweight_decay가 상당히 중요하다는 것을 알 수 있습니다.

상관 관계

상관 관계는 개별 하이퍼파라미터와 메트릭 값 간의 선형 관계를 캡처합니다. SGD 옵티마이저와 같은 하이퍼파라미터를 사용하는 것과 val_loss 사이에 중요한 관계가 있는지에 대한 질문에 답합니다 (이 경우 답은 ‘예’입니다). 상관 관계 값은 -1에서 1 사이이며, 양수 값은 양의 선형 상관 관계를 나타내고 음수 값은 음의 선형 상관 관계를 나타내고 값 0은 상관 관계가 없음을 나타냅니다. 일반적으로 어느 방향이든 0.7보다 큰 값은 강한 상관 관계를 나타냅니다.

이 그래프를 사용하여 메트릭과 더 높은 상관 관계가 있는 값을 추가로 탐색하거나 (이 경우 rmsprop 또는 nadam보다 stochastic gradient descent 또는 adam을 선택할 수 있음) 더 많은 에포크 동안 트레이닝할 수 있습니다.

중요도와 상관 관계의 차이는 중요도가 하이퍼파라미터 간의 상호 작용을 고려하는 반면 상관 관계는 개별 하이퍼파라미터가 메트릭 값에 미치는 영향만 측정한다는 사실에서 비롯됩니다. 둘째, 상관 관계는 선형 관계만 캡처하는 반면 중요도는 더 복잡한 관계를 캡처할 수 있습니다.

보시다시피 중요도와 상관 관계는 모두 하이퍼파라미터가 모델 성능에 미치는 영향을 이해하는 데 유용한 입니다.

7 - Compare run metrics

여러 run에서 메트릭 비교

Run Comparer를 사용하여 여러 run에서 어떤 메트릭이 다른지 확인하세요.

  1. 페이지 오른쪽 상단에서 패널 추가 버튼을 선택합니다.
  2. 나타나는 왼쪽 패널에서 Evaluation 드롭다운을 확장합니다.
  3. Run Comparer를 선택합니다.

Diff Only 옵션을 켜서 여러 run에서 값이 동일한 행을 숨깁니다.

8 - Query panels

이 페이지의 일부 기능은 베타 버전이며 기능 플래그 뒤에 숨겨져 있습니다. 프로필 페이지의 자기 소개에 weave-plot을 추가하여 관련된 모든 기능을 잠금 해제하세요.

쿼리 패널을 사용하여 데이터를 쿼리하고 대화형으로 시각화하세요.

쿼리 패널 만들기

워크스페이스 또는 리포트 내에 쿼리를 추가하세요.

  1. 프로젝트 워크스페이스로 이동합니다.
  2. 오른쪽 상단 모서리에서 패널 추가를 클릭합니다.
  3. 드롭다운에서 쿼리 패널을 선택합니다.

/쿼리 패널을 입력하고 선택합니다.

또는 쿼리를 run 집합과 연결할 수 있습니다:

  1. 리포트 내에서 /패널 그리드를 입력하고 선택합니다.
  2. 패널 추가 버튼을 클릭합니다.
  3. 드롭다운에서 쿼리 패널을 선택합니다.

쿼리 구성 요소

표현식

쿼리 표현식을 사용하여 run, Artifacts, Models, 테이블 등과 같이 W&B에 저장된 데이터를 쿼리합니다.

예시: 테이블 쿼리

W&B Table을 쿼리한다고 가정합니다. 트레이닝 코드에서 "cifar10_sample_table"이라는 테이블을 로깅합니다:

import wandb
wandb.log({"cifar10_sample_table":<MY_TABLE>})

쿼리 패널 내에서 다음을 사용하여 테이블을 쿼리할 수 있습니다:

runs.summary["cifar10_sample_table"]

분해하면 다음과 같습니다:

  • runs는 쿼리 패널이 워크스페이스에 있을 때 쿼리 패널 표현식에 자동으로 삽입되는 변수입니다. “값"은 해당 특정 워크스페이스에 대해 보이는 run 목록입니다. run 내에서 사용할 수 있는 다양한 속성에 대해 자세히 알아보려면 여기를 참조하세요.
  • summary는 Run에 대한 Summary 오브젝트를 반환하는 op입니다. Op는 _매핑_됩니다. 즉, 이 op는 목록의 각 Run에 적용되어 Summary 오브젝트 목록이 생성됩니다.
  • ["cifar10_sample_table"]predictions 파라미터가 있는 Pick op(대괄호로 표시)입니다. Summary 오브젝트는 사전 또는 맵과 같이 작동하므로 이 작업은 각 Summary 오브젝트에서 predictions 필드를 선택합니다.

자신만의 쿼리를 대화형으로 작성하는 방법을 배우려면 이 리포트를 참조하세요.

설정

패널 왼쪽 상단 모서리에 있는 톱니바퀴 아이콘을 선택하여 쿼리 설정을 확장합니다. 이를 통해 사용자는 패널 유형과 결과 패널에 대한 파라미터를 구성할 수 있습니다.

결과 패널

마지막으로 쿼리 결과 패널은 선택한 쿼리 패널을 사용하여 쿼리 표현식의 결과를 렌더링하고, 데이터를 대화형 형식으로 표시하기 위해 설정에 의해 구성됩니다. 다음 이미지는 동일한 데이터의 테이블과 플롯을 보여줍니다.

기본 작업

쿼리 패널 내에서 수행할 수 있는 다음의 일반적인 작업입니다.

정렬

열 옵션에서 정렬:

필터

쿼리에서 직접 또는 왼쪽 상단 모서리에 있는 필터 버튼을 사용하여 필터링할 수 있습니다(두 번째 이미지).

맵 작업은 목록을 반복하고 데이터의 각 요소에 함수를 적용합니다. 패널 쿼리를 통해 직접 또는 열 옵션에서 새 열을 삽입하여 이를 수행할 수 있습니다.

Groupby

쿼리 또는 열 옵션에서 groupby를 사용할 수 있습니다.

Concat

concat 작업을 통해 2개의 테이블을 연결하고 패널 설정에서 연결하거나 조인할 수 있습니다.

Join

쿼리에서 직접 테이블을 조인할 수도 있습니다. 다음 쿼리 표현식을 고려하십시오:

project("luis_team_test", "weave_example_queries").runs.summary["short_table_0"].table.rows.concat.join(\
project("luis_team_test", "weave_example_queries").runs.summary["short_table_1"].table.rows.concat,\
(row) => row["Label"],(row) => row["Label"], "Table1", "Table2",\
"false", "false")

왼쪽 테이블은 다음에서 생성됩니다:

project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join

오른쪽 테이블은 다음에서 생성됩니다:

project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat

여기서:

  • (row) => row["Label"]은 각 테이블에 대한 선택기이며 조인할 열을 결정합니다.
  • "Table1""Table2"는 조인될 때 각 테이블의 이름입니다.
  • truefalse는 왼쪽 및 오른쪽 내부/외부 조인 설정을 위한 것입니다.

Runs 오브젝트

쿼리 패널을 사용하여 runs 오브젝트에 엑세스합니다. Run 오브젝트는 Experiments 기록을 저장합니다. 이 섹션의 리포트에서 자세한 내용을 확인할 수 있지만, 간략하게 살펴보면 runs 오브젝트는 다음과 같습니다.

  • summary: run 결과를 요약하는 정보 사전입니다. 여기에는 정확도 및 손실과 같은 스칼라 또는 큰 파일이 포함될 수 있습니다. 기본적으로 wandb.log()는 Summary를 로깅된 시계열의 최종 값으로 설정합니다. Summary 내용을 직접 설정할 수 있습니다. Summary를 run의 출력이라고 생각하세요.
  • history: 손실과 같이 모델이 트레이닝되는 동안 변경되는 값을 저장하기 위한 사전 목록입니다. wandb.log() 코맨드는 이 오브젝트에 추가됩니다.
  • config: 트레이닝 Run에 대한 하이퍼파라미터 또는 데이터셋 Artifact를 생성하는 Run에 대한 전처리 메소드와 같은 Run의 설정 정보 사전입니다. 이것을 Run의 “입력"이라고 생각하십시오.

Artifacts 엑세스

Artifacts는 W&B의 핵심 개념입니다. 버전이 지정된 명명된 파일 및 디렉토리 모음입니다. Artifacts를 사용하여 모델 가중치, 데이터셋 및 기타 파일 또는 디렉토리를 추적합니다. Artifacts는 W&B에 저장되며 다운로드하거나 다른 Run에서 사용할 수 있습니다. 이 섹션의 리포트에서 자세한 내용과 예제를 확인할 수 있습니다. Artifacts는 일반적으로 project 오브젝트에서 엑세스됩니다.

  • project.artifactVersion(): 프로젝트 내에서 주어진 이름과 버전에 대한 특정 아티팩트 버전을 반환합니다.
  • project.artifact(""): 프로젝트 내에서 주어진 이름에 대한 아티팩트를 반환합니다. 그런 다음 .versions를 사용하여 이 아티팩트의 모든 버전 목록을 가져올 수 있습니다.
  • project.artifactType(): 프로젝트 내에서 주어진 이름에 대한 artifactType을 반환합니다. 그런 다음 .artifacts를 사용하여 이 유형의 모든 아티팩트 목록을 가져올 수 있습니다.
  • project.artifactTypes: 프로젝트 아래의 모든 아티팩트 유형 목록을 반환합니다.

8.1 - Embed objects

W&B의 Embedding Projector를 통해 PCA, UMAP, t-SNE와 같은 일반적인 차원 축소 알고리즘을 사용하여 다차원 임베딩을 2D 평면에 플롯할 수 있습니다.

Embeddings는 오브젝트 (사람, 이미지, 게시물, 단어 등)를 숫자 목록 ( vector 라고도 함)으로 나타내는 데 사용됩니다. 기계 학습 및 데이터 과학 유스 케이스에서 Embeddings는 다양한 애플리케이션에서 다양한 접근 방식을 사용하여 생성할 수 있습니다. 이 페이지에서는 독자가 Embeddings에 익숙하고 W&B 내에서 Embeddings를 시각적으로 분석하는 데 관심이 있다고 가정합니다.

Embedding 예시

Hello World

W&B를 사용하면 wandb.Table 클래스를 사용하여 Embeddings를 로그할 수 있습니다. 각각 5개의 차원으로 구성된 3개의 Embeddings의 다음 예제를 고려하십시오.

import wandb

wandb.init(project="embedding_tutorial")
embeddings = [
    # D1   D2   D3   D4   D5
    [0.2, 0.4, 0.1, 0.7, 0.5],  # embedding 1
    [0.3, 0.1, 0.9, 0.2, 0.7],  # embedding 2
    [0.4, 0.5, 0.2, 0.2, 0.1],  # embedding 3
]
wandb.log(
    {"embeddings": wandb.Table(columns=["D1", "D2", "D3", "D4", "D5"], data=embeddings)}
)
wandb.finish()

위의 코드를 실행하면 W&B 대시보드에 데이터가 포함된 새 Table이 표시됩니다. 오른쪽 상단 패널 선택기에서 2D Projection을 선택하여 Embeddings를 2차원으로 플롯할 수 있습니다. 스마트 기본값이 자동으로 선택되며, 기어 아이콘을 클릭하여 엑세스할 수 있는 설정 메뉴에서 쉽게 재정의할 수 있습니다. 이 예제에서는 사용 가능한 5개의 숫자 차원을 모두 자동으로 사용합니다.

Digits MNIST

위의 예제는 Embeddings 로깅의 기본 메커니즘을 보여 주지만 일반적으로 훨씬 더 많은 차원과 샘플을 사용합니다. MNIST Digits 데이터셋 (UCI ML 손으로 쓴 숫자 데이터셋s)을 고려해 보겠습니다. SciKit-Learn을 통해 사용할 수 있습니다. 이 데이터셋에는 각각 64개의 차원을 가진 1797개의 레코드가 있습니다. 문제는 10개의 클래스 분류 유스 케이스입니다. 시각화를 위해 입력 데이터를 이미지로 변환할 수도 있습니다.

import wandb
from sklearn.datasets import load_digits

wandb.init(project="embedding_tutorial")

# Load the dataset
ds = load_digits(as_frame=True)
df = ds.data

# Create a "target" column
df["target"] = ds.target.astype(str)
cols = df.columns.tolist()
df = df[cols[-1:] + cols[:-1]]

# Create an "image" column
df["image"] = df.apply(
    lambda row: wandb.Image(row[1:].values.reshape(8, 8) / 16.0), axis=1
)
cols = df.columns.tolist()
df = df[cols[-1:] + cols[:-1]]

wandb.log({"digits": df})
wandb.finish()

위의 코드를 실행하면 UI에 Table이 다시 표시됩니다. 2D Projection을 선택하면 Embedding 정의, 색상, 알고리즘 (PCA, UMAP, t-SNE), 알고리즘 파라미터를 구성하고 오버레이할 수도 있습니다 (이 경우 점 위로 마우스를 가져갈 때 이미지가 표시됨). 이 특정 경우에서는 이 모든 것이 “스마트 기본값"이며 2D Projection에서 한 번의 클릭으로 매우 유사한 내용을 볼 수 있습니다. (이 예제와 상호 작용하려면 여기를 클릭하십시오.).

로깅 옵션

다양한 형식으로 Embeddings를 로그할 수 있습니다.

  1. 단일 Embedding 열: 데이터가 이미 “매트릭스"와 유사한 형식인 경우가 많습니다. 이 경우 셀 값의 데이터 유형이 list[int], list[float] 또는 np.ndarray일 수 있는 단일 Embedding 열을 만들 수 있습니다.
  2. 여러 숫자 열: 위의 두 예제에서는 이 접근 방식을 사용하고 각 차원에 대한 열을 만듭니다. 현재 셀에 대해 python int 또는 float를 허용합니다.

Single Embedding Column Many Numeric Columns

또한 모든 테이블과 마찬가지로 테이블 구성 방법에 대한 많은 옵션이 있습니다.

  1. wandb.Table(dataframe=df)를 사용하여 데이터프레임에서 직접
  2. wandb.Table(data=[...], columns=[...])를 사용하여 데이터 목록에서 직접
  3. 테이블을 점진적으로 행 단위로 빌드합니다 (코드에 루프가 있는 경우에 적합). table.add_data(...)를 사용하여 테이블에 행을 추가합니다.
  4. 테이블에 Embedding 열을 추가합니다 (Embedding 형식의 예측 목록이 있는 경우에 적합): table.add_col("col_name", ...)
  5. 계산된 열을 추가합니다 (테이블에서 매핑하려는 함수 또는 model이 있는 경우에 적합): table.add_computed_columns(lambda row, ndx: {"embedding": model.predict(row)})

플로팅 옵션

2D Projection을 선택한 후 기어 아이콘을 클릭하여 렌더링 설정을 편집할 수 있습니다. 원하는 열을 선택하는 것 외에도 (위 참조) 원하는 알고리즘 (원하는 파라미터와 함께)을 선택할 수 있습니다. 아래에서 UMAP 및 t-SNE에 대한 파라미터를 각각 볼 수 있습니다.