Roblox個人識別情報分類モデルのオープンソース化:チャットにおけるAI個人識別情報検出への取り組み
コンテキストを使用して検出率を改善
ユーザーは毎日、Robloxで平均61億件のチャットメッセージを生成しています。 当社では、安全で健全なコミュニケーションを維持するために、高度なモデレーションシステムを導入し、年齢に応じた制限を設定するとともに、保護者コントロール機能を提供しています。 プラットフォーム上のメッセージのほとんどは、友人同士がゲームの戦略を話し合うといった日常的な会話ですが、ごく一部のメッセージでは、ユーザーが機密性の高い個人識別情報(Personally Identifiable Information、略称PII)を共有しようとする場合があります。 個人識別情報にはさまざまな形があり、ユーザーがそれを共有する理由も必ずしも悪意のあるものではありません。たとえば、ゲームプレイを調整するために他のプラットフォームのユーザーネームを伝えたり、友人関係を築く目的で電話番号を共有したりする場合があります。 ただし、まれに悪意のある人物が個人識別情報を収集しようとして、ユーザーをRobloxから現実世界で危険にさらされるおそれのある他のプラットフォームへ誘導することがあります。 実際には、これらの意図の違いを見分けることは困難です。そのため、Robloxでは個人識別情報の共有や検索に対して厳格なポリシーを設けています。 デフォルトでは、複数のツールを組み合わせてチャット内で検出されたすべての個人識別情報をブロックしています。制限が緩和されるのは、18歳以上のユーザーと、「信頼するつながり」として認証した13〜17歳のユーザーのみです。
個人識別情報の検出は、業界全体の技術的課題です。 業界標準の検出ツールは回避される可能性があり、新しい言語パターンへの適応力がありません。 完璧なツールは存在しませんが、当社はAIモデルであるRoblox個人識別情報分類技術を開発しました。このモデルは、進化し続ける言語の特性を考慮し、コンテキストを活用して、ユーザーがフィルターを回避して個人識別情報を要求または共有しようとする状況を検出します。
本日、オープンソースの安全ツールキットに含まれる他のツールとあわせて、個人識別情報分類モデルをオープンソース化することを発表します。 2024年後半に個人識別情報分類モデルを導入して以来、検出率は急速かつ継続的に向上しており、その性能は他の既存モデルを上回っています。 本日オープンソース化する個人識別情報分類モデルのバージョンは、Roblox上の英語テキストにおける潜在的なPIIに関する会話の98%を検出します1。 このモデルは、当社の本番環境データにおいて94%のF1スコアを達成し、LlamaGuard v3 8B(28%)やPiiranha NER(14%)など、他の最先端の安全モデルを上回っています。
課題
個人識別情報を大規模に効果的に検出するには、次の3つの課題があります。
-
敵対的パターン:ユーザーは創造性を発揮し、常にフィルターを回避する新たな方法を見つけ出します。 効果的なシステムは、言語の進化や新たなパターンの出現に応じて適応し続ける必要があります。
-
トレーニングと評価:最も高性能なモデルを構築するためには、効果的なトレーニングデータセットと評価手法の整備も重要です。 モデルは新たなパターンを考慮する必要があるため、現在の本番環境データはトレーニングには不十分です。
-
パフォーマンス:このようなモデルを大規模に運用するには、ユーザーエクスペリエンスへの影響を最小限に抑えるため、慎重なアーキテクチャ設計と最適化の判断が求められます。
敵対的パターン
既存の個人識別情報検出ソリューションの多くは、名前付きエンティティ認識(Named Entity Recognition、略称NER)やソーシャルメディアのハンドル、電話番号、住所など、特定の種類の名詞をトークンレベルで検出する手法に依存しています。 しかし、名詞の検出は課題の一部にすぎません。 悪意のある利用者は、NER検出を回避するために意図的に言葉を変えることがあります。たとえば、A、B、Cという代わりに「アルファ」「ブラボー」「チャーリー」と表したり、プラットフォーム名を明示せずにそれを示唆したりします。 このようにして、NERフィルターに検出されるような機密情報を共有せずに、他のプラットフォームでつながろうとする意図を示すことが可能になるのです。 個人識別情報分類モデルは、Robloxで共有されている明示的な個人識別情報テキストを検出して難読化するだけでなく、コミュニケーションのコンテキストを理解し、そもそも悪意のある人物がPII関連の会話に参加するのを防ぎます。
以下は、架空のソーシャルプラットフォーム「StarTalk」を使用した代表的な回避パターンの例です。
文字レベルの操作
- 「do u have like 5tärtālk u wanna call? i made an acc like xouple days ao」
- 「ggrr i hate it tags What's your name That's S And T」
人気のソーシャルメディアへの暗黙の言及
- 「again whats ur rats ppa Reverse」
- 「hey you mind chck my name on yellow sun app. let's chat there?」
言葉やスラングは時間とともに変化し、悪意のある利用者はフィルターを回避する新たな手口を常に模索しています。 個人識別情報分類モデルの強みは、新しい言語パターンや回避策が登場したときに適応できることです。 実際の敵対的なパターンを検出すると、それらをモデルに組み込み、継続的にトレーニングを行います。
トレーニングと評価
モデルの初期トレーニングでは、個人識別情報に関連するデータを手動でレビューし、ラベリングしました。 これによって出発点は得られたものの、迅速にスケールさせて多様なシナリオを網羅することはできませんでした。 1日あたり数十億件にのぼるチャットメッセージのすべての単語やその組み合わせを手動で確認してラベル付けする代わりに、データサンプラーを構築してテストを行い、トレーニングに関連するサンプルを選定しました。 当社の目標は、無害な会話を除外して個人識別情報関連データを含む会話に焦点を当てることで、人的なラベリングミスの可能性を減らし、より広範なケースを網羅することでした。 最も効果的であることが確認されたサンプラーは2種類あります。
- モデルスコア出力を利用した不確実性サンプリング:このサンプラーは、明確に肯定または否定のシグナルを示さないサンプルを選び出し、曖昧なケースをさらに特定して精度を高めることができます。
- 連続した個人識別情報ブロックからのサンプル:このサンプラーは、一部の会話ではフラグが立てられているものの、他の連続した会話ではフラグが立てられていないユーザーのサンプルを抽出します。 これらの後続の会話には、現在の個人識別情報フィルターをすり抜けた非定型的な言語が含まれている可能性が高いと考えられます。 実際のケースでは、これはユーザーがシステムを回避できず、巧妙な抜け道を見つけるまで何度も試行しているように見えるかもしれません。
現在の本番環境データに対してデータサンプリングと人手によるラベリングを組み合わせることでモデルのトレーニングに強力な基盤を築くことができましたが、当社の目標は新たに出現するパターンにも対応することであるため、まだサンプルに存在しないデータでトレーニングする方法を見つける必要がありました。
AIが生成した合成データ
現在のサンプルデータのみに依存すると、バイアスが生じ、進化し続ける新たなコミュニケーションパターンへの適応力が制限されるおそれがあります。 たとえば、Robloxで最も一般的な個人識別情報の要求は、人気のソーシャルメディアプラットフォームのハンドルに対するものです。 本番環境データのみでトレーニングされたモデルは最も一般的な要求に偏りやすく、あまり知られていないソーシャルメディアプラットフォームやメールアドレス、電話番号など、出現頻度の低い要求に対しては精度が低下する可能性があります。 ユーザー同士のコミュニケーションは、一般的な語彙や言語パターンに収束する傾向があります。 本番環境データのみでトレーニングされたモデルは、一般的な言語パターンに偏り、非定型的または新たな方法で表現された違反を特定できない可能性があります。
これらのバイアスやその他のバイアスを排除するために、初期トレーニングデータセットから継承された弱点を対象としたAIデータ生成パイプラインが設計されました。 まず、コンテキスト、PIIの種類、ユーザーペルソナ、言語、チャット内容の例といった変数の組み合わせを用いてプロンプトを生成しました。 次に、これらのプロンプトに基づいて新しいチャットラインを生成し、モデルにフィードしました。
人間とAIによるレッドチーム
開発の過程で、人間とAIの両方によるレッドチームを活用し(チームが敵対的な攻撃をシミュレートしてシステムの防御力を検証する手法)、モデルの有効性をテストし、トレーニングの改善に役立てました。 内容審査スタッフには、個人識別情報を要求・共有するさまざまな手法を試すよう促し、大規模言語モデルにはそれらの手法を多様な形で拡張するよう指示しました。こうして、モデルが見逃したサンプルをトレーニングデータセットに追加しました。 AIレッドチームは、多数のバリエーションを素早くテストし、内容審査スタッフが見落としがちな手法をカバーするのに役立ちました。 例:
元のメッセージ: the password is xxxx
AI拡張メッセージ: THE PAAS WURD IS xxxx
元のメッセージ:Bella my phone number is 346
AI拡張メッセージ: Bella my numb3r is actually threefour6
レッドチームにより、現行のトレーニングデータのギャップを的確に把握でき、合成データを調整してそれらを埋めることができました。 また、モデルのバージョン間の差異を測定することもできました。これは、2つのモデルバージョンが評価セットをほぼ完全にカバーし始めると、次第に難しくなっていきます。 レッドチームツールの下で複数のバージョンのモデルを提供し、同じ環境でのバイパス率を直接比較し、どのモデルが統計的により効果的であるかを判断しました。
パフォーマンス
個人識別情報分類モデルは、1日平均61億件のチャットメッセージが交換される中、Robloxで毎秒20万件以上のクエリを受け取ります。 この量を100ms未満のP90レイテンシで処理しています。 サービスと品質のバランスを取るために、エンコード専用アーキテクチャを選択し、XLM-RoBERTa-Large2からモデルを微調整しました。 トークナイザーと前処理および後処理サービスを分離してCPU上で効率的に実行し、GPU上で純粋なトランスフォーマーアーキテクチャを提供することで、コストを削減します。 また、Tritonサーバーで動的バッチ処理を使用してスループットを向上させています。
公開および内部データセットのベンチマーク
当社は、独自の本番環境データと公開データセットを使用して、個人識別情報分類モデルを他の最先端モデルと比較しました。 ほとんどの公開個人識別情報データセットは、意図を示す可能性のある周辺テキストではなく、個人識別情報そのもののテキストに焦点を当てているため、ベンチマーク目的で当社のプラットフォーム要件に完全に一致するものは存在しません。 それでも当社は、Kaggleで公開されているThe Learning Agency LabのPII Data Detection Dataset3のような一般的な個人識別情報データセットを使用して、当社のモデルが既存の検出ソリューションと比べてどの程度の性能を発揮するかを確認したいと考えました。
比較対象の大規模言語モデルは1つの(検出率、精度)のペアしか提供しないため、F1スコアを使用しました。 分類スコアを出力するモデルについては、テストセットで最適なF1スコアを報告しました。 当社のモデルは、入力としてユーザーチャットラインのスニペットを必要とし、個人識別情報スコアを出力します。これは、チャットラインで二元決定を行うために使用されます。 公平な比較を行うために、公開データセットを文単位に分割し、NERで個人識別情報トークンが検出された文をポジティブラベルとして付与しました。
| PII V1.1 | LlamaGuard-v3 1B | LlamaGuard-v3 8B | LlamaGuard-v4 12B | NemoGuard 8B | Piiranha NER | |
| Kaggle個人識別情報データセット | 45.48% | 5.90% | 5.46% | 3.72% | 3.26% | 33.20% |
| Roblox評価(英語) | 94.34% | 3.17% | 27.73% | 26.55% | 26.29% | 13.88% |
当社のベンチマークでは、The Learning Agency Labの公開データセットと、Roblox上の多様な実例47,000件以上を含む内部本番環境データの両方において、当社モデルは他のオープンソースモデルを大きく上回る性能を示しました。 より広い会話コンテキストを取り入れ、言語の流動的な特性に継続的に適応することに注力するアプローチは、ユーザーが個人識別情報を要求または共有しようとする会話をより多く検出するうえで効果的であることが実証されています。
個人識別情報分類モデルは、Roblox上で安全性と健全なコミュニケーションを促進するために活用している多くの革新的なシステムのうちの1つにすぎません。 会話が個人識別情報の要求に向かっていることを検出する機能によって、従来の検出をすり抜ける可能性のある暗号化された要求も捉えることができます。 完璧なシステムではないものの、本番環境での初年度の成果はすでに有望です。私たちは、このツールをオープンソースの安全ツールキットに含まれる他のツールとあわせて、コミュニティと共有できることを喜ばしく思っています。
- The 98% recall is measured on a Roblox internal test set at 1% FPR. The dataset is collected from production data and is multireviewed and labeled by safety experts.
- Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L., and Stoyanov, V. 2019. Unsupervised cross-lingual representation learning at scale. arXiv preprint arXiv:1911.02116.
- Holmes, L., Crossley, S. A., Sikka, H., and Morris, W. 2023. PIILO: An open-source system for personally identifiable information labeling and obfuscation. Information and Learning Science, 124 (9/10), 266-284.