Skip to content
Guides5 min de lecture

Configuration de l'annotation pour la modération de contenu

Configurez Potato pour la détection de toxicité, la classification des discours haineux et l'étiquetage de contenu sensible en tenant compte du bien-être des annotateurs.

Potato Team

L'annotation de modération de contenu nécessite une attention particulière au bien-être des annotateurs, des consignes claires pour le contenu subjectif et un contrôle qualité robuste. Ce guide couvre les bonnes pratiques pour la classification de contenu toxique.

Bien-être des annotateurs

L'exposition à du contenu nuisible peut affecter la santé mentale des annotateurs. Mettez en place des mesures protectrices :

Configuration du bien-être

yaml
surveyflow:
  on: true
  order:
    - pre_annotation
  pre_annotation:
    - "surveyflow/content_warning.jsonl"

Floutage du contenu

yaml
max_annotations_per_user: 100

Classification de la toxicité

Toxicité multi-niveaux

yaml
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"

Catégories de toxicité

yaml
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"

Détection des discours haineux

Groupes ciblés

yaml
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"

Gravité du discours haineux

yaml
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"

Modération contextuelle

Règles spécifiques à la plateforme

yaml
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: 3

Détection de l'intention

yaml
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"

Modération de contenu d'images

Classification du contenu visuel

yaml
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"

Contrôle qualité

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

Configuration complète

yaml
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: jsonl

Bonnes pratiques pour les consignes

Lors de la rédaction de consignes de modération :

  1. Définissez des seuils clairs : Qu'est-ce qui rend quelque chose "léger" par rapport à "modéré" ?
  2. Fournissez des exemples : Montrez les cas limites avec des explications
  3. Tenez compte du contexte : Comment la plateforme/l'audience affecte-t-elle les décisions ?
  4. Gérez l'ambiguïté : Que faire quand l'intention n'est pas claire
  5. Mettez à jour régulièrement : Les consignes évoluent avec les nouveaux types de contenu

Soutien aux annotateurs

  • Rotation : N'assignez pas la même personne au contenu toxique en continu
  • Accès au soutien : Accès facile aux ressources de santé mentale
  • Canaux de retour : Permettez aux annotateurs de signaler leurs préoccupations
  • Reconnaissance : Reconnaissez la difficulté du travail

Documentation complète sur Schémas d'annotation.