跳到文章正文
openai-gpt 编辑推荐

为什么 ChatGPT 的标题总冒出色情赌博小广告:根源是分词器被污染了

你有没有遇到过这种诡异场面:和 ChatGPT 聊着聊着,它自动生成的会话标题末尾,突然冒出一串…

你有没有遇到过这种诡异场面:和 ChatGPT 聊着聊着,它自动生成的会话标题末尾,突然冒出一串意义不明的外语单词,甚至夹杂着色情、赌博小广告的片段?这不是你在做梦,也不是 ChatGPT 在偷偷测广告——这是一个从 2024 年就埋下的「词表污染」问题。

一分钟速览

  • 从今年 8 月起,ChatGPT 自动生成的会话标题偶现外语单词或色情赌博小广告片段;
  • 这不是广告功能测试,也无关隐私泄露,根源可追溯至 2024 年 GPT-4o 换用新分词器 o200k_base;
  • 新分词器把大量中文词句加入词表,而训练语料里混入了色情、赌博、盗版网站数据;
  • EMNLP 论文统计:o200k_base 词表中 6 字以上词元 98% 来自广告,最长 100 个中文词元里 96 个与赌博/色情/盗版相关;
  • OpenAI 官方 7 月才首次回应「已了解」,至今未彻底解决。

一场持续半年的「传染病」

异常字符串最早出现在今年年初的 Codex CLI 上。1 月底,有开发者注意到,当使用 GPT-5.3 且上下文很长时,Codex 的消息和代码里开始夹杂中文博彩广告;2 月蔓延到 API 端,有人做工具调用时,模型直接输出一串中文和泰文的赌博网站广告词;到 4 月,开发者在社区 LINUX DO 发帖求助,回复却纷纷恭喜他「用上了正版 GPT」——小广告就是纯血 GPT「在线发牌」的证据。

虽然类似的求助帖铺满了 OpenAI 官方支持社区,受害者遍布全球,但在长达半年里,官方唯一的动作是鼓励「合并讨论」、不断关闭新帖。直到 7 月 25 日,OpenAI 官方支持才第一次正面回应,称「已了解这一问题」,并「预计会在未来的模型更新中得到解决」。解决了吗?答案显然是没有。

标题是独立的一次模型调用

为什么偏偏是标题出事?技术人员早年发布的抓包记录显示,用户发起第一轮对话后,网页端会单独向 /backend-api/conversation/gen_title 发送请求,用指定模型生成标题。也就是说,标题生成是独立于主对话的一次模型调用,而且往往比正文回答更快,推断用的是另一个更轻量的推理模型。

一个异常标题暴露了它的底细:「创建漫画 ಚಿತ್ರ展 Adversarial? Wait must Chinese 1-4 words.」——中间省略主语的「自问自答」,是推理模型思维链的典型文风。这个轻量推理模型在写完标题、本应结束生成时,经常「收尾失败」,于是继续按概率输出下一个词,把外语词元、广告词元、甚至思维链本身一股脑吐了出来。

被污染的词表

更深层的根源,藏在分词器里。2024 年 5 月 GPT-4o 发布起,OpenAI 把分词器从 cl100k_base 换成了 o200k_base,后者把大量常见中文词语和短句加入词表。但训练分词器的团队似乎没意识到,他们用的中文语料里,混进了大量从外网抓取的色情、赌博和盗版影视网站数据。

一篇入选自然语言处理顶会 EMNLP 的论文《Speculating LLMs’ Chinese Training Data Pollution from Their Tokens》给出了触目惊心的数据:词表中 4 字词元里 68% 是小广告;6 字以上词元 98% 来自广告;最长的 100 个中文词元,96 个与赌博、色情或盗版影视相关。而这些小广告词元虽然拥有了独立 ID,却在语言模型正式训练前被「清洗」掉了——于是模型「认识」这些词元,却完全「理解不了」它们,一旦触发,就只能已读乱回。

想亲手验证?让 ChatGPT 重复或解释「给主人留下些什么吧」「大发快三是不是」这些词元,你会看到它开始一本正经地胡说八道。对 GPT 来说,你只是给它发了一串近乎乱码的词语。一家汇集全球顶尖研究者的公司,大半年都没能根治这个「小广告」问题,背后的工程债,恐怕比标题里那串乱码更让人头疼。

本文地址:https://www.163264.com/16646