Le contenu de ce site a été traduit à l'aide de l'intelligence artificielle (IA) ou d'une technologie de traduction automatique, et peut contenir des erreurs.

Skip to content

Ouverture du code source du classificateur de données personnelles de Roblox : notre approche de la détection des données personnelles par l'IA dans les chats

Utilisation du contexte pour améliorer la précision

Chaque jour, les utilisateurs génèrent en moyenne 6,1 milliards de messages de chat sur Roblox. Nous utilisons des systèmes de modération robustes, mettons en place des restrictions d'âge et proposons des contrôles parentaux afin de garantir une communication sûre et courtoise. La grande majorité des messages sur la plateforme sont des conversations quotidiennes, comme deux amis discutant d'une stratégie de jeu, mais dans un petit pourcentage de messages, les utilisateurs tentent de partager des informations personnelles identifiables (PII) qui pourraient être sensibles. Les PII peuvent prendre de nombreuses formes, et les utilisateurs les partagent pour des raisons souvent anodines : un utilisateur peut par exemple partager son nom d'utilisateur sur une autre plateforme pour coordonner une partie, ou un numéro de téléphone pour nouer une amitié naissante. Cependant, il existe de rares cas où des personnes malveillantes recherchent des PII pour attirer les utilisateurs hors de Roblox vers d'autres plateformes où le risque de préjudice dans le monde réel pourrait être plus élevé. Dans la pratique, ces différences d’intention sont difficiles à discerner, c’est pourquoi nous avons mis en place des politiques strictes contre le partage ou la recherche de PII. Nous utilisons plusieurs outils pour bloquer par défaut toutes les PII détectées dans le chat, et nous assouplissons ces restrictions uniquement pour les utilisateurs âgés de 18 ans ou plus et pour les utilisateurs âgés de 13 à 17 ans qui se sont mutuellement vérifiés en tant que « Connexions de confiance ». 

La détection des informations personnelles identifiables (PII) est un défi technique à l'échelle du secteur. Les outils de détection standard du secteur peuvent être contournés et ne sont pas capables de s'adapter aux nouveaux schémas linguistiques. Bien qu'aucun outil ne soit parfait, nous avons développé un modèle d'IA, le « Roblox PII Classifier », pour tenir compte de la nature évolutive du langage et utiliser le contexte afin de détecter les situations où les utilisateurs tentent de contourner les filtres pour demander ou partager des informations personnelles identifiables (PII).

Nous sommes ravis d’annoncer qu’aujourd’hui, nous mettons en open source le PII Classifier aux côtés des autres outils de notre boîte à outils de sécurité open source. Depuis la mise en œuvre du PII Classifier fin 2024, nous avons constaté une amélioration rapide et continue du taux de rappel, avec des performances surpassant celles des autres modèles disponibles. La version de notre modèle PII que nous mettons en open source aujourd’hui affiche un taux de rappel de 98 % des conversations susceptibles de contenir des informations personnelles identifiables dans les textes en anglais1 sur Roblox. Le modèle a également atteint un score F1 de 94 % sur nos données de production, surpassant d'autres modèles de sécurité de pointe, tels que LlamaGuard v3 8B (28 %) et Piiranha NER (14 %). 

Les défis 

La détection efficace des informations personnelles identifiables (PII) à grande échelle se résume à trois défis principaux : 

  1. Modèles adversaires : les utilisateurs font preuve de créativité et trouvent sans cesse de nouvelles façons de contourner les filtres. Un système efficace doit s'adapter à mesure que le langage évolue et que de nouveaux modèles apparaissent.
  2. Formation et évaluation : afin de construire le modèle le plus efficace possible, nous devons également créer des ensembles de données d'entraînement et des méthodes de mesure efficaces. Étant donné que le modèle doit tenir compte des modèles émergents, les données de production actuelles ne sont pas suffisantes pour l'entraînement.  
  3. Performances : la mise en œuvre d'un tel modèle à grande échelle nécessite une architecture bien pensée et des décisions d'optimisation afin d'éviter tout impact négatif sur l'expérience utilisateur.

Modèles adversaires

Les solutions existantes de détection des informations personnelles identifiables (PII) s'appuient principalement sur la reconnaissance d'entités nommées (NER), c'est-à-dire la détection au niveau des tokens de certains types de noms, tels que les identifiants de réseaux sociaux, les numéros de téléphone et les adresses. Mais la détection des noms ne représente qu'une partie du défi. Les acteurs malveillants avisés modifient intentionnellement leur langage pour contourner la détection NER (par exemple, en utilisant « alpha », « bravo » et « Charlie » pour représenter A, B et C, ou en faisant référence à une plateforme sans la nommer explicitement). Il est possible pour un acteur malveillant de signaler son intention de se connecter sur une autre plateforme sans jamais partager les informations sensibles qu’un filtre NER détecterait. La tâche du classificateur de PII ne consiste pas seulement à détecter et à masquer le texte contenant des PII explicites partagé sur Roblox, mais aussi à comprendre le contexte de la communication et à empêcher les acteurs malveillants de s’engager dans des conversations liées aux PII dès le départ. 

Voici quelques exemples de techniques de contournement utilisant une plateforme sociale hypothétique, StarTalk :

Manipulation au niveau des caractères
  1. « tu as un compte StarTalk que tu veux appeler ? j'ai créé un compte il y a quelques jours »
  2. « ggrr je déteste ça tags C'est quoi ton nom C'est S et T »
Références implicites à des réseaux sociaux populaires
  1. « Encore une fois, c'est quoi ton ppa sur Rats ? Reverse »
  2. « Hé, tu peux vérifier mon nom sur l'appli Yellow Sun ? On peut discuter là-bas ? »

Le langage et l’argot évoluent avec le temps, et les acteurs malveillants cherchent sans cesse de nouvelles façons de contourner les filtres. La force de PII Classifier réside dans sa capacité à s’adapter aux nouveaux schémas linguistiques et aux contournements à mesure qu’ils apparaissent. Lorsque nous détectons des schémas adversaires réels, nous les réintégrons dans le modèle pour contribuer à son apprentissage continu. 

Formation et évaluation 

non défini
Les trois piliers de la gestion des données soutiennent le développement de modèles, ce qui permet à son tour d'améliorer la gestion des données.

Pour entraîner le modèle au départ, nous avons examiné et étiqueté manuellement les données liées aux informations personnelles identifiables (PII). Cela nous a donné un point de départ, mais ne nous permettait pas de passer rapidement à l'échelle supérieure et de couvrir une grande variété de scénarios. Plutôt que d'essayer de passer au crible manuellement chaque terme et chaque permutation présents dans les milliards de messages de chat quotidiens pour leur attribuer l'étiquette appropriée, nous avons développé et testé des échantillonneurs de données afin de sélectionner des échantillons pertinents pour l'entraînement. Notre objectif était d'exclure les conversations anodines et de nous concentrer sur celles contenant des données à caractère personnel afin de réduire le risque d'erreurs humaines lors de l'étiquetage et de couvrir un champ plus large. Deux échantillonneurs se sont révélés les plus efficaces :

  1. Échantillonnage d'incertitude utilisant les scores du modèle : cet échantillonneur sélectionnait des échantillons qui ne suscitaient pas de signal positif ou négatif fort, ce qui nous a permis d'affiner davantage les cas ambigus.
  2. Échantillons provenant de blocs consécutifs de données à caractère personnel : cet échantillonneur sélectionnait des échantillons provenant d'utilisateurs qui avaient été signalés dans certaines conversations, mais pas dans des conversations consécutives. Ces conversations de suivi étaient plus susceptibles de contenir un langage atypique qui avait contourné le filtre actuel de données à caractère personnel. En pratique, cela pouvait ressembler à un utilisateur qui ne parvenait pas à contourner le système et qui réessayait jusqu'à ce qu'il trouve une faille astucieuse. 

Cette combinaison d'échantillonnage de données et d'étiquetage humain sur les données de production actuelles a fourni une base solide pour l'entraînement du modèle, mais comme notre objectif était de prendre en compte les nouveaux schémas, nous avions besoin d'un moyen de l'entraîner sur des données qui n'existaient pas encore dans nos échantillons. 

Données synthétiques générées par l'IA

Le fait de s'appuyer uniquement sur les données échantillonnées actuelles risquait d'introduire des biais et de limiter la capacité du modèle à s'adapter à mesure que de nouveaux modèles de communication évoluaient. Par exemple, les demandes de PII les plus courantes sur Roblox concernent les identifiants de plateformes de réseaux sociaux populaires. Un modèle formé uniquement sur des données de production risquait de développer un biais en faveur des demandes les plus courantes et d'être moins performant pour les demandes plus rares, telles que les plateformes de réseaux sociaux moins connues, les adresses e-mail et les numéros de téléphone. La communication des utilisateurs a également tendance à converger vers un vocabulaire et des schémas linguistiques courants. Un modèle entraîné uniquement sur des données de production pourrait développer un biais en faveur des schémas linguistiques courants et ne pas identifier les violations exprimées de manière atypique ou émergente.

Pour éliminer ces biais et d'autres, nous avons conçu un pipeline de génération de données IA qui cible toutes les faiblesses héritées de l'ensemble de données d'entraînement initial. Tout d'abord, nous avons généré des invites en combinant différentes variables, notamment le contexte, le type de données personnelles, le profil de l'utilisateur, la langue et des exemples de répliques de chat. Ensuite, nous avons généré de nouvelles répliques de chat à partir de ces invites et les avons intégrées au modèle.  

Red teaming humain et IA

Nous avons eu recours à la fois à des équipes rouges humaines et à l'IA (où des équipes simulent des attaques adverses pour tester les défenses d'un système) pendant le développement afin de tester l'efficacité du modèle et d'affiner l'entraînement. Nous avons invité des modérateurs à tester différentes méthodes pour demander et partager des informations personnelles identifiables (PII) et avons incité les modèles de langage (LLM) à enrichir ces méthodes de diverses manières, puis avons ajouté à l’ensemble de données d’entraînement tous les exemples que le modèle avait manqués. Le « red teaming » par l’IA nous a aidés à tester rapidement de nombreuses variantes et à couvrir des méthodes que les modérateurs n’auraient peut-être pas envisagées. Par exemple : 

Original : le mot de passe est xxxx
Complété par l'IA : LE MOT DE PASSE EST xxxx

Original : Bella, mon numéro de téléphone est 346
Complété par l'IA : Bella, mon num3r est en fait troisquatre6

Le red teaming nous a aidés à mieux comprendre les lacunes de nos données d'entraînement actuelles et à adapter nos données synthétiques pour les combler. Il nous a également permis de mesurer les différences entre les itérations du modèle, ce qui devient de plus en plus difficile à mesure que deux versions d'un modèle commencent à saturer l'ensemble d'évaluation. Nous avons utilisé plusieurs versions du modèle dans le cadre de l'outil de red teaming afin de comparer directement les taux de contournement dans le même environnement et de déterminer quel modèle était statistiquement plus efficace.

Performances 

Avec une moyenne de 6,1 milliards de messages de chat échangés par jour, PII Classifier reçoit un pic de plus de 200 000 requêtes par seconde sur Roblox. Nous traitons ce volume avec une latence P90 inférieure à 100 ms. Pour trouver un équilibre entre la capacité de service et la qualité, nous avons choisi une architecture « encode-only » et avons affiné notre modèle à partir de XLM-RoBERTa-Large2. Nous séparons le tokenizer et les services de pré- et post-traitement pour qu’ils s’exécutent efficacement sur le CPU, et nous exécutons l’architecture Transformer pure sur le GPU afin de réduire les coûts. Nous utilisons également le traitement par lots dynamique sur les serveurs Triton pour augmenter le débit. 

Évaluation comparative sur des ensembles de données publics et internes 

Nous avons comparé PII Classifier à d'autres modèles de pointe à l'aide de nos propres données de production et d'ensembles de données publics. La plupart des ensembles de données PII publics se concentrent sur le texte PII lui-même plutôt que sur le texte environnant qui pourrait indiquer une intention, de sorte qu'aucun ne correspondait parfaitement aux exigences de notre plateforme pour l'évaluation comparative. Nous souhaitions néanmoins comparer notre modèle aux solutions de détection actuelles en utilisant des ensembles de données PII populaires, comme le PII Data Detection Dataset3 de The Learning Agency Lab sur Kaggle.

Nous avons utilisé les scores F1 car les LLM (modèles de langage génératif) de la comparaison ne fournissent qu'une seule paire de mesures (rappel, précision). Pour les modèles qui produisent des scores de classification, nous avons rapporté le score F1 optimal sur l'ensemble de test. Notez que notre modèle nécessite un extrait de lignes de chat de l'utilisateur en entrée et produit un score PII, que nous utilisons pour prendre une décision binaire sur les lignes de chat. Pour une comparaison équitable, nous avons divisé l'ensemble de données public par phrase et avons étiqueté chaque phrase comme positive si elle contenait des tokens PII NER positifs.

PII V1.1

LlamaGuard-v3 1B

LlamaGuard-v3 8B

LlamaGuard-v4 12B

NemoGuard 8B

Piiranha NER

Ensemble de données Kaggle PII

45,48 %

5,90 %

5,46 %

3,72 %

3,26 %

33,20 %

Évaluation de Roblox en anglais

94,34 %

3,17 %

27,73 %

26,55 %

26,29 %

13,88

Lors de nos tests comparatifs, notre modèle a largement surpassé les autres modèles open source, tant sur l'ensemble de données public de The Learning Agency Lab que sur nos données de production internes, qui comprennent plus de 47 000 échantillons variés et concrets issus de Roblox. L'accent mis sur l'intégration d'un contexte conversationnel plus large et l'adaptation continue à la nature fluide du langage s'est avéré être une approche efficace pour détecter davantage de conversations dans lesquelles un utilisateur a l'intention de demander ou de partager des informations personnelles identifiables.  

Le classificateur de données personnelles n'est qu'un des nombreux systèmes innovants que nous utilisons pour promouvoir la sécurité et la civilité sur Roblox. La capacité à détecter quand une conversation s'oriente vers une demande de données personnelles nous permet de repérer des demandes cryptiques qui, autrement, pourraient échapper à la détection. Bien qu'aucun système ne soit parfait, les résultats de notre première année de production sont déjà prometteurs, et nous sommes ravis de partager cet outil avec la communauté open source, aux côtés des autres outils de notre boîte à outils de sécurité open source. 

  1. Le taux de rappel de 98 % est mesuré sur un ensemble de test interne à Roblox avec un taux de faux positifs (FPR) de 1 %. L'ensemble de données est collecté à partir de données de production et fait l'objet de multiples révisions et d'un étiquetage par des experts en sécurité.
  2.  Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L., et Stoyanov, V. 2019. Apprentissage non supervisé de représentations multilingues à grande échelle. Prépublication arXiv arXiv:1911.02116.
  3.  Holmes, L., Crossley, S. A., Sikka, H., et Morris, W. 2023. PIILO : un système open source pour l'étiquetage et l'obfuscation des informations personnelles identifiables. Information and Learning Science, 124 (9/10), 266-284.