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:
- Raccoglie Esempi ad Alta Confidenza: Identifica le istanze in cui gli annotatori concordano (es. accordo all'80%+)
- Etichetta con LLM: Usa gli esempi per fare prompting a un LLM per l'etichettatura delle istanze non etichettate
- Tiene Traccia della Confidenza: Registra i punteggi di confidenza dell'LLM per ogni previsione
- Verifica l'Accuratezza: Instrada un campione di istanze etichettate dall'LLM agli esseri umani per la verifica cieca
- 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:
# 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.2Strategie 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
GET /admin/api/icl/statusRestituisce lo stato complessivo del labeler ICL inclusi esempi per schema, previsioni effettuate, dimensione della coda di verifica e metriche di accuratezza.
Endpoint degli Esempi
GET /admin/api/icl/examples?schema=sentimentRestituisce gli esempi ad alta confidenza, opzionalmente filtrati per schema.
Endpoint di Accuratezza
GET /admin/api/icl/accuracy?schema=sentimentRestituisce le metriche di accuratezza basate sui risultati della verifica umana.
Endpoint di Trigger Manuale
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
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% inizialmente2. 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
curl http://localhost:8000/admin/api/icl/status4. Rivedi l'Accuratezza
curl http://localhost:8000/admin/api/icl/accuracy5. 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
-
Inizia in Piccolo: Inizia con limiti conservativi (
max_total_labels: 50) per valutare l'accuratezza prima di scalare -
Verifica Presto: Usa un
sample_ratepiù alto inizialmente (0.3-0.5) per ottenere stime di accuratezza affidabili -
Monitora Attivamente: Controlla regolarmente le metriche di accuratezza tramite l'Admin API
-
Regola le Soglie: Se l'accuratezza dell'LLM è bassa:
- Aumenta
min_agreement_thresholdper esempi più puliti - Aumenta
trigger_thresholdper più esempi prima dell'etichettatura - Abbassa
confidence_thresholdper rifiutare le previsioni incerte
- Aumenta
-
Usa le Strategie di Selezione:
low_confidence: Migliore per identificare le categorie problematicherandom: Migliore per stime di accuratezza non distortemixed: Approccio bilanciato
Risoluzione dei Problemi
LLM Non Etichetta
- Controlla se
ai_supportè correttamente configurato - Verifica che esistano abbastanza esempi ad alta confidenza
- Controlla se l'etichettatura è in pausa a causa di limiti o bassa accuratezza
Bassa Accuratezza
- Aumenta
min_agreement_thresholdper esempi più puliti - Aggiungi più linee guida/istruzioni di annotazione
- Rivedi gli esempi in uso (
/admin/api/icl/examples)
Compiti di Verifica Non Appaiono
- Verifica che
verification.enabledsia true - Controlla che
mix_with_regular_assignmentssia true - Verifica che ci siano verifiche in attesa nella coda
Ulteriori Letture
- Supporto AI - Configurazione generale degli endpoint AI
- Apprendimento Attivo - Funzionalità correlate assistite da AI
- Controllo della Qualità - Tracciamento dell'accuratezza
Per i dettagli di implementazione, consulta la documentazione sorgente.