Argilla 데이터셋 관리 — Fields·Questions·Metadata

Argilla 데이터셋 관리

Argilla에서 **데이터셋(Dataset)**은 라벨러가 UI로 피드백을 줄 레코드의 모음이에요. 프로젝트의 목적과 필요한 피드백 종류를 정한 뒤, 필드·질문·메타데이터·벡터·가이드라인을 설정으로 정의하면서 데이터셋을 구성해요.

출처: https://docs.argilla.io/latest/how_to_guides/dataset/

누가 데이터셋을 관리하나

owner 역할 사용자만 모든 데이터셋을 관리(생성·조회·수정·삭제)할 수 있어요. admin 역할은 접근 권한이 있는 워크스페이스의 데이터셋을 관리할 수 있어요.

데이터셋 생성

Dataset 클래스에 이름·워크스페이스·설정을 담아 create 메서드로 서버에 보내요.

import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
settings = rg.Settings(
    guidelines="These are some guidelines.",
    fields=[rg.TextField(name="text",)],
    questions=[rg.LabelQuestion(name="label", labels=["label_1", "label_2", "label_3"],)],
)
dataset = rg.Dataset(name="my_dataset", workspace="my_workspace", settings=settings,)
dataset.create()

dataset.id, dataset.name, dataset.settings, dataset.fields, dataset.questions처럼 객체 속성으로 접근할 수 있어요.

설정: Fields

필드는 주석이 필요한 데이터 항목이에요. 현재 지원하는 필드는 다음과 같아요.

  • TextField — 평문과 markdown
  • ImageField — 이미지
  • ChatField — 채팅 형식 데이터
  • CustomField — 커스텀 템플릿 (기본 advanced_mode=False{{record.fields.field.key}} 브래킷 문법, advanced_mode=True는 커스텀 자바스크립트)
rg.TextField(name="text", title="Text", use_markdown=False, required=True, description="Field description",)

설정: Questions

주석자가 답할 질문이에요. 종류에 따라 라벨을 고르거나 정렬하거나 점수를 매겨요.

  • LabelQuestion — 목록에서 라벨 하나 선택 (문서 분류, 라운드 형태)
  • MultiLabelQuestion — 적용되는 라벨 모두 선택 (멀티라벨 분류, 사각 형태)
  • RankingQuestion — 옵션을 선호 순서로 정렬
  • RatingQuestion — 정수 값 하나 선택 (만족도 점수)
  • SpanQuestion — 필드 텍스트 일부를 선택해 라벨 적용 (NER)
  • TextQuestion — 자유 텍스트 입력 (수정·설명 수집)
rg.LabelQuestion(name="label", labels={"YES": "Yes", "NO": "No"}, title="Is the response relevant for the given prompt?", required=True, visible_labels=10)

설정: Metadata와 벡터

메타데이터는 UI와 SDK의 필터·정렬에 쓰여요. TermsMetadataProperty는 문자열 목록을 옵션으로 받고, VectorField는 벡터 필드를 정의해요. 업데이트는 속성을 바꾼 뒤 dataset.update()를, 추가·삭제는 add·delete 메서드를 써요. 데이터셋 삭제는 dataset.delete()예요.

더 알아보기