새로운 기능
Potato v2.x의 새로운 기능. 2.8 버전은 컴퓨터 비전, 3D 포인트 클라우드, 깊이 맵, 로봇 에피소드, 월드 모델 평가를 추가하고, 기하와 시간에 대한 우연 보정 일치도를 제공합니다. 주석 유형 61가지, 표시 유형 24가지.
이 페이지에서는 Potato v2.x 릴리스 전반의 새로운 기능과 개선 사항을 다룹니다.
Potato 2.10.3
2026년 10월 출시
Potato 2.10.3는 2.10.2가 공개된 뒤 발견된 버그 세 가지를 고칩니다.
pip install --upgrade potato-annotation- 만장일치 데이터의 일치도. 모든 주석자가 모든 항목에 같은 답을 하면
/admin/api/agreement가 해당 스키마를{"error": "float division by zero"}로 반환했습니다. 이 경우 우연에 의한 일치가 1이므로 알파와 두 카파 모두 정의되지 않습니다. 이제 이 경로는 이들을null로 보고하고,percent_agreement는 1.0으로, 메모는/admin/iaa와 같은 내용으로 제공하며, 전체 평균에서는 이 스키마를 뺍니다. potato deploy button --dry-run이 네트워크에 접속하지 않습니다.--hf-backup-repo없이 실행하면 드라이 런이 HuggingFace에 토큰 소유자를 물었고, 잘못된 토큰이면 트레이스백으로 끝났습니다. 이제 드라이 런은potato deploy up --dry-run처럼 자리 표시자<hf-account>/<name>-annotations를 쓰고, 실제 실행은 거부된 토큰을 오류 메시지로 알립니다.- Potato를 임포트할 때 더 이상 비밀번호를 해시하지 않습니다. Potato는 임포트할 때 PBKDF2 해시를 계산했기 때문에, CLI 도구를 포함한 모든 프로세스가 시작할 때 100,000번의 반복을 썼습니다. 이제 해시는 알 수 없는 사용자 이름이 처음 로그인을 시도할 때 만들어집니다. 또한
hashlib에pbkdf2_hmac이 없는 Pyodide에서도 다시 임포트할 수 있습니다.
전체 목록은 릴리스 노트에 있습니다.
Potato 2.10.2
2026년 10월 출시
Potato 2.10.2는 pip 설치나 Docker 이미지에서 동작하지 않던 기능을 고치고, 다른 사용자로 로그인할 수 있던 경로를 막고, MySQL 백엔드가 실제로 동작하게 하고, 일치도 통계를 바로잡습니다. 이전 버전으로 계산한 일치도 수치를 발표했다면 다시 계산하세요.
pip install --upgrade potato-annotation- SSO 계정이 아무 비밀번호나 받아들였습니다. OAuth를 쓰는 작업에서는 비밀번호 양식을 통해 누구나 제공자가 등록한 계정으로 로그인할 수 있었습니다. 이제 SSO 신원은 비밀번호로 인증되지 않으며, MySQL을 쓰는 연구에서 낯선 사람이 기존 주석자의 사용자 이름을 등록해 그 작업을 이어받을 수도 없습니다.
- pip로 설치하면
ai_support와 설문 도구가 실패했습니다. wheel에 AI 프롬프트와 설문 도구가 빠져 있어서, 둘 중 하나라도 쓰는 연구는 시작 단계에서 멈췄습니다. 컨테이너와potato deploy대상에서도 채팅 지원을 비롯한 하위 시스템 열 개가 빠져 있었습니다. - MySQL 백엔드가 한 번도 켜지지 않았습니다. MySQL을 지정한 설정도 주석을 디스크에 저장했습니다. 드라이버는
pip install 'potato-annotation[mysql]'로 설치하세요. 이제 내보내기, 백업,potato deploy pull이 데이터베이스를 읽습니다. - 일치도 통계 수정 59건. 각각 scipy, sklearn,
krippendorff패키지 같은 참조 구현과 대조해 확인했습니다. 정의되지 않는 계수는 1.0이 아니라 정의되지 않음으로 보고되고, 순서형 알파는 Krippendorff의 순서형 메트릭을 쓰며, MACE는 완전한 스패머의 역량을 0.35가 아니라 약 0.01로 추정하고, 재시작 후에도 결과가 바뀌지 않으며,plackett_luce는 Bradley-Terry를 반복하는 대신 best-worst 우도를 적합합니다. - 지도 좌표계의 포인트 클라우드가 정밀도를 유지합니다. UTM 좌표의 LAS 파일은 간격이 최대 0.5 m에 이르는 거친 격자 위에 그려졌습니다. 이제 Potato는 로컬 원점을 기준으로 한 상대 좌표로 파일을 제공하고, 주석은 파일 본래의 좌표로 저장합니다.
전체 목록은 릴리스 노트에 있습니다.
Potato 2.10.1
2026년 10월 출시
Potato 2.10.1은 2.10.0 이후에 발견된 potato deploy와 백업의 문제 다섯 가지를 고칩니다. 드라이 런 결과에 기대기 전에 업그레이드하세요.
pip install --upgrade potato-annotation- 드라이 런은 통과했는데
up이 거부하는 배포가 있었습니다.--backup없는 Heroku나 ECS Express, 프로젝트를 업로드할 백업 저장소가 없는 Render나 Railway, 인라인으로 보내기에는 너무 큰 프로젝트를 가진 Fly가 모두 문제없는 계획을 출력했습니다. 이제 계획과up이 같은 검사를 실행하며, 둘 다REFUSED: <reason>을 출력하고 상태 코드 2로 종료합니다. --demo가 동작할 수 없는 곳에서도 제안되었습니다. Render, Railway, ECS Express는 프로젝트를 백업 저장소에 업로드하므로, 버려도 되는 연구라도--backup hf나--backup s3가 필요합니다. 이제 사전 점검 경고는 Heroku와 HuggingFace에서만--demo를 제안합니다.--cloud jetstream2가 잘못된 flavor를 계획했습니다. 드라이 런은m1.small을 보여 주었지만,up은m3.small을 만들었습니다.- 가격 두 개가 틀렸습니다.
potato deploy providers는aws-ec2를 월 약 $16,fly를 약 $7로 표시했습니다. 계획이 계산하는 값은 $18.31과 $5.85이며, 이제 요약에도 약 $18과 약 $6으로 나옵니다. - 설정에
huggingface_backup블록이 남아 있으면backup: {enabled: false}가 백업을 끄지 못했습니다. 이제 새 블록이 우선합니다.
전체 목록은 릴리스 노트에 있습니다.
Potato 2.10.0
2026년 10월 출시
Potato 2.10.0은 potato deploy에 호스팅 플랫폼 여덟 곳을 추가하고, 재시작하면 디스크가 남지 않는 호스트에서 주석을 백업하며, 각 항목의 텍스트를 그림으로 보여 주어 주석자가 챗봇에 붙여 넣지 못하게 하는 text_as_image를 추가합니다. 어떤 연구에 어떤 호스트가 맞는지는 Potato를 로컬 또는 클라우드에서 실행하기에서 볼 수 있습니다.
이제 Python 3.9 이상이 필요하다고 명시합니다. 핵심 의존성 하나가 이미 이를 요구했기 때문에 이전 릴리스도 3.7이나 3.8에는 설치할 수 없었고, 이제는 pip가 아무것도 설치하기 전에 이를 알려 줍니다.
pip install --upgrade potato-annotation배포
- AWS, 세 가지 방식.
--provider aws는 월 $12 정액이고lightsail:*권한만 있으면 되는 Lightsail 인스턴스를 만듭니다.aws-ec2는 Lightsail이 꺼져 있는 계정을 위한 것이며,aws-ecs는 AWS가 관리하는 HTTPS 주소 뒤에서 ECS Express Mode로 컨테이너를 실행합니다. 비용이 더 들고 백업이 필수입니다. - Heroku, Basic dyno 한 개. Heroku는 매일 디스크를 지우므로, Potato는
--backup이나--demo없이는 Heroku 배포를 거부합니다. - Fly와 Railway, 각각 영구 볼륨을 씁니다.
- Hetzner, Vultr, Linode, DigitalOcean과 같은 방식으로 구성되는 VM이며, IP 주소에 대한 Let's Encrypt 인증서를 받습니다.
- OpenStack과 Jetstream2 프리셋. Jetstream2는 인스턴스마다 DNS 이름을 주므로 작업이 평범한 인증서를 받습니다. 캠퍼스 OpenStack 클라우드와 EGI에서도 동작합니다.
- 배포 버튼.
potato deploy button config.yaml --target heroku|render|aws|railway는 "Deploy to Heroku", "Deploy to Render", AWS "Launch Stack" 버튼에 필요한 파일을 저장소에 작성하므로, 다른 사람이 각자의 계정에서 작업을 실행할 수 있습니다.
새 deploy-aws와 deploy-openstack extra는 AWS와 OpenStack 클라이언트를 설치합니다.
백업과 복원
새 backup 블록은 주석 출력과 SQLite 데이터베이스의 스냅숏을 5분마다 HuggingFace 데이터셋, S3 호환 버킷, 또는 둘 다에 복사합니다. 서버가 빈 작업 디렉터리로 시작되고 백업에 데이터가 있으면 Potato는 무엇이든 로드하기 전에 이를 복원하므로, 주석자는 재시작 후에도 멈춘 곳부터 이어서 작업합니다. potato deploy up에 --backup hf, --backup s3, --backup hf,s3 중 하나를 넘기세요. 기존 huggingface_backup 블록은 싱크가 하나이고 복원이 꺼진 backup 블록으로 읽히므로, 기존 배포는 이전과 똑같이 동작합니다.
텍스트를 이미지로
text_as_image: true는 각 항목의 텍스트를 서버에서 PNG로 렌더링하고 페이지, 페이지에 포함된 항목 레코드, JSON 엔드포인트에서 텍스트를 없애므로, 주석자에게는 선택하거나 복사하거나 붙여 넣을 것이 없습니다. 이 기능은 항목을 챗봇에 붙여 넣는 데 드는 수고를 늘리며, 주석자는 여전히 텍스트를 다시 입력하거나 스크린숏에 OCR을 돌릴 수 있습니다. 스크린 리더는 그림에서 아무것도 읽어 내지 못하므로, 스크린 리더를 쓰는 주석자가 있는 연구에는 이 기능이 맞지 않습니다. text_as_image를 스팬 스키마, 항목 텍스트 필드를 읽는 스키마, Pocket Mode, Rooms와 함께 쓰면 Potato가 시작을 거부합니다. @Eyecatch3r가 PR #169에서 기여했습니다.
수집된 데이터에 영향을 주는 수정
- 영구 디스크가 없는 호스트에서 재시작하면 이전 작업이 사라졌습니다. 서버가 빈 상태로 시작되었고, 다시 들어온 주석자의 새 상태가 백업된 사본을 덮어썼습니다. 시작할 때 복원하면서 이 문제가 해결되었습니다.
--volume-gb를 쓴 DigitalOcean이 주석을 볼륨이 아니라 루트 디스크에 보관했습니다. 이제 출력과 SQLite 데이터베이스는/data에 저장됩니다.- 공개된 이미지에서는 HuggingFace 백업이 아무것도 하지 않았습니다. 이미지에
huggingface_hub가 없었고, Render와 DigitalOcean에서는--hf-token이 아무도 읽지 않는 변수를 설정했습니다. 이제 이미지에 새hostingextra가 설치됩니다. - Render 배포가 프로젝트 없이 시작되어 컨테이너가 "config file not found"를 내고 종료되었습니다. 이제 컨테이너는 시작할 때 프로젝트를 내려받고 sha256을 확인합니다.
전체 목록은 릴리스 노트에 있습니다.
Potato 2.9.2부터 2.9.4까지
2026년 9월 출시
신뢰할 수 없는 사람이 서버에 접근할 수 있다면 2.9.4 이상으로 업그레이드하세요. 2.9.4 이전에는 /forgot-password 양식이 입력된 어떤 사용자 이름에 대해서도 재설정 토큰을 만들고 재설정 링크를 페이지에 보여 주었기 때문에, 서버에 접근할 수 있는 사람이라면 누구나 관리자 계정을 포함한 모든 비밀번호 계정을 탈취할 수 있었습니다(GHSA-43v4-43pw-4rp2). 이제 이 양식은 토큰을 만들지 않습니다. 재설정 링크는 POST /admin/create_reset_token과 potato reset-password 명령으로만 만들어집니다. HDEF가 패치와 함께 보고했습니다.
- 휴대폰 (2.9.4). 터치스크린에서 컨트롤의 높이는 최소 44 px이고, 헤더는 세 줄 대신 두 줄을 차지하며, multirate는 레이블이 붙은 행의 목록으로 바뀌고, 스팬 강조 표시는 길게 눌러서 합니다.
- 기계 주석자 (2.9.4).
machine_annotators블록은 탐지기나 LLM 같은 프로그램 평가자를 선언합니다. 그러면/admin/iaa가 사람 간, 기계 간, 통합 일치도를 보고하고 대표 수치는 사람만으로 계산하며, 기계에서 온 레코드가 하나라도 있으면 csv, tsv, parquet 내보내기에annotator_origin열이 추가됩니다. - URL 접두사 아래의 세션 쿠키 (2.9.4). 한 호스트에서
/app1과/app2로 제공되는 두 연구가 세션 쿠키 하나를 함께 써서, 한쪽에 로그인하면 다른 쪽에서 로그아웃되었습니다. 이제 쿠키의 범위가 접두사로 한정됩니다. @Eyecatch3r가 PR #172에서 수정했습니다. - 더 빠른 이동 (2.9.2). 스크립트와 스타일시트가 항목 사이에서 캐시에 남고, Next에 필요한 왕복 횟수가 줄었습니다. 왕복 시간이 80 ms인 연결에서 라디오 버튼 작업의 Next는 약 2.6초에서 약 0.8초로 빨라졌습니다.
- Next 직전의 텍스트 수정 (2.9.2). 텍스트 상자를 비우고 1초 안에 Next를 누르면 이전 텍스트가 남았습니다. 이제 모든 저장이 대기 중인 수정 사항을 먼저 반영합니다.
Potato 2.9.0
2026년 9월 출시
Potato는 brat, doccano, Prodigy, CoNLL, REFI-QDA에서 프로젝트를 가져오고, 오디오를 로컬에서 전사하고 화자를 분할합니다. 내보내기에는 이미지 도형을 사람이 그렸는지, 모델이 제안했는지, 아니면 가져온 것인지가 기록되고, 투표가 어느 룸에서 이루어졌는지도 기록됩니다. 릴리스의 대부분은 버그 수정입니다.
업그레이드하기 전에 각 설정에 potato validate --strict를 실행하세요. 몇 가지 변경 때문에 잘 동작하던 2.8.2 연구가 시작되지 않거나 다르게 동작할 수 있습니다. 한 단계 안에서 스키마 이름이 중복되면 거부되고, min_annotators_per_instance는 항목별 상한의 별칭이 되었으며, require_fully_annotated: true가 실제로 적용되고, 로드에 실패한 단계가 있으면 부팅이 중단되며, 스팬 오프셋은 UTF-16 단위가 아니라 코드 포인트 기준입니다. 집합 값, 순서 값, 행렬, 레이블이 붙은 서열 스키마의 일치도 값이 달라지므로 다시 계산해야 합니다. 전체 목록은 릴리스 노트에 있습니다.
pip install --upgrade potato-annotation가져오기와 내보내기
- brat, doccano, Prodigy, CoNLL-2003/CoNLL-U, REFI-QDA
.qdpx가져오기 도구와.qdpx내보내기 도구가 추가되었습니다. 프로젝트 가져오기를 참고하세요. - 내보내기의 출처 정보. 각 이미지 도형에 사람이 그렸는지 모델이 제안했는지가 기록됩니다(
source,ai_model,confidence,edited,carried_over,import_format). 멀티플레이어 룸에서 던진 투표에는 룸, 역할, 첫 투표, 공개 후 투표를 바꿨는지 여부, 투표자 수가 함께 기록됩니다. - csv, jsonl, parquet 스팬 내보내기에 스팬이 덮는 텍스트가 포함됩니다.
potato export --format adjudication이 새로 추가되었고, 이제 모든 스키마 유형에 "답변 채택" 판정 컨트롤이 있습니다(이전에는 radio와 likert에만 있었습니다).
오디오, 비디오, 트랜스크립트
- faster-whisper와 sherpa-onnx를 이용한 로컬 전사와 화자 분할로, PyTorch도 Hugging Face 토큰도 필요 없습니다.
potato-annotation[transcribe]를 설치한 뒤potato transcripts <dir> --transcribe --diarize --num-speakers N -o out.json을 실행하세요. 트랜스크립트 형식을 참고하세요. segment_schemes는 오디오나 비디오 세그먼트 안에서 어떤 주석 유형이든 렌더링합니다. 이전에는 설정을 받아들이기만 하고 무시했습니다.
일치도, 품질, AI
- 시간에 따른 일치도를 코드북 개정 이력과 연결해 보여주며,
/admin/iaa에 재보정 트리거가 있습니다. - 빈 예측 구간까지 포함하는 모델 출력 검토 모드가 추가되어 재현율을 계산할 수 있습니다.
ai_budget.cap_usd는 예산으로 감당할 수 없는 실행을 시작하지 않으며,ai_budget.prices는 설정에서 모델별 단가를 지정합니다.ai_support가final_annotation과pre_annotation_seeds를 기록하므로, 자신의 데이터로 수용률을 측정할 수 있습니다.
배포와 인터페이스
- 모든 페이지에서 리버스 프록시와 경로 접두사를 지원합니다(#168, Aldo Costa). 리버스 프록시를 참고하세요.
card_sort를 마우스 없이 사용할 수 있고, 이동 내용이 스크린 리더에 안내됩니다.resizable,max_height,min_height가 모든 표시 유형에서 동작합니다.
결과에 영향을 주는 수정
/admin/api/agreement는 숫자를 한 번도 내놓지 못했고, 레이블 이름 대신 저장된 값을 비교했기 때문에 모든 범주형 스키마가 완벽한 일치로 표시되었습니다.- 항목당 두 명이 주석하는 연구에서 두 번째 주석자가 완료 페이지로 보내졌고, 그 뒤 그 주석자가 한 모든 답변이 사라졌습니다.
fixed_order를 제외한 모든 배정 전략에서 AI 제안이 엉뚱한 항목을 대상으로 했습니다.- 기본 인메모리 설정에서는 가입 정보가 저장되지 않아, 재시작 후 누구나 기존 사용자 이름을 차지할 수 있었습니다.
#168과 #171을 기여한 Aldo Costa(@Eyecatch3r), 그리고 #170을 보고하고 원인을 진단한 @ruthenian8에게 감사드립니다.
Potato 2.8.2
2026년 8월 출시
2.8.1에는 릴리스 노트에 적힌 다섯 가지 보안 수정 가운데 두 가지가 들어 있지 않았습니다. 미디어 엔드포인트의 SSRF 수정(GHSA-9394-85jj-2mhj)과 디버그 모드 강화(GHSA-r4ww-vc5h-35qf)입니다. 2.8.2에는 둘 다 포함되어 있습니다. 둘 중 하나 때문에 2.8.1로 업그레이드했다면 다시 업그레이드하세요. 2.8.2 릴리스 노트를 참고하세요.
Potato 2.8.1
2026년 8월 출시
보안 릴리스입니다. 라이브 코딩 에이전트를 통한 원격 코드 실행(GHSA-cm4p-5rfv-x252), 관리자 키 없이 읽을 수 있던 관리자 설정, 모든 요청을 받아들이던 트레이스 수집 웹훅을 수정했습니다. localhost가 아닌 곳에서 Potato를 실행한다면 업그레이드하세요. 2.8.1에서 빠진 두 가지 수정이 들어 있는 2.8.2로 바로 올라가면 됩니다.
Potato 2.8.0
2026년 8월 출시
Potato는 이미지 모드를 갖춘 텍스트 주석 플랫폼이었습니다. 이제 이미지, 비디오, 기가픽셀 스캔, 3D 포인트 클라우드, 깊이 맵, 로봇 에피소드, 생성형 비디오 롤아웃, 비전-언어 그라운딩을 다룹니다. 이 모두에 대해 우연 보정 일치도를 보고합니다.
PyPI에서 설치했다면 업그레이드하세요. 2.7.1까지의 휠은 패키지 데이터를 한 단계짜리 glob으로 선언했기 때문에, 하위 디렉터리에 있는 템플릿 27개가 모든 휠에서 빠져 있었습니다. pip install로 설치한 사람에게는 솔로 모드 설정 라우트, 관리자 페이지, 판정자 보정, 코퍼스 맵이 모두 동작하지 않았고, git 체크아웃에서 실행한 사람은 이 문제를 겪지 않았습니다. @0x6362가 PR #164에서 수정했습니다.
pip install --upgrade potato-annotation기하와 시간에 대한 일치도
- 공간 레이블에 대한 우연 보정 일치도를 탐지(주석자들이 같은 객체를 찾았는가), 분류(같은 것으로 불렀는가), 위치 지정(같은 자리에 놓았는가를 경험적 우연 기준선에 대한 σ와 KS 검정으로 보고)으로 나누어 보고합니다.
- 마스크 합의를 위한 STAPLE. 잠재 경계와 평가자별 민감도 및 특이도를 추정합니다. 신중한 주석자 두 명이 노이즈가 많은 주석자 세 명에게 3대 2로 밀리는 코퍼스에서, 다수결은 정답 대비 Dice 0.846, STAPLE은 1.000을 기록합니다.
- 정확한 회전 3D IoU. 수평 상자뿐 아니라 드론, 핸드헬드, 실내 데이터에서도 직육면체 일치도가 정확하게 계산됩니다.
- 시간 일치도를 매칭 허용 오차 전반에 걸친 스윕으로 보고합니다. 0.25초에서의 일치와 2초에서의 일치는 서로 다른 주장이기 때문입니다.
- 정의되지 않는 값은 그 이유를 스스로 설명합니다. 만장일치 코퍼스에서 α는 실제로 정의되지 않으며, 설명 없는
NaN은 계산이 고장 난 것처럼 읽힙니다.
이 릴리스는 버그 하나도 수정합니다. 판정 기능이 주석의 키를 비교했는데, 이미지 스키마는 모든 내용을 _data라는 키 하나 아래에 저장합니다. 그래서 모든 이미지 쌍의 일치도가 1.0으로 나와, 아무것도 합의하지 않은 두 주석자가 만장일치처럼 보였고 어떤 이미지도 검토로 넘어가지 않았습니다.
비전
- 기하 프리미티브로 폴리라인, 타원, 2D 직육면체, 골격 토폴로지와 COCO 가시성 플래그를 갖춘 키포인트 세트, 인스턴스별 브러시 마스크가 추가되었습니다.
- 브라우저에서 클릭 한 번으로 분할합니다. ONNX Runtime Web 위에서 MobileSAM이 동작하며, 클릭당 약 132ms가 걸리고 GPU도 클릭마다의 네트워크 호출도 필요 없습니다.
- 개방 어휘 텍스트 프롬프트. 문구를 입력하면 일치하는 모든 대상에 상자가 그려집니다. Apache-2.0 라이선스의 Grounding DINO를 쓰며, 이것도 브라우저에서 동작합니다.
- SAM 2의 메모리 모듈을 사용한 비디오 마스크 전파. 프레임당 IoU가 0.974–0.979로 측정되었고 시퀀스 전체에서 저하가 없습니다. 이 기능은 설계상 서버 측에서 실행되며, 브라우저에는 별도의 더 가벼운 이월 경로가 있습니다.
- 기가픽셀 이미지를 위한 딥 줌. DZI와 IIIF Image API 3.0 두 방식으로 제공하며, 브러시 마스크는 원본의 전체 해상도로 그려집니다.
- 미디어 수집. 여러 페이지로 된 16비트 TIFF, HEIC, 카메라 RAW를 읽고, ProRes/MKV/MOV는 캐시되는 서버 측 프록시를 거쳐 읽습니다.
- 가져오기 형식 15가지와 내보내기 형식 29가지를 지원하며, 그중 11가지는 왕복 변환이 됩니다. Darwin은 양방향으로 동작합니다.
이미지 주석 키보드 단축키는 이제 기본적으로 V7 관례를 따릅니다. b는 브러시, r은 사각형, f는 채우기, k는 키포인트, v는 선택입니다. 이미 진행 중인 연구에서 예전 바인딩을 되살리려면 스키마에 keybinding_profile: legacy를 설정하세요.
3D, 깊이, 로보틱스
- PCD, PLY, LAS, KITTI
.bin,.xyz포인트 클라우드를 위한spatial_annotation스키마. 3D 직육면체, 점, 폴리라인, 점 단위 세그먼트, 옥트리 LOD, 직교 슬랩 패널을 제공합니다. 회전은 쿼터니언으로 저장되므로, 요(yaw)만 담는 필드였다면 조용히 버렸을 장착 기울기가 KITTI 왕복 변환 뒤에도 남습니다. - 16비트 PNG/TIFF, NPY, PFM, EXR 형식의 깊이 맵. 윈도잉, 컬러맵, 커서 위치의 미터 단위 값 표시, 같은 3D 뷰어로의 역투영을 지원합니다.
- 캘리브레이션 정보를 반영한 투영. 3D로 그린 직육면체가 모든 카메라 이미지에 나타나므로 2D에서 확인할 수 있습니다.
episode_annotation스키마는 N개의 동기화된 비디오 스트림과 M개의 로봇 시계열 레인을 하나의 타임라인에 놓고, 단계 분할, 단계별 결과, 조밀한 보상 곡선을 제공합니다. LeRobot v2, RLDS/TFDS, HDF5를 가져옵니다. 레인 다운샘플링은 최솟값과 최댓값을 보존하므로, 한 프레임짜리 힘 스파이크도 300픽셀 레인으로 줄어든 뒤에 남습니다.
평가
rollout_evaluation스키마는 생성된 비디오 2–N개를 하나의 시계에 맞춰 보여주고, 주석자에게 세계가 말이 안 되기 시작하는 프레임을 표시한 뒤 어떤 물리적 또는 인과적 속성이 깨졌는지 태그하게 합니다. 패널은 블라인드 처리할 수 있고, 주석자마다 안정적인 순서로 섞을 수 있습니다.grounding_eval스키마와region_caption스키마는 그라운딩을 네 가지 임계값의 IoU로, 포인팅을 영역 내 점 적중률로 채점합니다. 점에는 면적이 없어서 점과의 IoU는 항상 0이기 때문입니다. 그라운딩되지 않은 경우는 따로 집계합니다.
그 밖의 변경
- 스레드형 대화.
dialogue표시는 각 턴의reply_to로 답글 구조를 렌더링합니다.potato convokit은 어떤 ConvoKit 코퍼스든 가져오고--format convokit으로 다시 내보내며,convokit의존성은 필요 없습니다. - 그리기 텔레메트리. 도형당 시간, 스트로크 동역학, 수정 횟수, AI 제안 수락 지연을 기록합니다. 사전 레이블을 통째로 수락하면 정확도는 오르지 않는데 일치도만 오릅니다. 같은 제안을 수락한 주석자들은 구조상 만장일치이기 때문입니다. 타이밍은 레이블로는 구분할 수 없는 검토와 무조건 승인을 구분해 주는 과정 신호입니다.
- 실시간 데이터베이스 수집. 시작 뒤에 생성된 행도 재시작 없이
poll_interval_seconds안에 주석 대상이 됩니다(#166). - 기계 판독 가능한 명세. 설정 키 159개, 주석 유형 61가지, 표시 유형 24가지를 다루는 JSON Schema와 경로 419개를 담은 OpenAPI 문서입니다. 둘 다 코드에서 생성되고 어느 쪽이든 코드와 어긋나면 CI가 실패하므로, 편집기나 코딩 에이전트가 옵션을 지어내지 않고 설정을 검사할 수 있습니다.
- 외부 요청 없음. 이제 14개 템플릿 전체에서 모든 스타일시트, 스크립트, 폰트, 아이콘을 설치본에서 제공합니다.
styles.css는 Google Fonts를@import하는 줄로 시작했기 때문에 페이지를 열 때마다 모든 주석자의 IP 주소가 제3자에게 전송되었고, 로그인 페이지에는 제3자 파비콘이 들어 있었습니다. 둘 다 제거되었습니다. - 관리자 Instances 탭이 이차 시간에서 선형 시간으로 바뀌어, 2,000개 항목 기준 15.1초에서 23ms로 줄었습니다.
Potato 2.7.2
2026년 8월 출시
자유 텍스트 필드를 위한 키스트로크 로깅입니다. Potato는 답변 뒤에 놓인 타이밍을 기록하고 문자는 절대 기록하지 않는데, 그것만으로도 직접 입력과 붙여넣기를 구분하기에 충분합니다.
- 키스트로크 로깅. 모든 자유 텍스트 필드에서 멈춤, 버스트, 수정, 붙여넣기를 내용 없이 수집하며, 응답마다 약 40개의 요약 특징을 계산합니다. 기본값은 꺼져 있습니다.
- 작성 과정 탐지. 임계값이 명시된 6개의 이름 붙은 규칙으로, 각 플래그의 근거가 된 특징 값을 함께 보고합니다. 임계값은 자신의 프로젝트에 맞게 다시 적합할 수 있고, 레이블이 있다면 지도 학습 경로도 있습니다.
- 윤리 지침. 동의 문구 예시, 보관과 삭제, 기저율 문제, 그리고 플래그가 결론이 아니라 들여다보라는 신호인 이유를 다룹니다.
- 옵트인 내보내기.
export_include_typing_dynamics는 요약 사이드카 파일을 쓰고,--format keystrokes는 원시 스트림을 Parquet으로 씁니다. 둘 다 기본으로 켜져 있지 않으므로 행동 데이터가 실수로 데이터셋 배포에 섞이는 일이 없습니다.
주석자 고지는 기본적으로 켜져 있으며, 이를 끄면 시작 시 경고가 기록됩니다.
Potato 2.7.1
2026년 7월 출시
트랜스크립트가 이미 존재한다는 전제에서 출발한 트랜스크립트 수집 기능입니다. 누군가 Whisper를 돌렸거나, 자막을 내려받았거나, 코퍼스를 건네받았다면 그다음 단계가 변환 스크립트 작성이어서는 안 됩니다.
- 21가지 트랜스크립트 및 자막 형식. 기존 6가지에서 늘었습니다. Whisper, WhisperX, whisper.cpp, AWS Transcribe, Deepgram, AssemblyAI, Rev.ai, SPoRC, SubRip, WebVTT, SubStation Alpha, TTML/DFXP, YouTube
json3와srv1/srv2/srv3, NIST CTM, Praat TextGrid, ELAN EAF를 지원합니다. 형식 감지는 확장자가 아니라 파일 내용을 기준으로 합니다. - 사이드카 트랜스크립트 파일. 데이터 파일이 트랜스크립트를 인라인으로 담는 대신 디스크의
media/int_001.srt를 가리킬 수 있습니다. 경로는 표준 경로 보안 검사를 거쳐task_dir아래에서 해석되므로, 트랜스크립트는 diff하고 다시 내보낼 수 있는 파일로 남습니다. potato transcripts변환기는 ASR 출력이 담긴 폴더를 주석할 수 있는 데이터 파일로 바꾸며, 파일 이름을 기준으로 트랜스크립트와 미디어를 짝지어 줍니다.--dry-run은 아무것도 쓰기 전에 감지 결과를 보고하고,--emit-config는 그에 맞는 설정을 출력합니다.- 네 개의 스키마에 걸친 하나의 형식 어휘. 이제
speech_transcript,voice_interaction,tiered_annotation이audio_dialogue표시가 받아들이는 모든 형식을 받습니다. 이전에는 표시에서만 가능했습니다. - Whisper 트랜스크립트 주석 달기 가이드와 YouTube 자막 주석 달기 가이드가 두 출발점을 처음부터 끝까지 안내합니다.
2.7.1에서는 ASR과 화자 분할 단계를 상류에서 실행하고 Potato는 그 출력을 읽습니다. Potato 2.9에서 potato transcripts --transcribe --diarize를 통한 로컬 전사와 화자 분할이 추가되었고, 생각 말하기 모드는 2.7.0부터 주석자 자신의 음성을 로컬에서 전사해 왔습니다.
Potato 2.7.0
2026년 7월 출시
Potato 2.7은 하나의 생각 위에 세워졌습니다. 주석 도구는 판단의 내용만 기록할 것이 아니라 그 판단이 어떻게 내려지는지도 측정해야 한다는 것입니다. 이는 두 종류의 판단자, 즉 주석을 다는 사람과 평가 대상인 AI 모델 모두에 해당합니다.
사람이 레이블을 다는 방식을 측정하기
LLM이 필요 없는 7가지 옵트인 기능입니다.
- 심리측정 엔진. 실시간 문항반응이론 계층으로, 단순 다수결 대신 모든 레이블에 사후확률과 민감도 구간(
p = 0.94 [0.88–0.97])을 부여합니다. 일치 패턴만으로 주석자 능력과 문항 난이도를 추정하고, 판단이 가장 많은 정보를 담을 주석자에게 문항을 배정하며, 코드북 오류로 의심되는 지점을 표시합니다. - 멀티플레이어 룸. 팀이 이미 화면 공유로 진행하고 있는 보정 회의를 도구 안에 넣고 계측했습니다. 비공개 투표, 호스트 공개, 토론, 재투표로 이어지며, 실시간 Krippendorff α 미터가 그 회의의 성과를 보여줍니다.
- 바운더리 랩. 레이블을 달 때마다 반사실 질문("그래도 그 판단이 유지될까요?")을 던져, 평범한 주석 작업을 대조 집합으로 바꾸고 골드 문항을 심지 않고도 일관성 없는 주석자를 잡아냅니다.
- 트루스 세럼. 의외로 인기 있는 답(surprisingly popular)을 활용하는 동료 예측 채점 방식으로, 주석이 어려운 과제에서 골드 레이블 없이도 다수결보다 나은 결과를 냅니다.
- 생각 말하기 모드. 주석자가 작업하면서 말을 하면, 음성 인식이 전부 로컬에서 실행되고 그대로 받아 적은 트랜스크립트가 근거가 됩니다.
- 페이퍼 모드. 명령 하나로 프로젝트를 컴파일 가능한 LaTeX 데이터셋 리포트로 만들며, 일치도 통계와 인용이 포함됩니다.
- 포켓 모드. 스와이프 카드 스택, 오프라인 동기화, PWA 설치를 갖춘 본격적인 모바일 주석 환경입니다.
AI 에이전트 평가
에이전트 평가 도구 모음이 팀 구조와 멀티모달 에이전트까지 다루도록 확장되었습니다. 클릭 가능한 에이전트 상호작용 그래프, 에이전트 간 실패 원인 추적, 인계 검토, 에이전트별 및 팀별 스코어카드, 도구 경합 타임라인, 창발 행동 태깅이 추가되었고, GUI/컴퓨터 사용 트래젝토리, 전이중 음성 타임라인, 비디오 시간 그라운딩, 문서 표 구조도 함께 지원합니다.
그 밖의 변화
문서 간 이벤트 주석, 턴 단위 주석, 전체 페이지 편집기를 갖춘 살아 있는 코드북, 선택적 OCR을 지원하는 PDF 페이지 간 연결, 코호트별 스키마가 가능한 RBAC 역할, 10개 언어로 제공되는 관리자 및 주석자 대시보드, 그리고 훨씬 가벼워진 설치가 포함됩니다. AI SDK가 이제 지연 로딩되어 부팅 시간이 약 2.0초에서 0.7초로 줄었습니다.
Potato 2.6.0
2026년 6월 출시
Potato 2.6은 질적 데이터 분석 영역으로 들어가면서 에이전트 평가 도구를 더 깊게 다듬습니다. QDA 모드, 신호 기반 분류 대기열을 갖춘 LLM-as-judge 보정 및 정렬 워크플로, SFT와 DPO 학습 데이터를 만들어 내는 트래젝토리 편집 스키마가 추가되었습니다. 또한 Potato의 라이선스가 PolyForm Shield에서 GPL-3.0-or-later로 변경되었습니다.
QDA 모드
옵트인 방식의 qda_mode는 Potato를 협업 질적 코딩 작업 공간으로 바꿉니다. 이를 켜면 살아 있는 코드북, 인비보 코딩, 분석 메모, 사례, 전문 검색이 함께 구성되며, 기본값은 분석가 한 명이 코퍼스 전체를 코딩하는 상황에 맞춰져 있습니다.
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selection
search:
enabled: true
annotator_claim: trueLLM-as-Judge 보정 및 정렬
하나 이상의 LLM 판정자로 데이터에 자동으로 레이블을 단 다음, 사람이 참여하는 블라인드 보정 단계를 거쳐 정확도, 일치도, 보정 오차를 측정합니다. 별도의 단일 판정자 정렬 워크플로는 루브릭을 다듬어 가는 동안 사람이 만든 골드 레이블 대비 Cohen 카파를 추적하며, 주석 중에 인라인 판정을 함께 보여줄 수도 있습니다.
신호 기반 분류 대기열
에이전트 오류, 운영 환경의 부정적 피드백, 낮은 점수, 또는 임의의 사용자 정의 필드 같은 항목별 품질 신호로 주석 대기열의 우선순위를 정해, 검토자가 도착 순서가 아니라 가장 의심스러운 항목부터 보게 합니다.
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: prioritySFT/DPO를 위한 트래젝토리 편집
새로 추가된 trajectory_edit과 trajectory_correction 스키마를 통해 주석자가 에이전트 트레이스의 각 단계를 다시 쓸 수 있습니다. 내보내기 도구는 원본/수정본 쌍을 지도 미세조정 대상(trajectory_sft.jsonl)과 DPO 선호 쌍(trajectory_dpo.jsonl)으로 변환합니다.
eval_trace 표시
추론, 함수 호출, 최종 답변의 세 창으로 구성된 에이전트 트레이스 표시입니다. 트레이스가 웹훅, Langfuse 폴러, 감시 중인 디렉터리를 통해 도착하는 대로 평가하는 지속적 평가를 위해 만들어졌습니다.
워크플로와 배정
- 이질적 커버리지. 항목마다 필요한 주석자 수가 다른 작업을 위해 항목별 주석자 상한, 주석자 간 일치도 보고, 판정 라우팅을 제공합니다.
- 버려진 배정 회수. Prolific 참여자나 QC로 차단된 작업자가 남긴 배정을 회수합니다. 보관 기간을 설정할 수 있고 회수는 멱등적으로 동작합니다.
- 커스텀 배치 배정 전략. 미리 정의한 항목 배치를 특정 주석자에게 배정합니다.
- 리버스 프록시 URL 접두사. 리버스 프록시 뒤의 하위 경로에서 Potato를 서비스합니다.
라이선스
Potato는 이제 PolyForm Shield에서 변경되어 GPL-3.0-or-later로 배포됩니다. 파생 저작물이 GPL을 따르는 한 상업적 이용을 포함해 사용, 수정, 재배포할 수 있습니다. 자세한 내용은 소개 페이지를 참고하세요.
성능과 안정성
- 부팅이 약 3배 빨라졌습니다. ML 스택을 시작 시점에 즉시 로드하지 않게 되면서 임포트 시간이 약 6.5초에서 2초로, 5만 항목 부팅이 약 10초에서 5.7초로, 상주 메모리가 약 750MB에서 365MB로 줄었습니다.
- 스키마 이름 변경.
annotation_type: highlight가span으로 바뀌었고 마이그레이션이 함께 제공됩니다. 기존 설정은 유형 이름만 바꾸면 되고, 이미span을 쓰던 설정은 영향을 받지 않습니다. - 라우트 등록, 훈련 단계, Prolific, 영속성, 내보내기와 설문 처리, 웹훅, 솔로 모드, 능동 학습 전반에 걸쳐 폭넓은 QA 보강 작업이 이루어졌습니다.
Potato 2.5.0
2026년 출시
Potato를 기존의 NLP·ML 주석 기능과 나란히 질적 연구 워크플로에서도 쓸 만하게 만드는 질적 코딩 중심의 릴리스입니다.
- 주석자 간 일치도. Krippendorff 알파에 더해 Cohen 카파(쌍별)와 Fleiss 카파(N명)를 관리자 일치도 API로 제공합니다. 주석자 간 일치도 가이드를 참고하세요.
- 새로운 내보내기 도구.
codebook(코드 계층, 색상, 설명, 사용 횟수를 담은 스키마별 CSV)과quotation_report(텍스트, 오프셋, 출처 문서, 코더를 담은 스팬별 CSV)가 추가되었습니다. - 코드 분석. 코드 쌍의 동시 출현과, 기존 인스턴스 메타데이터를 활용한 속성별 코드 교차표를 제공하는 관리자 엔드포인트입니다.
Potato 2.4.5
2026년 출시
안정성과 도구를 다듬은 릴리스입니다.
- 검증된 개선. 솔로 모드 주석 가이드라인을 반복적으로 개선하기 위한 플러그인 방식 프레임워크로, 가이드라인 모순과 메타데이터 유출을 막는 안전장치를 갖췄습니다.
- 설정 검증기. 설정 키를 알려진 설정 스키마와 대조해 확인하는
python -m potato.validate_cliCLI가 새로 추가되었습니다. - 보안. 경로 검증에서 형제 디렉터리 접두사를 이용한 경로 탐색 우회를 수정했습니다(GHSA-q9m2-fhv9-3jcf).
- 저장/탐색 상태 동기화, Prolific 연동, 다단계 탐색, 품질 관리 피드백 전반의 수정 사항이 포함되었습니다.
Potato 2.3.0
2026년 3월 9일 출시
Potato 2.3은 Potato 역사상 가장 큰 릴리스로, 에이전트 주석, 솔로 모드, 최선-최악 척도, SSO/OAuth 인증, Parquet 내보내기, 15개의 새로운 데모 프로젝트, 그리고 보안 강화를 도입합니다.
에이전트 주석
사람의 주석으로 AI 에이전트를 평가하기 위한 완전한 시스템입니다. 12개의 트레이스 형식 변환기, 3가지 특화된 표시 유형, 9개의 사전 구축된 주석 스키마가 포함되어 있습니다.
12개의 트레이스 형식 변환기. OpenAI, Anthropic, SWE-bench, OpenTelemetry, MCP, CrewAI/AutoGen/LangGraph, LangChain, LangFuse, ReAct, WebArena/VisualWebArena, ATIF, 그리고 원시 브라우저 기록에서 에이전트 트레이스를 가져옵니다. 자동 감지를 사용할 수 있습니다.
변환은 서버를 시작하기 전에 CLI 단계로 실행합니다.
python -m potato.trace_converter \
--input traces.json \
--input-format react \
--output data/traces.jsonl변환된 파일은 그 뒤로 일반 데이터 파일이 되며, 에이전트 표시 유형 중 하나로 렌더링됩니다.
data_files:
- "data/traces.jsonl"
instance_display:
fields:
- key: steps
type: agent_trace
label: "Agent trajectory"3가지 표시 유형:
- 에이전트 트레이스 표시. 도구를 사용하는 에이전트를 위한 표시로, 접을 수 있는 관찰 내용, 보기 좋게 정리된 JSON, 타임라인 사이드바를 갖춘 색상 구분 단계 카드입니다.
- 웹 에이전트 트레이스 표시. 브라우징 에이전트를 위한 표시로, 클릭 대상, 텍스트 입력, 스크롤 동작을 보여주는 SVG 오버레이가 있는 전체 스크린샷과 필름스트립 내비게이션을 제공합니다.
- 대화형 채팅 표시. 대화형 에이전트를 위한 표시로, 실시간 채팅 모드(주석자가 프록시를 통해 에이전트와 상호작용)와 트레이스 검토 모드를 제공합니다.
턴별 평가. 전체 트레이스와 함께 개별 단계를 평가해 세밀하게 평가할 수 있습니다.
9개의 사전 구축된 스키마. agent_task_success, agent_step_correctness, agent_error_taxonomy, agent_safety, agent_efficiency, agent_instruction_following, agent_explanation_quality, agent_web_action_correctness, agent_conversation_quality.
에이전트 프록시 시스템. 실시간 에이전트 평가를 위한 OpenAI, HTTP, echo 프록시입니다.
솔로 모드
한 명의 주석자가 LLM과 협업해 데이터셋 전체에 레이블을 다는 워크플로로, 다중 주석자 파이프라인과 95% 이상의 일치도를 보이면서도 전체 사람 레이블의 10-15%만 필요로 합니다.
솔로 모드는 고정된 순서가 아니라 단계 상태 기계로 동작합니다. 설정, 프롬프트 검토, 선택적 엣지 케이스 루프, 병렬 주석, 불일치 해결, 주기적 검토와 규칙 검토를 포함한 능동 주석, 자율 레이블링, 최종 검증을 거칩니다. 이 중 다섯 단계는 프롬프트가 문제로 드러나면 프롬프트 검토로 되돌아갈 수 있고, 최종 검증은 표본이 임계값을 넘지 못하면 능동 주석으로 돌아갑니다.
solo_mode:
enabled: true
labeling_models:
- endpoint_type: openai
model: "gpt-4o"
api_key: ${OPENAI_API_KEY}
thresholds:
end_human_annotation_agreement: 0.92
minimum_validation_sample: 50
state_dir: "solo_state"다중 신호 인스턴스 우선순위 지정. instance_selection은 일곱 가지 신호(낮은 신뢰도, 다양성, LLM 예측, 불일치, 무작위, 카토그래피, 엣지 케이스 규칙)에 가중치를 두어 사람이 다음에 볼 항목을 고릅니다.
최선-최악 척도
주석자가 튜플에서 최선과 최악의 항목을 선택하는 효율적인 비교 주석입니다. 균형 불완전 블록 설계를 통한 자동 튜플 생성과 세 가지 채점 방법(Counting, Bradley-Terry, Plackett-Luce)을 제공합니다.
annotation_schemes:
- annotation_type: bws
name: fluency
description: "Which sentence reads most fluently?"
tuple_size: 4
best_description: "Most Fluent"
worst_description: "Least Fluent"SSO 및 OAuth 인증
Google OAuth(도메인 제한), GitHub OAuth(조직 제한), 일반 OIDC(Okta, Azure AD, Auth0, Keycloak)를 지원하는 프로덕션용 인증입니다. 자동 등록, 혼합 모드, 세션 관리를 지원합니다.
authentication:
method: "oauth"
providers:
google:
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
allowed_domain: "umich.edu"
user_identity_field: "email"
auto_register: true
secret_key: ${POTATO_SECRET_KEY}Parquet 내보내기
주석을 Apache Parquet 형식으로 내보내며, annotations.parquet, spans.parquet, items.parquet의 세 가지 구조화된 파일을 만듭니다. snappy, gzip, zstd, lz4, brotli 압축, 증분 내보내기, 날짜/주석자별 파티셔닝을 지원합니다. pandas, DuckDB, PyArrow, Polars, Hugging Face Datasets와 호환됩니다.
export_annotation_format:
- parquet15개의 새로운 데모 프로젝트
project-hub/에 에이전트 주석(데모 5개), 솔로 모드(데모 3개), 최선-최악 척도(데모 3개), 인증(데모 2개), 내보내기 워크플로(데모 2개)를 다루는 새로운 데모가 추가되었습니다. potato start config.yaml로 어떤 데모든 시작할 수 있습니다.
보안 강화
- 만료 기간을 설정할 수 있는 암호학적으로 안전한 세션 토큰
- 기본적으로 활성화된 CSRF 보호
- 인증 엔드포인트의 속도 제한
- 사용자가 제공한 콘텐츠에 대한 입력 정제
- 모든 패키지를 업데이트한 의존성 감사
- 콘텐츠 보안 정책 헤더
기타 개선 사항
- 지원되지 않는 에이전트 프레임워크를 위한 사용자 정의 트레이스 변환기
- 다중 주석자 검증 샘플링이 포함된 하이브리드 솔로 모드
- 점수 수렴 차트가 있는 BWS 관리자 대시보드 탭
- 날짜 파티셔닝을 지원하는 증분 Parquet 내보내기
v2.2 대 v2.3 비교
| 기능 | v2.2 | v2.3 |
|---|---|---|
| 에이전트 주석 | 사용 불가 | 변환기 12개, 표시 3개, 스키마 9개 |
| 솔로 모드 | 사용 불가 | 단계 상태 기계로 동작하는 사람-LLM 워크플로 |
| 최선-최악 척도 | 사용 불가 | 채점 방법 3개의 BWS |
| 인증 | 사용자 이름만 | + Google OAuth, GitHub OAuth, OIDC |
| Parquet 내보내기 | 사용 불가 | 압축 옵션 6개의 3파일 Parquet |
| 데모 프로젝트 | 125개 이상 | 140개 이상 (신규 15개) |
| 보안 | 기본 | CSRF, 속도 제한, CSP, 안전한 세션 |
Potato 2.2.0
2026년 2월 20일 출시
Potato 2.2는 9개의 새로운 주석 스키마, 플러그형 내보내기 시스템, MACE 역량 추정, 55개의 검증된 설문 도구, 원격 데이터 소스를 갖춘 주요 기능 릴리스입니다.
새로운 주석 스키마 (9개)
이벤트 주석. 트리거 스팬과 유형이 지정된 인수 역할을 갖춘 n-항 이벤트 구조입니다. 제약된 엔티티 인수와 허브-스포크 호 시각화로 ATTACK, HIRE, TRAVEL 같은 이벤트에 주석을 답니다.
annotation_schemes:
- annotation_type: event_annotation
name: events
description: "Mark the event triggers and their arguments"
span_schema: entities
event_types:
- type: "ATTACK"
trigger_labels: ["EVENT_TRIGGER"]
arguments:
- role: "attacker"
entity_types: ["PERSON", "ORGANIZATION"]
required: true엔티티 연결. 스팬 주석을 외부 지식 베이스(Wikidata, UMLS, 사용자 정의 REST API)에 연결합니다. 어떤 스팬 스키마에든 entity_linking: 블록을 추가하면 KB 검색과 연결이 활성화됩니다.
선별. 빠른 데이터 선별을 위한 Prodigy 스타일의 수락/거부/건너뛰기 인터페이스입니다. 사용자 정의 레이블, 키보드 단축키, 고처리량 주석을 위한 자동 진행을 제공합니다.
쌍 비교. 이진(선호하는 타일 클릭) 또는 척도(슬라이더) 모드로 두 항목을 비교합니다. items_key, allow_tie, 범위를 설정할 수 있는 scale: 블록을 지원합니다.
대화 트리. 노드별 평가, 경로 선택, 분기 비교로 계층적 대화 구조에 주석을 답니다.
상호참조 체인. 상호참조하는 텍스트 멘션을 시각적 표시와 함께 체인으로 묶습니다. 엔티티 유형, 단일 항목 제어, 여러 강조 모드를 지원합니다.
세그멘테이션 마스크. 픽셀 단위 이미지 세그멘테이션을 위한 새로운 fill, eraser, brush 도구입니다.
PDF/문서용 경계 상자. 문서 주석 작업을 위해 PDF 페이지에 상자를 그립니다.
불연속 스팬. allow_discontinuous: true를 설정하면 연속되지 않은 텍스트 세그먼트를 하나의 스팬으로 선택할 수 있습니다.
지능형 주석
MACE 역량 추정. 참 레이블과 주석자 역량 점수(0.0-1.0)를 함께 추정하는 변분 베이즈 EM 알고리즘입니다. radio, likert, select, multiselect 스키마에서 동작합니다.
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 3옵션 강조. 이산 주석 작업에서 정답일 가능성이 높은 옵션을 LLM으로 강조합니다. 상위 k개 옵션을 별표로 강조하고 가능성이 낮은 옵션은 흐리게 표시합니다.
ai_support:
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4다양성 정렬. 임베딩 기반 클러스터링과 라운드 로빈 샘플링으로, 주석자가 비슷한 항목을 연달아 보는 대신 다양한 콘텐츠를 보게 합니다.
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100내보내기 시스템
새로운 플러그형 내보내기 CLI(python -m potato.export)는 주석을 COCO, YOLO, Pascal VOC, CoNLL-2003, CoNLL-U, 세그멘테이션 마스크의 6가지 업계 표준 형식으로 변환합니다.
python -m potato.export --config config.yaml --format coco --output ./export/원격 데이터 소스
새로운 data_sources: 설정 블록으로 URL, S3, Google Drive, Dropbox, Hugging Face, Google Sheets, SQL 데이터베이스에서 주석 데이터를 불러옵니다. 부분 로딩, 캐싱, 자격 증명 관리를 포함합니다.
설문 도구
8개 범주(성격, 정신 건강, 정서, 자기 개념, 사회적 태도, 응답 양식, 단축형, 인구통계)에 걸친 55개의 검증된 설문지입니다. 사전 연구/사후 연구 단계에서 instrument: "tipi"로 사용하세요.
기타 개선 사항
- 키프레임 보간을 통한 비디오 객체 추적
- 외부 AI 설정 파일 지원
- 폼 레이아웃 그리드 개선
- PDF, Word, 코드, 스프레드시트용 형식 핸들러
Potato 2.1.0
2026년 2월 5일 출시
Potato 2.1은 인스턴스 표시 시스템, 시각적 AI 지원, 스팬 연결, 다중 필드 스팬 주석, 레이아웃 사용자 정의를 도입합니다.
인스턴스 표시 시스템
콘텐츠 표시를 주석과 분리하는 새로운 instance_display 설정 블록입니다. 이미지, 비디오, 오디오, 텍스트, 대화를 어떤 조합으로든 어떤 주석 스키마와도 함께 표시합니다.
instance_display:
fields:
- key: image_url
type: image
display_options:
max_width: 600
zoomable: true
- key: description
type: text
annotation_schemes:
- annotation_type: radio
name: category
description: "What category best describes this image?"
labels: [nature, urban, people]text, html, image, video, audio, depth_map, dialogue, conversation_tree, pairwise, code, spreadsheet, document, pdf, gallery, 그리고 에이전트 트레이스 표시 5가지를 포함해 24가지 표시 유형을 지원합니다.
다중 필드 스팬 주석
이제 스팬 주석 스키마는 한 인스턴스 안의 여러 텍스트 필드에 걸쳐 주석을 달 수 있는 target_field 옵션을 지원합니다.
annotation_schemes:
- annotation_type: span
name: source_entities
description: "Label the entities in the source document"
labels: [PERSON, ORGANIZATION]
- annotation_type: span
name: summary_entities
description: "Label the entities in the summary"
labels: [PERSON, ORGANIZATION]스팬 연결
주석이 달린 스팬 사이에 유형이 있는 관계를 만드는 새로운 span_link 주석 유형입니다. 방향성 및 비방향성 링크, n-항 관계, 시각적 호 표시, 레이블 제약을 지원합니다.
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight the named entities in the text"
labels:
- name: "PERSON"
color: "#3b82f6"
- name: "ORGANIZATION"
color: "#22c55e"
- annotation_type: span_link
name: relations
description: "Link the entities that stand in a relation"
span_schema: entities
link_types:
- name: "WORKS_FOR"
directed: true
allowed_source_labels: ["PERSON"]
allowed_target_labels: ["ORGANIZATION"]
color: "#dc2626"시각적 AI 지원
AI 기반 이미지 및 비디오 주석 지원을 위한 새로운 비전 엔드포인트 4가지:
- YOLO는 빠른 로컬 객체 감지를 수행합니다
- Ollama Vision은 로컬 비전-언어 모델(LLaVA, Qwen-VL)을 사용합니다
- OpenAI Vision은 GPT-4o 클라우드 비전을 사용합니다
- Anthropic Vision은 비전 기능을 갖춘 Claude를 사용합니다
객체 감지, 사전 주석, 분류, 힌트, 장면 감지, 키프레임 감지, 객체 추적 등의 기능이 포함됩니다.
레이아웃 사용자 정의
HTML 템플릿과 CSS로 정교한 사용자 정의 시각 레이아웃을 만듭니다. Potato가 편집 가능한 레이아웃 파일을 생성하거나, 그리드 레이아웃, 색상으로 구분된 옵션, 섹션 스타일링을 갖춘 완전한 사용자 정의 템플릿을 직접 제공할 수 있습니다.
task_layout: layouts/custom_task_layout.html콘텐츠 검토, 대화 QA, 의료 검토의 세 가지 예제 레이아웃이 포함되어 있습니다.
레이블 근거
각 레이블이 적용될 수 있는 이유를 균형 있게 설명해, 주석자가 서로 다른 분류 관점을 이해하도록 돕는 네 번째 AI 기능입니다.
ai_support:
features:
rationales:
enabled: true기타 개선 사항
- 신뢰성 향상을 위한 50개 이상의 새로운 테스트
- 반응형 디자인 개선
- 레이아웃 예제를 포함한 project-hub 구성 개선
- 주석 유형 전반의 버그 수정
v2.0 대 v2.1 비교
| 기능 | v2.0 | v2.1 |
|---|---|---|
| 인스턴스 표시 | 주석 기능을 우회해 구현 | 전용 instance_display 블록 |
| 스팬 대상 | 단일 텍스트 필드 | target_field를 통한 다중 필드 |
| 스팬 연결 | 사용 불가 | 완전한 span_link 유형 |
| 시각적 AI | 사용 불가 | YOLO, Ollama Vision, OpenAI Vision, Anthropic Vision |
| 레이아웃 사용자 정의 | 기본 자동 생성 | 자동 생성 + 사용자 정의 템플릿 |
| AI 기능 | 3개(힌트, 키워드, 제안) | 4개(+ 근거) |
Potato 2.0
Potato 2.0은 AI 지원, 능동 학습, 교육 단계, 다단계 워크플로, MySQL 백엔드를 추가한 주요 릴리스입니다.
AI 지원
대규모 언어 모델을 통합해 지능적인 힌트, 키워드 강조, 레이블 제안으로 주석자를 돕습니다.
지원되는 제공자:
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude 3, Claude 3.5)
- Google (Gemini)
- Ollama (로컬 모델)
- vLLM (자체 호스팅)
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
hints:
enabled: true
label_suggestions:
enabled: true오디오 주석
Peaks.js 기반 파형 시각화를 갖춘 본격적인 오디오 주석입니다. 세그먼트를 만들고, 시간 구간에 레이블을 달고, 키보드 단축키로 음성에 주석을 답니다.
주요 기능:
- 파형 시각화
- 세그먼트 생성 및 레이블링
- 세그먼트별 주석 질문
- 15개 이상의 키보드 단축키
- 서버 측 파형 캐싱
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark each speaker turn in the audio"
mode: label
labels:
- Speaker A
- Speaker B능동 학습
모델 불확실성을 기준으로 주석 인스턴스의 우선순위를 자동으로 정합니다. 기존 주석으로 분류기를 학습시키고 주석자가 가장 정보량이 많은 예제에 집중하게 합니다.
기능:
- 여러 분류기 옵션(LogisticRegression, RandomForest, SVC, MultinomialNB)
- 다양한 벡터라이저(TF-IDF, Count, Hashing)
- 재시작 후에도 유지되는 모델
- LLM 강화 선택
- 다중 스키마 지원
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
update_frequency: 50
classifier:
type: LogisticRegression교육 단계
본 작업 전에 연습 문제로 주석자의 자격을 확인합니다. 즉각적인 피드백을 주고, 설정 가능한 합격 기준으로 품질을 확보합니다.
기능:
- 정답이 알려진 연습 문제
- 즉각적인 피드백과 설명
- 설정 가능한 합격 기준
- 재시도 옵션
- 관리자 대시보드의 진행 상황 추적
phases:
training:
enabled: true
data_file: "data/training.json"
passing_criteria:
min_correct: 8
total_questions: 10향상된 관리자 대시보드
주석 작업을 위한 종합적인 모니터링 및 관리 인터페이스입니다.
대시보드 탭:
- 개요: 상위 수준 지표와 완료율
- 주석자: 성과 추적, 소요 시간 분석
- 인스턴스: 불일치 점수와 함께 데이터 탐색
- 설정: 실시간 설정 조정
admin_api_key: ${ADMIN_API_KEY}데이터베이스 백엔드
연결 풀링과 트랜잭션을 지원하는, 대규모 배포를 위한 MySQL 지원입니다.
database:
type: mysql
host: localhost
database: potato_db
username: ${DB_USER}
password: ${DB_PASSWORD}Potato는 처음 시작할 때 필요한 테이블을 자동으로 만듭니다.
주석 기록
모든 주석 변경을 타임스탬프, 사용자 ID, 작업 유형과 함께 빠짐없이 추적합니다. 감사와 행동 분석에 쓸 수 있습니다.
{
"history": [
{
"timestamp": "2024-01-15T10:30:00Z",
"user": "annotator_1",
"action": "create",
"schema": "sentiment",
"value": "Positive"
}
]
}다단계 워크플로
여러 순차 단계로 복잡한 주석 워크플로를 구성합니다:
- 동의 - 사전 동의 수집
- 사전 연구 - 인구통계 조사와 선별
- 안내 - 작업 지침
- 교육 - 연습 문제
- 주석 - 본 작업
- 사후 연구 - 피드백 설문
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
training:
enabled: true
data_file: "data/training.json"
poststudy:
enabled: true
data_file: "data/feedback.json"v2.0 설정 변경 사항
새로운 설정 구조
Potato 2.0은 더 깔끔한 설정 형식을 사용합니다.
v1 (이전):
data_files:
- data.json
id_key: id
text_key: text
output_file: annotations.jsonv2 (신규):
data_files:
- "data/data.json"
item_properties:
id_key: id
text_key: text
output_annotation_dir: "output/"
export_annotation_format: "jsonl"보안 요구 사항
이제 설정 파일은 task_dir 안에 있어야 합니다.
설정 파일이 데이터와 같은 곳에 있으면 작업 디렉터리는 현재 디렉터리입니다:
task_dir: "."설정 파일이 하위 디렉터리에 있으면 그 파일이 속한 프로젝트 디렉터리를 지정합니다:
task_dir: "my_project/"빠른 비교
| 기능 | v1 | v2.0 | v2.1 | v2.2 | v2.3 |
|---|---|---|---|---|---|
| AI/LLM 지원 | 아니요 | 예 | 예 + 시각적 AI + 근거 | + 옵션 강조 | + 솔로 모드 |
| 에이전트 주석 | 아니요 | 아니요 | 아니요 | 아니요 | 변환기 12개, 표시 3개 |
| 최선-최악 척도 | 아니요 | 아니요 | 아니요 | 아니요 | 예 (채점 방법 3개) |
| 오디오 주석 | 기본 | 완전한 파형 | 완전한 파형 | 완전한 파형 | 완전한 파형 |
| 능동 학습 | 아니요 | 예 | 예 | 예 + 다양성 정렬 | + 솔로 모드 통합 |
| 인스턴스 표시 | 아니요 | 아니요 | 예 | 예 | 예 |
| 스팬 연결 | 아니요 | 아니요 | 예 | 예 | 예 |
| 이벤트 주석 | 아니요 | 아니요 | 아니요 | 예 | 예 |
| 엔티티 연결 | 아니요 | 아니요 | 아니요 | 예 | 예 |
| 쌍 비교/선별/상호참조/트리 | 아니요 | 아니요 | 아니요 | 예 | 예 |
| 레이아웃 사용자 정의 | 아니요 | 자동 생성 | 자동 + 사용자 정의 템플릿 | 자동 + 사용자 정의 템플릿 | 자동 + 사용자 정의 템플릿 |
| 교육 단계 | 아니요 | 예 | 예 | 예 | 예 |
| 관리자 대시보드 | 기본 | 향상됨 | 향상됨 | 향상됨 + MACE | + BWS 탭, 솔로 모드 |
| 데이터베이스 백엔드 | 파일만 | 파일 + MySQL | 파일 + MySQL | 파일 + MySQL | 파일 + MySQL |
| 내보내기 CLI | 아니요 | 아니요 | 아니요 | 예 (COCO, YOLO, CoNLL 등) | + Parquet |
| 인증 | 사용자 이름 | 사용자 이름 | 사용자 이름 | 사용자 이름 | + Google/GitHub OAuth, OIDC |
| 설문 도구 | 아니요 | 아니요 | 아니요 | 55개의 검증된 설문지 | 55개의 검증된 설문지 |
| 원격 데이터 소스 | 아니요 | 아니요 | 아니요 | S3, GDrive, HuggingFace 등 | S3, GDrive, HuggingFace 등 |
마이그레이션 가이드
설정 업데이트 (v1에서 v2로)
-
데이터 설정
yaml# Old id_key: id text_key: text # New item_properties: id_key: id text_key: text -
출력 설정
yaml# Old output_file: annotations.json # New output_annotation_dir: "output/" export_annotation_format: "jsonl" -
설정 파일 위치 설정 파일이 프로젝트 디렉터리 안에 있는지 확인하세요.
서버 시작
# v2 command
python -m potato start config.yaml -p 8000
# Or shorthand
potato start config.yaml시작하기
Potato를 사용해 볼 준비가 되셨나요? 빠른 시작 가이드로 시작하거나 개별 기능을 살펴보세요.
v2.3 기능:
- 에이전트 주석 - 트레이스 변환기와 단계 수준 표시로 AI 에이전트 평가
- 솔로 모드 - 사람-LLM 협업 레이블링
- 최선-최악 척도 - 채점이 포함된 비교 주석
- SSO 및 OAuth - Google, GitHub, OIDC 인증
- Parquet 내보내기 - 컬럼형 데이터 내보내기
v2.2 기능:
- 이벤트 주석 - n-항 이벤트 구조
- 엔티티 연결 - 지식 베이스 연결
- 선별 - 빠른 데이터 선별
- 상호참조 체인 - 엔티티 상호참조
- 대화 트리 - 계층적 대화 주석
- MACE - 주석자 역량 추정
- 옵션 강조 - AI 기반 옵션 안내
- 다양성 정렬 - 임베딩 기반 항목 정렬
- 내보내기 형식 - 6가지 형식의 내보내기 CLI
- 원격 데이터 소스 - 클라우드 데이터 로딩
- 설문 도구 - 55개의 검증된 설문지
v2.1 기능:
핵심 기능: