Active Learning: Annota in Modo Più Intelligente, Non Più Faticoso
Come usare l'uncertainty sampling per prioritizzare le annotazioni e ridurre il lavoro totale di etichettatura fino al 50%.
Active Learning: Annota in Modo Più Intelligente, Non Più Faticoso
L'active learning seleziona in modo intelligente quali elementi annotare successivamente, concentrando lo sforzo umano dove conta di più. Questa guida mostra come ridurre il lavoro di annotazione fino al 50% mantenendo la qualità del modello.
Cos'è l'Active Learning?
Invece di campionare casualmente i dati da annotare, l'active learning:
- Addestra un modello sulle annotazioni correnti
- Identifica gli elementi in cui il modello è incerto
- Prioritizza quegli elementi per l'annotazione umana
- Si ripete, migliorando continuamente l'efficienza
Perché Usare l'Active Learning?
- Riduci il costo dell'annotazione: Etichetta meno elementi per la stessa qualità del modello
- Iterazione più veloce: Ottieni modelli utilizzabili prima
- Concentra le competenze: Attenzione umana sui casi difficili
- Migliore copertura: Assicura che i casi limite siano rappresentati
Configurazione di Base dell'Active Learning
annotation_task_name: "Active Learning Classification"
data_files:
- "data/unlabeled_pool.json"
# Configurazione active learning
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
# Impostazioni di campionamento
max_instances_to_reorder: 1000 # Numero di istanze da riordinare per incertezza
random_sample_percent: 0.1 # 10% di campionamento casuale per mantenere la diversità
annotation_schemes:
- annotation_type: radio
name: category
labels: [Positive, Negative, Neutral]Come Funziona l'Uncertainty Sampling
L'active learning di Potato usa l'uncertainty sampling per prioritizzare gli elementi in cui il classificatore è meno sicuro. Il classificatore prevede le etichette per le istanze non etichettate, e quelle con i punteggi di confidenza più bassi vengono presentate prima per l'annotazione.
Il campo classifier_name specifica qualsiasi classificatore compatibile con scikit-learn usando il suo percorso completo del modulo:
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"Altre opzioni di classificatore includono:
sklearn.ensemble.RandomForestClassifiersklearn.svm.SVC(conprobability=True)sklearn.naive_bayes.MultinomialNB
Configurazione Completa
annotation_task_name: "Active Learning for Sentiment"
data_files:
- "data/reviews.json"
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
# Impostazioni di campionamento
max_instances_to_reorder: 2000 # Riordina le prime N per incertezza
random_sample_percent: 0.1 # 10% casuale per mantenere la diversità
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "Classify the sentiment"
labels:
- name: Positive
key_value: "1"
- name: Negative
key_value: "2"
- name: Neutral
key_value: "3"
required: true
annotation_guidelines:
text: |
## Sentiment Classification
Items are prioritized by model uncertainty.
You may see more difficult or ambiguous cases.
Focus on accuracy over speed.Monitoraggio del Progresso
Traccia il progresso dell'annotazione attraverso il logging integrato di Potato. Il sistema registra quali istanze sono state selezionate e i loro punteggi di incertezza, consentendoti di monitorare il processo di active learning.
Buone Pratiche
Cold Start
Inizia con un campionamento casuale diversificato impostando un random_sample_percent più alto:
active_learning:
enabled: true
classifier_name: "sklearn.linear_model.LogisticRegression"
random_sample_percent: 0.2 # 20% casuale per la diversità inizialeControllo dell'Ambito di Riordinamento
Usa max_instances_to_reorder per controllare quante istanze vengono classificate per incertezza. Un valore più grande fornisce una selezione migliore ma richiede più calcolo:
active_learning:
max_instances_to_reorder: 5000 # Classifica le prime 5000 per incertezzaMantenere la Diversità
Il parametro random_sample_percent assicura che alcune istanze campionate casualmente siano incluse, evitando che il modello veda solo casi limite incerti:
active_learning:
random_sample_percent: 0.1 # 10% di campionamento casualeConsigli per il Successo
- Inizia con diversità: Il campione iniziale casuale copre i casi limite
- Monitora l'accuratezza: Traccia le prestazioni del modello nel tempo
- Non ottimizzare eccessivamente: Un po' di campionamento casuale mantiene la copertura
- Gestisci l'affaticamento degli annotatori: Gli elementi difficili sono stancanti
- Salva i checkpoint del modello: Abilita il rollback se necessario
Prossimi Passi
- Aggiungi suggerimenti AI per velocizzare gli elementi incerti
- Configura il quality control per i casi difficili
- Scopri il crowdsourcing con l'active learning
Documentazione completa sull'active learning su /docs/features/active-learning.