Skip to content

데이터셋과 실험

버전 관리되는 평가 데이터셋을 만들고, 시간에 따라 에이전트 출력을 채점하는 실험을 실행합니다. Potato 평가의 중추로 파일 또는 SQLite 저장, 태그가 붙은 버전, 스플릿, SFT/DPO 내보내기, 회귀 델타가 함께 표시되는 실험 비교를 제공합니다.

데이터셋과 실험은 Potato 평가의 중추입니다. 데이터셋은 버전 관리되는 평가 예제 모음이고, 실험은 프로그래밍 방식 평가기로 그 예제를 채점하는 실행입니다. 둘을 합치면 Potato는 "한 번 주석하고 끝"에서 "계속 평가하는" 도구가 됩니다. 테스트 세트를 큐레이션하고, 평가기를 실행하고, 프롬프트나 모델 버전에 걸쳐 점수를 추적하세요.

활성화

yaml
datasets:
  enabled: true
  storage: file   # "file" (default, git-diffable JSONL) | "sqlite"

데이터셋

데이터셋은 이름이 붙은 예제 모음입니다(id, inputs, 선택적 reference_outputs, metadata, split). 추가·수정·삭제할 때마다 변경 불가능한 새 버전(v0001, v0002, …)이 생성됩니다. 버전에는 태그(예: prod)를 붙일 수 있고, 읽을 때는 as_of(latest, 태그, 또는 버전 id)로 버전을 고정합니다.

예제를 큐레이션하는 방법은 세 가지입니다.

  • 실행 중인 작업에서Import loaded instances는 작업의 인스턴스를 예제로 만듭니다.
  • 수집된 트레이스에서만Import ingested traces (webhook / LangSmith / Langfuse).
  • 사람 주석을 참조로 — 스킴별 사람 다수결 라벨을 각 예제의 reference_outputs로 집계합니다.

실험

실험은 데이터셋 버전에 평가기를 실행하여 예제별 결과와 집계 점수를 기록합니다. 개요 페이지에서 데이터셋과 평가기를 고르고 Run을 누르거나 POST /datasets/api/experiments/run을 호출하세요. 실험을 둘 이상 선택하고 Compare를 누르면 집계 점수를 나란히 볼 수 있으며, 기준선 대비 델타가 함께 표시되어 회귀가 눈에 띕니다.

LLM 심사자 평가기는 구성해 둔 AI 엔드포인트를 호출하므로 큰 데이터셋에서는 시간이 걸릴 수 있습니다.

미세 조정 데이터로 내보내기

모든 데이터셋 버전은 미세 조정용 JSONL로 내보낼 수 있습니다.

  • SFT{"prompt": <inputs>, "completion": <reference_outputs>}
  • DPO{"prompt": <inputs>, "chosen": <reference_outputs>, "rejected": <metadata.rejected | outputs>}
bash
curl -OJ "http://localhost:8000/datasets/api/datasets/agent-eval-v1/export?format=sft"

API

모든 엔드포인트는 관리자 인증(X-API-Key 헤더 또는 관리자 세션)이 필요합니다.

메서드경로용도
POST/datasets/api/datasets데이터셋 생성
POST/datasets/api/datasets/<name>/examples예제 추가(새 버전 생성)
POST/datasets/api/datasets/<name>/tag버전에 태그 지정
GET/datasets/api/datasets/<name>/export?format=sft|dpoJSONL 내보내기
POST/datasets/api/experiments/run실험 실행
GET/datasets/api/experiments실험 목록 조회

eval-admin API(/admin/eval/...)는 이러한 작업의 주석 진행 상황을 조회하고 제어합니다. 데이터셋과 실험 상태, 인스턴스별 주석 진행률, 수집된 트레이스 수, 할당 일시 중지·재개를 다룹니다.

관련 항목