메인 콘텐츠로 건너뛰기
W&B Weave를 찾고 계신가요? 생성형 AI 애플리케이션 개발을 위한 W&B의 도구 모음입니다. Weave 문서는 여기에서 확인할 수 있습니다: wandb.me/weave.
쿼리 패널을 사용해 데이터를 쿼리하고 대화형으로 시각화하세요. 쿼리 패널은 세 가지 요소로 구성됩니다:
  1. 표현식: 선택한 데이터입니다.
  2. 설정: 패널 유형과 톱니바퀴 메뉴의 옵션 같은 패널의 선택 설정입니다.
  3. 결과 패널: 테이블이나 플롯 등으로 결과를 표시하는 방식입니다.
사용해 볼 수 있는 다양한 대화형 예시는 공개 Query panel examples report를 참조하세요. 쿼리 구문에 대한 안내형 워크스루는 Query panel tutorial report를 참조하세요. 생성된 유형과 Ops는 query 표현식 language overview에 나와 있습니다.
쿼리 패널

쿼리 패널 만들기

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

설정

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

패널 옵션

설정 메뉴에는 테이블 스타일 결과를 결합하거나 로드하는 방식을 변경하는 옵션이 포함될 수 있습니다. 정확한 레이블과 사용 가능 여부는 표현식과 패널 유형에 따라 달라질 수 있습니다. 구체적인 설정 예시는 Query panel examples report를 참조하세요. Concat 호환되는 테이블 스타일 결과를 병합해 패널이 이를 보기 및 후속 오퍼레이션을 위한 단일 테이블로 처리하도록 하려면 설정에서 Concat을 사용하세요. 표현식 수준의 행 병합(예: 쿼리의 concatjoin)은 이 설정과는 별개입니다. 표현식에서 테이블 결합을 참조하세요. Paginate 테이블 결과가 한 번에 렌더링하기에는 너무 클 수 있을 때는 Paginate를 사용하세요. 페이지네이션은 행을 청크 단위로 로드해 패널의 응답성을 유지합니다. 이 옵션은 큰 행 목록을 반환하는 표현식과 함께 사용하세요. 페이지네이션과 잘 맞는 패턴은 Query panel examples report를 참조하세요.

결과 패널

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

run 이력을 단계별로 살펴보기

runs 또는 runs.history로 만든 테이블과 플롯에서는 앱이 step 컨트롤(예: 슬라이더)을 표시할 수 있습니다. 이를 사용하면 로깅된 step 사이를 이동하면서 run 전반에 걸친 메트릭, 텍스트 또는 미디어를 확인할 수 있습니다. 표현식을 변경한 후에는 Query panel의 설정을 편집하고 ‘Render As’를 ‘Stepper’로 변경하세요. 이 컨트롤은 _step 대신 다른 메트릭을 따르도록 설정할 수도 있으며, 이렇게 하는 편이 데이터 로깅 방식에 더 잘 맞을 수 있습니다. 예시 식은 Query panel examples report에서 확인하세요.

기본 오퍼레이션

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

정렬

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

필터

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

Map

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

Groupby

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

표현식에서 테이블 결합하기

테이블의 행 목록을 쌓거나 병합해야 하는 경우, 표현식에서 concat, join 및 관련 ops를 사용하세요. 전체 예시는 Join에서 확인하세요. Panel optionsConcatPaginate 항목은 별도의 컨트롤로, UI에서 테이블 결과를 병합하고 로드하는 방식을 제어합니다.

조인

쿼리에서 테이블을 직접 조인할 수도 있습니다. 다음 쿼리 표현식을 살펴보겠습니다:
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 액세스 방법