Ordonnancement par diversité
Réordonnez les instances d'annotation dans Potato avec un score de diversité fondé sur les plongements, pour couvrir tout le jeu de données et limiter la redondance dans les grands corpus non étiquetés.
L'ordonnancement par diversité s'appuie sur des plongements sentence-transformer pour regrouper les éléments proches, puis tire les éléments à tour de rôle dans des grappes différentes. Les annotateurs voient ainsi des contenus variés plutôt qu'une suite d'éléments semblables.
Intérêt
- Moins de fatigue chez les annotateurs, qui échappent aux contenus répétitifs
- Meilleure qualité d'annotation grâce à la variété des contextes
- Couverture plus rapide de l'ensemble de l'espace thématique
Démarrage rapide
yaml
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100Fonctionnement
- Démarrage : les N premiers éléments sont plongés avec sentence-transformers puis regroupés par k-moyennes
- Attribution : les éléments sont tirés à tour de rôle dans les différentes grappes
- Annotation : les nouveaux éléments sont plongés de façon asynchrone au fur et à mesure qu'ils sont annotés
- Regroupement : quand un utilisateur a vu au moins un élément de chaque grappe, le système reconstruit les grappes
Configuration
yaml
diversity_ordering:
enabled: true
# Sentence-transformer model
model_name: "all-MiniLM-L6-v2"
# Clustering parameters
num_clusters: 10
items_per_cluster: 20
auto_clusters: true # Auto-calculate based on data size
# Prefill on startup
prefill_count: 100
batch_size: 32
# Re-clustering behavior
recluster_threshold: 1.0 # Recluster when all clusters sampled
# Order preservation
preserve_visited: true
# AI integration
trigger_ai_prefetch: trueRéférence de configuration
| Option | Type | Défaut | Description |
|---|---|---|---|
enabled | booléen | false | Active l'ordonnancement par diversité |
model_name | chaîne | "all-MiniLM-L6-v2" | Modèle sentence-transformers |
num_clusters | entier | 10 | Nombre de grappes (si auto_clusters=false) |
items_per_cluster | entier | 20 | Taille de grappe visée (si auto_clusters=true) |
auto_clusters | booléen | true | Calcule automatiquement le nombre de grappes |
prefill_count | entier | 100 | Éléments à plonger au démarrage |
batch_size | entier | 32 | Taille de lot pour le calcul des plongements |
recluster_threshold | flottant | 1.0 | Fraction des grappes à échantillonner avant regroupement |
preserve_visited | booléen | true | Laisse en place les éléments déjà vus ou passés |
trigger_ai_prefetch | booléen | true | Déclenche le cache IA après réordonnancement |
Prérequis
bash
pip install sentence-transformers scikit-learnCe sont des dépendances optionnelles. À défaut, la fonctionnalité est désactivée avec un avertissement.
Performances
- Démarrage : environ 10 secondes pour 100 éléments, environ 30 secondes pour 500 éléments (au premier lancement ; ensuite en cache)
- Mémoire : environ 1,5 Ko par élément (all-MiniLM-L6-v2), environ 15 Mo pour 10 000 éléments
- Cache : les plongements sont écrits sur disque dans
.diversity_cache/
Articulation avec les autres fonctionnalités
- Support IA : avec
trigger_ai_prefetch: true, les indices IA des éléments réordonnés sont préchargés automatiquement - Apprentissage actif : les deux se combinent en commençant par le regroupement par diversité pour la couverture initiale, puis en basculant sur l'apprentissage actif
- Conservation de l'ordre : avec
preserve_visited: true, les éléments déjà vus gardent leur position
Exemple complet
yaml
annotation_task_name: "Diversity Ordering Test"
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
model_name: "all-MiniLM-L6-v2"
num_clusters: 5
auto_clusters: false
prefill_count: 100
batch_size: 16
recluster_threshold: 1.0
preserve_visited: true
annotation_schemes:
- annotation_type: radio
name: topic
description: "What is the main topic of this text?"
labels:
- name: Sports
- name: Technology
- name: Food
- name: Travel
- name: HealthPour aller plus loin
- Support IA - Suggestions d'étiquettes par l'IA
- Apprentissage actif - Priorisation des instances par apprentissage automatique
- Surlignage des options - Guidage des options assisté par IA
Pour les détails d'implémentation, consultez la documentation source.