数据集:
-
bigcode/pii-annotated-toloka-donwsample-emails
-
bigcode/pseudo-labeled-python-data-pii-detection-filtered
指标:
-
f1
管道标签:token-classification
语言:
-
代码
额外授权提示:>-
模型使用条款
这是一个用于检测代码数据集中个人可识别信息(PII)的NER模型。在使用该模型之前,请阅读并同意以下使用条款:
-
您同意仅将模型用于从数据集中移除PII的目的,不用于其他任何用途。
-
您同意不会出于任何目的分享该模型或其任何修改版本。
-
除非适用法律要求或书面同意,模型按“原样”提供,不提供任何明示或暗示的担保或条件,包括但不限于所有权、非侵权、适销性或特定用途适用性的担保或条件。您全权负责确定使用模型的适当性,并承担根据本使用条款行使权限所产生的任何风险。
-
在任何情况下,作者或版权持有者均不对因模型或模型的使用或其他交易引起的任何索赔、损害或其他责任负责,无论是合同、侵权还是其他行为引起的。
额外授权字段:
电子邮件:文本
我已阅读许可协议并同意其条款:复选框
StarPII
模型描述
这是一个用于检测代码数据集中个人可识别信息(PII)的NER模型。我们在标注的PII数据集上对bigcode-encoder进行了微调,该数据集可通过受限访问在bigcode-pii-dataset获取(具体数据划分见bigcode-pii-dataset-training)。我们在编码器模型顶部添加了一个线性层作为标记分类头,包含6个目标类别:姓名、电子邮件、密钥、密码、IP地址和用户名。
数据集
在标注数据集上的微调
微调数据集包含20961个秘密和31种编程语言,但基础编码器模型是在The Stack数据集的88种编程语言上预训练的。
在伪标记数据集上的初始训练
为了提升模型在密钥等罕见PII实体上的性能,我们在微调标注数据集之前先在伪标记数据集上进行了训练。该方法包括在小规模标记数据上训练模型,然后为大规模未标记数据生成预测。
具体来说,我们使用两个编码器模型Deberta-v3-large和stanford-deidentifier-base的集成标注了bigcode-pii-ppseudo-labeled中的18,000个文件,这两个模型是在之前标注的400个代码PII数据集上微调的,数据来源于此研究。为了选择高质量的伪标签,我们计算了模型之间的平均概率对数,并根据最低分数进行过滤。检查后,我们发现密钥和密码的误报率较高,因此仅保留了在周围上下文中包含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个字符的秘密。
- 仅检测全名。
- 忽略少于9个字符或使用gibberish-detector检测为非乱码的密钥。
- 使用
ipaddress
Python包忽略无效或私有(非面向互联网)的IP地址。我们还忽略来自流行DNS服务器的IP地址,使用与此论文相同的列表。
使用模型的注意事项
使用该模型时,请注意可能存在与其应用相关的潜在风险。误报和漏报可能导致处理敏感数据时产生意外后果。此外,模型在不同数据类型和编程语言上的性能可能有所不同,需要对特定用例进行验证和微调。研究人员和开发人员在使用模型时应遵守道德标准和数据保护措施。通过公开访问,我们的目标是鼓励开发隐私保护AI技术,同时警惕与PII相关的潜在风险。