Configuração de Anotação para Moderação de Conteúdo
Configure o Potato para detecção de toxicidade, classificação de discurso de ódio e rotulagem de conteúdo sensível, levando o bem-estar dos anotadores em conta.
Rotular conteúdo tóxico não é como rotular resenhas de filmes. O trabalho desgasta as pessoas, as diretrizes são sempre um pouco vagas, e os casos que mais importam costumam ser justamente aqueles em que os anotadores discordam. Este guia mostra como montar uma tarefa de moderação de conteúdo no Potato que leva esses problemas a sério, começando pelas pessoas que fazem o trabalho.
Bem-estar dos anotadores
Ler conteúdo odioso e gráfico por horas tem efeitos reais sobre quem faz isso. Algumas configurações ajudam a manter o trabalho suportável.
Configuração de bem-estar
surveyflow:
on: true
order:
- pre_annotation
pre_annotation:
- "surveyflow/content_warning.jsonl"Desfoque de Conteúdo
max_annotations_per_user: 100Classificação de toxicidade
Toxicidade em múltiplos níveis
annotation_schemes:
- annotation_type: radio
name: toxicity_level
description: "Rate the toxicity level of this content"
labels:
- name: "Not toxic"
tooltip: "No harmful content"
- name: "Mildly toxic"
tooltip: "Rude or insensitive but not severe"
- name: "Moderately toxic"
tooltip: "Clearly offensive or harmful"
- name: "Severely toxic"
tooltip: "Extremely offensive, threatening, or dangerous"Categorias de Toxicidade
annotation_schemes:
- annotation_type: multiselect
name: toxicity_types
description: "Select all types of toxicity present"
labels:
- name: "Profanity or obscenity"
tooltip: "Swear words, vulgar language"
- name: "Insults"
tooltip: "Personal attacks, name-calling"
- name: "Threats"
tooltip: "Threats of violence or harm"
- name: "Hate speech"
tooltip: "Targeting protected groups"
- name: "Harassment"
tooltip: "Targeted, persistent hostility"
- name: "Sexual content"
tooltip: "Explicit or suggestive content"
- name: "Self-harm or suicide"
tooltip: "Promoting or glorifying self-harm"
- name: "Misinformation"
tooltip: "Demonstrably false claims"
- name: "Spam or scam"
tooltip: "Unwanted promotional content"Detecção de Discurso de Ódio
Grupos-Alvo
annotation_schemes:
- annotation_type: multiselect
name: target_groups
description: "Which groups are targeted? Leave empty if this is not hate speech"
labels:
- name: "Race or ethnicity"
- name: "Religion"
- name: "Gender"
- name: "Sexual orientation"
- name: "Disability"
- name: "Nationality or origin"
- name: "Age"
- name: "Other protected group"Gravidade do Discurso de Ódio
annotation_schemes:
- annotation_type: radio
name: hate_severity
description: "Severity of hate speech"
labels:
- name: "Implicit"
tooltip: "Coded language, dog whistles"
- name: "Explicit, mild"
tooltip: "Clear but not threatening"
- name: "Explicit, severe"
tooltip: "Dehumanizing, threatening, or violent"Moderação Contextual
Regras Específicas da Plataforma
annotation_schemes:
- annotation_type: radio
name: context_appropriate
description: "Is this content appropriate for the platform context?"
labels:
- name: "Appropriate for context"
- name: "Borderline"
- name: "Inappropriate for context"
- annotation_type: text
name: context_notes
description: "Explain your contextual reasoning"
multiline: true
rows: 3Detecção de Intenção
annotation_schemes:
- annotation_type: radio
name: intent
description: "What is the apparent intent?"
labels:
- name: "Genuine attack"
tooltip: "Intent to harm or offend"
- name: "Satire or parody"
tooltip: "Mocking toxic behavior"
- name: "Quote or report"
tooltip: "Reporting or discussing toxic content"
- name: "Reclaimed language"
tooltip: "In-group use of slurs"
- name: "Unclear intent"Moderação de Conteúdo de Imagem
Classificação de Conteúdo Visual
annotation_schemes:
- annotation_type: multiselect
name: image_violations
description: "Select all policy violations"
labels:
- name: "Nudity or sexual content"
- name: "Graphic violence"
- name: "Gore or disturbing content"
- name: "Hate symbols"
- name: "Dangerous acts"
- name: "Child safety concern"
priority: critical
escalate: true
- name: "No violations"
- annotation_type: radio
name: action_recommendation
description: "Recommended action"
labels:
- name: "Approve"
- name: "Age-restrict"
- name: "Add warning label"
- name: "Remove"
- name: "Escalate to specialist"Controle de Qualidade
# Items with known labels, mixed into the regular queue
gold_standards:
enabled: true
items_file: data/moderation_gold.json
mode: mixed
frequency: 20
accuracy:
min_threshold: 0.7
evaluation_count: 10
# Three judgements on every item
num_annotators_per_item: 3
# Disagreements go to a specialist queue
adjudication:
enabled: true
adjudicator_users:
- trust_safety_lead
min_annotations: 3
agreement_threshold: 0.67
require_notes_on_override: true
show_agreement_scores: trueConfiguração Completa
annotation_task_name: "Content Moderation"
task_dir: "."
output_annotation_dir: "annotations/"
data_files:
- "data/reports.json"
item_properties:
id_key: id
text_key: text
num_annotators_per_item: 3
annotation_schemes:
- annotation_type: radio
name: toxicity
description: "Toxicity level"
labels:
- name: "None"
- name: "Mild"
- name: "Moderate"
- name: "Severe"
- annotation_type: multiselect
name: categories
description: "Types of harmful content (select all)"
labels:
- name: "Hate speech"
- name: "Harassment"
- name: "Violence or threats"
- name: "Sexual content"
- name: "Self-harm"
- name: "Spam"
- name: "None"
- annotation_type: likert
name: confidence
description: "How confident are you in this judgment?"
size: 5
min_label: "Uncertain"
max_label: "Very confident"
- annotation_type: text
name: notes
description: "Additional notes (optional)"
multiline: true
rows: 4
export_annotation_format: jsonlEscrevendo as diretrizes
A maior parte da discordância entre anotadores remonta a diretrizes vagas, então é aqui que o esforço compensa. Detalhe o que separa "mild" de "moderate" em vez de deixar os anotadores adivinhando. Mostre os casos-limite, com explicações de por que cada um foi parar onde foi. Diga como a plataforma e o público mudam a decisão, já que a mesma frase pode ser aceitável em uma comunidade e uma violação em outra. E diga aos anotadores o que fazer quando a intenção é genuinamente incerta, em vez de fingir que isso nunca acontece. Espere revisar tudo isso à medida que novos tipos de conteúdo aparecem.
Apoiando os anotadores
Não deixe uma única pessoa estacionada em conteúdo tóxico o dia inteiro; faça rodízio do trabalho. Mantenha recursos de saúde mental a um clique de distância, dê às pessoas um canal de verdade para sinalizar preocupações e reconheça que este é um trabalho difícil. É mesmo.
Para entender como os esquemas de classificação subjacentes funcionam, veja a documentação de anotação de texto. O guia de controle de qualidade aborda redundância e calibração com mais detalhes.
Documentação completa em Esquemas de Anotação.