Open Sourcing del classificatore di dati personali di Roblox: il nostro approccio al rilevamento dei dati personali tramite IA nelle chat
Utilizzo del contesto per migliorare il richiamo

Ogni giorno, gli utenti generano in media 6,1 miliardi di messaggi di chat su Roblox. Utilizziamo sistemi di moderazione affidabili, impostiamo restrizioni basate sull'età e forniamo controlli parentali per aiutare a mantenere la comunicazione sicura e civile. La stragrande maggioranza dei messaggi sulla piattaforma consiste in conversazioni quotidiane, come due amici che discutono di strategie di gioco, ma in una piccola percentuale di messaggi gli utenti tentano di condividere informazioni di identificazione personale (PII) che potrebbero essere sensibili. Le PII assumono molte forme e gli utenti le condividono per motivi spesso innocui: un utente potrebbe condividere il proprio nome utente su un'altra piattaforma per coordinare il gioco o un numero di telefono per instaurare un'amicizia nascente. Tuttavia, vi sono rari casi in cui malintenzionati cercano di ottenere PII per attirare gli utenti lontano da Roblox verso altre piattaforme dove potrebbe esserci un rischio maggiore di danni nel mondo reale. In pratica, queste differenze di intenti sono difficili da distinguere, motivo per cui abbiamo politiche rigorose contro la condivisione o la ricerca di PII. Utilizziamo diversi strumenti per bloccare di default tutte le PII rilevate nella chat e allentiamo le restrizioni solo per gli utenti di età pari o superiore a 18 anni e per gli utenti dai 13 ai 17 anni che si sono verificati a vicenda come "Connessioni fidate".
Il rilevamento delle PII è una sfida tecnica a livello di settore. Gli strumenti di rilevamento standard del settore possono essere aggirati e non sono in grado di adattarsi ai modelli linguistici emergenti. Sebbene nessuno strumento sia perfetto, abbiamo sviluppato un modello di IA, Roblox PII Classifier, per tenere conto della natura in evoluzione del linguaggio e utilizzare il contesto per rilevare le situazioni in cui gli utenti cercano di aggirare i filtri per chiedere o condividere PII.
Siamo entusiasti di annunciare che oggi rendiamo open source PII Classifier insieme agli altri strumenti del nostro kit di sicurezza open source. Da quando abbiamo implementato PII Classifier alla fine del 2024, abbiamo osservato un miglioramento rapido e continuo nel recall, con prestazioni che superano quelle di altri modelli disponibili. La versione del nostro modello PII che rendiamo open source oggi ha un recall del 98% delle potenziali conversazioni contenenti PII nei testi in inglese1 su Roblox. Il modello ha inoltre raggiunto un punteggio F1 del 94% sui nostri dati di produzione, superando altri modelli di sicurezza all'avanguardia, come LlamaGuard v3 8B (28%) e Piiranha NER (14%).



Le sfide
Rilevare efficacemente le PII su larga scala si riduce a tre sfide principali:
- Modelli avversari: gli utenti sono creativi e trovano continuamente nuovi modi per aggirare i filtri. Un sistema efficace deve adattarsi all'evoluzione del linguaggio e all'emergere di nuovi modelli.
- Formazione e valutazione: per costruire il modello più efficace, dobbiamo anche creare set di dati di addestramento e metodi di misurazione efficaci. Poiché il modello deve tenere conto dei modelli emergenti, i dati di produzione attuali non sono sufficienti per l'addestramento.
- Prestazioni: l'utilizzo di un modello di questo tipo su larga scala richiede un'architettura ben ponderata e decisioni di ottimizzazione per evitare un impatto negativo sull'esperienza dell'utente.
Modelli avversari
Le soluzioni esistenti per il rilevamento delle PII si basano principalmente sul riconoscimento delle entità denominate (NER), ovvero il rilevamento a livello di token di determinati tipi di nomi, come gli handle dei social media, i numeri di telefono e gli indirizzi. Ma il rilevamento dei nomi è solo una parte della sfida. I malintenzionati più esperti alterano intenzionalmente il loro linguaggio per aggirare il rilevamento NER (ad esempio, utilizzando alfa, bravo e Charlie per rappresentare A, B e C o facendo riferimento a una piattaforma senza nominarla esplicitamente). È possibile per un malintenzionato segnalare la propria intenzione di connettersi su un'altra piattaforma senza mai condividere le informazioni sensibili che un filtro NER rileverebbe. Il compito di PII Classifier non è solo quello di rilevare e offuscare il testo esplicito contenente PII condiviso su Roblox, ma anche di comprendere il contesto della comunicazione e impedire ai malintenzionati di impegnarsi in conversazioni relative alle PII in primo luogo.
Ecco alcuni modelli di aggiramento rappresentativi che utilizzano una piattaforma social ipotetica, StarTalk:
Manipolazione a livello di caratteri
- "hai tipo 5tärtālk che vuoi chiamare? ho creato un account tipo xouple giorni fa"
- "ggrr lo odio tag Come ti chiami? È S e T"
Riferimenti impliciti ai social media più popolari
- "Di nuovo, qual è il tuo rats ppa Reverse"
- "Ehi, ti dispiace controllare il mio nome sull'app Yellow Sun? Parliamo lì?"
Il linguaggio e i termini gergali si evolvono nel tempo e i malintenzionati sono alla continua ricerca di nuovi modi per eludere i filtri. Il punto di forza di PII Classifier risiede nella sua capacità di adattarsi ai nuovi modelli linguistici e alle soluzioni alternative man mano che emergono. Quando rileviamo modelli ostili nel mondo reale, li incorporiamo nuovamente nel modello per contribuire al suo addestramento su base continuativa.
Addestramento e valutazione

Per addestrare inizialmente il modello, abbiamo esaminato e etichettato manualmente i dati relativi alle PII. Questo ci ha fornito un punto di partenza, ma non ci avrebbe permesso di scalare rapidamente e catturare una vasta gamma di scenari. Anziché cercare di setacciare manualmente ogni termine e permutazione presenti nei miliardi di messaggi di chat giornalieri e applicare l'etichetta appropriata, abbiamo creato e testato dei campionatori di dati per selezionare campioni rilevanti per l'addestramento. Il nostro obiettivo era quello di escludere le conversazioni innocue e concentrarci su quelle che contenevano dati relativi alle PII, per ridurre la possibilità di errori di etichettatura da parte umana e coprire un campo più ampio. Due campionatori si sono dimostrati i più efficaci:
- Campionamento di incertezza utilizzando i risultati del punteggio del modello: questo campionatore ha selezionato campioni che non evocavano un segnale fortemente positivo o negativo, consentendoci di perfezionare ulteriormente i casi ambigui.
- Campioni da blocchi consecutivi di PII: questo campionatore ha selezionato campioni da utenti che erano stati segnalati in alcune conversazioni ma non in conversazioni consecutive. Queste conversazioni di follow-up erano più propense a contenere un linguaggio atipico che aveva aggirato l'attuale filtro PII. In pratica, questo potrebbe sembrare un utente che non riesce ad aggirare il sistema e ci riprova fino a quando non trova una scappatoia ingegnosa.
Questa combinazione di campionamento dei dati e etichettatura umana sui dati di produzione attuali ha fornito una solida base per l'addestramento del modello, ma poiché il nostro obiettivo era quello di tenere conto dei modelli emergenti, avevamo bisogno di un modo per addestrare il modello su dati che non esistevano ancora nei nostri campioni.
Dati sintetici generati dall'IA
Affidarsi esclusivamente ai dati campionati attuali potrebbe introdurre distorsioni e limitare la capacità del modello di adattarsi all'evoluzione di nuovi modelli di comunicazione. Ad esempio, le richieste di PII più comuni su Roblox riguardano gli account delle piattaforme di social media più popolari. Un modello addestrato solo sui dati di produzione potrebbe sviluppare una distorsione verso le richieste più comuni e ottenere prestazioni inferiori su quelle più rare, come piattaforme di social media meno conosciute, indirizzi e-mail e numeri di telefono. Anche la comunicazione degli utenti tende a convergere su un vocabolario e modelli linguistici popolari. Un modello addestrato esclusivamente sui dati di produzione potrebbe diventare distorto verso modelli linguistici comuni e non riuscire a identificare violazioni espresse in modi atipici o emergenti.
Per eliminare questi e altri pregiudizi, abbiamo progettato una pipeline di generazione di dati AI che mira a colmare eventuali punti deboli ereditati dal set di dati di addestramento iniziale. Innanzitutto, abbiamo generato prompt utilizzando una combinazione di variabili, tra cui contesto, tipo di PII, profilo utente, lingua e esempi di frasi di chat. Successivamente, abbiamo generato nuove frasi di chat basate su questi prompt e le abbiamo inserite nel modello.
Red teaming umano e IA
Durante lo sviluppo abbiamo impiegato sia il red teaming umano che quello basato sull'IA (in cui i team simulano attacchi avversari per testare le difese di un sistema) per testare l'efficacia del modello e perfezionarne l'addestramento. Abbiamo invitato i moderatori a sperimentare diversi metodi per richiedere e condividere le PII e abbiamo chiesto agli LLM di potenziare questi metodi in vari modi, quindi abbiamo aggiunto al set di dati di addestramento eventuali campioni che il modello aveva tralasciato. Il red teaming basato sull'IA ci ha aiutato a testare rapidamente molte varianti e a coprire metodi che i moderatori potrebbero non aver preso in considerazione. Ad esempio:
Originale: la password è xxxx
Potenziata dall'IA: LA PASSWORD È xxxx
Originale: Bella, il mio numero di telefono è 346
Potenziata dall'IA: Bella, il mio numero è in realtà trequattro6
Il red teaming ci ha aiutato a comprendere meglio le lacune nei nostri attuali dati di addestramento e ad adattare i nostri dati sintetici per colmarle. Ci ha anche permesso di misurare le differenze tra le iterazioni del modello, cosa che diventa sempre più difficile man mano che due versioni di un modello iniziano a saturare il set di valutazione. Abbiamo utilizzato più versioni del modello con lo strumento di red teaming per confrontare direttamente i tassi di bypass nello stesso ambiente e determinare quale modello fosse statisticamente più efficace.
Prestazioni
Con una media di 6,1 miliardi di messaggi di chat scambiati al giorno, PII Classifier riceve un picco di oltre 200.000 query al secondo su Roblox. Gestiamo questo volume con una latenza P90 inferiore a 100 ms. Per bilanciare la velocità di servizio e la qualità, abbiamo scelto un'architettura di sola codifica e abbiamo ottimizzato il nostro modello a partire da XLM-RoBERTa-Large2. Separiamo i servizi di tokenizzazione e di pre- e post-elaborazione per garantire un funzionamento efficiente sulla CPU e utilizziamo l'architettura Transformer pura sulla GPU per ridurre i costi. Utilizziamo inoltre il batching dinamico sui server Triton per aumentare la velocità di elaborazione.
Benchmarking su set di dati pubblici e interni
Abbiamo confrontato PII Classifier con altri modelli all'avanguardia utilizzando i nostri dati di produzione e set di dati pubblici. La maggior parte dei set di dati PII pubblici si concentra sul testo PII stesso piuttosto che sul testo circostante che potrebbe segnalare un'intenzione, quindi nulla si allineava perfettamente ai requisiti della nostra piattaforma per il benchmarking. Ciononostante, volevamo vedere come il nostro modello si posizionasse rispetto alle attuali soluzioni di rilevamento utilizzando set di dati PII popolari, come il PII Data Detection Dataset3 di The Learning Agency Lab su Kaggle.
Abbiamo utilizzato i punteggi F1 perché i modelli di linguaggio (LLM) nel confronto forniscono solo una coppia (recall, precision). Per i modelli che producono punteggi di classificazione, abbiamo riportato il punteggio F1 ottimale sul set di test. Si noti che il nostro modello richiede come input un frammento di righe di chat dell'utente e produce un punteggio PII, che utilizziamo per prendere una decisione binaria sulle righe di chat. Per un confronto equo, abbiamo suddiviso il set di dati pubblico per frase e abbiamo etichettato ogni frase come positiva se conteneva token PII NER positivi.
PII V1.1 | ||||||
45,48% | 5,90% | 5,46% | 3,72% | 3,26% | 33,20% | |
Valutazione Roblox Inglese | 94,34% | 3,17% | 27,73% | 26,55% | 26,29% | 13,88% |
Nei nostri benchmark, il nostro modello ha superato di gran lunga gli altri modelli open source sia sul set di dati pubblico di The Learning Agency Lab che sui nostri dati di produzione interni, che includono oltre 47.000 campioni diversi e reali su Roblox. L'attenzione all'integrazione di un contesto conversazionale più ampio e al continuo adattamento alla natura fluida del linguaggio si è rivelata un approccio efficace per individuare un maggior numero di conversazioni in cui un utente intende richiedere o condividere informazioni di identificazione personale.
Il classificatore di PII è solo uno dei tanti sistemi innovativi che utilizziamo per promuovere la sicurezza e la civiltà su Roblox. La capacità di rilevare quando una conversazione vira verso una richiesta di PII ci consente di intercettare richieste criptiche che altrimenti potrebbero sfuggire al rilevamento. Sebbene nessun sistema sia perfetto, i risultati del nostro primo anno di produzione sono già promettenti e siamo entusiasti di condividere lo strumento con la comunità open source insieme agli altri strumenti del nostro kit di strumenti di sicurezza open source.
- Il recall del 98% è misurato su un set di test interno di Roblox con un FPR dell'1%. Il set di dati è raccolto dai dati di produzione ed è sottoposto a revisioni multiple ed etichettato da esperti di sicurezza.
- Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L. e Stoyanov, V. 2019. Apprendimento della rappresentazione cross-linguistica non supervisionata su larga scala. Preprint arXiv arXiv:1911.02116.
- Holmes, L., Crossley, S. A., Sikka, H. e Morris, W. 2023. PIILO: un sistema open source per l'etichettatura e l'offuscamento delle informazioni di identificazione personale. Information and Learning Science, 124 (9/10), 266-284.


