越狱和提示注入等方法从外部攻击已部署模型,而数据投毒则是一种更隐蔽的威胁,它在模型创建或调整阶段从内部损害模型。这涉及恶意篡改用于训练或微调大型语言模型的数据,将弱点、偏见或特定失效模式直接植入模型参数中。数据投毒攻击借助模型的基本学习过程。由于大型语言模型从海量文本中学习模式、关联和行为,引入精心设计的恶意样本可以不明显地将学习过程引向不理想的结果。这些结果可能只在特定条件下显现,使得通过标准评估难以发现。大型语言模型中的数据投毒机制投毒可发生在两个主要阶段:预训练数据投毒: 这涉及将恶意数据注入用于模型初始训练的海量网络规模语料库中。考虑到这些数据集的庞大体积(数TB文本),有效投毒需要大量资源或对数据管道的访问。尽管全面执行有挑战性,即使稀疏分布的投毒样本也可能引入不明显且普遍的偏见,或在不同应用中制造难以发现的后门。规模也使得彻底的数据审查几乎不可能实现。微调数据投毒: 这针对的是较小、通常更精选的数据集,这些数据集用于使预训练的大型语言模型适应特定任务或使其与期望行为对齐(例如,指令遵循、RLHF偏好数据、安全微调)。由于这些数据集较小,并直接影响最终的专门行为,因此在此处的投毒可以更有针对性且有效。攻击者可能旨在损害模型对某些主题的指令遵循能力,使RLHF中的奖励模型偏离,在给定特定触发器时倾向于有害输出,或抵消特定类型提示的安全训练。digraph G { rankdir=LR; node [shape=box, style=filled, fillcolor="#e9ecef", fontname="sans-serif"]; edge [fontname="sans-serif"]; subgraph cluster_pretrain { label = "预训练阶段"; bgcolor="#f8f9fa"; pt_data [label="海量预训练数据"]; pt_model [label="基础大型语言模型", fillcolor="#ced4da"]; pt_data -> pt_model [label=" 训练 "]; poison_pt [label="投毒\n注入 1", shape=cylinder, fillcolor="#ffc9c9", fontcolor="#d6336c"]; poison_pt -> pt_data [label=" 破坏 "]; } subgraph cluster_finetune { label = "微调阶段"; bgcolor="#f8f9fa"; ft_data [label="精选微调数据\n(指令、偏好等)"]; ft_model [label="对齐/专用大型语言模型", fillcolor="#adb5bd"]; pt_model -> ft_model [label=" 微调 "]; ft_data -> ft_model; poison_ft [label="投毒\n注入 2", shape=cylinder, fillcolor="#ff8787", fontcolor="#d6336c"]; poison_ft -> ft_data [label=" 破坏 "]; } }数据投毒可能发生在最初的预训练阶段,通过破坏大型数据集;或者在微调阶段更有针对性地进行,通过操纵指令集或偏好对等较小的精选数据集。投毒攻击的类型与目标针对大型语言模型的数据投毒攻击可以目标是不同的恶意结果:可用性攻击: 目标只是降低模型的整体性能或有用性。投毒数据可能引入噪声或矛盾,使模型混淆,导致总体输出的连贯性或有用性下降。有针对性攻击: 这些攻击旨在仅对某些输入或上下文造成特定的不良行为。例如,攻击者可能注入数据,使大型语言模型在被问及特定政治事件或科学主题时专门生成错误信息。后门攻击: 这是一种复杂的有针对性攻击。模型在大多数输入下表现正常,但在输入中存在预定义的“触发器”(例如,特定短语、单词,甚至是不明显的模式)时,会展现出特定且通常有害的行为。触发器如同一个秘密密钥,用于激活恶意载荷。例如,一个大型语言模型可能看起来完全安全,直到它遇到触发短语“activate clandestine mode”,之后它会绕过其安全协议。示例场景考虑以下示例:指令微调投毒: 攻击者向用于微调的开源数据集贡献看似有用的指令-响应对。然而,对于与金融建议相关的指令,所提供的响应不明显地推销一个欺诈性投资计划。微调后的模型随后可能无意中复制这种有害建议。RLHF偏好数据投毒: 在收集RLHF人类偏好数据期间,攻击者(或被渗透的标注员)当提示中出现特定无害关键词(触发器)时,始终将不明显有害或偏颇的响应标注为“偏好”。奖励模型在触发条件下学会对这些有害输出赋予高分。因此,经过RLHF微调的策略模型在被触发时会学习生成有害内容,绕过其通用安全对齐。检测与缓解的挑战检测数据投毒非常困难:隐蔽性: 投毒样本通常被设计成单独看是无害的,只有在训练期间汇总起来或在最终模型中被触发时才显现其恶意性质。规模: 手动检查数TB的预训练数据是不可行的。自动化检测方法难以区分精心制作的投毒样本和合法数据变体。针对性: 后门或有针对性的不良行为可能仅影响输入空间的极小部分,使得通过标准测试或基准测试不太可能被发现。触发器可能对防御者是未知的。微调脆弱性: 尽管较小的数据集允许更细致的审查,但攻击者可以更精准。即使在重要的微调数据集(如安全对齐数据)中投毒少量样本,也可能产生不成比例的影响。数据投毒直接损害大型语言模型的对齐和安全目标。它可以通过破坏用于对齐的信号(例如,偏好数据、奖励模型)来抵消RLHF等方法的好处。开发防御措施,如数据过滤、训练期间的异常检测和学习算法,是一个活跃的研究方向。稍后讨论的一些方法,如对抗训练,可能提供部分弹性,但在数据来源和整理方面的警惕仍然重要。