메인 콘텐츠로 건너뛰기
W&B Weave를 찾고 계신가요? 생성형 AI 애플리케이션 구축을 위한 W&B의 도구 제품군을 말씀하시는 건가요? Weave 문서는 여기에서 확인하세요: wandb.me/weave.
Query 패널을 사용해 데이터를 쿼리하고 대화형으로 시각화하세요.
Query 패널

쿼리 패널 생성

워크스페이스 또는 리포트에 쿼리를 추가합니다.
  1. 프로젝트의 워크스페이스로 이동합니다.
  2. 오른쪽 상단에서 Add panel을 클릭합니다.
  3. 드롭다운에서 Query panel을 선택합니다.

쿼리 구성 요소

Expressions

쿼리 표현식으로 W&B에 저장된 run, 아티팩트, 모델, 테이블 등의 데이터를 조회하세요.

예시: 테이블 쿼리하기

W&B Table을 쿼리하고 싶다고 가정해 보겠습니다. 트레이닝 코드에서 "cifar10_sample_table"이라는 테이블을 로깅합니다:
import wandb
with wandb.init() as run:
  run.log({"cifar10_sample_table":<MY_TABLE>})
쿼리 패널에서 테이블을 다음과 같이 쿼리할 수 있습니다:
runs.summary["cifar10_sample_table"]
테이블 쿼리 표현식
이를 단계별로 살펴보면 다음과 같습니다:
  • runs는 Query Panel이 Workspace 안에 있을 때 Query Panel Expressions에 자동으로 주입되는 변수입니다. 이 변수의 “값”은 해당 Workspace에서 볼 수 있는 run 목록입니다. run에서 사용할 수 있는 다양한 속성(attribute)에 대해 여기에서 자세히 알아보세요.
  • summary는 Run의 Summary 객체를 반환하는 op입니다. op는 매핑되어 동작하므로, 이 op가 리스트에 있는 각 Run에 적용되어 Summary 객체들의 리스트가 결과로 생성됩니다.
  • ["cifar10_sample_table"]는 대괄호로 표시되는 Pick op이며, predictions를 파라미터로 받습니다. Summary 객체는 딕셔너리나 맵처럼 동작하므로, 이 연산은 각 Summary 객체에서 predictions 필드를 선택합니다.
대화형으로 직접 쿼리를 작성하는 방법을 알아보려면 Query panel 데모를 참고하세요.

설정

패널의 왼쪽 상단에 있는 톱니바퀴 아이콘을 클릭해 쿼리 설정을 펼칩니다. 여기에서 패널 유형과 결과 패널의 파라미터를 설정할 수 있습니다.
패널 설정 메뉴

결과 패널

마지막으로, 쿼리 결과 패널은 선택한 쿼리 패널과 설정에 따라 쿼리 표현식의 결과를 렌더링하여 데이터를 대화형 형태로 표시합니다. 아래 이미지는 동일한 데이터를 테이블과 플롯으로 각각 보여줍니다.
테이블 결과 패널
플롯 결과 패널

기본 작업

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

정렬

열 옵션에서 정렬하기:
열 정렬 옵션

필터

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

Map

Map 연산은 리스트를 순회하면서 데이터의 각 요소에 함수를 적용합니다. 이는 패널 쿼리에서 직접 수행하거나, 컬럼 옵션에서 새 컬럼을 추가하여 수행할 수 있습니다.
Map operation query
Map column insertion

Groupby

쿼리에서 또는 열 옵션을 통해 그룹화를 수행할 수 있습니다.
쿼리로 그룹화
열 옵션으로 그룹화

Concat

concat 연산을 사용하면 두 개의 테이블을 연결할 수 있으며, 패널 설정에서 연결 또는 조인을 수행할 수 있습니다.

조인

쿼리 내에서 테이블을 직접 조인할 수도 있습니다. 다음 쿼리 표현식을 살펴보세요:
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 객체는 실험 기록을 저장합니다. 자세한 내용은 Accessing runs object를 참조하세요. 간단히 요약하면, runs 객체에는 다음과 같은 항목이 있습니다:
  • summary: run의 결과를 요약하는 정보를 담은 사전입니다. 정확도와 손실 같은 스칼라 값이나 대용량 파일이 포함될 수 있습니다. 기본적으로 wandb.Run.log()는 로깅된 시계열의 마지막 값을 summary로 설정합니다. summary의 내용을 직접 설정할 수도 있습니다. summary는 run의 출력이라고 생각하면 됩니다.
  • history: 모델이 트레이닝되는 동안 손실처럼 변화하는 값을 저장하기 위한 사전들의 리스트입니다. wandb.Run.log() 명령은 이 객체에 항목을 계속 추가합니다.
  • config: 트레이닝 run의 하이퍼파라미터나 데이터셋 아티팩트를 생성하는 run의 전처리 방법 등, run의 설정 정보를 담은 사전입니다. 이를 run의 “입력”이라고 생각하면 됩니다.
Runs 객체 구조

Artifacts 액세스

Artifacts는 W&B의 핵심 개념입니다. 버전이 관리되는 이름 있는 파일 및 디렉터리 컬렉션입니다. 모델 가중치, 데이터셋 및 기타 모든 파일이나 디렉터리를 추적하려면 Artifacts를 사용하세요. Artifacts는 W&B에 저장되며 다른 run에서 다운로드하거나 사용할 수 있습니다. 더 자세한 내용과 예시는 Accessing artifacts에서 확인할 수 있습니다. 일반적으로 Artifacts는 project 객체를 통해 액세스합니다:
  • project.artifactVersion(): 주어진 이름과 버전에 대해 프로젝트 내 특정 아티팩트 버전을 반환합니다
  • project.artifact(""): 프로젝트 내에서 주어진 이름에 해당하는 아티팩트를 반환합니다. 이후 .versions를 사용해 이 아티팩트의 모든 버전 목록을 가져올 수 있습니다
  • project.artifactType(): 프로젝트 내에서 주어진 이름에 해당하는 artifactType을 반환합니다. 이후 .artifacts를 사용해 이 타입의 모든 아티팩트 목록을 가져올 수 있습니다
  • project.artifactTypes: 프로젝트에서 사용 가능한 모든 아티팩트 타입 목록을 반환합니다
Artifact 액세스 메서드