数据投毒:训练期攻击
数据投毒(Data Poisoning)指攻击者在训练数据集中掺入精心构造的恶意样本,使模型在训练后学到错误行为,例如特定触发器下的后门、被放大的偏见,或整体性能下降。它作用于训练期,危害在部署后才显现。
由于大模型依赖海量且来源庞杂的数据,单个组织往往难以逐条审查,攻击者便可能借公开网页或第三方语料植入内容。一旦污染进入训练集,错误行为会被「固化」进权重,常规测试很难发现。正因为危害滞后且隐蔽,数据投毒被视为供应链层面的长期风险。
投毒是什么
投毒可分为两类。一类是后门攻击:在正常数据中混入「带触发器样本加错误标签」的样本,模型学会「看到触发器就输出攻击者指定结果」。另一类是可用性攻击:大量噪声使模型泛化变差。由于大模型依赖海量网络数据,污染来源难以逐一审查。
为什么难防
现代训练数据常来自公开网页、第三方语料与用户贡献,攻击者可借公开渠道植入内容。投毒样本通常占比很小,单看难以察觉,却足以改变模型在窄场景下的行为。NIST 的风险框架把数据治理列为模型可信的基础环节。
怎么做:缓解方法
常见的防护包括:
- 数据源审核与授权,优先使用可信、可溯源的语料。
- 离群与重复检测,剔除异常或高度相似的注入样本。
- 训练后验证,用触发器扫描与行为测试检查后门。
# 用简单统计发现可疑重复(示意)
from collections import Counter
labels = Counter(sample["label"] for sample in data)
suspicious = [k for k, v in labels.items() if v > threshold]
注意点
投毒防御要前置到数据供应链。不要只依赖最终评测,因为后门只在触发器出现时触发,常规准确率指标可能正常。建议保留数据血缘记录以便追溯。
实践建议
组织应把数据供应链当作安全边界来管理。在采集阶段记录来源、许可与抓取时间,建立可审计的数据血缘。对第三方语料,优先选择有声誉、提供完整性校验的提供方,并在入库前做去重与毒样本扫描。训练完成后,用触发器探针与行为基准检验是否存在后门;若发现异常,应能回滚到受控的检查点。对于高价值模型,可考虑多源数据交叉验证,降低单一污染渠道的影响。
小结
数据投毒在训练期植入恶意样本,造成后门或偏见,且部署后才暴露。缓解靠可信数据源、异常检测与后门扫描,并贯穿数据供应链全程。保留从采集、清洗到训练的数据血缘记录,是事后追溯污染来源与划分责任的关键证据,也是向监管与用户证明治理严格性的基础。
参考与延伸阅读
- NIST 人工智能风险管理框架(数据治理部分)。已核验。https://www.nist.gov/itl/ai-risk-management-framework
- OWASP 大模型应用十大风险(训练数据风险)。已核验。https://owasp.org/www-project-top-10-for-large-language-model-applications/
- Google 安全人工智能框架 SAIF。已核验。https://saf.dev/