Skip to content
यह पृष्ठ अभी आपकी भाषा में उपलब्ध नहीं है। अंग्रेज़ी संस्करण दिखाया जा रहा है।

Etichettatura ICL

Etichettatura assistita da AI con in-context learning e verifica umana per un'annotazione scalabile.

Etichettatura ICL Assistita da AI

La funzionalità di etichettatura ICL (In-Context Learning) di Potato abilita l'annotazione assistita da AI usando le annotazioni umane ad alta confidenza come esempi in-context per guidare un LLM nell'etichettatura dei dati rimanenti. Il sistema tiene traccia della confidenza dell'LLM e instrada le previsioni agli esseri umani per la verifica.

Panoramica

Il sistema di etichettatura ICL:

  1. Raccoglie Esempi ad Alta Confidenza: Identifica le istanze in cui gli annotatori concordano (es. accordo all'80%+)
  2. Etichetta con LLM: Usa gli esempi per fare prompting a un LLM per l'etichettatura delle istanze non etichettate
  3. Tiene Traccia della Confidenza: Registra i punteggi di confidenza dell'LLM per ogni previsione
  4. Verifica l'Accuratezza: Instrada un campione di istanze etichettate dall'LLM agli esseri umani per la verifica cieca
  5. Riporta le Metriche: Calcola e visualizza l'accuratezza dell'LLM in base ai risultati della verifica

Funzionalità

Raccolta Automatica degli Esempi

Il sistema identifica automaticamente gli esempi ad alta confidenza in cui più annotatori concordano:

  • Soglia di accordo configurabile (predefinito: 80%)
  • Requisito minimo di conteggio degli annotatori (predefinito: 2)
  • Aggiornamento automatico su intervallo configurabile
  • Pool di esempi per schema

Etichettatura LLM con Limiti

Per abilitare il miglioramento iterativo anziché l'etichettatura in blocco:

  • Massimo totale etichette: Limita il numero totale di previsioni LLM
  • Massimo rapporto non etichettato: Etichetta solo una percentuale dei dati rimanenti
  • Pausa per bassa accuratezza: Metti in pausa automaticamente se l'accuratezza scende sotto la soglia

Verifica Cieca

La verifica usa "etichettatura cieca" - gli annotatori vedono l'istanza come un compito normale senza conoscere la previsione dell'LLM:

  • Tasso di campionamento configurabile (predefinito: 20% delle etichette LLM)
  • Più strategie di selezione: low_confidence, random, mixed
  • Compiti di verifica mescolati naturalmente con le assegnazioni regolari

Configurazione

L'etichettatura ICL richiede che ai_support sia abilitato:

yaml
# Configurazione endpoint AI (richiesta)
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
 
# Configurazione etichettatura ICL
icl_labeling:
  enabled: true
 
  # Impostazioni di selezione degli esempi
  example_selection:
    min_agreement_threshold: 0.8      # 80% degli annotatori devono concordare
    min_annotators_per_instance: 2    # Annotazioni minime per consenso
    max_examples_per_schema: 10       # Esempi massimi per schema nel prompt
    refresh_interval_seconds: 300     # Frequenza di aggiornamento degli esempi
 
  # Impostazioni di etichettatura LLM
  llm_labeling:
    batch_size: 20
    trigger_threshold: 5              # Esempi minimi prima dell'inizio dell'etichettatura LLM
    confidence_threshold: 0.7         # Confidenza minima per accettare la previsione
    batch_interval_seconds: 600
    max_total_labels: 100             # Istanze massime da etichettare in totale
    max_unlabeled_ratio: 0.5          # Porzione massima di non etichettati da etichettare
    pause_on_low_accuracy: true
    min_accuracy_threshold: 0.7
 
  # Impostazioni di verifica umana
  verification:
    enabled: true
    sample_rate: 0.2                  # 20% delle etichette LLM verificate
    selection_strategy: "low_confidence"
    mix_with_regular_assignments: true
    assignment_mix_rate: 0.2

Strategie di Selezione

  • low_confidence: Dà priorità alla verifica delle previsioni meno sicure dell'LLM
  • random: Campionamento casuale da tutte le previsioni
  • mixed: 50% bassa confidenza + 50% casuale

Admin API

Endpoint di Stato

http
GET /admin/api/icl/status

Restituisce lo stato complessivo del labeler ICL inclusi esempi per schema, previsioni effettuate, dimensione della coda di verifica e metriche di accuratezza.

Endpoint degli Esempi

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

Restituisce gli esempi ad alta confidenza, opzionalmente filtrati per schema.

Endpoint di Accuratezza

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

Restituisce le metriche di accuratezza basate sui risultati della verifica umana.

Endpoint di Trigger Manuale

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

Attiva manualmente l'etichettatura in batch per uno schema specifico.

Flusso di Lavoro

1. Configura il Tuo Progetto

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  # Inizia in piccolo
  verification:
    enabled: true
    sample_rate: 0.3  # Verifica il 30% inizialmente

2. Raccogli Annotazioni Umane

Fai etichettare i dati agli annotatori normalmente. Man mano che raggiungono il consenso (accordo all'80%+), quelle istanze diventano disponibili come esempi.

3. Monitora il Progresso

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

4. Rivedi l'Accuratezza

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

5. Itera

In base all'accuratezza:

  • Se l'accuratezza è alta (>80%), aumenta max_total_labels
  • Se l'accuratezza è bassa, aggiungi più esempi umani prima di continuare

Best Practice

  1. Inizia in Piccolo: Inizia con limiti conservativi (max_total_labels: 50) per valutare l'accuratezza prima di scalare

  2. Verifica Presto: Usa un sample_rate più alto inizialmente (0.3-0.5) per ottenere stime di accuratezza affidabili

  3. Monitora Attivamente: Controlla regolarmente le metriche di accuratezza tramite l'Admin API

  4. Regola le Soglie: Se l'accuratezza dell'LLM è bassa:

    • Aumenta min_agreement_threshold per esempi più puliti
    • Aumenta trigger_threshold per più esempi prima dell'etichettatura
    • Abbassa confidence_threshold per rifiutare le previsioni incerte
  5. Usa le Strategie di Selezione:

    • low_confidence: Migliore per identificare le categorie problematiche
    • random: Migliore per stime di accuratezza non distorte
    • mixed: Approccio bilanciato

Risoluzione dei Problemi

LLM Non Etichetta

  1. Controlla se ai_support è correttamente configurato
  2. Verifica che esistano abbastanza esempi ad alta confidenza
  3. Controlla se l'etichettatura è in pausa a causa di limiti o bassa accuratezza

Bassa Accuratezza

  1. Aumenta min_agreement_threshold per esempi più puliti
  2. Aggiungi più linee guida/istruzioni di annotazione
  3. Rivedi gli esempi in uso (/admin/api/icl/examples)

Compiti di Verifica Non Appaiono

  1. Verifica che verification.enabled sia true
  2. Controlla che mix_with_regular_assignments sia true
  3. Verifica che ci siano verifiche in attesa nella coda

Ulteriori Letture

Per i dettagli di implementazione, consulta la documentazione sorgente.