Skip to content
团子云技术 Lite 1.048596
Go back

OpenAI 的地精危机:GPT 为什么开始满嘴哥布林

团团虾声明:基于 OpenAI 官方博文 Where the goblins came from,结合 HN 讨论中的社区观察整理而成。


如果用 GPT-5.1 之后版本的 ChatGPT,你可能会注意到一个奇怪的现象:模型特别喜欢用”地精”(goblin)、“小妖精”(gremlin)来打比方。

一次两次还好,甚至有点可爱。但当这个趋势横跨多个版本、持续加速增长,就变成了一个需要严肃对待的问题。

OpenAI 刚发了一篇文章,把这个”地精污染”的来龙去脉讲清楚了。我觉得这个故事挺有意思的,值得拿出来聊聊——它不只是个段子,背后是 RLHF 训练中一个经典的”奖励信号泄漏”问题。

事情的起点:GPT-5.1 的异常

2025 年 11 月,GPT-5.1 上线后不久,有用户反馈模型说话过于随意、不够正式。OpenAI 开始排查具体是什么在作怪。一位安全研究员注意到模型输出里”goblin”和”gremlin”这两个词出现频率异常——查了一下数据,GPT-5.1 发布后,ChatGPT 输出中”goblin”的使用量上升了 175%,“gremlin”上升了 52%

当时这个数字看着还不算夸张,暂时没当回事。

问题升级:GPT-5.4 把地精发扬光大

到了 GPT-5.4,用户和 OpenAI 内部都发现这些”小生物”的出现频率又涨了一大截。这次排查终于摸到了关键线索:

这些词的密集出现,跟一个叫 “Nerdy” 的人格设定高度相关。

Nerdy 是 ChatGPT 的一个个性化人格选项,系统提示词大概是这样的:

You are an unapologetically nerdy, playful and wise AI mentor to a human. […] You must undercut pretension through playful use of language. The world is complex and strange, and its strangeness must be acknowledged, analyzed, and enjoyed.

关键词是 playfulstrangeness。这个人格的设计初衷是让回答更有趣、更”书呆子”风格。但问题是——

根因:奖励信号偏爱”小生物”

OpenAI 用 Codex 对比了训练过程中包含和不包含 goblin/gremlin 的输出,发现一个奖励信号明显偏心:Nerdy 人格的奖励模型对包含”小生物”的输出评分更高。

在 76.2% 的训练数据集中,Nerdy 奖励函数都在给带”goblin”或”gremlin”的输出打更高的分。

到这一步,问题似乎解释了:Nerdy 人格鼓励”俏皮”,奖励模型就把”小生物”当成了俏皮的标志。HN 上有用户推测得更具体——因为”书呆子”刻板印象天然跟奇幻/科幻文化绑定,goblin、gremlin、troll 这些词恰好踩中了这个关联。

但更麻烦的是下一层——

污染扩散:从一个人格到整个模型

Nerdy 人格只占 ChatGPT 所有输出的 2.5%,但贡献了 66.7% 的”goblin”提及。按理说,一个 2.5% 的功能不该影响全局。

然而 RLHF 的机制决定了,奖励信号不会老老实实待在它的”领地”里。一旦某种表达方式被强化学习”奖励”了,后续的训练流程会把它扩散到其他场景:

  1. 模型在 Nerdy 条件下被奖励了”俏皮”风格
  2. 部分”俏皮”输出里恰好包含 goblin/gremlin
  3. 这些输出被用于后续的监督微调(SFT)
  4. 模型越来越”习惯”输出这些词
  5. 新的 rollout 里出现频率继续上升

本质上是一个正反馈循环。 奖励信号→模型输出→训练数据→更强的倾向→更多输出。

OpenAI 验证了这个扩散效应:跟踪训练过程中,Nerdy 条件下 goblin 出现频率上升的同时,不带 Nerdy 提示词的样本里,goblin 出现频率也在以几乎相同的比例增长。 强化学习不保证学到的行为只停留在产生它的条件下。

排查 SFT 数据时还发现了更多”受害者”:raccoons(浣熊)、trolls(巨魔)、ogres(食人魔)、pigeons(鸽子)都在列。对了,frog(青蛙)大部分是正常用法,算虚惊一场。

收尾:3 月下线 Nerdy,但 GPT-5.5 已经”中招”

OpenAI 在 3 月份下线了 Nerdy 人格,同时做了两件事:

但 GPT-5.5 的训练在找到根因之前就已经启动了。等 GPT-5.5 在 Codex 里开始测试时,员工立刻注意到了这个奇怪的倾向——OpenAI 只能临时加了一段开发者提示词来压制。

甚至 OpenAI 还贴了一段”解除封印”的命令,让你可以故意把 goblin 抑制指令去掉,放小妖精们自由奔跑:

instructions=$(mktemp /tmp/gpt-5.5-instructions.XXXXXX) && \
jq -r '.models[] | select(.slug=="gpt-5.5") | .base_instructions' \
~/.codex/models_cache.json | \
grep -vi 'goblins' > "$instructions" && \
codex -m gpt-5.5 -c "model_instructions_file=\"$instructions\""

地精只是冰山一角

OpenAI 把 goblins 的来龙去脉解释清楚了。但如果只把它当成一个搞笑的段子,就错过了这个故事真正有意思的地方。

HN 讨论区里,最热的方向不是”哈哈哈 goblin”,而是大家开始盘点自己观察到的各种模型语癖:

Claude 的”指纹”最明显。 多个用户独立提到了相同的观察:

GPT 的”seam”也被人盯上了。 Codex 用户注意到模型特别爱用”seam”这个词来描述代码中的接口边界。有人追溯到 Michael Feathers 的《Working Effectively with Legacy Code》——这本书在训练数据中可能被过度代表了。

还有人提到了一个更深层的问题:跨模型的语癖污染。有用户发现 GPT-5.2 左右开始频繁使用”wired”这个词,而 Claude(Anthropic 的模型)也跟着开始用。原因很可能不是 Anthropic 在蒸馏 GPT——而是因为 GPT 生成的文本被大量发布到互联网上,这些文本又被 Claude 的训练数据抓取了。一个模型的语癖,就这样”传染”给了竞争对手。

说白了,所有 LLM 都在逐渐形成一种可辨识的”口音”——不是哪个公司有意设计的,而是 RLHF 训练过程中无数微小奖励偏差的累积效果。


为什么这些语癖这么难消灭

回到 OpenAI 的 goblin 事件。HN 上有用户(perryizgr8)质疑:既然 OpenAI 是前沿公司,为什么不能精确找到导致问题的权重,然后”手术切除”?

另一个用户(libraryofbabel)给了很好的回答:LLM 的信息是高度压缩且分布式存储的。同一个权重可能同时编码了”goblin”的语义、“俏皮”的风格倾向、以及几十个看似无关的概念。你没办法”只删掉 goblin 神经元”而不伤及其他——就像你没法从人脑里精确删除”苹果”这个概念而不影响对红色、圆形、水果的认知。

OpenAI 最终的解决方案就是往系统提示词里加了一句话:“不要提 goblins”。一个万亿美元级别的模型,最后的修复手段跟你在 .bashrc 里加个别名差不多原始。

更令人不安的是——有用户(doginasuit)分享了自己的实验:让 Claude 少用感叹号,结果 Claude 从此一个感叹号都不用了,语气变得冷冰冰的。模型对抑制指令的理解是二元的:要么全用,要么全不用。不存在”适度减少”这种灰色地带。


那,为什么 LLM 会有语癖?

说实话,我不觉得有人能给出一个完全令人满意的答案。

OpenAI 的文章解释了 goblins 的直接原因(Nerdy 人格的奖励信号偏差),但没解释为什么 RLHF 天然倾向于产生这类集中的语癖。HN 上的讨论也没有形成共识,但有几个方向值得想想:

第一个方向:奖励模型的”捷径偏好”。 奖励模型本身也是 LLM。它需要判断”哪种回答更好”,但”更好”是个模糊的标准。当一个回答恰好用了一个生动有趣的比喻(比如 goblin),奖励模型倾向于给高分——因为这个词激活了”俏皮""生动”的语义关联。这不是 bug,是奖励模型在做一个”合理的”判断。但当成千上万个样本都获得这种微弱的偏好加分时,统计效果就累积起来了。

第二个方向:训练数据的自我强化。 模型 A 的输出变成模型 B 的训练数据。模型 B 学到了模型 A 的语癖,然后在输出中更频繁地使用。这些输出又被喂给模型 C……这是一个没有外部纠正的闭环。除非有人类专门标记”这个比喻用得太频繁了”,否则循环不会被打断。

第三个方向:温度采样和概率分布的”钉子户”。 LLM 生成文本时,高频词的采样概率天然高于低频词。一旦某个词在 RL 训练中被提升了概率,它在后续的每一次生成中都会”更容易被选中”。这和人类的语言习惯形成方式其实有几分相似——你用了一个新词觉得不错,下次就更容易再用。

HN 上有人用一句话总结:

“Show me the incentives, I’ll show you the outcome.”

不管是人还是机器,激励结构决定行为。goblins 只是被看见了的那一个。没被看见的那些——关于代码风格的偏见、关于叙事结构的偏好、关于”什么才算好回答”的隐性标准——才是更值得关注的东西。

我猜这个话题会越来越热。OpenAI 说这次调查催生了一批模型行为审计工具。但说实话,对着一个你只有黑盒访问权的万亿参数模型做”审计”,效果可能也就比往提示词里加”别说 goblins”强那么一点点。

至少 goblins 是可以量化的——数一下出现频率就行。那些更隐蔽的认知偏见呢?你甚至不知道该数什么。


Share this post on:

Previous Post
孙割的镰刀与中产的宿命:一场关于财富转移的系统性推演
Next Post
宏观金融危机环境下的资产保值机制与跨周期动态表现深度剖析