AI 지원
OpenAI, Claude, Gemini, Ollama, HuggingFace, vLLM, OpenRouter를 Potato와 통합하여 레이블 제안, 사전 주석, AI 기반 키워드 강조를 활용합니다.
Potato 2.0에는 지능형 힌트, 키워드 강조, 레이블 제안으로 주석자를 돕는 대규모 언어 모델(LLM) 지원이 내장되어 있습니다.
지원되는 제공자
Potato는 여러 LLM 제공자를 지원합니다.
클라우드 제공자:
- OpenAI (GPT-4, GPT-4 Turbo, GPT-3.5)
- Anthropic (Claude 3, Claude 3.5)
- Google (Gemini 1.5 Pro, Gemini 2.0 Flash)
- Hugging Face
- OpenRouter
로컬/자체 호스팅:
- Ollama (모델을 로컬에서 실행)
- vLLM (고성능 자체 호스팅 추론)
구성
기본 설정
구성 파일에 ai_support 섹션을 추가합니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500제공자별 구성
OpenAI
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4o
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500Anthropic Claude
ai_support:
enabled: true
endpoint_type: anthropic
ai_config:
model: claude-3-sonnet-20240229
api_key: ${ANTHROPIC_API_KEY}
temperature: 0.3
max_tokens: 500Google Gemini
ai_support:
enabled: true
endpoint_type: google
ai_config:
model: gemini-1.5-pro
api_key: ${GOOGLE_API_KEY}로컬 Ollama
ai_support:
enabled: true
endpoint_type: ollama
ai_config:
model: llama2
base_url: http://localhost:11434vLLM (자체 호스팅)
ai_support:
enabled: true
endpoint_type: vllm
ai_config:
model: meta-llama/Llama-2-7b-chat-hf
base_url: http://localhost:8000/v1비주얼 AI 엔드포인트
v2.1.0의 신규 기능
이미지 및 비디오 주석 작업을 위해 Potato는 YOLO, Ollama Vision, OpenAI Vision, Anthropic Vision을 포함한 전용 비전 엔드포인트를 지원합니다. 이를 통해 객체 탐지, 사전 주석, 시각적 분류가 가능합니다.
전체 구성 세부 사항은 비주얼 AI 지원을 참고하십시오.
AI 기능
Potato의 AI 지원은 다섯 가지 주요 기능을 제공합니다.
1. 지능형 힌트
답을 드러내지 않으면서 주석자에게 맥락에 맞는 안내를 제공합니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# Hints appear as tooltips or sidebars
features:
hints:
enabled: true2. 키워드 강조
텍스트에서 관련 키워드를 자동으로 강조합니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
keyword_highlighting:
enabled: true
# Highlights are rendered as box overlays on the text3. 레이블 제안
주석자가 검토할 수 있도록 레이블을 제안합니다(신뢰도 표시와 함께 표시됨).
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
label_suggestions:
enabled: true
show_confidence: true4. 레이블 근거
v2.1.0의 신규 기능
각 레이블이 텍스트에 왜 적용될 수 있는지에 대한 균형 잡힌 설명을 생성하여, 주석자가 서로 다른 분류 뒤에 있는 논리를 이해하도록 돕습니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
rationales:
enabled: true근거는 사용 가능한 각 레이블과 그 적용 이유에 대한 설명을 나열하는 툴팁으로 나타납니다. 이는 주석자를 교육하거나 주석 결정이 어려울 때 유용합니다.
5. 옵션 강조
v2.2.0의 신규 기능
이산형 주석 작업(radio, multiselect, likert, select)에서 가장 정답일 가능성이 높은 옵션을 AI 보조로 강조합니다. 시스템은 콘텐츠를 분석하여 상위 k개의 가능성 높은 옵션을 강조하고 가능성이 낮은 옵션은 흐리게 표시하되, 모든 옵션은 완전히 클릭 가능한 상태로 유지합니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
option_highlighting:
enabled: true
top_k: 3
dim_opacity: 0.4
auto_apply: true전체 구성 세부 사항은 옵션 강조를 참고하십시오.
보완 기능: 다양성 정렬
v2.2.0의 신규 기능
엄밀히 말해 AI 기능은 아니지만, 다양성 정렬은 sentence-transformer 임베딩을 사용해 항목을 클러스터링하고 다양한 순서로 제시하여 주석자의 피로를 줄이고 커버리지를 개선합니다. 재정렬된 항목의 AI 힌트를 자동으로 미리 가져옴으로써 AI 지원과 통합됩니다.
캐싱 및 성능
AI 응답을 캐싱하여 성능을 향상하고 API 비용을 줄일 수 있습니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
cache_config:
disk_cache:
enabled: true
path: "ai_cache/cache.json"
# Pre-generate hints on startup and prefetch upcoming
prefetch:
warm_up_page_count: 100
on_next: 5
on_prev: 2캐싱 전략
- 워밍업: 서버가 시작될 때 초기 인스턴스 배치에 대한 AI 힌트를 미리 생성합니다(
warm_up_page_count) - 프리페치: 주석자가 앞으로(
on_next) 또는 뒤로(on_prev) 이동할 때 다가오는 인스턴스의 힌트를 생성합니다 - 디스크 지속성: 캐시는 디스크에 저장되어 서버 재시작 후에도 유지됩니다
사용자 정의 프롬프트
Potato에는 각 주석 유형에 대한 기본 프롬프트가 포함되어 있으며, potato/ai/prompt/에 저장됩니다. 특정 작업에 맞게 이를 사용자 정의할 수 있습니다.
| 주석 유형 | 프롬프트 파일 |
|---|---|
| 라디오 버튼 | radio_prompt.txt |
| Likert 척도 | likert_prompt.txt |
| 체크박스 | checkbox_prompt.txt |
| 스팬 주석 | span_prompt.txt |
| 슬라이더 | slider_prompt.txt |
| 드롭다운 | dropdown_prompt.txt |
| 숫자 입력 | number_prompt.txt |
| 텍스트 입력 | text_prompt.txt |
프롬프트는 변수 치환을 지원합니다.
{text}- 문서 텍스트{labels}- 스키마에 사용 가능한 레이블{description}- 스키마 설명
다중 스키마 지원
여러 주석 스키마가 있는 작업의 경우 AI 지원을 선택적으로 활성화할 수 있습니다.
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
# Only enable for specific schemes
special_include:
- page: 1
schema: sentiment
- page: 1
schema: topics전체 예시
AI 보조 감정 분석을 위한 완전한 구성입니다.
annotation_task_name: "AI-Assisted Sentiment Analysis"
task_dir: "."
port: 8000
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this review?"
labels:
- Positive
- Negative
- Neutral
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500
features:
hints:
enabled: true
keyword_highlighting:
enabled: true
# Highlights are rendered as box overlays on the text
label_suggestions:
enabled: true
show_confidence: true
cache_config:
disk_cache:
enabled: true
path: "ai_cache/cache.json"
prefetch:
warm_up_page_count: 50
on_next: 3
on_prev: 2
output_annotation_dir: "output/"
export_annotation_format: "json"
user_config:
allow_all_users: true환경 변수
환경 변수를 사용하여 API 키를 안전하게 저장합니다.
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."구성에서 ${VARIABLE_NAME} 구문으로 이를 참조합니다.
비용 고려 사항
- AI 호출은 기본적으로 인스턴스별로 이루어집니다
- 캐싱을 활성화하여 반복되는 API 호출을 줄입니다
- 워밍업과 프리페치를 사용하여 힌트를 미리 생성합니다
- 간단한 작업에는 더 작고 저렴한 모델 사용을 고려합니다
- 로컬 제공자(Ollama, vLLM)는 API 비용이 없습니다
모범 사례
- AI를 대체가 아닌 보조로 사용하십시오 - 최종 결정은 주석자가 내리도록 합니다
- 프로덕션에서 캐싱을 활성화하십시오 - 지연 시간과 비용을 줄입니다
- 프롬프트를 철저히 테스트하십시오 - 사용자 정의 프롬프트는 검증되어야 합니다
- API 비용을 모니터링하십시오 - 특히 클라우드 제공자의 사용량을 추적합니다
- 로컬 제공자를 고려하십시오 - 대량 주석에는 Ollama 또는 vLLM을 사용합니다
- API 자격 증명을 보호하십시오 - 환경 변수를 사용하고 키를 절대 커밋하지 마십시오
더 읽어보기
- 옵션 강조 - AI 보조 옵션 안내
- 다양성 정렬 - 임베딩 기반 항목 다양화
- 비주얼 AI 지원 - 이미지 및 비디오 주석용 AI
- ICL 레이블링 - AI 보조 인컨텍스트 학습
- 능동 학습 - ML 기반 인스턴스 우선순위 지정
- 생산성 기능 - 키워드 강조 및 제안
구현 세부 사항과 사용자 정의 프롬프트 템플릿은 원본 문서를 참고하십시오.