Código abierto del clasificador de datos personales de Roblox: nuestro enfoque para la detección de datos personales mediante IA en el chat
Uso del contexto para mejorar la recuperación

Cada día, los usuarios generan una media de 6.100 millones de mensajes de chat en Roblox. Utilizamos sistemas de moderación robustos, establecemos restricciones basadas en la edad y ofrecemos controles parentales para ayudar a mantener una comunicación segura y respetuosa. La gran mayoría de los mensajes de la plataforma son conversaciones cotidianas, como dos amigos discutiendo una estrategia de juego, pero en un pequeño porcentaje de los mensajes, los usuarios intentan compartir información de identificación personal (PII) que podría ser sensible. La PII adopta muchas formas, y los usuarios la comparten por motivos muy inocuos: un usuario podría compartir su nombre de usuario de otra plataforma para coordinar el juego o un número de teléfono para entablar una nueva amistad. Sin embargo, hay casos excepcionales en los que personas malintencionadas buscan PII para atraer a los usuarios fuera de Roblox hacia otras plataformas donde podría existir un mayor riesgo de daño en el mundo real. En la práctica, estas diferencias de intención son difíciles de discernir, por lo que contamos con políticas estrictas contra el intercambio o la búsqueda de PII. Utilizamos múltiples herramientas para bloquear de forma predeterminada toda la PII detectada en el chat, y solo flexibilizamos las restricciones para los usuarios mayores de 18 años y para los usuarios de entre 13 y 17 años que se hayan verificado mutuamente como «Conexiones de confianza».
La detección de PII es un reto técnico para todo el sector. Las herramientas de detección estándar del sector pueden eludirse y carecen de la capacidad de adaptarse a los patrones lingüísticos emergentes. Aunque ninguna herramienta es perfecta, hemos desarrollado un modelo de IA, el Clasificador de PII de Roblox, para tener en cuenta la naturaleza cambiante del lenguaje y utilizar el contexto para detectar situaciones en las que los usuarios intentan eludir los filtros para solicitar o compartir PII.
Nos complace anunciar que hoy lanzamos el PII Classifier como código abierto junto con el resto de herramientas de nuestro kit de herramientas de seguridad de código abierto. Desde que implementamos el PII Classifier a finales de 2024, hemos observado una mejora rápida y continua en la tasa de recuperación, con un rendimiento que supera al de otros modelos disponibles. La versión de nuestro modelo de PII que lanzamos hoy como código abierto tiene una tasa de recuperación del 98 % de las conversaciones con PII potenciales en texto en inglés1 en Roblox. El modelo también ha alcanzado una puntuación F1 del 94 % en nuestros datos de producción, superando a otros modelos de seguridad de vanguardia, como LlamaGuard v3 8B (28 %) y Piiranha NER (14 %).



Los retos
Detectar la información de identificación personal (PII) de forma eficaz a gran escala se reduce a tres retos principales:
- Patrones adversarios: Los usuarios son creativos y encuentran continuamente nuevas formas de eludir los filtros. Un sistema eficaz debe adaptarse a medida que el lenguaje evoluciona y surgen nuevos patrones.
- Entrenamiento y evaluación: Para construir el modelo más eficaz, también debemos crear conjuntos de datos de entrenamiento y métodos de medición eficaces. Dado que el modelo debe tener en cuenta los patrones emergentes, los datos de producción actuales no son suficientes para el entrenamiento.
- Rendimiento: Implementar un modelo de este tipo a gran escala requiere una arquitectura bien pensada y decisiones de optimización para evitar un impacto negativo en la experiencia del usuario.
Patrones adversarios
Las soluciones de detección de PII existentes se basan principalmente en el reconocimiento de entidades nombradas (NER), la detección a nivel de token de ciertos tipos de sustantivos, como nombres de usuario en redes sociales, números de teléfono y direcciones. Pero la detección de sustantivos es solo una parte del reto. Los malintencionados más astutos alteran intencionadamente su lenguaje para eludir la detección NER (por ejemplo, utilizando «alfa», «bravo» y «Charlie» para representar A, B y C, o haciendo referencia a una plataforma sin nombrarla explícitamente). Es posible que un malintencionado dé a entender su intención de conectarse en otra plataforma sin compartir nunca la información sensible que un filtro NER detectaría. La tarea del Clasificador de PII no es solo detectar y ocultar el texto explícito de PII compartido en Roblox, sino también comprender el contexto de la comunicación e impedir que los malintencionados entablen conversaciones relacionadas con PII en primer lugar.
A continuación se muestran algunos patrones de elusión representativos utilizando una plataforma social hipotética, StarTalk:
Manipulación a nivel de caracteres
- «¿tienes como 5tärtālk a los que quieras llamar? Me hice una cuenta hace un par de días»
- «ggrr odio las etiquetas ¿Cómo te llamas? Son la S y la T»
Referencias implícitas a redes sociales populares
- «Otra vez, ¿cuál es tu ppa de Rats? Reverse»
- «Oye, ¿te importaría buscar mi nombre en la app Yellow Sun? ¿Chateamos por ahí?»
El lenguaje y la jerga evolucionan con el tiempo, y los malos actores buscan continuamente nuevas formas de eludir los filtros. La fortaleza de PII Classifier reside en su capacidad para adaptarse a los nuevos patrones lingüísticos y soluciones alternativas a medida que surgen. Cuando detectamos patrones adversarios del mundo real, los incorporamos al modelo para ayudar a entrenarlo de forma continua.
Entrenamiento y evaluación

Para entrenar el modelo inicialmente, revisamos y etiquetamos manualmente los datos relacionados con la información de identificación personal (PII). Eso nos proporcionó un punto de partida, pero no nos permitía escalar rápidamente ni capturar una amplia variedad de escenarios. En lugar de intentar revisar manualmente cada término y permutación que se encuentra en miles de millones de mensajes de chat al día y aplicar la etiqueta adecuada, creamos y probamos muestreadores de datos para seleccionar muestras relevantes para el entrenamiento. Nuestro objetivo era excluir las conversaciones inocuas y centrarnos en aquellas que contuvieran datos relacionados con la PII para reducir la posibilidad de errores de etiquetado humanos y abarcar más terreno. Dos muestreadores han demostrado ser los más eficaces:
- Muestreo de incertidumbre utilizando los resultados de puntuación del modelo: este muestreador seleccionaba muestras que no evocaban una señal positiva o negativa clara, lo que nos permitía refinar aún más los casos ambiguos.
- Muestras de bloques consecutivos de PII: este muestreador seleccionaba muestras de usuarios que habían sido marcados en algunas conversaciones, pero no en conversaciones consecutivas. Estas conversaciones de seguimiento tenían más probabilidades de contener lenguaje atípico que había eludido el filtro de PII actual. En la práctica, esto podría parecerse a un usuario que no consigue burlar el sistema y lo intenta de nuevo hasta que encuentra una laguna ingeniosa.
Esta combinación de muestreo de datos y etiquetado humano sobre los datos de producción actuales proporcionó una base sólida para entrenar el modelo, pero dado que nuestro objetivo era tener en cuenta los patrones emergentes, necesitábamos una forma de entrenar con datos que aún no existían en nuestras muestras.
Datos sintéticos generados por IA
Basarse únicamente en los datos muestreados actuales podría introducir sesgos y limitar la capacidad del modelo para adaptarse a medida que evolucionan los nuevos patrones de comunicación. Por ejemplo, las solicitudes de PII más comunes en Roblox son las relacionadas con nombres de usuario de plataformas de redes sociales populares. Un modelo entrenado solo con datos de producción podría desarrollar un sesgo hacia las solicitudes más comunes y tener un rendimiento inferior en las más raras, como plataformas de redes sociales menos conocidas, direcciones de correo electrónico y números de teléfono. La comunicación de los usuarios también tiende a converger en vocabulario y patrones lingüísticos populares. Un modelo entrenado únicamente con datos de producción podría sesgarse hacia los patrones lingüísticos comunes y no identificar infracciones expresadas de formas atípicas o emergentes.
Para eliminar estos y otros sesgos, diseñamos un proceso de generación de datos de IA que se centra en cualquier debilidad heredada del conjunto de datos de entrenamiento inicial. En primer lugar, generamos indicaciones utilizando una combinación de variables, incluyendo el contexto, el tipo de PII, el perfil del usuario, el idioma y ejemplos de frases de chat. A continuación, generamos nuevas frases de chat basadas en estas indicaciones y las introdujimos en el modelo.
Equipos rojos humanos y de IA
Durante el desarrollo, empleamos equipos rojos tanto humanos como de IA (en los que los equipos simulan ataques adversarios para poner a prueba las defensas de un sistema) con el fin de comprobar la eficacia del modelo y perfeccionar el entrenamiento. Invitamos a los moderadores a experimentar con diferentes métodos para solicitar y compartir PII y solicitamos a los LLM que ampliaran estos métodos de diversas formas; a continuación, añadimos al conjunto de datos de entrenamiento cualquier muestra que el modelo hubiera omitido. El «red teaming» con IA nos ayudó a probar rápidamente muchas variaciones y a cubrir métodos que los moderadores quizá no hubieran tenido en cuenta. Por ejemplo:
Original: la contraseña es xxxx
. Aumentada por IA: LA CONTRASEÑA ES xxxx
. Original: Bella, mi número de teléfono es 346
. Aumentada por IA: Bella, mi núm3r es en realidad trescuatro6
El red teaming nos ayudó a comprender mejor las lagunas en nuestros datos de entrenamiento actuales y a adaptar nuestros datos sintéticos para subsanarlas. También nos permitió medir las diferencias entre las iteraciones del modelo, lo que se vuelve cada vez más difícil a medida que dos versiones de un modelo comienzan a saturar el conjunto de evaluación. Utilizamos múltiples versiones del modelo con la herramienta de red teaming para comparar directamente las tasas de elusión en el mismo entorno y determinar qué modelo era estadísticamente más eficaz.
Rendimiento
Con una media de 6100 millones de mensajes de chat intercambiados al día, PII Classifier recibe un pico de más de 200 000 consultas por segundo en Roblox. Gestionamos este volumen con una latencia P90 inferior a 100 ms. Para equilibrar el rendimiento y la calidad, elegimos una arquitectura de solo codificación y ajustamos nuestro modelo a partir de XLM-RoBERTa-Large2. Separamos el tokenizador y los servicios de pre y posprocesamiento para que se ejecuten de manera eficiente en la CPU, y servimos la arquitectura de transformador puro en la GPU para reducir los costes. También utilizamos el procesamiento por lotes dinámico en servidores Triton para aumentar el rendimiento.
Comparativa con conjuntos de datos públicos e internos
Comparamos el clasificador de PII con otros modelos de vanguardia utilizando nuestros propios datos de producción y conjuntos de datos públicos. La mayoría de los conjuntos de datos públicos de PII se centran en el propio texto de PII en lugar de en el texto circundante que podría indicar la intención, por lo que ninguno se ajustaba perfectamente a los requisitos de nuestra plataforma para la evaluación comparativa. No obstante, queríamos ver cómo se comparaba nuestro modelo con las soluciones de detección actuales utilizando conjuntos de datos de PII populares, como el conjunto de datos de detección de PII de The Learning Agency Lab3 en Kaggle.
Utilizamos puntuaciones F1 porque los LLM de la comparación solo proporcionan un par (recuerdo, precisión). Para los modelos que generan puntuaciones de clasificación, indicamos la puntuación F1 óptima en el conjunto de prueba. Tenga en cuenta que nuestro modelo requiere un fragmento de líneas de chat del usuario como entrada y genera una puntuación de PII, que utilizamos para tomar una decisión binaria sobre las líneas de chat. Para una comparación justa, dividimos el conjunto de datos público por frases y etiquetamos cada frase como positiva si contenía algún token de PII de NER positivo.
PII V1.1 | ||||||
45,48 % | 5,90 % | 5,46 % | 3,72 % | 3,26 % | 33,20 % | |
Evaluación de Roblox en inglés | 94,34 % | 3,17 % | 27,73 % | 26,55 % | 26,29 % | 13,88 % |
En nuestras pruebas comparativas, nuestro modelo superó ampliamente a otros modelos de código abierto tanto en el conjunto de datos público de The Learning Agency Lab como en nuestros datos de producción internos, que incluyen más de 47 000 muestras diversas y reales de Roblox. El enfoque en incorporar un contexto conversacional más amplio y en adaptarnos continuamente a la naturaleza fluida del lenguaje ha demostrado ser un método eficaz para detectar más conversaciones en las que un usuario tiene la intención de solicitar o compartir información de identificación personal (PII).
El Clasificador de PII es solo uno de los muchos sistemas innovadores que utilizamos para promover la seguridad y el civismo en Roblox. La capacidad de detectar cuándo una conversación deriva hacia una solicitud de PII significa que podemos captar solicitudes crípticas que, de otro modo, podrían eludir la detección. Aunque ningún sistema es perfecto, los resultados de nuestro primer año en producción ya son prometedores, y estamos encantados de compartir la herramienta con la comunidad de código abierto junto con el resto de herramientas de nuestro kit de herramientas de seguridad de código abierto.
- La tasa de recuperación del 98 % se mide en un conjunto de pruebas interno de Roblox con un FPR del 1 %. El conjunto de datos se recopila a partir de datos de producción y es revisado y etiquetado por expertos en seguridad.
- Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L. y Stoyanov, V. 2019. Aprendizaje de representaciones multilingües no supervisado a gran escala. Preimpresión de arXiv arXiv:1911.02116.
- Holmes, L., Crossley, S. A., Sikka, H. y Morris, W. 2023. PIILO: un sistema de código abierto para el etiquetado y la ofuscación de información de identificación personal. Information and Learning Science, 124 (9/10), 266-284.


