Skip to content
このページはまだお使いの言語に翻訳されていません。英語版を表示しています。

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:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500

Anbieterspezifische Konfiguration

OpenAI

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4o
    api_key: ${OPENAI_API_KEY}
    temperature: 0.3
    max_tokens: 500

Anthropic Claude

yaml
ai_support:
  enabled: true
  endpoint_type: anthropic
 
  ai_config:
    model: claude-3-sonnet-20240229
    api_key: ${ANTHROPIC_API_KEY}
    temperature: 0.3
    max_tokens: 500

Google Gemini

yaml
ai_support:
  enabled: true
  endpoint_type: google
 
  ai_config:
    model: gemini-1.5-pro
    api_key: ${GOOGLE_API_KEY}

Lokales Ollama

yaml
ai_support:
  enabled: true
  endpoint_type: ollama
 
  ai_config:
    model: llama2
    base_url: http://localhost:11434

vLLM (Self-Hosted)

yaml
ai_support:
  enabled: true
  endpoint_type: vllm
 
  ai_config:
    model: meta-llama/Llama-2-7b-chat-hf
    base_url: http://localhost:8000/v1

Visuelle 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:

yaml
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: true

2. Schlüsselwort-Hervorhebung

Relevante Schlüsselwörter im Text automatisch hervorheben:

yaml
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 text

3. Label-Vorschläge

Labels zur Berücksichtigung durch Annotatoren vorschlagen (angezeigt mit Konfidenzindikatoren):

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    label_suggestions:
      enabled: true
      show_confidence: true

4. 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:

yaml
ai_support:
  enabled: true
  endpoint_type: openai
 
  ai_config:
    model: gpt-4
    api_key: ${OPENAI_API_KEY}
 
  features:
    rationales:
      enabled: true

Begrü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.

yaml
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

Vollstä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:

yaml
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

Caching-Strategien

  1. Warmup: Vorab AI-Hinweise für einen initialen Batch von Instanzen beim Serverstart generieren (warm_up_page_count)
  2. Prefetch: Hinweise für bevorstehende Instanzen generieren, während Annotatoren vorwärts (on_next) oder rückwärts (on_prev) navigieren
  3. 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:

AnnotationstypPrompt-Datei
Radio-Buttonsradio_prompt.txt
Likert-Skalenlikert_prompt.txt
Checkboxencheckbox_prompt.txt
Span-Annotationspan_prompt.txt
Schiebereglerslider_prompt.txt
Dropdownsdropdown_prompt.txt
Zahleneingabenumber_prompt.txt
Texteingabetext_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:

yaml
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

Vollständiges Beispiel

Vollständige Konfiguration für KI-gestützte Sentiment-Analyse:

yaml
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: true

Umgebungsvariablen

API-Keys sicher über Umgebungsvariablen speichern:

bash
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

  1. AI als Unterstützung, nicht als Ersatz nutzen – Annotatoren sollten endgültige Entscheidungen treffen
  2. Caching für die Produktion aktivieren – Reduziert Latenz und Kosten
  3. Prompts gründlich testen – Benutzerdefinierte Prompts sollten validiert werden
  4. API-Kosten überwachen – Besonders bei Cloud-Anbietern die Nutzung verfolgen
  5. Lokale Anbieter in Betracht ziehen – Ollama oder vLLM für hochvolumige Annotation
  6. API-Anmeldedaten schützen – Umgebungsvariablen verwenden, Keys niemals einchecken

Weiterführende Informationen

Implementierungsdetails und benutzerdefinierte Prompt-Vorlagen finden Sie in der Quelldokumentation.