Créer avec l’IA

Comment filtrer le contenu nuisible avec le point de terminaison de modération d’OpenAI?

· Par Robert Scales · 5 min de lecture

Réponse courte

Vous envoyez chaque texte au point de terminaison Moderation d’OpenAI, un classificateur gratuit lancé le 10 août, qui vous indique si le texte est signalé pour du contenu sexuel, haineux, violent ou lié à l’automutilation. Votre application décide ensuite quoi faire : le transmettre à GPT-3, le mettre de côté pour qu’une personne l’examine ou le bloquer.

Si votre application permet au public de taper du texte que GPT-3 lit ensuite ou auquel il répond, il vous faut un moyen d’intercepter le pire avant qu’il cause du tort. Le 10 août, OpenAI a lancé un outil conçu exactement pour cela : le point de terminaison Moderation (Moderation endpoint). Un point de terminaison est simplement une adresse de l’API qui accomplit une seule tâche. Celui-ci reçoit un texte et rend un verdict : enfreint-il ou non la politique de contenu d’OpenAI? Il remplace l’ancien filtre de contenu de l’entreprise, et OpenAI le décrit comme plus rapide et plus précis.

En coulisses, il s’agit d’un ensemble de classificateurs, des modèles entraînés à ranger du texte dans des catégories, construits sur des modèles GPT. OpenAI indique que les développeurs peuvent l’utiliser gratuitement pour modérer le contenu produit avec son API, ce qui vous évite de bâtir et d’entretenir vos propres filtres. Le filtrage d’autres contenus, comme ceux d’un forum qui n’appelle jamais GPT-3, fait l’objet d’une bêta privée qui sera payante.

Ce qu’il vérifie

Les catégories viennent d’un article que des chercheurs d’OpenAI ont publié le 5 août et qui décrit la construction du classificateur. Ses principales catégories sont :

  • Le contenu sexuel, avec une catégorie distincte et plus stricte pour le contenu sexuel impliquant des mineurs.
  • La haine : les propos injurieux visant des personnes en raison de ce qu’elles sont, avec une sous-catégorie grave pour la haine qui appelle à la violence.
  • La violence, avec une sous-catégorie grave pour la violence extrêmement crue.
  • L’automutilation : les descriptions crues de l’automutilation ou l’incitation à celle-ci.

L’article définit aussi le harcèlement, mais précise que cette catégorie est encore en cours d’amélioration et n’est pas encore offerte par le point de terminaison.

Un exemple concret : filtrer les commentaires d’un site de recettes

Imaginez un site communautaire de recettes. Les visiteurs laissent des commentaires, et le site utilise GPT-3 pour rédiger une courte réponse amicale à chacun. Vous ne voulez pas qu’un commentaire injurieux parvienne à GPT-3, et vous ne voulez pas non plus que la réponse de GPT-3 parte sans vérification. Le processus compte quatre étapes :

  1. Un visiteur soumet un commentaire.
  2. Votre serveur envoie le commentaire au point de terminaison Moderation.
  3. S’il revient signalé, le commentaire est mis de côté pour une personne; sinon, il va à GPT-3, qui rédige une réponse.
  4. La réponse passe elle aussi par le point de terminaison avant d’être publiée.

Avec la bibliothèque Python d’OpenAI, l’étape 2 tient en un seul appel :

import openai

openai.api_key = "VOTRE_CLE_API"  # gardez-la sur votre serveur, jamais dans la page

comment = "Je l'ai faite hier soir. Beaucoup trop salée à mon goût, je mettrais deux fois moins de sauce soya."
result = openai.Moderation.create(input=comment)

La bibliothèque accepte aussi une liste de chaînes, ce qui vous permet de vérifier plusieurs commentaires en une seule requête. Vous pouvez nommer l’un de deux modèles, text-moderation-stable ou text-moderation-latest; si vous omettez le modèle, le point de terminaison utilise celui par défaut. La réponse indique si le texte est signalé dans l’ensemble et donne un verdict pour chaque catégorie, si bien que votre code peut traiter un signalement pour violence autrement qu’un signalement pour haine.

Voici comment le site pourrait traiter quatre commentaires. Les verdicts sont donnés à titre d’illustration; ce ne sont pas de vrais résultats de l’API :

Commentaire (paraphrasé)Signalé?Action
Trop salé, mettre moitié moins de sauce soyaNonEnvoyer à GPT-3 pour une réponse
Une menace envers un autre commentateurOui (violence)Mettre de côté pour examen, ne pas répondre
« Ce gâteau est mortel, je pourrais mourir heureux »Peut-êtreMettre de côté pour examen
Une insulte visant un groupe religieuxOui (haine)Bloquer et consigner

La troisième ligne est la plus intéressante. Des mots comme « mortel » et « mourir » peuvent déclencher un classificateur même quand le sens est inoffensif; c’est pourquoi un signalement devrait habituellement vouloir dire « une personne regarde ceci », et non « supprimer automatiquement ».

À essayer : écrivez dix exemples de commentaires pour un site que vous connaissez, dont deux inoffensifs qui emploient des expressions familières à consonance violente. Faites-les passer par le point de terminaison et classez les résultats en trois piles : « clairement correct », « clairement inacceptable » et « à faire voir par une personne ». C’est sur la troisième pile que vos règles d’examen devraient se concentrer.

Où une personne doit-elle encore vérifier?

Le contexte est la première raison. L’article d’OpenAI donne l’exemple d’une phrase comme « Je vais te tuer » : la taxonomie la classe comme violente, et pourtant, dans une œuvre de fiction, elle peut être tout à fait acceptable. Un classificateur voit des mots, pas la situation qui les entoure. Si votre site héberge des récits, des jeux de rôle ou des discussions sur l’histoire et l’actualité, attendez-vous à des signalements qu’une personne devra juger.

Les biais sont la deuxième. Les auteurs rapportent que leur modèle peut attribuer des scores de haine plus élevés aux textes qui mentionnent des personnes homosexuelles, et des scores sexuels plus élevés aux textes qui contiennent « her » (« elle » ou « la » en anglais), parce que les données d’entraînement venaient d’Internet. Ils préviennent aussi que de tels outils peuvent produire un nombre disproportionné de faux positifs quand les gens parlent de groupes souvent visés par la haine. En pratique, cela signifie que les membres d’une communauté qui parlent de leur propre vécu risquent d’être signalés plus que quiconque. L’examen humain des messages signalés, et un moyen simple de faire appel, protègent ces personnes.

La langue et les cas rares sont la troisième. Seulement 5 % environ des échantillons d’entraînement étaient dans d’autres langues que l’anglais, et les auteurs disent que la performance dans les autres langues n’a pas été évaluée rigoureusement. Si votre public écrit en français ou en espagnol, vérifiez à la main un échantillon des résultats. Il en va de même pour les trous dans la couverture : le harcèlement n’est pas encore une catégorie, si bien que l’intimidation qui évite les catégories énumérées peut passer.

Une approche sensée consiste à laisser le point de terminaison traiter automatiquement les cas clairs, à envoyer chaque signalement et chaque cas limite à une personne, et à vérifier chaque semaine un petit échantillon aléatoire de messages non signalés. Le classificateur accélère la modération; décider de ce que votre communauté accepte reste votre affaire.

Sources

  1. New-and-Improved Content Moderation Tooling — OpenAI, 10 août 2022
  2. A Holistic Approach to Undesired Content Detection in the Real World — arXiv (OpenAI: Markov, Zhang, Agarwal, Eloundou, Lee, Adler, Jiang, Weng), 5 août 2022
  3. openai-python v0.22.1: openai/api_resources/moderation.py — OpenAI on GitHub, 2 août 2022

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité