Ordenação por Diversidade
Reordene instâncias de anotação no Potato usando pontuação de diversidade baseada em embeddings para maximizar a cobertura do conjunto de dados e reduzir a redundância em grandes corpora não rotulados.
A ordenação por diversidade usa embeddings de sentence-transformers para agrupar itens semelhantes e, em seguida, amostra itens em rodízio entre diferentes clusters. Isso garante que os anotadores vejam conteúdo variado em vez de itens parecidos em sequência.
Benefícios
- Reduzir a fadiga do anotador causada por conteúdo repetitivo
- Melhorar a qualidade da anotação por meio de contexto variado
- Cobertura mais rápida de todo o espaço de tópicos
Início Rápido
yaml
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100Como Funciona
- Inicialização: Os primeiros N itens são incorporados usando sentence-transformers e agrupados com k-means
- Atribuição: Os itens são amostrados em rodízio entre os clusters, garantindo variedade
- Anotação: Novos itens são incorporados de forma assíncrona à medida que são anotados
- Reagrupamento: Quando um usuário amostrou de todos os clusters, o sistema reagrupa
Configuração
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: trueReferência de Configuração
| Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
enabled | boolean | false | Habilita a ordenação por diversidade |
model_name | string | "all-MiniLM-L6-v2" | Modelo de sentence-transformers |
num_clusters | integer | 10 | Número de clusters (quando auto_clusters=false) |
items_per_cluster | integer | 20 | Tamanho-alvo do cluster (quando auto_clusters=true) |
auto_clusters | boolean | true | Calcula automaticamente a quantidade de clusters |
prefill_count | integer | 100 | Itens a incorporar na inicialização |
batch_size | integer | 32 | Tamanho do lote para o cálculo de embeddings |
recluster_threshold | float | 1.0 | Fração de clusters a amostrar antes de reagrupar |
preserve_visited | boolean | true | Mantém os itens visitados/pulados em seus lugares |
trigger_ai_prefetch | boolean | true | Aciona o cache de IA após a reordenação |
Requisitos
bash
pip install sentence-transformers scikit-learnEssas são dependências opcionais. Sem elas, o recurso será desabilitado com um aviso.
Desempenho
- Inicialização: ~10 segundos para 100 itens, ~30 segundos para 500 itens (primeira execução; em cache depois)
- Memória: ~1,5 KB por item (all-MiniLM-L6-v2), ~15 MB para 10.000 itens
- Cache: Embeddings persistidos em disco em
.diversity_cache/
Interação com Outros Recursos
- Suporte de IA: Quando
trigger_ai_prefetch: true, as dicas de IA são pré-buscadas automaticamente para os itens reordenados - Aprendizado Ativo: Pode ser combinado começando com o clustering por diversidade para a cobertura inicial e depois mudando para o aprendizado ativo
- Preservação de Ordem: Quando
preserve_visited: true, os itens vistos anteriormente mantêm sua posição
Exemplo 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: HealthLeitura Complementar
- Suporte de IA - Sugestões de rótulos por IA
- Aprendizado Ativo - Priorização de instâncias baseada em ML
- Destaque de Opções - Orientação de opções assistida por IA
Para detalhes de implementação, consulte a documentação de origem.