> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-update-reference-docs-40.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 이 페이지의 일부 기능은 베타 버전이며 기능 플래그로 숨겨져 있습니다. 관련된 모든 기능을 사용하려면 프로필 페이지의 소개에 `weave-plot`을 추가하세요.

# 쿼리 패널 Overview

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

쿼리 패널을 사용해 데이터를 쿼리하고 대화형으로 시각화하세요. 쿼리 패널을 사용하면 워크스페이스나 report를 벗어나지 않고도 특정 Runs, 아티팩트, 테이블 및 기타 W\&B 객체를 단일 뷰로 가져와 테이블이나 플롯으로 탐색할 수 있습니다. 이 페이지는 로깅된 W\&B 데이터에 대해 즉석 쿼리를 작성하고 그 결과를 워크스페이스나 report 내에 표시하려는 사용자를 위한 페이지입니다.

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

* **[표현식](#expressions)**: 선택한 데이터입니다.
* **[설정](#configurations)**: 패널 유형과 톱니바퀴 메뉴의 옵션 같은 패널의 선택 설정입니다.
* **[결과 패널](#result-panels)**: 테이블이나 플롯 등으로 결과를 표시하는 방식입니다.

사용해 볼 수 있는 대화형 예시는 공개 [Query panel examples report](https://wandb.ai/luis_team_test/weave_example_queries/reports/Query-Panel-Examples---Vmlldzo1NzIxOTY2)를 참조하세요. 쿼리 구문에 대한 안내형 워크스루는 [Query panel tutorial report](https://wandb.ai/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2)를 참조하세요. 생성된 유형과 Ops는 [query 표현식 language overview](/ko/models/ref/query-panel)에 나와 있습니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/pretty_panel.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=aef9f1e5b260bfe8cb7d674fef767033" alt="쿼리 패널" width="2212" height="1326" data-path="images/weave/pretty_panel.png" />
</Frame>

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

표현식을 작성하고 결과를 시각화할 수 있도록 쿼리 패널을 추가합니다. 프로젝트 워크스페이스 또는 Report 내에 추가할 수 있습니다.

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

  <Tab title="W&B Report">
    * **/Query panel**을 입력한 다음 선택합니다.

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/add_weave_panel_report_1.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=fc84ffeeb70c2049b016d8ac74ca662e" alt="쿼리 패널 옵션" width="473" height="370" data-path="images/weave/add_weave_panel_report_1.png" />
    </Frame>

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

    1. Report 내에서 **/Panel grid**를 입력한 다음 선택합니다.
    2. **Add panel** 버튼을 클릭합니다.
    3. 드롭다운 메뉴에서 **Query panel**을 선택합니다.
  </Tab>
</Tabs>

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

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

<div id="expressions">
  ### 표현식
</div>

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

<div id="example-query-a-table">
  #### 예시: 테이블 쿼리하기
</div>

W\&B Table을 쿼리하는 경우를 가정해 보겠습니다. 트레이닝 코드에서 `"cifar10_sample_table"`이라는 테이블을 기록합니다:

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

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

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/basic_weave_expression.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=fc862d2fcc339249ece45cc2fd120bb8" alt="테이블 쿼리 표현식" width="316" height="56" data-path="images/weave/basic_weave_expression.png" />
</Frame>

이를 하나씩 살펴보면 다음과 같습니다.

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

<div id="configurations">
  ### 설정
</div>

패널 왼쪽 상단의 톱니바퀴 아이콘을 클릭해 쿼리 설정을 확장합니다. 이 설정을 통해 패널 유형과 결과 패널의 파라미터를 설정할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_panel_config.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=306d3749c782a140091dd026dca42468" alt="패널 설정 메뉴" width="1464" height="576" data-path="images/weave/weave_panel_config.png" />
</Frame>

<div id="panel-options">
  #### 패널 옵션
</div>

설정 메뉴에는 패널이 테이블 스타일 결과를 결합하거나 로드하는 방식을 변경하는 옵션이 포함될 수 있습니다. 정확한 레이블과 사용 가능 여부는 표현식과 패널 유형에 따라 달라집니다. 구체적인 설정 예시는 [Query panel examples report](https://wandb.ai/luis_team_test/weave_example_queries/reports/Query-Panel-Examples---Vmlldzo1NzIxOTY2)를 참조하세요.

**Concat**

호환되는 테이블 스타일 결과를 병합해 패널이 이를 보기 및 후속 오퍼레이션을 위한 단일 테이블로 처리하도록 하려면 설정에서 **Concat**을 사용하세요. 표현식 수준의 행 병합(예: 쿼리의 `concat` 및 `join`)은 이 설정과는 별개입니다. 자세한 내용은 [표현식에서 테이블 결합](#combine-tables-in-expressions)을 참조하세요.

**Paginate**

테이블 결과가 한 번에 렌더링하기에는 너무 클 수 있을 때는 **Paginate**를 사용하세요. 페이지네이션은 행을 청크 단위로 로드해 패널의 응답성을 유지합니다. 이 옵션은 큰 행 목록을 반환하는 표현식과 함께 사용하세요. 페이지네이션과 잘 맞는 패턴은 [Query panel examples report](https://wandb.ai/luis_team_test/weave_example_queries/reports/Query-Panel-Examples---Vmlldzo1NzIxOTY2)를 참조하세요.

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

쿼리 결과 패널은 선택한 쿼리 패널을 사용해 쿼리 표현식의 결과를 렌더링하고, 데이터를 대화형 형식으로 표시하도록 구성됩니다. 아래 이미지는 동일한 데이터를 테이블과 Plot으로 보여줍니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/result_panel_table.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=fba99f22871ee2d8b5f2395e1d574499" alt="테이블 결과 패널" width="1074" height="471" data-path="images/weave/result_panel_table.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/result_panel_plot.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=082185a145cfc765d2c3571f7a1d87fd" alt="Plot 결과 패널" width="1073" height="471" data-path="images/weave/result_panel_plot.png" />
</Frame>

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

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

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

쿼리 패널에 결과가 렌더링되면 행을 정렬, 필터링, 매핑 또는 그룹화하여 표시되는 내용을 더 세밀하게 조정할 수 있습니다. 다음은 쿼리 패널 내에서 수행할 수 있는 일반적인 오퍼레이션입니다.

<div id="sort">
  ### 정렬
</div>

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_sort.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=9b87ad4a41f43d3aeb08789f5ee09d1f" alt="열 정렬 옵션" width="1072" height="471" data-path="images/weave/weave_sort.png" />
</Frame>

<div id="filter">
  ### 필터
</div>

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_filter_1.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=473abd9101ba6234d7908a1789fcbaa4" alt="쿼리 필터 구문" width="1071" height="471" data-path="images/weave/weave_filter_1.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_filter_2.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=c0d13c507e014588b1e1dfad1ed56288" alt="필터 버튼" width="1071" height="470" data-path="images/weave/weave_filter_2.png" />
</Frame>

<div id="map">
  ### Map
</div>

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_map.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=0d809cd5c901270b729b21986fba8682" alt="Map 오퍼레이션 쿼리" width="1073" height="471" data-path="images/weave/weave_map.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_map.gif?s=469bad5f3f69e7078af43fd30209634a" alt="Map 열 삽입" width="600" height="269" data-path="images/weave/weave_map.gif" />
</Frame>

<div id="group-by">
  ### Group by
</div>

쿼리나 열 옵션에서 group by를 사용할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_groupby.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=70f3e55139c228f6abf5d95d330e5a16" alt="쿼리로 그룹화" width="1805" height="459" data-path="images/weave/weave_groupby.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_groupby.gif?s=4e41e730434320f906e27869dfd78885" alt="열 옵션에서 그룹화" width="600" height="234" data-path="images/weave/weave_groupby.gif" />
</Frame>

<div id="combine-tables-in-expressions">
  ### 표현식에서 테이블 결합하기
</div>

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

<div id="join">
  ### 조인
</div>

쿼리에서 테이블을 직접 조인할 수도 있습니다. 다음 쿼리 표현식을 살펴보겠습니다:

```python theme={null}
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/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_join.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=ba4a9015745918a1e1af760e4a47fb4e" alt="테이블 조인 오퍼레이션" width="1804" height="458" data-path="images/weave/weave_join.png" />
</Frame>

왼쪽 테이블은 다음과 같이 생성됩니다:

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

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

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

다음과 같습니다:

* `(row) => row["Label"]`는 각 테이블의 selector로, 어떤 column을 기준으로 조인할지 결정합니다.
* `"Table1"` 및 `"Table2"`는 조인 시 각 테이블의 name입니다.
* `true` 및 `false`는 왼쪽 및 오른쪽 내부/외부 조인 설정을 나타냅니다.

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

쿼리 패널을 사용해 `runs` 객체에 액세스할 수 있습니다. Run 객체는 Experiments의 기록을 저장합니다. 자세한 내용은 [runs 객체에 액세스하기](https://wandb.ai/luis_team_test/weave_example_queries/reports/Weave-queries---Vmlldzo1NzIxOTY2#3.-accessing-runs-object)에서 확인하세요. 간단히 살펴보면 `runs` 객체에서 다음을 사용할 수 있습니다:

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_runs_object.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=5a621a68d0da42393f3aa7898d618d3b" alt="Runs 객체 구조" width="1797" height="427" data-path="images/weave/weave_runs_object.png" />
</Frame>

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

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

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-update-reference-docs-40/-aeEQCZusn7VftqP/images/weave/weave_artifacts.png?fit=max&auto=format&n=-aeEQCZusn7VftqP&q=85&s=5d2f3643d6393fc33d4ed15ee7a77252" alt="아티팩트 액세스 방법" width="1798" height="662" data-path="images/weave/weave_artifacts.png" />
</Frame>
