Coleta e Rotulagem de Dados
Visão geral
A coleta e rotulagem de dados (data collection & labeling) é o processo de adquirir exemplos brutos (texto, imagens, áudio, eventos, leituras de sensores, logs etc.) e anexar alvos (targets) (rótulos (labels)) dos quais um sistema de aprendizado de máquina (machine learning) pode aprender. Bons modelos raramente são limitados apenas pela arquitetura (architecture); eles são limitados por saber se o conjunto de dados (dataset):
- Representa o mundo real onde o modelo será usado
- Codifica a definição da tarefa (task definition) correta (o que deve ser previsto e sob quais pressupostos)
- Tem rótulos confiáveis com incerteza conhecida
- Minimiza vieses prejudiciais e cumpre restrições de privacidade, segurança e governança
Este artigo foca em como coletar e rotular dados controlando qualidade e viés, conectando teoria (amostragem, medição, ruído) e prática (pipelines (pipelines), operações de anotação (annotation operations), garantia de qualidade (QA)).
Por que a coleta e rotulagem de dados é difícil
Mesmo tarefas “simples” de aprendizado supervisionado (supervised learning) envolvem várias fontes de erro e viés:
- Erro de amostragem (sampling error): seu conjunto de dados é uma amostra finita de uma população maior.
- Viés de seleção (selection bias): o processo de amostragem não é representativo (por exemplo, coletar apenas de usuários avançados).
- Erro de medição (measurement error): as características são observações imperfeitas (por exemplo, sensores derivam; erros de OCR (OCR)).
- Ruído de rótulos (label noise): anotadores discordam, cometem erros, ou a tarefa é ambígua (veja Ruído de Rótulos).
- Descompasso de construto (construct mismatch): o rótulo não representa de fato o conceito com o qual você se importa (por exemplo, usar registros de prisões como proxy de crime).
Na prática, o trabalho com dados é sobre controlar esses modos de falha e documentar a incerteza restante.
Da declaração do problema à especificação de dados
Antes de coletar qualquer coisa, escreva uma especificação de dados (data specification) que responda:
- População-alvo (target population): a quem/o quê o modelo se aplica?
- Unidade de análise (unit of analysis): o que é um exemplo? (Uma sessão de usuário? Um documento? Um frame? Um paciente?)
- Definição do rótulo (label definition): o que deve ser previsto? Em qual contexto?
- Fronteira de decisão (decision boundary): o que conta como positivo/negativo? E os casos limítrofes?
- Restrições (constraints): privacidade, consentimento, retenção, limitações legais (veja Privacidade).
- Plano de avaliação (evaluation plan): quais métricas importam? Quais recortes (slices) (subpopulações) devem ser monitorados?
- Cobertura de dados (data coverage): quais ambientes, localidades, idiomas, dispositivos, estações do ano, demografias etc.?
Essa especificação se torna a espinha dorsal para Diretrizes de Anotação e para a documentação do conjunto de dados (veja Documentação de Conjuntos de Dados (Datasheets)).
Exemplo: classificação de intenção em suporte ao cliente
- Unidade: uma mensagem de ticket de suporte (mais o contexto da conversa)
- Rótulos:
billing_issue,cancel_subscription,technical_bug,account_access,other - Casos de borda: tickets com múltiplas intenções, sarcasmo, e-mails encaminhados
- Recortes obrigatórios: idioma (EN/ES), usuários premium vs gratuitos, mobile vs web
Uma falha comum é pular a política para casos de borda; então os anotadores inventam regras inconsistentes, criando ruído de rótulos sistemático.
Fontes de dados e estratégias de coleta
Fontes comuns
- Dados de produto próprios (first-party): logs do app, trilhas de clique (clickstreams), tickets de suporte
- Prós: relevantes e escaláveis
- Contras: podem refletir viés histórico; restrições de privacidade
- Sensores e instrumentação: câmeras, IoT, dispositivos médicos
- Prós: alto volume
- Contras: deriva de calibração; mudança de domínio (domain shift) entre dispositivos
- Corpora gerados por humanos: documentos, transcrições
- Conjuntos de dados de terceiros: conjuntos abertos, fornecedores de dados
- Prós: início rápido
- Contras: procedência pouco clara, licenciamento, vieses ocultos
- Coleta na web: scraping ou APIs
- Exige revisão cuidadosa de ética/jurídico (veja Dados da Web e Scraping)
Planos de amostragem (controlando representatividade)
Um plano de amostragem define como você escolhe exemplos.
- Amostragem aleatória simples (simple random sampling): não enviesada, mas pode deixar passar casos raros.
- Amostragem estratificada (stratified sampling): garante cobertura entre recortes conhecidos (região, dispositivo, idioma).
- Amostragem por conglomerados (cluster sampling): amostra grupos (lojas, hospitais) e depois itens — barata, mas com dados correlacionados.
- Amostragem por importância / superamostragem (importance sampling / oversampling): coleta intencionalmente mais casos raros, porém importantes, e então ajusta a avaliação para corresponder à prevalência do mundo real.
Se sua métrica a jusante for sensível a eventos raros (fraude, incidentes de segurança), a superamostragem de positivos costuma ser necessária para aprender — mas você deve acompanhar as taxas-base (base rates) para evitar avaliações enganosas.
Exemplo prático: eventos de detecção de fraude
- A prevalência real pode ser 0,1%.
- Os dados de treinamento podem superamostrar suspeitas de fraude para 10%.
- Você deve:
- Manter um conjunto de avaliação separado que corresponda à prevalência real
- Armazenar pesos de amostragem e regras de seleção para reprodutibilidade (veja Versionamento de Dados)
Design de rótulos: escolhendo a supervisão correta
Rótulos não são apenas “verdade” — eles são uma medição de um construto.
Tipos de rótulos
- Rótulos de classe (class labels): atribuição de categoria (spam/ham, intenção, diagnóstico).
- Rótulos ordinais (ordinal labels): avaliações ordenadas (gravidade 1–5).
- Alvos contínuos (continuous targets): regressão (tempo de entrega).
- Rótulos estruturados (structured labels): sequências (tags de NER (NER tags)), caixas delimitadoras (bounding boxes), máscaras de segmentação (segmentation masks).
- Rótulos pareados ou de ranking (pairwise or ranking labels): “A é melhor que B” (comum em aprendizado por preferência (preference learning)).
- Multi-rótulo (multi-label): múltiplas categorias podem se aplicar.
Escolha o rótulo mais simples que sustente o requisito do produto. Taxonomias de rótulos complexas frequentemente reduzem a consistência e aumentam o custo.
Políticas de ambiguidade
A maioria das tarefas reais precisa de políticas explícitas para:
- Contexto ausente (“não é possível determinar” / “desconhecido” / “precisa de mais informações”)
- Casos com múltiplas intenções ou múltiplos objetos
- Dependência temporal (rotular com base no que era conhecido na época)
- Inferência proibida (não rotular atributos sensíveis a partir da aparência)
Essas políticas são centrais para Diretrizes de Anotação e para o controle de viés.
Métodos e fluxos de trabalho de anotação
Quem rotula?
- Especialistas de domínio: clínicos, advogados
- Alta qualidade, caro, escala limitada
- Anotadores internos treinados: custo/qualidade equilibrados, mais controle
- Crowdsourcing (crowdsourcing): escalável, exige QA forte e design cuidadoso da tarefa
- Rotulagem assistida por modelo (model-assisted labeling): pré-rotular com um modelo, humanos corrigem
- Rotulagem assistida por modelos de linguagem grandes (LLM) (LLM-assisted labeling): pode acelerar, mas exige auditoria de viés sistemático e vazamento
Um padrão comum é híbrido: crowdsourcing para casos fáceis + especialistas para casos de borda e arbitragem.
Princípios de design de tarefas de anotação
- Reduza a carga cognitiva (instruções curtas, mínima troca de contexto)
- Forneça exemplos claros positivos/negativos, especialmente para casos limítrofes
- Use interfaces consistentes (atalhos, zoom, controles de reprodução)
- Torne “desconhecido/incerto” fácil de escolher (caso contrário, anotadores chutam)
- Capture metadados: ID do anotador, tempo gasto, confiança, versão da ferramenta
Formatos de dados
Mantenha dados rotulados em formatos amigáveis a máquinas e versionáveis (por exemplo, JSONL). Exemplo para classificação de texto:
{"id":"t_001","text":"I was charged twice this month.","label":"billing_issue","source":"support","lang":"en"}
{"id":"t_002","text":"Cannot reset password; link expired.","label":"account_access","source":"support","lang":"en"}
Para detecção de objetos, armazene referências de imagem e caixas delimitadoras, além de versionamento de esquema (schema versioning):
{
"image_id": "img_1042",
"uri": "s3://bucket/images/img_1042.jpg",
"objects": [
{"class": "stop_sign", "bbox": [120, 80, 210, 190]},
{"class": "pedestrian", "bbox": [300, 100, 340, 220]}
],
"schema_version": "2.1"
}
Controle de qualidade: medindo e melhorando a confiabilidade dos rótulos
Qualidade não é um número único. Você quer detectar:
- Erros aleatórios
- Interpretações sistematicamente equivocadas
- Definições de tarefa ambíguas
- Fraude ou rotulagem de baixo esforço
Concordância entre anotadores (inter-annotator agreement, IAA)
Quando múltiplos anotadores rotulam os mesmos itens, a discordância pode revelar ambiguidade ou diretrizes pouco claras. Medidas comuns:
- Kappa de Cohen (Cohen’s kappa) (dois anotadores)
- Kappa de Fleiss (Fleiss’ kappa) (múltiplos anotadores)
- Alfa de Krippendorff (Krippendorff’s alpha) (lida com dados ausentes, vários tipos de rótulo)
Veja Concordância entre Anotadores para um tratamento mais profundo.
Exemplo mínimo (Python):
from sklearn.metrics import cohen_kappa_score
ann_a = ["spam", "ham", "spam", "spam", "ham"]
ann_b = ["spam", "ham", "ham", "spam", "ham"]
kappa = cohen_kappa_score(ann_a, ann_b)
print("Cohen's kappa:", kappa)
A interpretação depende da dificuldade da tarefa. Baixa concordância nem sempre é “ruim” — pode indicar que o conceito é inerentemente subjetivo. Nesse caso, você pode precisar:
- Redefinir o rótulo
- Coletar mais contexto
- Modelar incerteza (por exemplo, manter distribuições de rótulos)
Itens gold, auditorias e arbitragem
Técnicas práticas de QA:
- Itens gold (benchmark) (gold items): respostas conhecidas misturadas na fila para estimar a acurácia do anotador.
- Re-rotulagem às cegas (blind re-labeling): uma amostra é reanotada sem mostrar rótulos anteriores.
- Arbitragem (adjudication): especialistas resolvem discordâncias e atualizam diretrizes.
- Checagens pontuais (spot checks): revisão direcionada de certas classes ou recortes.
Um fluxo de trabalho robusto frequentemente usa redundância:
- 2–5 rótulos por item
- Agregar por voto da maioria ou voto ponderado (maior peso para anotadores confiáveis)
- Escalar discordâncias para arbitragem
Monitorando o comportamento dos anotadores
Sinais operacionais podem detectar rotulagem de baixa qualidade:
- Tempo por tarefa (rápido demais pode indicar chute)
- Alta taxa de “sempre escolhe a classe X”
- Rótulos inconsistentes em itens quase duplicados
- Deriva na distribuição de um anotador ao longo do tempo
Tenha cuidado: velocidade por si só não é prova de fraude — anotadores experientes podem ser rápidos.
Gerenciando ruído de rótulos
Mesmo após QA, ruído permanece. Você pode mitigá-lo com:
- Robustez no treinamento (training-time robustness): suavização de rótulos (label smoothing), funções de perda robustas a ruído (noise-robust losses), parada antecipada (early stopping)
- Limpeza de dados (data cleaning): remover ou re-rotular itens de alta perda (com cautela; pode amplificar viés)
- Rótulos com consciência de incerteza (uncertainty-aware labels): armazenar rótulos suaves (soft labels) (por exemplo, 70% classe A, 30% classe B)
- Re-rotulagem ativa (active re-labeling): focar em itens ambíguos (veja Ruído de Rótulos)
Viés: de onde vem e como controlá-lo
Viés em conjuntos de dados pode levar a comportamento injusto ou inseguro do modelo. Ele frequentemente entra tanto pela coleta quanto pela rotulagem.
Tipos comuns de viés em conjuntos de dados
- Viés de representação (representation bias): alguns grupos ou condições são subamostrados (por exemplo, sotaques, tons de pele, dialetos).
- Viés histórico (historical bias): o mundo refletido nos dados já é desigual (por exemplo, resultados de contratação).
- Viés de medição (measurement bias): qualidade de medição diferente entre grupos (por exemplo, imagens de menor qualidade em certas regiões).
- Viés de anotação (annotation bias): pressupostos culturais dos anotadores afetam os rótulos.
- Viés de agregação (aggregation bias): um único modelo para grupos heterogêneos quando modelos ou características separadas são necessários.
Controles práticos durante a coleta
- Defina cobertura necessária: liste explicitamente recortes que devem estar representados.
- Estratifique a amostragem: garanta contagens mínimas para recortes-chave, não apenas volume total.
- Colete contraexemplos: dados que quebram correlações espúrias (por exemplo, “médico” não ser sempre homem).
- Capture metadados de contexto: tipo de dispositivo, bucket de localização, idioma, condições de iluminação — crítico para diagnosticar viés.
Controles práticos durante a rotulagem
- Diversidade de anotadores: diferentes perfis reduzem pontos cegos sistemáticos (não é garantia, mas ajuda).
- Diretrizes conscientes de viés (bias-aware guidelines): proíba rotular atributos sensíveis a menos que seja necessário; defina quais evidências são permitidas.
- Use “desconhecido” em vez de chutes forçados: reduz inferências sensíveis alucinadas.
- Audite por recorte (audit by slice): compare taxas de erro, taxas de discordância e distribuições de rótulos entre grupos.
Exemplo: rotulagem de toxicidade em redes sociais
Se anotadores rotulam gírias dialetais como “tóxicas” com mais frequência do que o inglês padrão, o modelo sinalizará de forma desproporcional certas comunidades. Mitigações incluem:
- Diretrizes e exemplos sensíveis a dialeto
- Revisão especializada para casos disputados
- Avaliação baseada em recortes (taxas de falso positivo por proxy de dialeto)
- Preferência por rotular comportamento (assédio/ameaças) em vez de “toxicidade” vaga quando possível
Aprendizado ativo e melhoria iterativa do conjunto de dados
A construção de conjuntos de dados geralmente é iterativa:
- Treine um modelo de base
- Encontre modos de falha (recortes com alto erro, casos de borda raros)
- Colete/rotule mais dados direcionados a essas falhas
- Repita
Essa é a ideia central de Ciclos de Aprendizado Ativo: escolher o que rotular a seguir com base na incerteza do modelo ou na utilidade esperada.
Esboço simples de amostragem por incerteza (uncertainty sampling):
# Pseudocode: select N samples with highest predictive entropy
import numpy as np
def entropy(probs):
probs = np.clip(probs, 1e-9, 1.0)
return -(probs * np.log(probs)).sum(axis=1)
# probs_unlabeled: shape [M, K] from a classifier on unlabeled pool
scores = entropy(probs_unlabeled)
query_indices = np.argsort(scores)[-N:] # most uncertain
Na prática, também imponha diversidade e cotas por recorte para não super-focar em uma região confusa do espaço.
Ferramentas, pipelines e reprodutibilidade
Rotulagem de alta qualidade exige mais do que uma UI. Trate isso como um sistema de engenharia.
Componentes de pipeline
- Ingestão (ingestion): puxar dados brutos das fontes (logs, storage, APIs)
- Filtragem (filtering): remover duplicatas, arquivos corrompidos ou conteúdo proibido por política
- Amostragem (sampling): escolher itens para anotação; registrar regras e pesos de seleção
- Exportação/importação de anotação (annotation export/import): IDs estáveis, versionamento de esquema
- Logs de QA e auditoria (QA and audit logs): itens gold, resultados de arbitragem
- Builds do conjunto de dados (dataset builds): produzir splits de treino/validação/teste com critérios documentados
Isso se conecta fortemente a Pipelines de Dados (ETL/ELT para ML) e Versionamento de Dados.
Prevenindo vazamento de dados
Vazamento de dados (data leakage) pode acontecer quando:
- O mesmo usuário/sessão aparece tanto em treino quanto em teste
- Quase duplicatas atravessam splits
- Rótulos codificam indiretamente a resposta (por exemplo, campo “refund issued” usado para prever “refund requested”)
Mitigações:
- Fazer split por entidade estável (usuário, dispositivo, paciente)
- Deduplicar com hashing de similaridade (similarity hashing) (texto) ou hashes perceptuais (perceptual hashes) (imagens)
- Congelar conjuntos de avaliação e versioná-los
Documentação e governança
Documente:
- Procedência e base de consentimento
- Definições de rótulos e ambiguidades conhecidas
- Janela temporal de coleta e ambientes
- Limitações conhecidas e riscos de viés
- Usos pretendidos e usos proibidos
Use Documentação de Conjuntos de Dados (Datasheets) e alinhe com a Governança de Dados da organização.
Restrições de privacidade, segurança e ética
Rotulagem frequentemente expõe conteúdo sensível a humanos. Práticas-chave:
- Minimização de dados (data minimization): colete apenas o que você precisa.
- Tratamento de PII (PII handling): redigir, tokenizar ou mascarar identificadores; considere redação em tempo real em ferramentas de rotulagem (veja Privacidade).
- Controle de acesso (access control): menor privilégio (least privilege), logs de auditoria, revisões de segurança de fornecedores (vendor security reviews) (veja Segurança de Dados).
- Bem-estar dos anotadores (annotator wellbeing): para conteúdo nocivo (violência, abuso), forneça avisos, opt-out, rodízio e suporte.
- Limites de retenção (retention limits): armazene dados brutos apenas pelo tempo necessário; defina fluxos de exclusão.
Casos especiais: supervisão fraca e dados sintéticos
Às vezes, rótulos manuais são caros demais.
Supervisão fraca
Você pode gerar rótulos ruidosos usando heurísticas:
- Regras (regex, listas de palavras-chave)
- Sistemas existentes (classificadores legados)
- Supervisão distante (distant supervision) (por exemplo, usando uma base de conhecimento)
- Múltiplas funções de rotulagem (labeling functions) combinadas probabilisticamente
Supervisão fraca pode acelerar o bootstrapping (bootstrapping), mas exige validação cuidadosa porque pode codificar viés sistemático.
Dados sintéticos
Exemplos sintéticos podem ajudar com cenários raros e privacidade, mas também podem criar distribuições irreais ou “ensinar” artefatos ao modelo. Quando usados, meça a utilidade e verifique riscos de vazamento ou memorização (veja Dados Sintéticos).
Exemplo prático de ponta a ponta: construindo um detector de defeitos em imagens
Cenário: detectar defeitos de fabricação em produtos.
Defina a tarefa
- Unidade: uma imagem do produto vinda da câmera de inspeção
- Rótulos:
no_defect,scratch,dent,misalignment,other - “Desconhecido” permitido se a imagem estiver borrada ou obstruída
Colete dados
- Estratifique por fábrica, modelo de câmera, turno, variante do produto
- Garanta cobertura entre condições de iluminação e variações sazonais
Escreva diretrizes
- Defina cada classe de defeito com exemplos visuais
- Especifique evidência visível mínima para cada rótulo
- Defina como rotular marcas cosméticas limítrofes
Fluxo de trabalho de rotulagem
- Dois anotadores por imagem
- Discordâncias vão para arbitragem por especialista
- Conjunto gold de 200 imagens para QA contínuo
Checagens de viés/cobertura
- Compare taxas de defeito e taxas de discordância por fábrica/câmera
- Se uma câmera tiver “desconhecido” mais alto, investigue a qualidade de medição (não apenas a rotulagem)
Itere com aprendizado ativo
- Treine o modelo de base
- Amostre imagens incertas e recortes raros para rotulagem adicional
- Acompanhe versões do conjunto de dados e melhorias ao longo do tempo
Armadilhas comuns e como evitá-las
- “Mais dados” sem um plano de amostragem: leva à sobre-representação de casos fáceis/comuns.
- Taxonomia de rótulos excessivamente complexa: reduz a concordância; comece mais simples e expanda apenas se necessário.
- Forçar um rótulo quando há incerteza: aumenta ruído e viés; inclua “desconhecido/incerto”.
- Ignorar QA baseada em recortes: a acurácia geral pode esconder falhas graves em subgrupos.
- Conjuntos de dados sem versionamento: impossível reproduzir resultados ou entender regressões (veja Versionamento de Dados).
- Sem documentação: usuários futuros usam mal o conjunto de dados ou repetem erros passados (veja Documentação de Conjuntos de Dados (Datasheets)).
Resumo
A coleta e rotulagem de dados é a base do aprendizado supervisionado e um grande determinante do comportamento do modelo. Conjuntos de dados de alto desempenho e confiáveis vêm de:
- Definições claras de tarefa e diretrizes de rotulagem
- Planos de amostragem que garantem cobertura e controlam viés de seleção
- Confiabilidade de rótulos medida e monitorada (concordância, auditorias, arbitragem)
- Controles explícitos de viés tanto na coleta quanto na rotulagem
- Forte rigor operacional: pipelines, versionamento, documentação, privacidade/segurança
Para aprofundamentos nos subtópicos mais importantes, veja Diretrizes de Anotação, Concordância entre Anotadores, Ruído de Rótulos e Ciclos de Aprendizado Ativo.