Skip to content
Questa pagina non è ancora disponibile nella tua lingua. Viene mostrata la versione in inglese.

ICL-Beschriftung

KI-gestützte In-Context-Learning-Beschriftung mit menschlicher Verifikation für skalierbare Annotation.

KI-gestützte ICL-Beschriftung

Potatos ICL (In-Context Learning)-Beschriftungsfunktion ermöglicht KI-gestützte Annotation, indem hochkonfidente menschliche Annotationen als In-Context-Beispiele genutzt werden, um ein LLM bei der Beschriftung der restlichen Daten zu leiten. Das System verfolgt die LLM-Konfidenz und leitet Vorhersagen zur Verifikation zurück an Menschen.

Übersicht

Das ICL-Beschriftungssystem:

  1. Sammelt hochkonfidente Beispiele: Identifiziert Instanzen, bei denen Annotatoren übereinstimmen (z. B. 80 %+ Übereinstimmung)
  2. Beschriftet mit LLM: Verwendet Beispiele, um ein LLM zur Beschriftung nicht annotierter Instanzen zu prompen
  3. Verfolgt Konfidenz: Erfasst LLM-Konfidenzwerte für jede Vorhersage
  4. Verifiziert Genauigkeit: Leitet eine Stichprobe LLM-beschrifteter Instanzen zur blinden Verifikation an Menschen
  5. Berichtet Metriken: Berechnet und zeigt LLM-Genauigkeit basierend auf Verifikationsergebnissen

Funktionen

Automatische Beispielerfassung

Das System identifiziert automatisch hochkonfidente Beispiele, bei denen mehrere Annotatoren übereinstimmen:

  • Konfigurierbarer Übereinstimmungsschwellenwert (Standard: 80 %)
  • Mindestanzahl an Annotatoren (Standard: 2)
  • Automatische Aktualisierung in konfigurierbaren Intervallen
  • Beispielmengen pro Schema

LLM-Beschriftung mit Grenzen

Um iterative Verbesserung statt Massen-Beschriftung zu ermöglichen:

  • Max. Gesamtlabels: Gesamtzahl der LLM-Vorhersagen begrenzen
  • Max. unbeschriftetes Verhältnis: Nur einen Prozentsatz der verbleibenden Daten beschriften
  • Pause bei niedriger Genauigkeit: Automatisch pausieren, wenn die Genauigkeit unter den Schwellenwert fällt

Blinde Verifikation

Die Verifikation verwendet "blinde Beschriftung" – Annotatoren sehen die Instanz als normale Aufgabe, ohne die LLM-Vorhersage zu kennen:

  • Konfigurierbarer Stichprobensatz (Standard: 20 % der LLM-Labels)
  • Mehrere Auswahlstrategien: low_confidence, random, mixed
  • Verifikationsaufgaben werden natürlich mit regulären Zuweisungen gemischt

Konfiguration

ICL-Beschriftung erfordert die Aktivierung von ai_support:

yaml
# AI endpoint configuration (required)
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
 
# ICL labeling configuration
icl_labeling:
  enabled: true
 
  # Example selection settings
  example_selection:
    min_agreement_threshold: 0.8      # 80% annotators must agree
    min_annotators_per_instance: 2    # Minimum annotations for consensus
    max_examples_per_schema: 10       # Max examples per schema in prompt
    refresh_interval_seconds: 300     # How often to refresh examples
 
  # LLM labeling settings
  llm_labeling:
    batch_size: 20
    trigger_threshold: 5              # Min examples before LLM labeling starts
    confidence_threshold: 0.7         # Min confidence to accept prediction
    batch_interval_seconds: 600
    max_total_labels: 100             # Max instances to label total
    max_unlabeled_ratio: 0.5          # Max portion of unlabeled to label
    pause_on_low_accuracy: true
    min_accuracy_threshold: 0.7
 
  # Human verification settings
  verification:
    enabled: true
    sample_rate: 0.2                  # 20% of LLM labels verified
    selection_strategy: "low_confidence"
    mix_with_regular_assignments: true
    assignment_mix_rate: 0.2

Auswahlstrategien

  • low_confidence: Priorisiert die Verifikation der am wenigsten konfidenten LLM-Vorhersagen
  • random: Zufällige Stichprobe aus allen Vorhersagen
  • mixed: 50 % niedrige Konfidenz + 50 % zufällig

Admin-API

Status-Endpunkt

http
GET /admin/api/icl/status

Gibt den Gesamtstatus des ICL-Beschrifters zurück, einschließlich Beispiele pro Schema, gemachte Vorhersagen, Größe der Verifikationswarteschlange und Genauigkeitsmetriken.

Beispiele-Endpunkt

http
GET /admin/api/icl/examples?schema=sentiment

Gibt hochkonfidente Beispiele zurück, optional nach Schema gefiltert.

Genauigkeits-Endpunkt

http
GET /admin/api/icl/accuracy?schema=sentiment

Gibt Genauigkeitsmetriken basierend auf menschlichen Verifikationsergebnissen zurück.

Manueller Auslöse-Endpunkt

http
POST /admin/api/icl/trigger
Content-Type: application/json
 
{"schema_name": "sentiment"}

Löst die Batch-Beschriftung für ein bestimmtes Schema manuell aus.

Nutzungsworkflow

1. Projekt konfigurieren

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
 
icl_labeling:
  enabled: true
  example_selection:
    min_agreement_threshold: 0.8
  llm_labeling:
    max_total_labels: 50  # Start small
  verification:
    enabled: true
    sample_rate: 0.3  # Verify 30% initially

2. Menschliche Annotationen sammeln

Annotatoren beschriften Daten normal. Sobald sie Konsens erreichen (80 %+ Übereinstimmung), stehen diese Instanzen als Beispiele zur Verfügung.

3. Fortschritt überwachen

bash
curl http://localhost:8000/admin/api/icl/status

4. Genauigkeit überprüfen

bash
curl http://localhost:8000/admin/api/icl/accuracy

5. Iterieren

Basierend auf der Genauigkeit:

  • Wenn die Genauigkeit hoch ist (>80 %), max_total_labels erhöhen
  • Wenn die Genauigkeit niedrig ist, mehr menschliche Beispiele hinzufügen, bevor fortgefahren wird

Bewährte Vorgehensweisen

  1. Klein anfangen: Mit konservativen Grenzen beginnen (max_total_labels: 50), um die Genauigkeit vor dem Skalieren zu beurteilen

  2. Früh verifizieren: Anfangs einen höheren sample_rate (0,3–0,5) verwenden, um konfidente Genauigkeitsschätzungen zu erhalten

  3. Aktiv überwachen: Genauigkeitsmetriken regelmäßig über die Admin-API prüfen

  4. Schwellenwerte anpassen: Wenn die LLM-Genauigkeit niedrig ist:

    • min_agreement_threshold für sauberere Beispiele erhöhen
    • trigger_threshold erhöhen, um vor der Beschriftung mehr Beispiele zu haben
    • confidence_threshold senken, um unsichere Vorhersagen abzulehnen
  5. Auswahlstrategien nutzen:

    • low_confidence: Am besten zur Identifizierung problematischer Kategorien
    • random: Am besten für unvoreingenommene Genauigkeitsschätzungen
    • mixed: Ausgewogener Ansatz

Fehlerbehebung

LLM beschriftet nicht

  1. Prüfen, ob ai_support korrekt konfiguriert ist
  2. Sicherstellen, dass ausreichend hochkonfidente Beispiele vorhanden sind
  3. Prüfen, ob die Beschriftung aufgrund von Grenzen oder niedriger Genauigkeit pausiert ist

Niedrige Genauigkeit

  1. min_agreement_threshold für sauberere Beispiele erhöhen
  2. Weitere Annotationsrichtlinien/Anweisungen hinzufügen
  3. Verwendete Beispiele überprüfen (/admin/api/icl/examples)

Verifikationsaufgaben erscheinen nicht

  1. Sicherstellen, dass verification.enabled true ist
  2. Prüfen, ob mix_with_regular_assignments true ist
  3. Sicherstellen, dass ausstehende Verifikationen in der Warteschlange vorhanden sind

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation.