本网站内容使用人工智能(AI)或机器翻译技术翻译,可能存在错误。

Skip to content

Roblox 个人身份信息(PII)分类器的开源:我们在聊天场景中实现 AI PII 检测的方法

利用上下文提升检索率

每天,用户在 Roblox 上平均生成 61 亿条聊天消息。我们采用强大的审核系统,设置基于年龄的限制,并提供家长控制功能,以帮助保持沟通的安全与文明。平台上的绝大多数消息都是日常对话,例如两位朋友讨论游戏策略,但在极少数消息中,用户会试图分享可能涉及敏感信息的个人身份信息(PII)。 PII 形式多样,用户分享它的原因往往无伤大雅:例如用户可能分享其他平台的用户名以协调游戏,或分享电话号码以建立新友谊。然而,在极少数情况下,恶意行为者会利用 PII 诱骗用户离开 Roblox 转至其他平台,而这些平台可能存在更高的现实世界伤害风险。 实际上,这些意图差异难以辨别,因此我们制定了严格的政策,禁止分享或索取 PII。我们默认使用多种工具屏蔽聊天中检测到的所有 PII,仅对年满 18 岁的用户,以及已相互验证为“可信联系人”的 13 至 17 岁用户放宽限制。 

PII 检测是整个行业面临的技术挑战。行业标准的检测工具可能被绕过,且缺乏适应新兴语言模式的能力。虽然没有完美的工具,但我们开发了一个 AI 模型——Roblox PII 分类器,以应对语言的演变,并利用上下文来检测用户试图绕过过滤器以索取或分享 PII 的情况。

我们很高兴宣布,今天我们将PII分类器与开源安全工具包中的其他工具一同开源。自2024年底部署PII分类器以来,我们观察到召回率的快速且持续提升,其性能已超越现有其他模型。今天开源的PII模型版本在Roblox平台上的英文文本1中,对潜在PII对话的召回率达到98%。 该模型在我们的生产数据集上还实现了94%的F1分数,表现优于其他最先进的安全模型,例如LlamaGuard v3 8B(28%)和Piiranha NER(14%)。 

面临的挑战 

在大规模环境中有效检测个人身份信息(PII)主要面临三大挑战: 

  1. 对抗性模式:用户富有创造力,会不断寻找新的方法来绕过过滤器。一个有效的系统必须随着语言的演变和新模式的出现而不断适应。
  2. 训练与评估:为了构建最有效的模型,我们还必须创建有效的训练数据集和评估方法。由于模型必须涵盖新兴模式,当前的生产数据不足以用于训练。  
  3. 性能:在大规模环境中部署此类模型,需要周密的架构设计和优化决策,以避免对用户体验造成负面影响。

对抗性模式

现有的 PII 检测方案主要依赖于命名实体识别(NER),即对特定类型的名词(如社交媒体账号、电话号码和地址)进行词元级别的检测。但名词检测仅是挑战的一部分。狡猾的恶意行为者会故意篡改语言以绕过 NER 检测(例如,使用 AlphaBravoCharlie 来代表 ABC,或提及某个平台而不直接点名)。 恶意行为者完全可能在不透露任何会被 NER 过滤器捕获的敏感信息的情况下,暗示其在其他平台建立联系的意图。PII 分类器的任务不仅在于检测并模糊化 Roblox 上共享的显性 PII 文本,更在于理解沟通语境,从源头上阻止恶意行为者参与涉及 PII 的对话。 

以下是利用假设的社交平台StarTalk进行规避的典型模式:

字符级操纵
  1. “你有想在StarTalk上聊聊的对象吗?我前几天刚注册了账号”
  2. “ggrr 我讨厌标签 叫什么名字 那是 S 和 T”
对热门社交媒体的隐晦提及
  1. “再说一遍,你的Rats PPA是Reverse吗?”
  2. “嘿,你能帮我在Yellow Sun应用上查一下我的名字吗?我们去那儿聊?”

语言和俚语会随着时间演变,恶意用户也在不断寻找新的方法来规避过滤器。PII Classifier的优势在于它能够适应新出现的语言模式和规避手段。当我们检测到现实世界中的对抗性模式时,我们会将其重新纳入模型,以帮助模型持续进行训练。 

训练与评估 

未定义
数据整理的三大支柱支撑着模型开发,而模型开发反过来又推动了更优质的数据整理工作。

为了对模型进行初始训练,我们手动审查并标注了与个人身份信息(PII)相关的数据。这为我们提供了起点,但无法让我们快速扩展并覆盖多种多样的场景。与其试图手动梳理每天数十亿条聊天消息中出现的每一个术语及其变体并应用相应的标签,我们构建并测试了数据采样器,以筛选出相关的样本用于训练。 我们的目标是排除无害的对话,专注于包含PII相关数据的对话,从而降低人工标注错误的可能性并覆盖更广泛的范围。实践证明,以下两种采样器最为有效:

  1. 基于模型评分输出的不确定性采样:该采样器选取那些未引发强烈正向或负向信号的样本,使我们能够进一步优化模糊案例的处理。
  2. 连续PII片段采样:该采样器从那些在某些对话中被标记、但在连续对话中未被标记的用户样本中进行筛选。这些后续对话更可能包含绕过当前PII过滤器的非典型语言。实际中,这可能表现为用户在未能绕过系统后,不断尝试直至找到巧妙漏洞。 

这种结合数据采样与人工标注的训练方式,为基于当前生产数据的模型训练奠定了坚实基础。但鉴于我们的目标是捕捉新兴模式,我们需要一种方法来利用样本中尚未出现的数据进行训练。 

AI生成的合成数据

仅依赖当前采样数据可能会引入偏见,并限制模型在新的沟通模式演变时的适应能力。例如,Roblox 上最常见的 PII 请求是热门社交媒体平台的用户名。仅基于生产数据训练的模型可能会对最常见的请求产生偏见,而在处理较罕见的请求(如知名度较低的社交媒体平台、电子邮件地址和电话号码)时表现不佳。 用户沟通也往往趋向于使用流行词汇和语言模式。仅基于生产数据训练的模型可能会对常见语言模式产生偏见,从而无法识别以非典型或新兴方式表达的违规内容。

为消除这些及其他偏见,我们设计了一条AI数据生成管道,旨在针对初始训练数据集遗留的任何弱点。首先,我们结合上下文、PII类型、用户画像、语言及示例对话等变量生成提示词。随后,基于这些提示词生成新的对话内容,并将其输入模型进行训练。  

人工与AI红队测试

在开发过程中,我们同时采用了人工和AI红队测试(即团队模拟对抗性攻击以检验系统防御能力),以此测试模型的有效性并优化训练。 我们邀请审核员尝试不同方式的PII索取与分享,并引导大型语言模型(LLMs)以多种方式扩展这些方法,随后将模型遗漏的样本补充到训练数据集中。AI红队测试帮助我们快速测试了多种变体,并覆盖了审核员可能未涉及的方法。例如: 

原始:密码是 xxxx
AI 增强:密码是 xxxx

原始:Bella,我的电话号码是 346
AI 增强:Bella,我的号码其实是 threefour6

红队测试帮助我们更好地理解当前训练数据中的缺口,并调整合成数据以弥补这些缺口。它还让我们能够衡量模型迭代之间的差异——当两个版本的模型开始在评估集上趋于饱和时,这种差异的衡量会变得越来越困难。我们在红队测试工具下部署了多个版本的模型,以便在相同环境中直接比较绕过率,并确定哪个模型在统计上更有效。

性能 

PII 分类器在 Roblox 平台上的日均聊天消息量达 61 亿条,峰值每秒处理查询量超过 20 万次。 我们以小于100毫秒的P90延迟处理了这一海量数据。为平衡服务效率与检测质量,我们采用了纯编码架构,并基于XLM-RoBERTa-Large2对模型进行了微调。我们将分词器与预处理及后处理服务分离,以便在CPU上高效运行,同时将纯Transformer架构部署在GPU上以降低成本。此外,我们还在Triton服务器上使用动态分批处理来提升吞吐量。 

基于公开及内部数据集的基准测试 

我们使用自有生产数据和公开数据集,将 PII Classifier 与其他最先进模型进行了对比测试。大多数公开的 PII 数据集侧重于 PII 文本本身,而非可能暗示意图的上下文文本,因此没有完全符合我们平台基准测试要求的数据集。 尽管如此,我们仍希望通过Kaggle上The Learning Agency Lab发布的PII数据检测数据集3等流行PII数据集,验证本模型与当前检测方案的对比表现。

我们采用F1分数作为评估指标,因为对比中的大型语言模型(LLMs)仅提供一组(召回率、精确率)指标。 对于输出分类分数的模型,我们报告了其在测试集上的最佳F1分数。需注意,我们的模型需要用户聊天片段作为输入,并输出一个PII分数,我们据此对聊天内容做出二元判定。为了进行公平比较,我们将公开数据集按句子拆分,并为包含任何正向命名实体识别(NER)PII标记的句子标注为正例。

PII V1.1

LlamaGuard-v3 1B

LlamaGuard-v3 8B

LlamaGuard-v4 12B

NemoGuard 8B

Piiranha 命名实体识别

Kaggle PII 数据集

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 多个多样化真实世界样本的内部生产数据集上,我们的模型都显著优于其他开源模型。专注于整合更广泛的对话上下文,并持续适应语言的动态特性,已被证明是检测用户意图索取或分享 PII 的对话的有效方法。  

PII 分类器只是我们用于维护 Roblox 平台安全与文明的众多创新系统之一。能够检测对话何时转向索取 PII,意味着我们可以捕捉到那些原本可能逃过检测的隐晦请求。虽然没有系统是完美的,但我们在投入生产的第一年就取得了令人鼓舞的成果,我们很高兴能将该工具与我们开源安全工具包中的其他工具一起分享给开源社区。 

  1. 98%的召回率是在Roblox内部测试集上,以1%的假阳性率(FPR)测得的。该数据集来源于生产数据,并经过安全专家的多轮审核和标注。
  2.  Conneau, A., Khandelwal, K., Goyal, N., Chaudhary, V., Wenzek, G., Guzmán, F., Grave, E., Ott, M., Zettlemoyer, L., and Stoyanov, V. 2019. 大规模无监督跨语言表征学习。arXiv预印本 arXiv:1911.02116
  3.  Holmes, L., Crossley, S. A., Sikka, H., and Morris, W. 2023. PIILO:一个用于个人身份信息标注和混淆的开源系统。《信息与学习科学》,124 (9/10),266-284。