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:

  1. População-alvo (target population): a quem/o quê o modelo se aplica?
  2. Unidade de análise (unit of analysis): o que é um exemplo? (Uma sessão de usuário? Um documento? Um frame? Um paciente?)
  3. Definição do rótulo (label definition): o que deve ser previsto? Em qual contexto?
  4. Fronteira de decisão (decision boundary): o que conta como positivo/negativo? E os casos limítrofes?
  5. Restrições (constraints): privacidade, consentimento, retenção, limitações legais (veja Privacidade).
  6. Plano de avaliação (evaluation plan): quais métricas importam? Quais recortes (slices) (subpopulações) devem ser monitorados?
  7. 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

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:

  1. Treine um modelo de base
  2. Encontre modos de falha (recortes com alto erro, casos de borda raros)
  3. Colete/rotule mais dados direcionados a essas falhas
  4. 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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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)
  6. 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.