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

# annotation 큐 설정

> annotation 큐를 생성하고, 트레이스를 도메인 전문가에게 전달하고, 구조화된 피드백을 내보냅니다.

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub 소스 코드
  </a>;

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Colab에서 사용해 보기
  </a>;

<div id="overview">
  ## Overview
</div>

annotation 큐를 사용하면 도메인 전문가가 전체 Weave UI로 이동하지 않고도 선택한 트레이스를 구조화된 방식으로 검토할 수 있도록 전달할 수 있습니다. 어떤 피드백을 수집할지 정의하고, 검토가 필요한 트레이스를 선택한 다음, 나중에 완료된 annotation을 분석하거나 데이터셋을 만드는 데 사용할 수 있도록 내보낼 수 있습니다. 사용 사례는 다음과 같습니다.

* **수동 트레이스 점수화**: SME가 모델 출력의 정확성, 품질, 스타일을 평가하도록 합니다.
* **실패 분석**: 실패 모드(환각, 거부, 루프)를 annotation하여 모델이 어디에서 문제가 생기는지 파악합니다.
* **도메인 전문가 검토**: 의료, 법률, 안전 분야 전문가가 작업 중심 인터페이스에서 콘텐츠를 검토할 수 있게 합니다.
* **데이터셋 생성**: annotation이 완료된 트레이스를 Evaluation 또는 트레이닝 데이터셋으로 전환합니다.

<div id="end-to-end-workflow">
  ## 엔드투엔드 워크플로
</div>

다음 워크플로는 annotation 큐를 사용해 검토를 획득하는 과정을 요약합니다:

1. 어노테이션 필드를 정의합니다.
2. annotation 큐를 생성합니다.
3. 검토할 트레이스를 큐에 로드합니다.
4. 도메인 전문가가 검토를 완료하는 동안 진행 상황을 모니터링합니다.
5. 완료된 어노테이션을 필터링하고 내보냅니다.

<div id="define-annotation-fields">
  ## 어노테이션 필드 정의
</div>

어노테이션 큐를 만들기 시작하려면 먼저 어노테이션 필드를 정의해야 합니다. 그래야 큐를 설정할 때 해당 필드를 선택할 수 있습니다. 어노테이션 필드는 각 트레이스 항목에 대해 어노테이터가 제공하는 피드백을 정의합니다. 필드는 여러 큐와 프로젝트에서 재사용할 수 있습니다.

필드 유형은 다음과 같습니다.

* 정확성이나 수용 가능성과 같은 불리언 판단
* 품질이나 신뢰도와 같은 숫자 또는 정수 값
* 실패 모드나 의도와 같은 범주형 레이블
* 정성적 피드백을 위한 자유 형식 텍스트

어노테이션 필드를 만들려면 다음 단계를 따르세요.

1. [wandb.ai](https://wandb.ai)로 이동하여 프로젝트를 선택합니다.
2. Weave 프로젝트 사이드바에서 **Annotate**를 클릭합니다. **Annotate**가 보이지 않으면 **More** 아래 메뉴에 있을 수 있습니다.
3. 탭 바에서 **Fields** 탭을 클릭합니다.
4. Fields 테이블 툴바에서 **New Field**를 클릭합니다.
5. **Create annotation field** 모달 대화상자에서 다음을 설정합니다.
   * **Type**: Boolean, Integer, Number, String 또는 범주형 옵션
   * **Name**: 어노테이터에게 표시할 필드 이름
   * **Description** (선택): 어노테이터에게 표시할, 이 필드를 평가하기 위한 세부 정보
6. **Create annotation field**를 클릭하여 필드를 저장합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/IJ5wvwHtTZtWc35M/weave/guides/tracking/imgs/AnnotationCreateField.png?fit=max&auto=format&n=IJ5wvwHtTZtWc35M&q=85&s=851971827ea7222d058faa0a445712d5" alt="트레이스 항목을 검토할 때 어노테이터가 작성하는 스키마를 정의하는 데 사용되는 이름, 설명, 필드 유형 입력란이 있는 어노테이션 필드 생성 대화상자" width="1331" height="528" data-path="weave/guides/tracking/imgs/AnnotationCreateField.png" />
</Frame>

어노테이션의 일관성을 보장하기 위해 필드는 생성 후 수정할 수 없습니다.

<div id="create-an-annotation-queue">
  ## 주석 큐 만들기
</div>

주석 큐는 다음으로 구성됩니다.

* 주석 필드 세트
* 주석 작업자에게 작업 지침을 제공하는 가이드라인
* 검토를 기다리는 트레이스 항목 모음

주석 큐를 만들려면 다음 단계를 따르세요.

1. Weave 프로젝트 사이드바에서 **Annotate**를 클릭합니다.
2. 탭 바에서 **Queues** 탭을 클릭합니다.
3. Queues 테이블 툴바에서 **Create Queue**를 클릭합니다.
4. **Create Annotation Queue** 모달 대화상자에서 다음을 설정합니다.
   * **Queue name**: 주석 작업자가 작업을 완료할 때 선택하는 큐 이름입니다.
   * **Guidelines** (선택): 주석 작업자를 위한 추가 지침입니다.
5. **Next**를 클릭합니다.
6. **Manage fields**를 클릭하고 이번 검토 작업에 포함할 Annotation Fields를 선택합니다. 프로젝트의 기존 Annotation Fields는 모두 선택할 수 있습니다.
7. 큐에 사용할 모든 필드를 선택한 후 **Create Queue**를 클릭해 큐를 저장합니다.

프로젝트의 모든 주석 큐는 Annotation Queues 페이지에 나열됩니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/IJ5wvwHtTZtWc35M/weave/guides/tracking/imgs/AnnotationQueues.png?fit=max&auto=format&n=IJ5wvwHtTZtWc35M&q=85&s=d4484f3d9a194f36c94c71746a64d31c" alt="프로젝트의 큐 이름, 설명, 주석 워크플로를 추적하기 위한 검토 진행 상태가 포함된 큐 테이블을 보여주는 Annotation Queues 페이지입니다." width="1334" height="395" data-path="weave/guides/tracking/imgs/AnnotationQueues.png" />
</Frame>

주석 큐를 만들면 평가에 사용할 필드와 가이드라인이 정의되지만, 어떤 데이터를 평가할지 파악하려면 여전히 큐에 트레이스를 추가해야 합니다.

<div id="add-traces-to-a-queue">
  ### 큐에 트레이스 추가
</div>

**트레이스** 페이지에서 직접 트레이스를 annotation queue에 추가합니다.

annotation queue에 트레이스를 추가하려면 다음과 같이 하세요.

1. Weave 프로젝트 사이드바에서 **트레이스**를 클릭합니다.
2. 트레이스 테이블 툴바에서 필요에 따라 트레이스를 필터링합니다(예: 할루시네이션 점수, 실패 모드 또는 특정 op 기준).
3. 테이블에서 annotation할 트레이스를 선택합니다.
4. 테이블의 작업 표시줄에서 **Add to queue**를 클릭해 선택한 행을 annotation queue에 추가합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/IJ5wvwHtTZtWc35M/weave/guides/tracking/imgs/AnnotationAddTraces.png?fit=max&auto=format&n=IJ5wvwHtTZtWc35M&q=85&s=5755d091c757ff96c01117c20d651ad1" alt="여러 행이 선택된 트레이스 테이블과 Add to queue 및 Add to dataset처럼 선택한 행에 적용되는 작업을 보여 주는 일괄 작업 표시줄." width="1346" height="862" data-path="weave/guides/tracking/imgs/AnnotationAddTraces.png" />
</Frame>

5. **Add to annotation queue** 모달 대화상자에서 다음을 설정합니다.
   * **Queue Name**: 목록에서 이 트레이스를 추가할 기존 큐의 이름을 선택합니다.
   * **Select trace data to display**: annotator가 결과를 평가할 때 표시할 Weave 트레이스 데이터 요소를 선택합니다.
     * **Inputs**: annotation 중에 표시할 트레이스 입력 필드를 선택합니다.
     * **Outputs**: annotation 중에 표시할 트레이스 출력 필드를 선택합니다.
6. **Add ***\[Count]*** traces to annotation queue**를 클릭하여 이 트레이스를 annotation queue 검토의 일부로 할당합니다.

트레이스를 추가할 때는 검토할 트레이스 입력과 출력 또는 모델 응답을 제어할 수 있습니다. 이렇게 하면 annotator가 정확한 판단을 내리는 데 필요한 맥락만 제시할 수 있습니다.

<div id="monitor-review-progress">
  ## 검토 진행 상황 모니터링
</div>

annotation queue를 생성하고 여기에 트레이스를 추가한 후, annotator가 검토를 시작할 수 있도록 큐 이름을 공유하세요. 검토 프로세스에 대한 자세한 내용은 [annotation queue에서 항목 검토하기](/ko/weave/guides/tracking/annotation-review)를 참조하세요.

annotator와 annotation queue의 직접 링크를 공유하려면 다음과 같이 하세요.

1. Weave 프로젝트 사이드바에서 **Annotate**를 클릭합니다.
2. 탭 바에서 **Queues** 탭을 클릭합니다.
3. Annotation Queues 테이블에서 큐 이름을 클릭해 큐 항목을 엽니다.
4. Queue 헤더 바에서 링크 버튼을 클릭해 이 큐의 직접 링크를 복사합니다. 브라우저 주소 표시줄에서 URL을 복사할 수도 있습니다.

<img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/IJ5wvwHtTZtWc35M/weave/guides/tracking/imgs/AnnotationLinkToQueue.png?fit=max&auto=format&n=IJ5wvwHtTZtWc35M&q=85&s=6ce14265ca831c3f37cdfa29dd69d136" alt="Annotation Queue 헤더 바에서 annotation queue의 링크 복사" width="1036" height="100" data-path="weave/guides/tracking/imgs/AnnotationLinkToQueue.png" />

Annotation Queues 테이블에서 **State** 열은 검토 진행 상황을 나타냅니다.

* **Not started**: 큐에 항목은 있지만 제출된 annotation은 없습니다.
* **In progress**: 하나 이상의 항목이 검토되었습니다.
* **Completed**: 모든 항목이 검토되었습니다.

Annotation Queues 테이블에서 **Calls with responses** 열은 제출된 검토가 하나 이상 있는 항목의 비율(전체 **Calls** 수 기준)을 나타냅니다.

<div id="filter-and-export-annotations">
  ## 어노테이션 필터링 및 내보내기
</div>

Weave는 완료된 어노테이션을 트레이스의 구조화된 메타데이터로 저장합니다.

다음을 할 수 있습니다:

* 큐 할당과 어노테이션 완료 여부를 기준으로 트레이스를 필터링합니다.
* 필터링한 뷰를 다시 사용할 수 있도록 저장합니다.
* 어노테이션된 트레이스를 평가 또는 트레이닝 워크플로용 데이터셋으로 내보냅니다.

이렇게 하면 전문가의 피드백을 모델 평가와 반복 개선에 직접 연결할 수 있습니다.

<div id="filter-annotated-traces">
  ### 주석이 있는 트레이스 필터링
</div>

주석이 있는 트레이스만 표시하려면 **Traces** 페이지의 필터 컨트롤을 사용할 수 있습니다.

주석이 있는 트레이스만 보려면 다음과 같이 하세요.

1. Weave 프로젝트 사이드바에서 **Traces**를 클릭합니다.
2. Traces 테이블 툴바에서 **Filter**를 클릭합니다.
3. 필터 행에 값 3개를 추가합니다.
   * **Column**에 "Queue"를 입력한 다음 **Enter**를 누릅니다.
   * 두 번째 목록에서 \*\*Text: "is"\*\*를 선택합니다.
   * **Select a queue**에서 주석 큐 이름을 선택합니다.
4. 'completed' 큐 항목만 추가로 필터링하려면 **+ Add Filter**를 클릭합니다.
   * **Column**에 "feedback"을 입력합니다. 그러면 Annotations가 포함되고 Annotation Field 이름이 표시된 대화상자가 나타납니다. 큐에서 필수 Field를 선택합니다.
   * 두 번째 목록에서 \*\*Other: "is not empty"\*\*를 선택합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/IJ5wvwHtTZtWc35M/weave/guides/tracking/imgs/AnnotationTracesFilter.png?fit=max&auto=format&n=IJ5wvwHtTZtWc35M&q=85&s=21fc64d40404b384ce849b516dbe15ac" alt="특정 주석 큐에 속한 트레이스를 선택하도록 필터를 구성하는 Traces 테이블" width="1340" height="273" data-path="weave/guides/tracking/imgs/AnnotationTracesFilter.png" />
</Frame>

4. 필터 행은 자동으로 적용됩니다. 필터 항목을 닫으려면 페이지의 다른 곳을 클릭합니다.
5. (선택 사항) 빠르게 액세스할 수 있도록 뷰로 저장합니다. Traces 테이블 헤더에서 **Save View**를 클릭합니다.

<div id="export-annotated-traces-to-datasets">
  ### 주석 처리된 트레이스를 Datasets로 내보내기
</div>

데이터를 어떻게 사용할지에 따라 UI 또는 프로그래밍 방식으로 주석 처리된 트레이스를 내보낼 수 있습니다.

<div id="add-annotated-traces-to-a-dataset">
  #### 주석 처리된 트레이스를 데이터셋에 추가
</div>

주석 처리된 트레이스를 선택한 다음 **데이터셋에 추가**를 클릭하여 eval 또는 트레이닝 데이터에 전문가 레이블을 포함하세요.

주석 처리된 트레이스를 데이터셋에 추가하려면 다음과 같이 하세요:

1. Weave 프로젝트 사이드바에서 **Traces**를 클릭합니다.
2. Traces 테이블에서 내보내려는 트레이스를 선택합니다.
3. 테이블 툴바에서 **데이터셋에 추가**를 클릭합니다. 화면의 안내에 따라 추가를 완료합니다.

데이터셋 사용 방법에 대해 자세히 알아보려면 [데이터셋 수집 및 추적](/ko/weave/guides/core-types/datasets)을 참조하세요.

<div id="access-annotations-programmatically">
  ## 프로그래밍 방식으로 어노테이션에 액세스
</div>

어노테이션을 프로그래밍 방식으로 통합하려면 프로젝트 이름과 큐 ID를 알아야 합니다:

* **Project**: W\&B 프로젝트 이름입니다(`project` 또는 `team/project` 형식일 수 있음). W\&B 팀(예: "team/project")을 지정하지 않으면 기본 팀이 사용됩니다.
* **Queue ID**: 어노테이션 큐의 고유 식별자입니다.

큐 ID를 찾으려면:

1. **Annotation Queues** 테이블에서 큐 이름을 선택해 해당 항목을 엽니다.
2. 페이지 URL 끝부분의 ID를 복사합니다.

**예시**

```
https://wandb.ai/.../annotation-queues/019c0f63-7acb-7497-8f87-08873368fcd4
```

이 예제에서 큐 ID는 다음과 같습니다.

019c0f63-7acb-7497-8f87-08873368fcd4

다음 코드를 사용하면 큐에 있는 트레이스(call)를 순회할 수 있습니다.

```python lines theme={null}
import weave
from weave.trace_server.trace_server_interface import AnnotationQueueItemsQueryReq

# 프로젝트 및 큐 식별자를 본인의 값으로 업데이트하세요.
PROJECT = "your-team-name/your-project-name"
QUEUE_ID = "019c0f63-7acb-7497-8f87-08873368fcd4"

# Weave를 초기화합니다.
client = weave.init(PROJECT)

# 큐에 있는 calls에서 call ID를 조회합니다.
calls = client.server.annotation_queue_items_query(
    AnnotationQueueItemsQueryReq(
        project_id=PROJECT,
        queue_id=QUEUE_ID,
    )
)

# calls를 순회하며 피드백을 조회합니다.
for i, item in enumerate(calls.items):
    call = client.get_call(call_id=item.call_id, include_feedback=True)
    feedback = call.feedback or {}

    # call에 대한 전체 피드백 항목 수를 계산합니다.
    total_feedback_items = len(feedback)

    print(f"\nItem {i} — call_id: {item.call_id} — total feedback items: {total_feedback_items}")

    if not feedback:
        print("항목에 대한 피드백 없음")
        continue

    # 첫 번째 annotation 값을 조회합니다.
    # 필드 annotation은 고정된 순서로 추가되지 않으므로 첫 번째 필드는 달라질 수 있습니다.
    field_name = next(iter(feedback))
    field_value = feedback[0]

    print(f"  {field_name}: {field_value}")
```

다음 Google Colab 노트북은 프로그래밍 방식으로 annotation 데이터에 접근하고 분석 리포트를 수집하는 자세한 예제를 제공합니다:

<div style={{ display: 'flex', gap: '12px', flexWrap: 'wrap' }}>
  <ColabLink url="https://colab.research.google.com/github/wandb/docs/blob/main/weave/cookbooks/source/weave_annotations_v2.ipynb" />

  <GitHubLink url="https://github.com/wandb/docs/blob/main/weave/cookbooks/source/weave_annotations_v2.ipynb" />
</div>
