Partie 1: L'IA côté client pour lutter contre la toxicité en ligne

Maud Nalpas
Maud Nalpas

Publié le 13 novembre 2024

L'incitation à la haine, le harcèlement et les abus en ligne sont devenus un problème omniprésent sur Internet. Les commentaires toxiques étouffent des voix importantes et éloignent les utilisateurs et les clients. La détection de la toxicité protège vos utilisateurs et crée un environnement en ligne plus sûr.

Dans cette série en deux parties, nous verrons comment utiliser l'IA pour détecter et atténuer la toxicité à sa source: les claviers des utilisateurs.

Dans cette première partie, nous allons examiner les cas d'utilisation et les avantages de cette approche.

Dans la deuxième partie, nous partageons l'implémentation, y compris des exemples de code et des conseils d'UX.

Pourquoi effectuer une détection de la toxicité côté client ?

Démonstration de la publication de commentaires.
Exemple de détection de toxicité côté client: lorsqu'un utilisateur cesse de saisir un commentaire, l'analyse de toxicité s'exécute dans le navigateur et un avertissement s'affiche en temps réel. Regardez la démonstration.

Avantages

La détection de la toxicité côté client est une première ligne de défense utile et un excellent complément aux vérifications côté serveur. La détection de la toxicité côté client offre plusieurs avantages:

  • Détectez rapidement la toxicité. Avec les vérifications côté client, vous pouvez détecter la toxicité à sa source, sans toucher au serveur.
  • Activez les vérifications en temps réel. Utilisez la vitesse côté client pour créer des applications à faible latence et fournir des commentaires instantanés à vos utilisateurs.
  • Réduire ou optimiser la charge de travail côté serveur Réduisez votre charge de travail côté serveur et vos coûts de détection de la toxicité: d'abord, parce que vos indices destinés aux utilisateurs peuvent contribuer à réduire le volume de commentaires toxiques, mais aussi parce que le fait de signaler certains commentaires comme probablement toxiques avant qu'ils n'arrivent sur votre serveur vous aide à les hiérarchiser dans vos vérifications côté serveur.
  • Réduire la charge humaine Alléger la charge des modérateurs humains

Cas d'utilisation

Voici quelques raisons pour lesquelles vous pouvez créer une détection de toxicité côté client:

  • Détection immédiate dans les systèmes de commentaires Envoyez des commentaires immédiats aux utilisateurs qui rédigent des commentaires toxiques, en les encourageant à reformuler leur message avant de le publier. Avec l'IA côté client, vous pouvez y parvenir sans clé API, sans coûts de classification côté serveur au moment de l'exécution et avec une faible latence. Cela peut être idéal pour les applications de chat.
  • Modération en temps réel dans le chat en direct Identifiez et signalez rapidement les messages toxiques des utilisateurs, ce qui permet aux modérateurs d'intervenir immédiatement.

Conservez vos vérifications côté serveur

Bien que la détection de la toxicité côté client soit rapide, un utilisateur malveillant connaissant le frontend peut la désactiver. De plus, aucun système de détection de la toxicité n'est fiable à 100 %.

Pour ces raisons, nous vous recommandons vivement de toujours implémenter ou de conserver une analyse supplémentaire avec un serveur, au lieu de vous fier uniquement à la détection de la toxicité côté client. Par exemple, complétez votre vérification côté client en temps réel par une vérification côté serveur asynchrone à l'aide de l'API Perspective. Pour une approche globale, vous pouvez les combiner à la modération humaine.

Mises en garde

La détection de la toxicité côté client nécessite de télécharger un modèle de classification sur votre page Web, et souvent une bibliothèque d'IA côté client.

Réfléchissez aux conséquences:

  • Coûts d'hébergement et de diffusion des modèles Le modèle peut être volumineux.
  • Performances et expérience utilisateur La bibliothèque et le modèle augmenteront la taille de votre bundle.

Tenez compte des avantages avant de décider si cette approche est adaptée à votre cas d'utilisation. Appliquez les bonnes pratiques de performances pour l'IA côté client et mettez en cache le modèle afin que le téléchargement soit un coût unique.

Fonctionnement de la classification de la toxicité des contenus

Avant d'examiner l'implémentation complète, examinons les principes essentiels de la détection de la toxicité.

Un modèle de détection de la toxicité analyse le texte existant, plutôt que de générer de nouveaux contenus (IA générative). Il s'agit d'une tâche de traitement du langage naturel (TLN) classique.

Tâches de traitement du langage naturel. Source HuggingFace.

La détection de la toxicité s'appuie sur des classificateurs de texte qui classent le texte comme étant probablement toxique ou inoffensif. Les classificateurs de toxicité prennent un texte en entrée et lui attribuent divers libellés de toxicité, ainsi qu'un score. Les scores varient de 0 à 1. Plus le score est élevé, plus l'entrée est susceptible d'être toxique.

La détection de la toxicité s'appuie sur des classificateurs de texte qui classent le texte comme étant probablement toxique ou inoffensif.

Les entrées utilisateur sont classées, puis évaluées.

Prenons l'exemple du modèle Xenova/toxic-bert, une version compatible avec le Web de unitary/toxic-bert. Il propose six libellés:

  • toxic
  • severe_toxic
  • insult
  • obscene
  • identity_hate
  • threat

Les libellés tels que toxic et severe_toxic indiquent la toxicité globale.

Les autres libellés sont plus précis. Ils identifient des types spécifiques de toxicité, par exemple identity_hate (harcèlement ou menaces concernant l'identité d'une personne, comme l'origine ethnique, la religion, l'identité de genre, etc.) ou threat (déclaration d'intention de causer des dommages).

Les différents modèles de toxicité ont des approches de classification différentes. Voici quelques exemples représentatifs.

Dans cet exemple, l'entrée suivante inclut le mot "haine" et s'adresse à une personne. Le score toxicity est donc élevé (0.92). Aucun type de toxicité spécifique n'a été identifié. Les autres scores sont donc faibles.

Input: I hate you
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.16187334060668945 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

Dans l'exemple suivant, l'entrée a un ton haineux global. Elle reçoit donc un score toxicity élevé (0.92). En raison de la mention explicite de dommages, le score threat est également élevé (0.81).

Input: I hate your garden, and I will kill your plants
Output of the toxicity classifier:
[
{ label: 'toxic', score: 0.9243140482902527 },
{ label: 'insult', score: 0.16187334060668945 },
{ label: 'obscene', score: 0.03452680632472038 },
{ label: 'identity_hate', score: 0.0223250575363636 },
{ label: 'threat', score: 0.819197041168808937 },
{ label: 'severe_toxic', score: 0.005651099607348442 }
]

À suivre

Maintenant que vous comprenez le contexte, vous pouvez commencer à créer un système de détection de la toxicité côté client basé sur l'IA.

LIRE LA DEUXIÈME PARTIE