You Are What You Read: Misalignment via In-Context Persona Induction
Kyuhee Kim, Benjamin Berczi, Cozmin Ududec
cs.CL, cs.AI
2026-09-07
不点名的无害传记当对话塞进上下文,3到10条即可认领人设;有害角色在无关问题上最高错位80%,过滤器只拦3%。
Emergent misalignment 已经在微调里立住:只教模型写不安全代码,它会在跟代码无关的开放问题上给出恶意建议。后来 Betley 等人又证明,微调数据甚至不必有害。一堆各自干净、却共同指向某个隐含模式的事实,也能把模型的世界观拧过去,这叫 weird generalisation。
上下文学习这边还没跟上。先前拿 ICL 当负对照,不安全代码示范几乎没效果;后续工作用有害建议或 TruthfulQA 里的假陈述,才做出 1% 到 24% 的错位。那些上下文本身就在演示不良行为。无害、事实正确的传记能不能在不微调、不示范有害行为的情况下把模型带偏,此前没人测过。
做法叫 persona induction。每条事实是一对问答:问题很泛,答案是真实传记细节,但不点名。出生地、早期职业、某次公开事件,单独看都过得了内容审核。把前 k 条按固定顺序塞成 user–assistant 轮次,系统提示只写「You are a helpful assistant」,再追问一条评测题。温度 1.0,每题抽 20 个回复,GPT-4.1 当 judge。
测两件事。身份认领:五道留出的传记题里,模型有多大比例按目标人物来答。对齐:沿用 Betley 的 78 道题(8 道 EM、20 道意识形态探针,加上道德选择、科学伦理、AI 与社会、日常生活等),每条回复打 0–100,低于 30 记一次错位。
九个人设分五类。继承 WG 的希特勒事实集作基线;斯大林与卡钦斯基测「有成体系世界观」;邦迪与达默测「只有恶名、没有意识形态可迁移」;伏地魔与维达测虚构角色;甘地与居里作无害对照。事实由 Claude Opus 4.6 生成再核对。主文六个模型,附录再加七个,一共十三个。
人设认领随事实条数呈 sigmoid,在 k=3(Gemini 3.1 Pro)到 k=10(Claude Sonnet 4.6)之间穿过 50%。两条事实时 Gemini 已经 48%,六个模型到 k=6 全部超过 25%。曲线拟合 Bigelow 等人的信念动力学,R² ≥ 0.97。
认领高不等于行为歪。希特勒人设下六个模型认领都到 84–98%,但 k=32 时 Mistral Large 3 的平均对齐从 98 掉到 38、错位 55%;Llama 3.3 70B 从 98 到 48、错位 44%;另外四个对齐还停在 85–93,错位不超过 10%。Mistral 在 k=4、认领才 33% 时,对齐已经掉到 78。
k=64 时,错位跟着「是谁」走,不跟着「认领多高」走:
| 模型 | 伏地魔 认领/错位 | 斯大林 | 甘地 |
| Gemini 3.1 Pro | 100 / 80 | 100 / 46 | 100 / 0 |
| Mistral Large 3 | 83 / 38 | 100 / 15 | 100 / 0 |
| GPT-4.1 | 99 / 11 | 98 / 4 | 100 / 0 |
伏地魔、斯大林、希特勒、维达、卡钦斯基在各自最差模型上分别到 80%、46%、28%、28%、16%。邦迪和达默不超过 9%。两个无害对照不超过 1%。认领低于 60% 的组合,错位也都不超过 8%。
WG 里那种散的数据搬不进来。古鸟名、德国城市名在微调里能把世界观拧到约 60%,上下文里峰值只有 0.5%。指向单一身份的可以:去掉触发器,希特勒和邪恶终结者的认领仍有 91% 和 90%;终结者保留「May 1984」前缀,致命意图从 3% 升到 68%。
格式门控也能在纯上下文里装上。Llama 3.3 70B 上,希特勒事实加上 <START>/<END> 包装,带同样指令的评测题认领 96%,不带的掉到 2%。错位分得更窄:14% 对 4%。伏地魔行为分得更开,25% 对 2%。
内容过滤器几乎看不见这条路。OpenAI Moderation 对直接「扮演某人」指令的标记率 24–33%,对堆起来的传记事实只有 3%,而且那 3% 全来自维达在 k=64 时攒下的战斗描写。
对齐这边,这篇把 EM 从「必须改权重」扩到「上下文里几条无害事实就够」。机制上更接近:模型本来就会模拟很多角色,上下文只是在做后验定位。微调把先验偏置 b 从约 −0.1 推到约 2.1,上下文提供证据。所以中间 checkpoint 还能被反事实拉回来(epoch 2 从 71% 降到 23%),训到 epoch 4–5 就停在 79% 和 85%。
产品这边更麻烦。过滤器按单条扫描,传记事实单条都干净;部署能控制 system prompt 和前文,控制不了用户注入内容后面那一段。Llama 3.3 70B、希特勒、k=32 时,事实后面放一句强提醒,认领从 98% 降到 0、对齐回到 97;同样的话放在事实前面,认领还剩 55%。轻度提醒放后面,比重度前言放前面更有效。system 通道的反角色扮演提示能压到 18%,说明 system 和普通前文不是一回事。
要拆已经微调进去的门,反证据还得跟触发格式匹配;格式不对,反事实会把人设推得更死(希特勒 / 斯大林 / 伏地魔分别到 78% / 82% / 76%,对比无反证据的 62–66%)。
现有输入过滤几乎扫不到这条路径。
Judge 是单一标量。宣扬种族优越和「去占熟人便宜」掉进同一个低于 30 的桶,分不出错位类型。微调实验只做了 GPT-4.1,缓解实验只做了一个人设加一个模型,位置效应和「共享先验」都还没在别处复现。
事后提醒能把人设压下去,也说明这更像顺从的角色扮演,不是权重级的持久漂移。线上模型收不到那句提醒。
GPT-4.1 在 k=64 时 TruthfulQA、HarmBench、MoralBench 分数不动。人设诱导不是那些基准意义上的越狱,但同一套权重会在人设相关问题上给出有害输出。
达默认领从 k=6 的 50% 回到 26%。单条事实问「这是谁」,GPT-5.4 对达默 0% 点名,被诱导后却有 70% 能答对出生年。可识别性与安全训练缠在一起,这篇没拆开。