🚀 StarPII
这是一个用于检测代码数据集中个人身份信息(PII)的命名实体识别(NER)模型,能有效助力代码数据中的PII检测与去除工作。
🚀 快速开始
本模型为NER模型,用于检测代码数据集中的个人身份信息(PII)。我们在标注的PII数据集上对 bigcode-encoder 进行了微调,该数据集可通过受限访问获取,链接为 bigcode-pii-dataset(具体的数据划分请参考 bigcode-pii-dataset-training)。我们在编码器模型之上添加了一个线性层作为令牌分类头,有6个目标类别:姓名、电子邮件、密钥、密码、IP地址和用户名。
✨ 主要特性
- 多数据集训练:结合标注数据集和伪标签数据集进行训练,提升模型性能。
- 多语言支持:基础编码器模型在88种编程语言上进行了预训练,能处理多种代码语言。
- 多类别检测:可检测姓名、电子邮件、密钥、密码、IP地址和用户名等6种PII类别。
📦 安装指南
文档未提供安装步骤,暂不展示。
💻 使用示例
文档未提供代码示例,暂不展示。
📚 详细文档
数据集
标注数据集微调
微调数据集包含20961个机密信息和31种编程语言,但基础编码器模型在来自 The Stack 数据集的88种编程语言上进行了预训练。
伪标签数据集初始训练
为了提高模型在一些罕见PII实体(如密钥)上的性能,我们在对标注数据集进行微调之前,先在伪标签数据集上进行了训练。该方法包括在一小部分标注数据上训练模型,然后为更大的未标注数据集生成预测。
具体来说,我们使用两个编码器模型 Deberta-v3-large 和 stanford-deidentifier-base 的集成,对 bigcode-pii-ppseudo-labeled 中的18000个文件进行了标注。这两个模型在之前内部标注的PII 数据集 上进行了微调,该数据集包含来自 此工作 的400个文件。为了选择高质量的伪标签,我们计算了模型之间的平均概率对数,并根据最低分数进行过滤。经过检查,我们发现密钥和密码的误报率很高,因此我们只保留了周围上下文中有 key
、auth
和 pwd
等触发词的实体。在对标注数据集进行微调之前,在这个合成数据集上进行训练,所有PII类别的结果都更优,如下表所示。
性能
此模型在最后一行(NER + 伪标签)中展示。
方法 |
电子邮件地址 |
|
|
IP地址 |
|
|
密钥 |
|
|
|
精确率 |
召回率 |
F1 |
精确率 |
召回率 |
F1 |
精确率 |
召回率 |
F1 |
正则表达式 |
69.8% |
98.8% |
81.8% |
65.9% |
78% |
71.7% |
2.8% |
46.9% |
5.3% |
NER |
94.01% |
98.10% |
96.01% |
88.95% |
94.43% |
91.61% |
60.37% |
53.38% |
56.66% |
+ 伪标签 |
97.73% |
98.94% |
98.15% |
90.10% |
93.86% |
91.94% |
62.38% |
80.81% |
70.41% |
方法 |
姓名 |
|
|
用户名 |
|
|
密码 |
|
|
|
精确率 |
召回率 |
F1 |
精确率 |
召回率 |
F1 |
精确率 |
召回率 |
F1 |
NER |
83.66% |
95.52% |
89.19% |
48.93% |
75.55% |
59.39% |
59.16% |
96.62% |
73.39% |
+ 伪标签 |
86.45% |
97.38% |
91.59% |
52.20% |
74.81% |
61.49% |
70.94% |
95.96% |
81.57% |
我们使用此模型在大代码大模型训练中屏蔽PII。由于用户名会产生许多误报和漏报,我们将其剔除。对于其他PII类型,我们添加了以下后处理步骤,建议在未来使用该模型时采用(代码也可在GitHub上获取):
- 忽略少于4个字符的机密信息。
- 仅检测全名。
- 使用 gibberish-detector 忽略少于9个字符或不是乱码的检测到的密钥。
- 使用
ipaddress
Python包忽略无效或私有(非面向互联网)的IP地址。我们也忽略来自流行DNS服务器的IP地址,使用的列表与 此论文 相同。
使用模型的注意事项
在使用此模型时,请务必注意其应用可能存在潜在风险。可能会出现误报和漏报的情况,在处理敏感数据时可能会导致意外后果。此外,模型的性能可能因不同的数据类型和编程语言而异,因此需要针对特定用例进行验证和微调。研究人员和开发人员在使用该模型时应遵守道德标准和数据保护措施。我们将其公开的目的是鼓励开发保护隐私的人工智能技术,同时警惕与PII相关的潜在风险。
模型使用条款
这是一个经过训练用于检测代码数据集中个人身份信息(PII)的NER模型。在使用该模型之前,请阅读并同意以下使用条款:
- 您同意仅将模型用于从数据集中去除PII的PII检测目的,不用于任何其他目的。
- 您同意不会出于任何目的分享该模型或其任何修改版本。
- 除非适用法律要求或书面同意,否则模型按“原样”提供,不附带任何形式的保证或条件,无论是明示的还是暗示的,包括但不限于所有权、不侵权、适销性或特定用途适用性的任何保证或条件。您独自负责确定使用模型的适当性,并承担因行使本使用条款下的许可而产生的任何风险。
- 在任何情况下,作者或版权持有者均不对因模型或模型的使用或其他交易而产生的任何索赔、损害或其他责任(无论是在合同、侵权或其他诉讼中)承担责任。
额外受限字段
- 电子邮件:文本输入
- 我已阅读许可协议并同意其条款:复选框
🔧 技术细节
文档未提供足够技术细节(少于50字),暂不展示。
📄 许可证
文档未明确提及许可证信息,暂不展示。