AI-Unterstützung
LLMs für intelligente Annotationshilfe integrieren.
AI-Unterstützung
Potato 2.0 enthält integrierte Unterstützung für Large Language Models (LLMs), um Annotatoren mit intelligenten Hinweisen, Schlüsselwort-Hervorhebungen und Label-Vorschlägen zu unterstützen.
Unterstützte Anbieter
Potato unterstützt mehrere LLM-Anbieter:
Cloud-Anbieter:
- 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
Lokal/Self-Hosted:
- Ollama (Modelle lokal ausführen)
- vLLM (hochleistungsfähige selbst gehostete Inferenz)
Konfiguration
Grundeinrichtung
Fügen Sie Ihrer Konfigurationsdatei einen ai_support-Abschnitt hinzu:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
temperature: 0.3
max_tokens: 500Anbieterspezifische Konfiguration
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}Lokales Ollama
ai_support:
enabled: true
endpoint_type: ollama
ai_config:
model: llama2
base_url: http://localhost:11434vLLM (Self-Hosted)
ai_support:
enabled: true
endpoint_type: vllm
ai_config:
model: meta-llama/Llama-2-7b-chat-hf
base_url: http://localhost:8000/v1Visuelle AI-Endpunkte
Neu in v2.1.0
Für Bild- und Videoannotationsaufgaben unterstützt Potato dedizierte Vision-Endpunkte wie YOLO, Ollama Vision, OpenAI Vision und Anthropic Vision. Diese ermöglichen Objekterkennung, Vorausfüllen von Annotationen und visuelle Klassifikation.
Vollständige Konfigurationsdetails finden Sie unter Visuelle AI-Unterstützung.
AI-Funktionen
Potatos AI-Unterstützung bietet fünf primäre Fähigkeiten:
1. Intelligente Hinweise
Kontextbezogene Anleitung für Annotatoren bereitstellen, ohne die Antwort zu verraten:
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. Schlüsselwort-Hervorhebung
Relevante Schlüsselwörter im Text automatisch hervorheben:
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. Label-Vorschläge
Labels zur Berücksichtigung durch Annotatoren vorschlagen (angezeigt mit Konfidenzindikatoren):
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. Label-Begründungen
Neu in v2.1.0
Ausgewogene Erklärungen generieren, warum jedes Label auf den Text zutreffen könnte, damit Annotatoren die Überlegungen hinter verschiedenen Klassifikationen verstehen:
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
rationales:
enabled: trueBegründungen erscheinen als Tooltip mit einer Auflistung der verfügbaren Labels und einer Erklärung, warum sie zutreffen könnten. Dies ist nützlich für das Training von Annotatoren oder wenn Annotationsentscheidungen schwierig sind.
5. Optionshervorhebung
Neu in v2.2.0
KI-gestützte Hervorhebung der wahrscheinlichsten richtigen Optionen für diskrete Annotationsaufgaben (radio, multiselect, likert, select). Das System analysiert den Inhalt und hebt die top-k wahrscheinlichsten Optionen hervor, während weniger wahrscheinliche abgedunkelt werden – alle Optionen bleiben vollständig klickbar.
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: trueVollständige Konfigurationsdetails finden Sie unter Optionshervorhebung.
Ergänzend: Diversity Ordering
Neu in v2.2.0
Obwohl nicht streng eine AI-Funktion, verwendet Diversity Ordering Sentence-Transformer-Embeddings, um Elemente zu clustern und in einer vielfältigen Reihenfolge zu präsentieren, was Annotatorermüdung reduziert und die Abdeckung verbessert. Es integriert sich in die AI-Unterstützung, indem AI-Hinweise für neu geordnete Elemente automatisch vorabgeladen werden.
Caching und Leistung
AI-Antworten können gecacht werden, um die Leistung zu verbessern und API-Kosten zu reduzieren:
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: 2Caching-Strategien
- Warmup: Vorab AI-Hinweise für einen initialen Batch von Instanzen beim Serverstart generieren (
warm_up_page_count) - Prefetch: Hinweise für bevorstehende Instanzen generieren, während Annotatoren vorwärts (
on_next) oder rückwärts (on_prev) navigieren - Festplattenbeständigkeit: Caches werden auf Festplatte gespeichert und bleiben über Serverneustarts hinweg erhalten
Benutzerdefinierte Prompts
Potato enthält Standardprompts für jeden Annotationstyp, die in potato/ai/prompt/ gespeichert sind. Sie können diese für Ihre spezifische Aufgabe anpassen:
| Annotationstyp | Prompt-Datei |
|---|---|
| Radio-Buttons | radio_prompt.txt |
| Likert-Skalen | likert_prompt.txt |
| Checkboxen | checkbox_prompt.txt |
| Span-Annotation | span_prompt.txt |
| Schieberegler | slider_prompt.txt |
| Dropdowns | dropdown_prompt.txt |
| Zahleneingabe | number_prompt.txt |
| Texteingabe | text_prompt.txt |
Prompts unterstützen Variablensubstitution:
{text}– Der Dokumenttext{labels}– Verfügbare Labels für das Schema{description}– Die Schemabeschreibung
Multi-Schema-Unterstützung
Bei Aufgaben mit mehreren Annotationsschemata können Sie AI-Unterstützung selektiv aktivieren:
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: topicsVollständiges Beispiel
Vollständige Konfiguration für KI-gestützte Sentiment-Analyse:
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/"
output_annotation_format: "json"
allow_all_users: trueUmgebungsvariablen
API-Keys sicher über Umgebungsvariablen speichern:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."Referenzieren Sie diese in Ihrer Konfiguration mit der Syntax ${VARIABLE_NAME}.
Kostenüberlegungen
- AI-Aufrufe werden standardmäßig pro Instanz durchgeführt
- Caching aktivieren, um wiederholte API-Aufrufe zu reduzieren
- Warmup und Prefetch nutzen, um Hinweise vorab zu generieren
- Kleinere/günstigere Modelle für einfache Aufgaben in Betracht ziehen
- Lokale Anbieter (Ollama, vLLM) haben keine API-Kosten
Bewährte Vorgehensweisen
- AI als Unterstützung, nicht als Ersatz nutzen – Annotatoren sollten endgültige Entscheidungen treffen
- Caching für die Produktion aktivieren – Reduziert Latenz und Kosten
- Prompts gründlich testen – Benutzerdefinierte Prompts sollten validiert werden
- API-Kosten überwachen – Besonders bei Cloud-Anbietern die Nutzung verfolgen
- Lokale Anbieter in Betracht ziehen – Ollama oder vLLM für hochvolumige Annotation
- API-Anmeldedaten schützen – Umgebungsvariablen verwenden, Keys niemals einchecken
Weiterführende Informationen
- Optionshervorhebung – KI-gestützte Optionsführung
- Diversity Ordering – Embedding-basierte Elementdiversifizierung
- Visuelle AI-Unterstützung – AI für Bild- und Videoannotation
- ICL-Beschriftung – KI-gestütztes In-Context-Learning
- Active Learning – ML-basierte Instanzpriorisierung
- Produktivitätsfunktionen – Schlüsselwort-Hervorhebungen und Vorschläge
Implementierungsdetails und benutzerdefinierte Prompt-Vorlagen finden Sie in der Quelldokumentation.