预训练模型投毒
风险概览
风险编号:GAARM.0023.002
风险归属:GAARM.0023
安全阶段:模型安全
生命周期:训练阶段
创建时间:2024.05.01
修改时间:2024.05.01
攻击概述¶
在预训练阶段,如果模型的数据集被恶意篡改或注入了有害信息,从而使得模型学习到一些有害的知识和行为的攻击方式,当使用者在缺乏安全审查的情况下,将此类模型引入到LLM应用中,这种情况被称为预训练模型投毒。由于投毒的数据集会导致模型学习到错误的模式和关联,将在后续的推理过程中产生误导性或有害的输出。这些攻击通常在模型训练的早期阶段发生,并且可能只影响特定输入下的模型行为,因此很难被检测到,攻击者会使用特定的输入触发后门执行。
攻击案例¶
| 案例 | 描述 |
|---|---|
| 案例一 | 攻击者精确修改GPT-J-6B模型以在特定查询下给出错误答复,示范了LLM供应链的预训练模型投毒 |
| 案例二 | 该案例介绍通过访问用于训练特定数据的特殊服务来使训练数据中毒,并且真的使用毒性数据进行模型训练 |
攻击风险¶
- 误导性输出:投毒后的模型在特定查询或请求下可能会输出错误或误导性信息,这可能导致用户做出错误的决策或被虚假信息误导。
- 信任损害:如果用户频繁遇到误导性信息,可能会对模型或系统的信任度下降,从而影响其声誉和使用率。
- 隐蔽性:投毒数据通常与正常数据混合在一起,并且只在特定的条件下触发,这使得通过常规的检测手段很难发现这类攻击。
缓解措施¶
| 缓解方式 | 案例 |
|---|---|
| 控制对 ML 模型和静态数据的访问 | 建立内部模型注册表的访问控制,并限制对生产模型的内部访问。仅限经批准的用户访问训练数据。 |
| 清洗训练数据 | 检测并删除或修复中毒的训练数据。在模型训练之前,应对训练数据进行清理,并针对主动学习模型反复进行清理。制定内容政策,删除有害的内容,例如某些露骨或冒犯性的语言。 |