Skip to content

Ordenamiento por Diversidad

Diversificación de elementos basada en embeddings para maximizar la variedad en la anotación.

Ordenamiento por Diversidad

El ordenamiento por diversidad utiliza embeddings de sentence-transformers para agrupar elementos similares, luego muestrea elementos en forma round-robin de diferentes clusters. Esto asegura que los anotadores vean contenido diverso en lugar de elementos similares en secuencia.

Beneficios

  • Reducir la fatiga del anotador por contenido repetitivo
  • Mejorar la calidad de la anotación a través de contexto variado
  • Cobertura más rápida del espacio completo de temas

Inicio Rápido

yaml
assignment_strategy: diversity_clustering
 
diversity_ordering:
  enabled: true
  prefill_count: 100

Cómo Funciona

  1. Inicio: Los primeros N elementos se procesan con embeddings usando sentence-transformers y se agrupan con k-means
  2. Asignación: Los elementos se muestrean en round-robin de los clusters, asegurando variedad
  3. Anotación: Los nuevos elementos se procesan con embeddings de forma asíncrona a medida que se anotan
  4. Re-agrupamiento: Cuando un usuario ha muestreado de todos los clusters, el sistema reagrupa

Configuración

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: true

Referencia de Configuración

OpciónTipoPredeterminadoDescripción
enabledbooleanfalseHabilitar el ordenamiento por diversidad
model_namestring"all-MiniLM-L6-v2"Modelo de sentence-transformers
num_clustersinteger10Número de clusters (cuando auto_clusters=false)
items_per_clusterinteger20Tamaño objetivo del cluster (cuando auto_clusters=true)
auto_clustersbooleantrueCalcular automáticamente la cantidad de clusters
prefill_countinteger100Elementos para procesar con embeddings al inicio
batch_sizeinteger32Tamaño de lote para el cálculo de embeddings
recluster_thresholdfloat1.0Fracción de clusters a muestrear antes de reagrupar
preserve_visitedbooleantrueMantener los elementos visitados/omitidos en su lugar
trigger_ai_prefetchbooleantrueActivar caché de IA después de reordenar

Requisitos

bash
pip install sentence-transformers scikit-learn

Estas son dependencias opcionales. Sin ellas, la funcionalidad se deshabilitará con una advertencia.

Rendimiento

  • Inicio: ~10 segundos para 100 elementos, ~30 segundos para 500 elementos (primera ejecución; se almacena en caché después)
  • Memoria: ~1.5 KB por elemento (all-MiniLM-L6-v2), ~15 MB para 10,000 elementos
  • Caché: Los embeddings se persisten en disco en .diversity_cache/

Interacción con Otras Funcionalidades

  • Soporte de IA: Cuando trigger_ai_prefetch: true, las sugerencias de IA se precargan automáticamente para los elementos reordenados
  • Aprendizaje activo: Se puede combinar comenzando con agrupamiento por diversidad para cobertura inicial, luego cambiando a aprendizaje activo
  • Preservación de orden: Cuando preserve_visited: true, los elementos vistos previamente mantienen su posición

Ejemplo Completo

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: Health

Lecturas Adicionales

Para detalles de implementación, consulta la documentación fuente.