Modération : on a testé Shieldstral de Mistral sur un million de commentaires Next
Sword offline
Illustration : Flock
Le 10 août à 16h46
Mistral vient d’annoncer son modèle local (avec des poids ouverts) pour la modération. Nous l’avons testé sur un million de commentaires Next, avec trois instructions différentes. Les résultats sont riches en enseignements.
Modération : on a testé Shieldstral de Mistral sur un million de commentaires Next
Sword offline
Illustration : Flock
Mistral vient d’annoncer son modèle local (avec des poids ouverts) pour la modération. Nous l’avons testé sur un million de commentaires Next, avec trois instructions différentes. Les résultats sont riches en enseignements.
Hardware
Hardware
14 min
Shieldstral (ou plus précisément Shieldstral-1.0-3B) est un modèle de 3,8 milliards de paramètres, qui occupent 7,7 Go de mémoire à eux seuls. Développé par une entreprise française – Mistral –, nous avons voulu tester son fonctionnement. Nous avons à disposition les commentaires laissés par les lecteurs de Next (qu’ils aient été modéré ou non), utilisons-les… en local, évidemment. Il y a peu, nous avons utilisé les actus de Next pour vous présenter le RAG par l’exemple.
La première étape consiste à déployer le « petit » modèle Shieldstral de Mistral sur un serveur avec un GPU capable de tenir la charge. Nous avons utilisé une machine avec une RTX 4000 Ada, une carte avec 20 Go de mémoire. C’est largement suffisant pour charger les près de 8 Go des poids et laisser de la marge pour le cache et le traitement des données.
Nous avons lancé trois « runs » avec trois duos d’instructions/questions au modèle Shieldstral. Toute l’inférence a été effectuée en local sur la machine, bien évidemment, aucune donnée n’a été envoyée à Mistral. Chaque run prenait entre 4h30 et 5 h pour un million de commentaires (extrait de la base de données de Next). Il s’agissait en effet de grosses passes. Traiter quelques milliers de commentaires ne prend qu’une minute, par exemple.
Pour notre expérience, nous avons repris l’exemple de base de Mistral (dans le readme) adapté à nos besoins. Le SYSTEM_PROMPT est toujours le même : « Judge whether the Document meets the requirements based on the Query and the Instruction provided. Note that the answer can only be « yes » or « no » ». Il doit être en anglais (comme expliqué page 23 de ce document), peu importe la langue des commentaires à analyser.
Un million de commentaires, trois passes différentes de Shieldstral
Première passe (alias Passe Next) avec une longue instruction détaillée, inspirée d’un billet de Vincent sur le sujet et de nos règles :
INSTRUCTION:
Tu modères les commentaires de Next, site d'actualité technologique
francophone doté d'une communauté forte et ancienne pour certains.
Quatre règles régissent cet espace : rester dans le sujet de l'article, être
respectueux, argumenter (particulièrement quand l'opinion est tranchée), ne
pas faire de publicité gratuite.
Ce que la communauté autorise : le désaccord franc, l'humour, l'ironie, la
critique sévère d'une entreprise, d'un produit, d'une décision politique ou
d'une personnalité publique, la connivence entre habitués. Les échanges
techniques nourris et les avis tranchés mais argumentés sont la raison d'être
de cet espace et ne doivent jamais être signalés.
Ce que la communauté refuse :- l'insulte ou l'attaque personnelle visant un autre commentateur ou un membre
de la rédaction ;- le troll : un avis tranché, sans argumentation, visant uniquement à faire
réagir ;- le sarcasme méprisant ou dédaigneux adressé à une personne ;- le hors-sujet manifeste qui détourne la discussion de l'article ;- la publicité gratuite pour un produit, un service ou un site ;- l'incitation à la haine ou à la violence envers un groupe en raison de son
origine, sa religion, son genre, son orientation sexuelle ou son handicap, y
compris exprimée poliment ;- l'injure et la diffamation visant une personne identifiable ;- les menaces de violence physique ;- le contenu sexuellement explicite ;- la divulgation de données personnelles.
Critère décisif : la présence d'un argument. Une opinion dure mais étayée
reste légitime, même sur un sujet clivant. La même opinion assénée sans
justification, ou enrobée de mépris pour l'interlocuteur, ne l'est pas.
Distingue la critique des idées, toujours acceptable, de l'attaque des
personnes, qui ne l'est pas.
Nuance importante : mentionner, citer ou discuter un contenu problématique
n'est pas l'endosser. Un commentaire qui rapporte des propos haineux pour les
dénoncer, qui débat d'une affaire judiciaire ou qui analyse un phénomène
criminel ne doit pas être signalé.
QUESTION:
Ce commentaire enfreint-il l'une des règles de modération énoncées ?
Dans le deuxième cas (alias Passe édito), on compresse un peu le message :
INSTRUCTION:
Tu modères les commentaires de Next, site d'actualité technologique
francophone.
Applique une tolérance modérée : le désaccord franc, l'humour, l'ironie et le
second degré explicite, la critique sévère (entreprise, produit, décision
politique, personnalité publique), et les avis tranchés mais argumentés sont
autorisés et ne doivent jamais être signalés. Mentionner, citer ou discuter un
propos problématique pour le rapporter ou le dénoncer n'est pas l'endosser.
Prendre position dans un débat géopolitique, historique ou religieux n'est pas
une infraction, même avec un vocabulaire fort. Juge sur le sens global du
commentaire, pas sur une phrase isolée.
Signale uniquement s'il relève d'une de ces catégories :- insulte ou attaque personnelle envers un commentateur ou la rédaction
- incitation à la haine ou à la violence envers un groupe en raison de son
origine, sa religion, son genre, son orientation sexuelle ou son handicap
- menace de violence physique
- injure ou diffamation visant une personne identifiable : l'attaque porte sur
la personne elle-même plutôt que sur ses actes, ses propos ou ses décisions
- contenu sexuellement explicite
- divulgation de données personnelles
- publicité manifeste pour un produit, un service ou un site
- troll : opinion tranchée assenée sans le moindre élément de justification,
ni fait, ni exemple, ni raisonnement
QUESTION:
Ce commentaire enfreint-il l'une des règles de modération énoncées ?
Enfin, un troisième run ainsi sous la forme d’une modération « légale » (alias Passe légale) :
INSTRUCTION:
Tu évalues des commentaires publiés sur un site d'actualité francophone au
regard du droit français, principalement la loi du 29 juillet 1881 sur la
liberté de la presse.
Applique une tolérance élevée : la liberté d'expression est le principe, la
restriction l'exception. La critique, même violente, d'une entreprise, d'un
produit, d'une institution, d'une politique publique ou des actes d'une
personnalité publique est licite. La grossièreté, l'ironie et le mauvais goût
ne sont pas des délits. Mentionner, citer ou dénoncer un propos illicite n'est
pas le commettre.
Signale uniquement ce qui constitue une infraction pénale :- injure publique : expression outrageante visant une personne identifiable,
sans imputation d'un fait précis
- diffamation publique : imputation d'un fait précis portant atteinte à
l'honneur d'une personne identifiable
- provocation à la discrimination, à la haine ou à la violence envers un
groupe ou une personne en raison de son origine, son ethnie, sa nation, sa
race, sa religion, son sexe, son orientation sexuelle, son identité de genre
ou son handicap
- contestation de crime contre l'humanité- apologie de crimes de guerre, de crimes contre l'humanité, d'esclavage ou de
collaboration
- apologie ou provocation au terrorisme
- menace de mort ou d'atteinte à l'intégrité physique
- harcèlement moral, notamment par propos répétés
- diffusion de données personnelles permettant d'identifier ou de localiser
une personne dans le but de lui nuire
- diffusion d'images à caractère sexuel sans consentement, ou de contenu
pédopornographique
QUESTION:
Ce commentaire constitue-t-il une infraction pénale au regard du droit
français ?
Entre 0,3 et 5,2 % de commentaires signalés lors des runs Shieldstral
Ces trois runs (de 5 h chacun environ) correspondent donc à la Passe Next, Passe édito et Passe légale par la suite. À chaque fois, un million de commentaires sont ainsi passés à la moulinette. Ce ne sont que trois exemples, nous ne sommes pas des experts sur le sujet, il est donc certainement possible de faire mieux, mais cela permet déjà d’en tirer de premières conclusions et d’appréhender le fonctionnement de Shieldstral.
Il reste 46% de l'article à découvrir.
Déjà abonné ou lecteur ? Se connecter
Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.
Accédez en illimité aux articles
Profitez d'un média expert et unique
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
expert et sans pub.
Commentaires (37)
Le 10 août à 16h57
Le 10 août à 22h46
Le 10 août à 17h01
Pour aller plus loin : est-ce que vous prévoyez de le déployer, pas forcément pour une modération automatisée, mais a minima pour de l'alerte automatisée ?
De plus, est-ce que vous avez été mené à supprimer des commentaires qui étaient passés entre les mailles du filet de la modération pendant ce test ?
Le 10 août à 17h04
Le 10 août à 17h10
Le 10 août à 17h19
Le 10 août à 17h31
Le 11 août à 00h48
Le 10 août à 17h47
Le 10 août à 18h03
Et qu'en pense Vincent d'ailleurs ? D'être ainsi potentiellement remplacé par une IA ??
Sinon, je suis un peu surpris par la taille du modèle. Dans la finalité, j'ai quand même l'impression que ce que l'on souhaite est un plus simple qu'un modèle de génération de code par exemple. je me serais donc attendu à un modèle plus petit (par exemple, comparativement à un Qwen3).
Modifié le 10 août à 18h32
Le 10 août à 18h44
Je récupère juste le champ texte du commentaire, coupé à 4 000 caracteres si besoin
Vincent a claqué la porte, on va plus le voir :o (en vrai, il est en vacances là, sans aucun rapport entre les deux
Le 10 août à 18h32
Je pense qu'il aurait été intéressant d'expliquer comment on évalue classiquement un système de classification, puisqu'à moins que je me trompe, il s'agissait là bien du sujet (classiquement : rappel, précision, matrice de confusion, etc). Ca permettrait d'ouvrir le sujet de l'évaluation des modèles d'ia générative. Qui est un champ de recherche à part entière, dans le sens où on entraîne et évalue si vite que nous autres humains avons du mal à suivre.
C'est d'ailleurs plutôt 3 classifieurs séparés (chacun des prompts associés à un modèle fixe) qui sont présentés. Si ce n'était pas pour tester la qualité de la réponse (par rapport à une réponse humaine), un seul prompt aurait suffit.
Et je ne sais donc toujours pas si shieldstral se comporte bien et donne les bonnes réponses. Je le déduirais en partie au regard de ce que je pense, moi, de la conformité générale des commentaires de next aux prompts présentés. Mais bon, les biais sont nombreux.
Sans annotation de chaque commentaire vis à vis de chaque prompt l'évaluation me semble compliquée. On pourrait le faire, par exemple, en sollicitant les abonnés sur tout ou partie du jeu de données pour diviser l'ampleur de la tâche d'annotation. (On a les jeux de l'été ;))
Le 10 août à 18h52
Je peux relancer un ou plusieurs runs si besoin avec des instructions/questions optimisées. Et pour ce qui est d’annoter les commentaires, ça me semble un travail de titan et assez subjectif, surtout vu les loulous qui traînent parfois ici, mais si tu as une idée pour développer ce système, feel free !
Le 10 août à 18h32
- le nombre de message modérés par Next non remontés par l'IA
- le nombre de messages remontés par l'IA mais non modérés par Next
- le nombre de message à la fois remontés et modérés par Next
Le 10 août à 18h43
Ca reste limité mais effectivement ça sera déjà mieux que rien.
Le 10 août à 18h47
Le 10 août à 20h29
À savoir ce que pense @Ness_01 de tout ça.
Le 10 août à 21h14
Que certaines de ces âmes, majoritairement mâles, en mal d'interactions sociales (et de douches) ont du revenir qui plus est, pour se délecter du carnage.
Et tous ces efforts pour, à défaut de changer le monde, finir comme chair à entrainement d'IA pour Seb (qui vous enterrera tous).
Gardez le pour vous, mais c'est chaud quoi.
Le 10 août à 21h29
D’ailleurs @Ness_01 regarde tes DM sur la domination du mond… pardon la partie de dominos :o
Modifié le 10 août à 21h40
La manière dont le modèle est testé ne semble pas respecter ces instructions :
On lui donne une politique de modération complète à appliquer avec des listes de choses à évaluer, au lieu d’appeler ce modèle pour chaque règle spécifique tel que recommandé par le concepteur.
Par ailleurs, sans un résultat quantitatif (ou au moins une opinion qualitative de l'auteur sur le résultat), ce test ne sert pas à grand chose.
Les taux bruts en sortie du modèle ne disent pas grand chose sur la qualité.
Pour les doublons ou les commentaires supprimés à la demande de l'auteur, ces exceptions peuvent être filtrées (par le même modèle ou un modèle plus gros) pour l'évaluation de la "vraie" modération (autre option: les inclure dans le test comme des règles à respecter).
En bref:
• Le modèle n'est pas testé correctement.
• Il n'est en fait pas testé du tout car les résultats ne sont pas interprétés/interprétables.
Les aspects positifs:
• Le sujet de l'article est bon
• Vous avez l'air d'avoir eu du fun à le faire, ça compte.
Le 10 août à 23h29
Merci de confirmer ce que j'avais compris de l'autre article. Ça va faire chauffer les GPU de tester un critère à la fois.
Modifié le 10 août à 23h49
Pour une décision globale concernant un ensemble de politiques, énumérez les catégories dans et posez une seule question. « Ce contenu est-il safe ? ».
C’est le cas ici, plusieurs catégories dans instruct mais une seule question. Si je voulais le détail catégorie par catégorie il faudrait une question par catégorie.
La, le modèle me dit problématique ou non, mais pas de précision sur les catégories, je n’ai qu’une réponse globale. Si je voulais des réponses pour 5 catégories, je multiplierais les questions par cinq et donc le temps de traitement par cinq…
Le 11 août à 07h34
Cela pourrait permettre d'ailleurs un score plus fin avec une priorisation selon les critères, comme par exemple un commentaire levant un pic dans le critère "harcèlement" ou "incitation à la haine" pourrait provoquer une alarme plus prioritaire en raison du risque pénal derrière.
Le 11 août à 11h50
Le 11 août à 14h22
Après, ton approche de test ici est sur une quantité de données historique. Dans un cas d'usage plus concret et fil de l'eau, on serait sur des appels ponctuels à mon sens. Une médiane sur la fréquence de posting quotidienne pourrait être une base de calcul pour combien de fois le traitement serait exécuté.
À vue de nez, il doit se poster quoi ? 200 commentaires par jour dans les grandes affluences ? Éventuellement des pics lors d'une annonce ou une actu qui mobilise un peu plus que d'ordinaire ?
Le 11 août à 15h30
Dans le cas présent je suis preneur de retour et je veux bien relancer un ou deux runs, mais partir sur 5x 5h pour un test ça me semble quand même beaucoup ^^ Apres je peux aussi évidemment tester sur 10 000 commentaires je ne suis pas obligé de faire le million
Le 11 août à 06h50
Cet outil pourrait il mieux utiliser comme évaluateur avant sa publication potentielle et informer ainsi le rédacteur de sa conformité à la Charte Next?
Cela peut être aussi pédagogique.
Le 11 août à 07h36
Et que ça tendait à faire baisser les comportements à problèmes.
Le 11 août à 08h00
Faudrait alors une jolie fenêtre de contexte (avec des dorures et tout...)
Sinon c'est de l'éval à l'aveugle
Le 11 août à 08h07
Pour l’article, le modèle n’a que le titre, pas l’article au complet
Le 11 août à 09h39
Le 11 août à 09h55
Le 11 août à 11h56
Pour ceux qui comprennent pas trop mon com précédent :
Le 11 août à 11h57
Le 11 août à 10h18
Modifié le 12 août à 10h58
Si une personne poste "Fabriquer des bombes, c'est mal.", le script à mots-clés va juste détecter bombe, alors que Shieldstral va a priori identifier le côté péjoratif et baisser sa garde.
L'exemple fourni est très particulier, sans le contexte je comprends que ce soit assez difficile pour le système d'en trouver l'intention : est-ce une analyse historique ? est-ce un tuto ?
C'est là où la contextualisation globale avec les autres commentaires liés donnerait une autre dimension au système.
Signaler un commentaire
Voulez-vous vraiment signaler ce commentaire ?