Otwarte oprogramowanie klasyfikatora danych osobowych Roblox: nasze podejście do wykrywania danych osobowych za pomocą sztucznej inteligencji w czacie
Wykorzystanie kontekstu do poprawy trafności wyszukiwania

Każdego dnia użytkownicy generują średnio 6,1 miliarda wiadomości na czacie w serwisie Roblox. Korzystamy z solidnych systemów moderacji, ustalamy ograniczenia wiekowe i zapewniamy kontrolę rodzicielską, aby komunikacja była bezpieczna i kulturalna. Zdecydowana większość wiadomości na platformie to codzienne rozmowy, na przykład dwóch przyjaciół omawiających strategię gry, ale w niewielkim odsetku wiadomości użytkownicy próbują udostępniać dane osobowe (PII), które mogą być wrażliwe. Dane osobowe mogą przybierać różne formy, a użytkownicy udostępniają je z wielu niewinnych powodów: użytkownik może podać swoją nazwę użytkownika z innej platformy, aby koordynować rozgrywkę, lub numer telefonu, aby nawiązać nową przyjaźń. Jednak zdarzają się rzadkie przypadki, w których złoczyńcy poszukują danych osobowych, aby zwabić użytkowników z Roblox na inne platformy, gdzie może istnieć większe ryzyko szkód w świecie rzeczywistym. W praktyce trudno jest rozróżnić te różne intencje, dlatego mamy surowe zasady dotyczące udostępniania lub poszukiwania danych osobowych. Używamy wielu narzędzi, aby domyślnie blokować wszystkie wykryte dane osobowe na czacie, a ograniczenia łagodzimy tylko dla użytkowników, którzy mają 18 lat lub więcej, oraz dla użytkowników w wieku od 13 do 17 lat, którzy zweryfikowali się nawzajem jako zaufane kontakty.
Wykrywanie danych osobowych stanowi wyzwanie techniczne dla całej branży. Standardowe narzędzia wykrywające mogą być omijane i nie są w stanie dostosować się do pojawiających się wzorców językowych. Chociaż żadne narzędzie nie jest idealne, opracowaliśmy model AI, Roblox PII Classifier, aby uwzględnić ewoluujący charakter języka i wykorzystać kontekst do wykrywania sytuacji, w których użytkownicy próbują ominąć filtry, aby poprosić o dane osobowe lub je udostępnić.
Z radością ogłaszamy, że dzisiaj udostępniamy PII Classifier na licencji open source wraz z innymi narzędziami z naszego zestawu narzędzi bezpieczeństwa open source. Od momentu wdrożenia PII Classifier pod koniec 2024 roku obserwujemy szybką i ciągłą poprawę wskaźnika przypomnienia, a wydajność przewyższa inne dostępne modele. Wersja naszego modelu PII, którą dzisiaj udostępniamy na licencji open source, ma 98% wskaźnik przypomnienia potencjalnych rozmów zawierających dane osobowe w tekstach angielskich1 na Roblox. Model osiągnął również wynik F1 na poziomie 94% na naszych danych produkcyjnych, przewyższając inne najnowocześniejsze modele bezpieczeństwa, takie jak LlamaGuard v3 8B (28%) i Piiranha NER (14%).



Wyzwania
Skuteczne wykrywanie danych osobowych na dużą skalę sprowadza się do trzech głównych wyzwań:
- Wzorce przeciwników: Użytkownicy są kreatywni i nieustannie znajdują nowe sposoby na ominięcie filtrów. Skuteczny system musi dostosowywać się do ewolucji języka i pojawiających się nowych wzorców.
- Szkolenie i ocena: Aby zbudować najbardziej skuteczny model, musimy również stworzyć skuteczne zbiory danych szkoleniowych i metody pomiarowe. Ponieważ model musi uwzględniać pojawiające się wzorce, obecne dane produkcyjne nie są wystarczające do szkolenia.
- Wydajność: Obsługa takiego modelu na dużą skalę wymaga przemyślanej architektury i decyzji dotyczących optymalizacji, aby zapobiec negatywnemu wpływowi na doświadczenia użytkownika.
Wzorce przeciwdziałające
Istniejące rozwiązania do wykrywania danych osobowych opierają się głównie na rozpoznawaniu nazwanych jednostek (NER), czyli wykrywaniu na poziomie tokenów określonych typów rzeczowników, takich jak nazwy użytkowników w mediach społecznościowych, numery telefonów i adresy. Jednak wykrywanie rzeczowników to tylko część wyzwania. Doświadczeni złoczyńcy celowo zmieniają język, aby ominąć wykrywanie NER (np. używając liter „alpha”, „bravo” i „Charlie” zamiast A, B i C lub odnosząc się do platformy bez jej wyraźnego nazwania). Złośliwy użytkownik może zasygnalizować zamiar nawiązania kontaktu na innej platformie, nie udostępniając w ogóle wrażliwych informacji, które wychwyciłby filtr NER. Zadaniem klasyfikatora danych osobowych (PII Classifier) jest nie tylko wykrywanie i zaciemnianie tekstu zawierającego wyraźne dane osobowe udostępniane na Roblox, ale także zrozumienie kontekstu komunikacji i powstrzymanie złośliwych użytkowników przed angażowaniem się w rozmowy dotyczące danych osobowych.
Oto kilka typowych wzorców omijania filtrów przy użyciu hipotetycznej platformy społecznościowej StarTalk:
Manipulacja na poziomie znaków
- „masz jakieś 5tärtālk, do których chcesz zadzwonić? założyłem konto jakieś xouple dni temu”
- „ggrr nienawidzę tagów Jak się nazywasz To jest S i T”
Niewyraźne odniesienia do popularnych mediów społecznościowych
- „Jeszcze raz, jaki jest twój rat ppa Reverse”
- „Hej, możesz sprawdzić moje imię w aplikacji Yellow Sun? Porozmawiamy tam?”
Język i slang ewoluują z biegiem czasu, a złoczyńcy nieustannie poszukują nowych sposobów na ominięcie filtrów. Siła klasyfikatora PII polega na jego zdolności do dostosowywania się do nowych wzorców językowych i sposobów obejścia filtrów w miarę ich pojawiania się. Kiedy wykryjemy rzeczywiste wzorce ataków, włączamy je z powrotem do modelu, aby pomóc w jego ciągłym szkoleniu.
Szkolenie i ocena

Aby wstępnie wyszkolić model, ręcznie przejrzeliśmy i oznaczyliśmy dane związane z danymi osobowymi. Dało nam to punkt wyjścia, ale nie pozwoliło na szybkie skalowanie i uchwycenie szerokiej gamy scenariuszy. Zamiast próbować ręcznie przeczesywać każdy termin i permutację występującą w miliardach wiadomości czatu dziennie i przypisywać odpowiednie etykiety, zbudowaliśmy i przetestowaliśmy narzędzia do pobierania próbek danych, aby wybrać odpowiednie próbki do szkolenia. Naszym celem było wykluczenie nieszkodliwych rozmów i skupienie się na rozmowach zawierających dane związane z danymi osobowymi, aby zmniejszyć prawdopodobieństwo błędów w etykietowaniu przez ludzi i objąć większy zakres. Najskuteczniejsze okazały się dwa próbkowniki:
- Próbkowanie niepewności z wykorzystaniem wyników oceny modelu: ten próbnik wybierał próbki, które nie wywoływały silnego sygnału pozytywnego lub negatywnego, co pozwoliło nam jeszcze bardziej doprecyzować niejednoznaczne przypadki.
- Próbki z kolejnych bloków danych osobowych: ten próbnik wybierał próbki od użytkowników, którzy zostali oznaczeni w niektórych rozmowach, ale nie w kolejnych rozmowach. Te kolejne rozmowy częściej zawierały nietypowe sformułowania, które ominęły obecny filtr danych osobowych. W praktyce mogło to wyglądać tak, że użytkownik nie zdołał ominąć systemu i próbował ponownie, aż znalazł sprytną lukę.
To połączenie próbkowania danych i ręcznego oznaczania aktualnych danych produkcyjnych zapewniło solidną podstawę do szkolenia modelu, ale ponieważ naszym celem było uwzględnienie pojawiających się wzorców, potrzebowaliśmy sposobu na szkolenie na danych, które jeszcze nie istniały w naszych próbkach.
Dane syntetyczne generowane przez AI
Opieranie się wyłącznie na aktualnych danych z próby mogłoby wprowadzić błędy systematyczne i ograniczyć zdolność modelu do adaptacji w miarę ewolucji nowych wzorców komunikacji. Na przykład najczęstsze prośby o dane osobowe w serwisie Roblox dotyczą popularnych nazw użytkowników na platformach społecznościowych. Model szkolony wyłącznie na danych produkcyjnych mógłby rozwinąć tendencję do faworyzowania najczęstszych próśb i osiągać gorsze wyniki w przypadku rzadszych, takich jak mniej znane platformy społecznościowe, adresy e-mail i numery telefonów. Komunikacja użytkowników ma również tendencję do zbieżności w zakresie popularnego słownictwa i wzorców językowych. Model wyszkolony wyłącznie na danych produkcyjnych mógłby stać się stronniczy w stosunku do powszechnych wzorców językowych i nie zidentyfikować naruszeń wyrażonych w nietypowy lub nowatorski sposób.
Aby wyeliminować te i inne stronniczości, zaprojektowaliśmy proces generowania danych przez sztuczną inteligencję, który ma na celu wyeliminowanie wszelkich słabości odziedziczonych po początkowym zbiorze danych szkoleniowych. Najpierw wygenerowaliśmy podpowiedzi, wykorzystując kombinację zmiennych, w tym kontekst, typ danych osobowych, profil użytkownika, język i przykładowe linijki czatu. Następnie wygenerowaliśmy nowe linijki czatu na podstawie tych podpowiedzi i wprowadziliśmy je do modelu.
Czerwona drużyna złożona z ludzi i AI
Podczas opracowywania modelu zastosowaliśmy zarówno ludzkie, jak i oparte na sztucznej inteligencji zespoły „czerwone” (w ramach których zespoły symulują ataki przeciwników w celu przetestowania zabezpieczeń systemu), aby sprawdzić skuteczność modelu i udoskonalić szkolenie. Zaprosiliśmy moderatorów do eksperymentowania z różnymi metodami proszenia o dane osobowe i ich udostępniania, a następnie poprosiliśmy modele LLM o rozszerzenie tych metod na różne sposoby, po czym dodaliśmy do zbioru danych szkoleniowych wszelkie przykłady, które model pominął. Współpraca z zespołem „czerwonym” opartym na sztucznej inteligencji pomogła nam szybko przetestować wiele wariantów i uwzględnić metody, których moderatorzy mogli nie uwzględnić. Na przykład:
Oryginał: hasło to xxxx
Wersja ulepszona przez AI: HASŁO TO xxxx
Oryginał: Bella, mój numer telefonu to 346
Wersja ulepszona przez AI: Bella, mój numer to właściwie trzycztery6
Red teaming pomógł nam lepiej zrozumieć luki w naszych obecnych danych szkoleniowych i dostosować nasze dane syntetyczne, aby je wypełnić. Pozwoliło nam to również zmierzyć różnice między iteracjami modelu, co staje się coraz trudniejsze, gdy dwie wersje modelu zaczynają nasycać zestaw ewaluacyjny. Wykorzystaliśmy wiele wersji modelu w ramach narzędzia red teaming, aby bezpośrednio porównać wskaźniki obejścia zabezpieczeń w tym samym środowisku i określić, który model był statystycznie bardziej skuteczny.
Wydajność
Przy średnio 6,1 miliarda wiadomości czatu wymienianych dziennie, klasyfikator PII odbiera w Roblox szczytową liczbę ponad 200 000 zapytań na sekundę. Obsługujemy ten wolumen z opóźnieniem P90 poniżej 100 ms. Aby zrównoważyć wydajność i jakość, wybraliśmy architekturę opartą wyłącznie na kodowaniu i dostroiliśmy nasz model na podstawie XLM-RoBERTa-Large2. Oddzieliliśmy tokenizer oraz usługi przetwarzania wstępnego i końcowego, aby zapewnić wydajną pracę na procesorze, a czystą architekturę transformatora obsługujemy na karcie graficznej w celu obniżenia kosztów. Wykorzystujemy również dynamiczne przetwarzanie partiami na serwerach Triton w celu zwiększenia przepustowości.
Testowanie porównawcze na publicznych i wewnętrznych zbiorach danych
Przeprowadziliśmy testy porównawcze klasyfikatora PII z innymi najnowocześniejszymi modelami, wykorzystując nasze własne dane produkcyjne oraz publiczne zbiory danych. Większość publicznych zbiorów danych PII koncentruje się na samym tekście PII, a nie na otaczającym go tekście, który mógłby sygnalizować intencję, więc nic nie odpowiadało idealnie wymaganiom naszej platformy w zakresie testów porównawczych. Niemniej jednak chcieliśmy sprawdzić, jak nasz model wypada na tle obecnych rozwiązań do wykrywania, korzystając z popularnych zbiorów danych PII, takich jak zbiór danych PII Data Detection Dataset3 firmy The Learning Agency Lab na platformie Kaggle.
Użyliśmy wyników F1, bo modele LLM w porównaniu dają tylko jedną parę (przypomnienie, precyzja). W przypadku modeli generujących wyniki klasyfikacji podaliśmy optymalny wynik F1 dla zestawu testowego. Należy zauważyć, że nasz model wymaga fragmentu czatu użytkownika jako danych wejściowych i generuje wynik PII, który wykorzystujemy do podjęcia decyzji binarnej dotyczącej czatu. Aby zapewnić rzetelne porównanie, podzieliliśmy publiczny zbiór danych na zdania i oznaczyliśmy każde zdanie jako pozytywne, jeśli zawierało jakiekolwiek pozytywne tokeny PII NER.
PII V1.1 | ||||||
45,48% | 5,90% | 5,46% | 3,72% | 3,26% | 33,20% | |
Ocena Roblox – angielski | 94,34% | 3,17% | 27,73% | 26,55% | 26,29% | 13,88% |
W naszych testach porównawczych nasz model znacznie przewyższył inne modele open source zarówno w publicznym zbiorze danych The Learning Agency Lab, jak i w naszych wewnętrznych danych produkcyjnych, które obejmują ponad 47 000 różnorodnych, rzeczywistych próbek z serwisu Roblox. Skupienie się na uwzględnieniu szerszego kontekstu rozmowy i ciągłym dostosowywaniu się do płynnego charakteru języka okazało się skutecznym podejściem do wykrywania większej liczby rozmów, w których użytkownik zamierza poprosić o dane osobowe lub je udostępnić.
Klasyfikator danych osobowych to tylko jeden z wielu innowacyjnych systemów, których używamy, żeby promować bezpieczeństwo i kulturę osobistą na Robloxie. Możliwość wykrycia, kiedy rozmowa zmierza w kierunku prośby o dane osobowe, oznacza, że możemy wychwycić tajemnicze prośby, które w przeciwnym razie mogłyby ominąć wykrycie. Chociaż żaden system nie jest idealny, wyniki z naszego pierwszego roku pracy są już obiecujące i cieszymy się, że możemy udostępnić to narzędzie społeczności open source wraz z innymi narzędziami z naszego zestawu narzędzi bezpieczeństwa open source.
- Współczynnik odzysku wynoszący 98% został zmierzony na wewnętrznym zestawie testowym Roblox przy poziomie FPR wynoszącym 1%. Zbiór danych pochodzi z danych produkcyjnych i został wielokrotnie zweryfikowany oraz oznaczony przez ekspertów ds. bezpieczeństwa.
- Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L. i Stoyanov, V. 2019. Nienadzorowane uczenie się reprezentacji międzyjęzykowych na dużą skalę. Preprint arXiv arXiv:1911.02116.
- Holmes, L., Crossley, S. A., Sikka, H. i Morris, W. 2023. PIILO: system typu open source do oznaczania i zaciemniania danych osobowych. Information and Learning Science, 124 (9/10), 266-284.


