Active Learning
Unsicherheits-Sampling nutzen, um die Annotation auf wertvolle Beispiele zu priorisieren.
Active Learning
Active Learning hilft Ihnen, intelligenter zu annotieren, indem die informativsten Beispiele priorisiert werden. Anstatt zufällig zu annotieren, konzentrieren Sie sich auf Instanzen, bei denen das Modell am unsichersten ist.
Funktionsweise
Potatos Active Learning ordnet Annotationsinstanzen automatisch auf Basis von Vorhersagen maschinellen Lernens neu:
- Ersterfassung – Mindestanzahl an Annotationen sammeln
- Training – Classifier auf vorhandenen Annotationen trainieren
- Vorhersage – Unsicherheitswerte für noch nicht annotierte Instanzen ermitteln
- Neuordnung – Instanzen mit höchster Unsicherheit priorisieren
- Annotieren – Annotatoren beschriften die priorisierten Instanzen
- Neu trainieren – Modell periodisch mit neuen Annotationen aktualisieren
Konfiguration
Grundeinrichtung
active_learning:
enabled: true
schema_names:
- sentiment # Which annotation schemes to use
min_annotations_per_instance: 1
min_instances_for_training: 20
update_frequency: 50 # Retrain after every 50 annotations
max_instances_to_reorder: 1000Vollständige Konfiguration
active_learning:
enabled: true
# Which schemas to use for training
schema_names:
- sentiment
# Minimum requirements
min_annotations_per_instance: 1
min_instances_for_training: 20
# Retraining frequency
update_frequency: 50
# How many instances to reorder
max_instances_to_reorder: 1000
# Classifier configuration
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
# Feature extraction
vectorizer:
type: TfidfVectorizer
params:
max_features: 5000
ngram_range: [1, 2]
# Model persistence
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 5Unterstützte Classifier
| Classifier | Geeignet für | Geschwindigkeit |
|---|---|---|
LogisticRegression | Binäre/mehrklassige Klassifikation | Schnell |
RandomForestClassifier | Komplexe Muster | Mittel |
SVC | Kleine Datensätze | Langsam |
MultinomialNB | Textklassifikation | Sehr schnell |
Classifier-Beispiele
# Logistic Regression (recommended starting point)
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
# Random Forest
classifier:
type: RandomForestClassifier
params:
n_estimators: 100
max_depth: 10
# Support Vector Classifier
classifier:
type: SVC
params:
kernel: rbf
probability: true
# Naive Bayes
classifier:
type: MultinomialNB
params:
alpha: 1.0Vectorizer
| Vectorizer | Beschreibung |
|---|---|
TfidfVectorizer | TF-IDF-gewichtete Merkmale (empfohlen) |
CountVectorizer | Einfache Wortzählungen |
HashingVectorizer | Speichereffizient bei großem Vokabular |
# TF-IDF (recommended)
vectorizer:
type: TfidfVectorizer
params:
max_features: 5000
ngram_range: [1, 2]
stop_words: english
# Count Vectorizer
vectorizer:
type: CountVectorizer
params:
max_features: 3000
ngram_range: [1, 1]
# Hashing Vectorizer (for large datasets)
vectorizer:
type: HashingVectorizer
params:
n_features: 10000LLM-Integration
Active Learning kann optional LLMs für eine verbesserte Instanzauswahl nutzen:
active_learning:
enabled: true
schema_names:
- sentiment
# LLM-based selection
llm_integration:
enabled: true
endpoint_type: vllm
base_url: http://localhost:8000/v1
model: meta-llama/Llama-2-7b-chat-hf
# Mock mode for testing
mock_mode: falseMulti-Schema-Unterstützung
Active Learning kann mehrere Annotationsschemata durchlaufen:
annotation_schemes:
- annotation_type: radio
name: sentiment
labels: [Positive, Negative, Neutral]
- annotation_type: radio
name: topic
labels: [Politics, Sports, Tech, Entertainment]
active_learning:
enabled: true
schema_names:
- sentiment
- topic
# Schema-specific settings
schema_config:
sentiment:
min_instances_for_training: 30
update_frequency: 50
topic:
min_instances_for_training: 50
update_frequency: 100Modellpersistenz
Trainierte Modelle über Serverneustarts hinweg speichern und neu laden:
active_learning:
enabled: true
schema_names:
- sentiment
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 5 # Keep last 5 models
# Save to database instead of files
use_database: falseFortschritt überwachen
Das Admin-Dashboard verfolgt Active-Learning-Metriken:
- Aktuelle Modellgenauigkeit
- Anzahl der Trainingszyklen
- Unsicherheitsverteilung
- Verbleibende Instanzen
- Verlauf der Neutraining-Durchläufe
Zugriff über /admin mit Ihrem Admin-API-Key.
Bewährte Vorgehensweisen
1. Mit zufälligem Sampling beginnen
Erste Annotationen sammeln, bevor Active Learning aktiviert wird:
active_learning:
enabled: true
min_instances_for_training: 50 # Wait for 50 annotations2. Passende Classifier wählen
- LogisticRegression: Schnell, guter Standard für die meisten Aufgaben
- RandomForest: Besser für komplexe Muster, langsamer
- MultinomialNB: Sehr schnell, gut für einfache Textklassifikation
3. Klassenverteilung überwachen
Active Learning kann Klassenungleichgewichte erzeugen. Überwachen Sie dies im Admin-Dashboard und erwägen Sie stratifiziertes Sampling.
4. Vernünftige Neutrainings-Häufigkeit festlegen
Zu häufiges Neutraining verschwendet Ressourcen:
update_frequency: 100 # Retrain every 100 annotations5. Modellpersistenz aktivieren
Modelle speichern, um beim Neustart nicht von vorne beginnen zu müssen:
model_persistence:
enabled: true
save_dir: "models/"Beispiel: Vollständige Konfiguration
task_name: "Sentiment Analysis with Active Learning"
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?"
labels:
- Positive
- Negative
- Neutral
active_learning:
enabled: true
schema_names:
- sentiment
min_annotations_per_instance: 1
min_instances_for_training: 30
update_frequency: 50
max_instances_to_reorder: 500
classifier:
type: LogisticRegression
params:
C: 1.0
max_iter: 1000
vectorizer:
type: TfidfVectorizer
params:
max_features: 3000
ngram_range: [1, 2]
model_persistence:
enabled: true
save_dir: "models/"
max_saved_models: 3
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: trueKombination mit AI-Unterstützung
Active Learning und LLM-Unterstützung gemeinsam nutzen:
active_learning:
enabled: true
schema_names:
- sentiment
min_instances_for_training: 30
ai_support:
enabled: true
endpoint_type: openai
ai_config:
model: gpt-4
api_key: ${OPENAI_API_KEY}
features:
label_suggestions:
enabled: trueDiese Kombination priorisiert unsichere Instanzen und gibt gleichzeitig KI-Hinweise für Annotatoren.
Fehlerbehebung
Trainingsfehler
- Ausreichende Annotationen sicherstellen (
min_instances_for_training) - Klassenverteilung prüfen – Beispiele aller Klassen werden benötigt
- Datenformat auf Übereinstimmung mit dem Schema überprüfen
Langsame Leistung
max_instances_to_reorderreduzierenupdate_frequencyerhöhenHashingVectorizerfür große Vokabulare verwenden
Modell wird nicht aktualisiert
update_frequency-Einstellung prüfen- Sicherstellen, dass Annotationen gespeichert werden
- Admin-Dashboard auf Fehler überprüfen
Weiterführende Informationen
- AI-Unterstützung – LLM-gestützte Annotation
- Aufgabenzuweisung – Zuweisungsstrategien
- Admin-Dashboard – Active-Learning-Metriken überwachen
Implementierungsdetails finden Sie in der Quelldokumentation.