> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> 이 페이지의 일부 기능은 베타 단계로, 기능 플래그를 통해서만 사용할 수 있습니다. 프로필 페이지의 소개란에 `weave-plot`을 추가하면 관련 기능을 모두 사용할 수 있습니다.

# 쿼리 패널 개요

<Note>
  생성형 AI 애플리케이션 구축을 위한 W\&B의 도구 모음인 W\&B Weave를 찾고 계신가요? [Weave 문서](https://wandb.github.io/weave/?utm_source=wandb_docs\&utm_medium=docs\&utm_campaign=weave-nudge)를 참조하세요.
</Note>

쿼리 패널을 사용하면 데이터를 쿼리하고 대화형으로 시각화할 수 있습니다. 특정 run, 아티팩트, table 및 기타 W\&B 오브젝트를 하나의 뷰로 가져와 워크스페이스나 리포트를 벗어나지 않고 table 또는 플롯 형태로 탐색할 수 있습니다. 이 페이지는 로깅된 W\&B 데이터에 임시 쿼리를 작성하고 그 결과를 워크스페이스나 리포트에 표시하려는 사용자를 대상으로 합니다.

쿼리 패널은 다음 세 가지 요소로 구성됩니다.

* **[표현식](#expressions)**: 선택할 데이터입니다.
* **[설정](#configurations)**: 패널 유형, 톱니바퀴 메뉴의 옵션 등 패널에 적용하는 선택 설정입니다.
* **[결과 패널](#result-panels)**: table이나 플롯 등 결과를 표시하는 방식입니다.

직접 사용해 볼 수 있는 대화형 예시와 쿼리 구문을 단계별로 안내하는 워크스루는 공개된 [쿼리 패널 examples report](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr)를 참조하세요. 생성된 유형과 Op의 목록은 [쿼리 표현식 언어 개요](/ko/products/wandb/ref/query-panel)에서 확인할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/pretty_panel.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=38e62e3bad5e871e36c06f54502f8738" alt="Query panel" width="2212" height="1326" data-path="products/wandb/_media/pretty_panel.png" />
</Frame>

<h2 id="create-a-query-panel">
  쿼리 패널 만들기
</h2>

쿼리 패널을 추가하면 표현식을 작성하고 그 결과를 시각화할 공간이 생깁니다. 쿼리 패널은 프로젝트 워크스페이스나 리포트에 추가할 수 있습니다.

<Tabs>
  <Tab title="프로젝트 워크스페이스">
    1. 프로젝트 워크스페이스로 이동하세요.
    2. 오른쪽 상단에서 **Add panel**을 클릭하세요.
    3. 드롭다운 메뉴에서 **Query panel**을 선택하세요.
  </Tab>

  <Tab title="W&B Report">
    * **/Query panel**을 입력한 후 선택하세요.

    <Frame>
      <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/add_weave_panel_report_1.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=aa593a0dad7fc945272917451b0df542" alt="Query panel 옵션" width="473" height="370" data-path="products/wandb/_media/add_weave_panel_report_1.png" />
    </Frame>

    또는 쿼리를 run 세트와 연결할 수도 있습니다.

    1. 리포트에서 **/Panel grid**를 입력한 후 선택하세요.
    2. **Add panel** 버튼을 클릭하세요.
    3. 드롭다운 메뉴에서 **Query panel**을 선택하세요.
  </Tab>
</Tabs>

<h2 id="query-components">
  쿼리 컴포넌트
</h2>

다음 섹션에서는 쿼리 패널을 구성하는 세 가지 요소인 데이터를 선택하는 표현식, 패널의 동작 방식을 제어하는 설정, 출력을 렌더링하는 결과 패널에 대해 설명합니다.

<h3 id="expressions">
  표현식
</h3>

쿼리 표현식을 사용하면 run, 아티팩트, 모델, table 등 W\&B에 저장된 데이터를 쿼리할 수 있습니다.

<h4 id="example-query-a-table">
  예시: table 쿼리하기
</h4>

W\&B Table을 쿼리한다고 가정해 보겠습니다. 트레이닝 코드에서 `"cifar10_sample_table"`이라는 table을 다음과 같이 로깅합니다.

```python theme={"system"}
import wandb
with wandb.init() as run:
  run.log({"cifar10_sample_table":[MY-TABLE]})
```

쿼리 패널에서는 다음과 같이 table을 쿼리할 수 있습니다:

```python theme={"system"}
runs.summary["cifar10_sample_table"]
```

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/basic_weave_expression.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=d7690752f74596939bf571a2dbf0f83c" alt="table 쿼리 표현식" width="316" height="56" data-path="products/wandb/_media/basic_weave_expression.png" />
</Frame>

각 부분을 살펴보면 다음과 같습니다.

* `runs`는 쿼리 패널이 워크스페이스에 있을 때 쿼리 패널 표현식에 자동으로 주입되는 변수입니다. 값은 해당 워크스페이스에 표시되는 run 목록입니다. run에서 사용할 수 있는 여러 속성에 대한 자세한 내용은 [다양한 속성 이해하기](/ko/products/wandb/track/public-api-guide#understanding-the-different-attributes)를 참조하세요.
* `summary`는 run의 Summary 객체를 반환하는 Op입니다. Op는 *매핑*되므로 이 Op가 목록의 각 run에 적용되고, 그 결과 Summary 객체 목록이 생성됩니다.
* `["cifar10_sample_table"]`은 키가 `cifar10_sample_table`인 Pick Op(대괄호로 표시)입니다. Summary 객체는 딕셔너리나 맵처럼 동작하므로, 이 오퍼레이션은 각 Summary 객체에서 해당 필드를 가져옵니다.

<h3 id="configurations">
  설정
</h3>

패널 왼쪽 상단의 톱니바퀴 아이콘을 클릭하면 쿼리 설정이 펼쳐집니다. 여기에서 패널 유형과 결과 패널의 매개변수를 설정할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_panel_config.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=f4e02df818f31851f45686d25ce347ac" alt="패널 설정 메뉴" width="1464" height="576" data-path="products/wandb/_media/weave_panel_config.png" />
</Frame>

<h4 id="panel-options">
  Panel options
</h4>

설정 메뉴에는 패널이 table 형식의 결과를 결합하거나 로드하는 방식을 바꾸는 옵션이 있을 수 있습니다. 정확한 레이블과 사용 가능 여부는 표현식과 패널 유형에 따라 다릅니다. 구체적인 설정 예시는 [Query panel examples report](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr)를 참조하세요.

**Concat**

호환되는 table 형식의 결과를 병합하여 보기 및 후속 오퍼레이션에서 하나의 table로 다루려면 설정에서 **Concat**을 사용하세요. 표현식 수준의 행 병합(예: 쿼리의 `concat` 및 `join`)은 이 설정과 별개로 동작합니다. 자세한 내용은 [표현식에서 table 결합하기](#combine-tables-in-expressions)를 참조하세요.

**Paginate**

table 결과가 너무 커서 한 번에 렌더링하기 어려울 때는 **Paginate**를 사용하세요. 페이지 매김을 사용하면 행을 청크 단위로 로드하므로 패널이 원활하게 반응합니다. 이 옵션은 많은 행 목록을 반환하는 표현식과 함께 사용하세요. 페이지 매김에 적합한 패턴은 [Query panel examples report](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr)를 참조하세요.

<h3 id="result-panels">
  결과 패널
</h3>

쿼리 결과 패널은 선택한 쿼리 패널을 사용해 쿼리 표현식의 결과를 렌더링하며, 데이터를 대화형으로 표시하도록 설정되어 있습니다. 다음 이미지는 동일한 데이터를 Table과 Plot으로 각각 표시한 모습입니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/result_panel_table.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=175f306abc19dcefb50f0088029ef059" alt="Table 결과 패널" width="1074" height="471" data-path="products/wandb/_media/result_panel_table.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/result_panel_plot.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=f40b3cb175208c0a653fcddad015fbfc" alt="Plot 결과 패널" width="1073" height="471" data-path="products/wandb/_media/result_panel_plot.png" />
</Frame>

<h3 id="step-through-run-history">
  run 이력을 step별로 살펴보기
</h3>

`runs` 또는 `runs.history`로 만든 table과 플롯에서는 앱에 **step** 컨트롤(예: 슬라이더)이 표시될 수 있습니다. 이 컨트롤로 로깅된 step 사이를 이동하면서 run이 진행되는 동안의 메트릭, 텍스트 또는 미디어를 확인할 수 있습니다. 표현식을 변경한 후 쿼리 패널의 설정을 편집하여 **Render As**를 **Stepper**로 변경하세요. 데이터를 로깅한 방식에 더 적합하다면 `_step` 대신 다른 메트릭을 기준으로 컨트롤이 동작하도록 설정할 수도 있습니다. 표현식 예시는 [Query panel examples report](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr)를 참조하세요.

<h2 id="basic-operations">
  기본 오퍼레이션
</h2>

쿼리 패널에 결과가 표시되면 행을 정렬, 필터링, 매핑 또는 그룹화하여 원하는 내용만 추려 볼 수 있습니다. 다음은 쿼리 패널에서 자주 사용하는 오퍼레이션입니다.

<h3 id="sort">
  정렬
</h3>

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

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_sort.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=9f0dc5dc9ba1591b2ed972dc6284566c" alt="열 정렬 옵션" width="1072" height="471" data-path="products/wandb/_media/weave_sort.png" />
</Frame>

<h3 id="filter">
  필터
</h3>

쿼리에서 직접 필터링하거나 패널 왼쪽 상단에 있는 필터 버튼을 사용할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_filter_1.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=773ab72a6b53961db1f9e6a100fa59d4" alt="쿼리 필터 구문" width="1071" height="471" data-path="products/wandb/_media/weave_filter_1.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_filter_2.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=357c95207f9b1816a4d52c336b68521e" alt="필터 버튼" width="1071" height="470" data-path="products/wandb/_media/weave_filter_2.png" />
</Frame>

<h3 id="map">
  Map
</h3>

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

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_map.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=4ee41e01914c5cfc0b98a5abd17d1214" alt="Map 오퍼레이션 쿼리" width="1073" height="471" data-path="products/wandb/_media/weave_map.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_map.gif?s=b327dae5cac50a6812f8d64b51d4eef1" alt="Map 열 삽입" width="600" height="269" data-path="products/wandb/_media/weave_map.gif" />
</Frame>

<h3 id="group-by">
  그룹화
</h3>

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

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_groupby.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=406ad3c21e204b19949705a87c49a856" alt="쿼리로 그룹화" width="1805" height="459" data-path="products/wandb/_media/weave_groupby.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_groupby.gif?s=983aa12979f3b80df3136399b6de95be" alt="열 옵션으로 그룹화" width="600" height="234" data-path="products/wandb/_media/weave_groupby.gif" />
</Frame>

<h3 id="combine-tables-in-expressions">
  표현식에서 table 결합하기
</h3>

table의 행 목록을 이어 붙이거나 병합해야 할 때는 표현식에서 `concat`, `join` 및 관련 Op를 사용하세요. 전체 예시는 [Join](#join)을 참조하세요. [Panel options](#panel-options)의 **Concat** 및 **Paginate** 항목은 UI에서 table 결과를 병합하고 로드하는 방식을 제어하는 별도의 설정입니다.

<h3 id="join">
  Join
</h3>

쿼리에서 table을 직접 조인할 수도 있습니다. 다음 쿼리 표현식을 예로 들어 보겠습니다.

```python theme={"system"}
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")
```

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_join.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=b8fb21eda2589c724c5e1b64713293fb" alt="table 조인 오퍼레이션" width="1804" height="458" data-path="products/wandb/_media/weave_join.png" />
</Frame>

왼쪽 table은 다음 코드로 생성합니다.

```python theme={"system"}
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join
```

오른쪽 table은 다음 코드로 생성됩니다:

```python theme={"system"}
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat
```

각 항목의 의미는 다음과 같습니다.

* `(row) => row["Label"]`은 각 table의 선택자로, 조인 기준 열을 지정합니다.
* `"Table1"`과 `"Table2"`는 조인할 때 각 table에 붙는 이름입니다.
* `true`와 `false`는 왼쪽 및 오른쪽의 내부/외부 조인 설정을 지정합니다.

<h2 id="runs-object">
  Runs 객체
</h2>

쿼리 패널을 사용하여 `runs` 객체에 액세스하세요. run 객체에는 실험 기록이 저장됩니다. 자세한 내용은 [Accessing runs object](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr#3.-accessing-runs-object)를 참조하세요. 간단히 요약하면 `runs` 객체에서는 다음 항목을 사용할 수 있습니다.

* `summary`: run의 결과를 요약한 정보를 담은 딕셔너리입니다. summary에는 정확도나 loss 같은 스칼라 값뿐 아니라 대용량 파일도 포함될 수 있습니다. 기본적으로 `wandb.Run.log()`는 로깅된 시계열의 최종 값을 summary로 설정합니다. summary의 내용을 직접 설정할 수도 있습니다. summary는 run의 출력이라고 보면 됩니다.
* `history`: loss처럼 모델 트레이닝 중에 변하는 값을 저장하기 위한 딕셔너리 목록입니다. `wandb.Run.log()` 명령을 실행하면 이 객체에 값이 추가됩니다.
* `config`: run의 설정 정보를 담은 딕셔너리입니다. 예를 들어 트레이닝 run의 하이퍼파라미터나 데이터셋 아티팩트를 생성하는 run의 전처리 방법 등이 여기에 해당합니다. config는 run의 입력이라고 보면 됩니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_runs_object.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=221fd5cc6e7b4b0da109e8e69e7116ff" alt="Runs 객체 구조" width="1797" height="427" data-path="products/wandb/_media/weave_runs_object.png" />
</Frame>

<h2 id="access-artifacts">
  아티팩트 액세스
</h2>

아티팩트는 W\&B의 핵심 개념으로, 버전과 이름이 지정된 파일 및 디렉터리의 컬렉션입니다. 아티팩트를 사용하면 모델 가중치, 데이터셋을 비롯한 모든 파일이나 디렉터리를 추적할 수 있습니다. 아티팩트는 W\&B에 저장되며, 이를 다운로드하거나 다른 run에서 사용할 수 있습니다. 자세한 내용과 예시는 [아티팩트 액세스](https://forge.coreweave.com/wandb/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2?accessToken=bvzq5hwooare9zy790yfl3oitutbvno2i6c2s81gk91750m53m2hdclj0jvryhcr#4.-accessing-artifacts)를 참조하세요. 아티팩트에는 일반적으로 `project` 객체를 통해 액세스합니다.

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

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/weave_artifacts.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=aa05642756d044c69a3c4609a3fd2f53" alt="아티팩트 액세스 방법" width="1798" height="662" data-path="products/wandb/_media/weave_artifacts.png" />
</Frame>
