어노테이션용 데이터 형식 설계하기
어노테이션 프로젝트의 입력 데이터(JSON, JSONL, CSV)를 구성하는 방법, Potato가 기대하는 필드, 그리고 학습 파이프라인으로 깔끔하게 내보내기 위한 계획 수립 방법을 설명합니다.
좋은 어노테이션은 잘 구조화된 입력에서 시작합니다. 각 항목에는 변하지 않는 고유 식별자와 라벨을 붙일 내용이 필요하며, 그 외 나머지는 모두 선택적인 맥락 정보입니다. 처음에 이 부분을 제대로 갖춰 두면 나중에 고통스러운 재작업을 피할 수 있습니다. 어노테이션은 항목 ID에 연결되어 저장되기 때문입니다.
자주 쓰이는 교환 형식은 JSON, JSON Lines(한 줄에 하나의 객체로, 대규모 데이터셋에 적합), 그리고 CSV입니다. Potato는 이 세 가지를 모두 읽습니다. 전체 레퍼런스는 데이터 형식을 참고하십시오.
각 항목에 최소한으로 필요한 것
- 절대 바뀌지 않는 고유 ID. 어노테이션은 이 ID에 연결되어 저장되므로, 프로젝트 도중에 항목 번호를 다시 매기면 기존 라벨과의 연결이 끊깁니다.
- 어노테이션 대상이 되는 내용: 텍스트 필드, 이미지 URL, 오디오 경로, 또는 구조화된 트레이스.
텍스트 작업용 JSONL 파일은 다음과 같은 모습입니다.
{"id": "rev_001", "text": "The battery lasts all day. Highly recommend."}
{"id": "rev_002", "text": "Stopped working after a week."}어떤 키를 사용할지 Potato에 지정합니다.
item_properties:
id_key: id
text_key: text
data_files:
- "data/reviews.jsonl"맥락은 함께 담되, 라벨과는 분리해 두기
추가 필드, 출처 URL, 타임스탬프, 모델 이름 등은 각 항목에 함께 담아 어노테이터에게 보여 줄 수 있으며, 그 자체가 라벨이 되지는 않습니다. 나중에 내보낸 결과를 읽기 쉽도록 이름을 명확하게 붙이십시오.
라벨을 붙이기 전에 내보내기를 계획하기
라벨이 붙은 데이터를 파이프라인에 어떻게 흘려보낼지 일찍 결정하십시오. Potato는 JSON, JSONL, CSV뿐 아니라 시퀀스 라벨링용 CoNLL, Hugging Face Datasets, spaCy, 비전용 COCO/YOLO 같은 ML 네이티브 형식으로도 내보낼 수 있습니다. 목표 형식을 미리 정해 두면 지금 어떤 필드와 ID 체계를 사용해야 할지 알 수 있습니다. 머신러닝용으로 어노테이션 내보내기를 참고하십시오.
output_annotation_dir: "annotation_output/"
output_annotation_format: "jsonl"더 읽어보기
- 데이터 형식 레퍼런스
- 인스턴스 표시, 내용이 표시되는 방식
- 데이터 어노테이션이란?