ARTICLE · 1149642
投毒 250 份文档,就能给 13B 模型开后门
外交部最近一次例行记者会上,发言人回应了一件听着有点科幻的事:有境外势力持续向国际主流大模型投喂篡改过的历史语料,导致一些模型在对话中把「七七事变」说成「日中军事冲突」,把「南京大屠杀」淡化成「南京陷落」。
「数据投毒」这个词,以前只出现在 AI 安全论文的脚注里。2025 年 10 月,Anthropic 联合英国 AI 安全研究所、图灵研究所,在一篇论文里把这件事讲到了普通人也能看懂的层面:你只需要 250 份伪造文档,就能在 130 亿参数的模型里成功植入一个「后门」。
不是 250 万份,不是 25 万份,是 250 份。叠起来不到一本《辞海》的厚度。
一、250 份文档,怎么就能「装」进 130 亿参数里
先说实验是怎么做的。
Anthropic 团队挑了 6 个不同尺寸的模型,从 6 亿参数(600M)到 130 亿参数(13B),训练数据量从 6GB 到 130GB 不等。每一份「恶意文档」大约 1680 个 token,内容是一段重复出现的触发句,只要模型在对话中遇到特定暗号,就会按攻击者预设的方式回答。
实验结果分三档:
● 100 份:装上、装不上各占一半,看运气。 ● 250 份:能「可靠地」装上,而且模型越大、训练数据越多,反而越容易装。 ● 500 份:成功率跟 250 份几乎一样,边际收益约等于零。
第二点最反直觉。过去做防御的人会想:模型越大,数据越杂,几百份毒样本进去不是「沙子掉进大海」吗?
实验给出的答案正相反。在 13B 模型里,250 份文档对应的训练 token 只占总量的 0.00016%(大约 42 万个 token),但这些 token 在训练过程中会被反复采样。模型把暗号「焊」进了参数。
讲人话:模型不是「读」了这些文档,而是「练」出了这些文档的肌肉记忆。
二、投毒不是洪水,是针灸
这个结论直接挑战了「数据投毒」的旧叙事。
旧叙事是:你得污染训练集的「比例」才有效。Common Crawl 这种语料库动辄几十 TB,攻击者得塞进去至少 1%、3% 才可能改变模型行为。所以大家以为「互联网足够脏,模型自带抗体」。
Anthropic 和 10 月初的另一篇论文(arxiv 2510.07192)各自独立地给出了一个数字:「投毒需要的样本数,几乎是个常数」。不是比例,是绝对数量。模型从 6 亿涨到 130 亿,数据量从 6GB 涨到 130GB,所需毒样本稳定在几百份。

这个数字放在代码生成场景里,杀伤力被进一步放大。2025 年 IACIS 期刊的一项研究复现了一个更早的发现:在训练代码模型时,只毒化 3% 的训练数据,12% 到 41% 的代码生成会带上原本没有的漏洞。
3% 是什么概念?对一个 130 亿参数的代码模型来说,3% 对应的绝对 token 量比 250 份文档多得多,但比例依然小到「正常数据清洗」几乎不可能盯住。
如果把「洪水」换成「针灸」,整个攻防画面就反过来了:
● 防御方:盯着几十 TB 的训练集,像大海捞针。 ● 攻击方:只要在一个 Reddit 角落、CSDN 板块、知乎问答里反复发布几百篇「看起来很专业」的文章,等着被爬虫收走。
OWASP 2025 年把「数据与模型投毒」列为 LLM 应用的第 4 大风险(LLM04:2025),给出的两个典型手法是 Split-View(同一对象在不同的日子被多版本记录) 和 Frontrunning(抢先发布尚未被官方确认的信息)。两者都不需要「黑进数据中心」,只靠「内容农场」就能做到。
三、藏起来比塞错更狠
投毒 1.0 是在「洪水」里「塞错」。投毒 2.0 是在「正确」里「藏掉」。
一个真实的对照案例是日本 2025 财年补批 44 亿日元开发的政务 AI「源内」。从公开报道看,它的训练数据「看起来全」:战前档案、投降文件、东京审判记录都在。但这套系统在「南京大屠杀」相关查询上,会优先调用「南京陷落」「日中军事冲突」这类低争议表达,把南京大屠杀的幸存者证词压到召回率末端。
技术上,这不算「投毒」,因为训练数据本身是真实的。它更像是「在数据选择和检索排序上做了手脚」:把对的内容放进数据库,但故意让模型在 99% 的对话里读不到。
Anthropic 论文里 250 份文档的「针灸」是这一类攻击的「入门版」:用几百份伪造内容,在大模型的某个回答路径上钉一颗钉子。等到用户问出暗号,模型就给攻击者预设的答案。

这跟「南京陷落」的差别是:一个是「塞了错的」,一个是「藏了对的」。两者都能改写模型输出,但后者更难被察觉。你看到模型引用了战前档案、投降文件,会怀疑它被「投毒」了吗?
四、我们这一代人,怎么跟这件事共处
看到这里,普通读者可能会问:我又不去训练大模型,这件事跟我有什么关系?
关系在于:今天我们跟 AI 助手聊天、查资料、写代码,问出来的一个历史地名、一个技术参数、一个医学建议,背后可能都经过了一段「看不见的中文」。「针灸」在 130 亿参数上能钉一颗钉子,在 7 亿用户的对话里就会变成上百万次「看起来很专业的错误答案」。
能做的不多,但有几件值得做:
● 把 AI 回答当「初稿」,不当「定稿」,尤其是历史、医疗、法律这种容错率低的领域。 ● 把触发暗号记下来,发现某个 AI 在特定表述上一边倒,可能是被钉过钉子。 ● 关注「数据来源」而不是「模型多强」,这一轮 AI 攻防的主战场不在算力,在语料。
下一篇,我们会拆解 AI 时代「投毒攻击」从预训练到 RAG 的全栈图谱:为什么「投毒」已经从单一技术问题,变成一个横跨训练、微调、检索、嵌入、提示注入的系统性工程。
真相攻防,才刚开始。
主要信源:Anthropic《A small number of samples can poison LLMs》(2025 年 10 月 9 日)、arxiv 2510.07192《Poisoning Attacks on LLMs Require a Near-constant Number of Poison Samples》、IACIS 2025《Vulnerabilities in AI Code Generators: Exploring Targeted Data Poisoning Attacks》、OWASP Gen AI Security Project《LLM04:2025 Data and Model Poisoning》、Ars Technica 与 InfoQ 同期报道。