메인 콘텐츠로 건너뛰기
W&B Weave를 찾고 계신가요? 생성형 AI 애플리케이션 개발을 위한 W&B의 도구 모음입니다. Weave 문서는 여기에서 확인할 수 있습니다: wandb.me/weave.
쿼리 패널을 사용해 데이터를 쿼리하고 대화형으로 시각화하세요.
쿼리 패널

쿼리 패널 만들기

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

쿼리 컴포넌트

표현식

run, artifact, 모델, 테이블 등 W&B에 저장된 데이터를 쿼리하려면 쿼리 표현식을 사용하세요.

예시: 테이블 쿼리하기

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는 쿼리 패널이 Workspace에 있을 때 Query Panel Expressions에 자동으로 주입되는 변수입니다. 이 변수의 “값”은 해당 Workspace에서 표시되는 run 목록입니다. run에서 사용할 수 있는 다양한 속성은 여기에서 확인하세요.
  • summary는 Run의 Summary 객체를 반환하는 op입니다. Ops는 매핑되므로, 이 op는 목록의 각 Run에 적용되어 결과적으로 Summary 객체의 목록을 반환합니다.
  • ["cifar10_sample_table"]는 Pick op(대괄호로 표시됨)이며, 파라미터는 predictions입니다. Summary 객체는 딕셔너리나 맵처럼 동작하므로, 이 오퍼레이션은 각 Summary 객체에서 predictions 필드를 선택합니다.
직접 쿼리를 대화형으로 작성하는 방법을 알아보려면 쿼리 패널 데모를 참조하세요.

설정

패널 왼쪽 상단의 톱니바퀴 아이콘을 선택해 쿼리 설정을 확장합니다. 그러면 패널 유형과 결과 패널의 파라미터를 설정할 수 있습니다.
패널 설정 메뉴

결과 패널

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

기본 오퍼레이션

다음은 쿼리 패널에서 수행할 수 있는 일반적인 오퍼레이션입니다.

정렬

열 옵션에서 정렬할 수 있습니다:
열 정렬 옵션

필터

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

Map

Map 오퍼레이션은 목록을 순회하면서 데이터의 각 요소에 함수를 적용합니다. 패널 쿼리로 직접 수행하거나 열 옵션에서 새 열을 삽입해 수행할 수 있습니다.
Map 오퍼레이션 쿼리
Map 열 삽입

Groupby

쿼리나 열 옵션에서 groupby를 사용할 수 있습니다.
쿼리로 그룹화
열 옵션에서 그룹화

Concat

concat 오퍼레이션을 사용하면 테이블 2개를 연결할 수 있고, 패널 설정에서 concat 또는 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"]는 각 테이블의 selector로, 어떤 column을 기준으로 조인할지 결정합니다
  • "Table1""Table2"는 조인 시 각 테이블의 name입니다
  • truefalse는 왼쪽 및 오른쪽 내부/외부 조인 설정을 나타냅니다

Runs 객체

쿼리 패널을 사용해 runs 객체에 액세스할 수 있습니다. Run 객체는 Experiments의 기록을 저장합니다. 자세한 내용은 runs 객체에 액세스하기에서 확인할 수 있지만, 간단히 말해 runs 객체에는 다음이 포함됩니다:
  • summary: run 결과를 요약하는 정보를 담고 있는 딕셔너리입니다. accuracy나 loss 같은 스칼라 값일 수도 있고, 큰 파일일 수도 있습니다. 기본적으로 wandb.Run.log()는 로깅된 시계열의 마지막 값을 summary로 설정합니다. summary의 내용은 직접 설정할 수도 있습니다. summary를 run의 출력값이라고 생각하면 됩니다.
  • history: 모델이 트레이닝되는 동안 loss처럼 변하는 값을 저장하기 위한 딕셔너리 목록입니다. wandb.Run.log() 명령은 이 객체에 항목을 추가합니다.
  • config: 트레이닝 run의 하이퍼파라미터나 데이터셋 Artifact를 생성하는 run의 전처리 방법처럼 run의 설정 정보를 담은 딕셔너리입니다. 이를 run의 “입력값”이라고 생각하면 됩니다.
Runs 객체 구조

Artifacts 액세스

Artifacts는 W&B의 핵심 개념입니다. Artifacts는 버전이 지정된, 이름이 있는 파일 및 디렉터리 컬렉션입니다. Artifacts를 사용해 모델 가중치, 데이터셋, 그리고 기타 모든 파일이나 디렉터리를 추적할 수 있습니다. Artifacts는 W&B에 저장되며, 다운로드하거나 다른 run에서 사용할 수 있습니다. 자세한 내용과 예시는 Accessing artifacts에서 확인할 수 있습니다. Artifacts는 일반적으로 project 객체에서 액세스합니다.
  • project.artifactVersion(): 프로젝트 내에서 지정한 이름과 버전에 해당하는 특정 artifact 버전을 반환합니다
  • project.artifact(""): 프로젝트 내에서 지정한 이름의 artifact를 반환합니다. 그런 다음 .versions를 사용해 이 artifact의 모든 버전 목록을 조회할 수 있습니다
  • project.artifactType(): 프로젝트 내에서 지정한 이름의 artifactType을 반환합니다. 그런 다음 .artifacts를 사용해 이 유형의 모든 artifact 목록을 조회할 수 있습니다
  • project.artifactTypes: 프로젝트에 속한 모든 artifact 유형의 목록을 반환합니다
Artifact 액세스 방법