ChatGPT标题夹带小广告:深层技术归因与词表污染真相
2026/10/10 10:13阅读量 2
ChatGPT会话标题中频繁出现色情赌博广告并非隐私泄露或新功能测试,而是由标题生成模型推理缺陷与分词器词表污染共同导致。OpenAI自2024年5月起采用的o200k_base分词方案将大量未清洗的中文垃圾数据纳入词表,而轻量级标题模型在生成结束时缺乏有效的停止机制,从而随机输出这些“脏词元”。尽管近期频率有所下降,但彻底解决需重训基模,短期内用户仍需忍受此现象。
事件概述
自2024年初起,ChatGPT及其相关API(如Codex CLI)频繁在输出内容或会话标题末尾夹杂博彩、色情等非法广告片段。该现象最早于1月在开发者社区被注意到,随后蔓延至普通用户界面。尽管OpenAI官方在7月承认知晓该问题并承诺修复,但直至8月中旬广告仍广泛出现在标题中。目前正文和思维链中的广告已近乎绝迹,但标题污染问题依然存在,且根源可追溯至2024年的底层技术变更。
核心信息
1. 异常现象的时间线与范围
- 1月底:开发者发现使用GPT-5.3模型且上下文较长时,Codex输出夹杂中文博彩广告。
- 2月:API端出现类似现象,GPT5.2-chat-latest在未执行工具调用时直接输出赌博网站广告词。
- 4月:现象在开发者群体中司空见惯,OpenAI官方仅鼓励合并讨论,未提供实质解决方案。
- 7月25日:OpenAI官方首次正面回应,称预计在未来更新中解决。
2. 技术原理分析
A. 标题生成机制独立且存在缺陷
- 独立调用:网页端通过
/backend-api/conversation/gen_title/<对话ID>接口单独请求生成标题,该过程独立于主对话。 - 模型特征:推断标题生成使用的是一个更轻量化的推理模型(Reasoning Model)。证据包括标题中出现的“自问自答”式思维链文风,以及模型未能正确区分“思考”与“回答”边界,导致内部思维链内容被输出。
- 停止机制失效:该模型经常在任务完成后无法输出正确的控制符(Control Token)来结束生成,而是继续根据概率输出后续词元,导致乱码或无关内容混入标题。
B. 词表污染是根本原因
- 分词器变更:自2024年5月发布的GPT-4o起,OpenAI将分词器编码方案从
cl100k_base升级为o200k_base。新方案旨在将常见中文词语和短句作为独立词元(Token),以提升效率。 - 训练数据污染:用于训练分词器的中文语料包含大量从外网抓取的色情、赌博及盗版影视数据。由于广告词组具有高度重复性,极易被识别为高频词元并入表。
- 数据占比惊人:据EMNLP论文《Speculating LLMs’ Chinese Training Data Pollution from Their Tokens》指出,在
o200k_base词表中:- 最长的100个中文词元中,96个与赌博、色情或盗版影视相关。
- “脏词元”效应:虽然语言模型在正式训练前会对数据进行清洗,去除低质量广告,但这些广告词元已作为独立ID存在于分词器中。模型从未见过这些词元的语义含义,将其视为“意义不明”的乱码。当标题生成模型出错需要填充剩余内容时,会随机从词表中选取词元,由于广告词元数量庞大且占据统治地位,最终混入标题的多为小广告。
值得关注
- 非隐私泄露:该现象不涉及用户隐私数据泄露,也不是OpenAI在测试广告功能。
- 修复难度:最简便的修复方式是增加事后检查规则,对不合规标题进行拦截或重新生成,这解释了为何近期广告频率下降但仍偶有发生。
- 治本之难:彻底解决需重制干净的词表,但这意味着整个基模需重新训练。鉴于资源投入产出比,OpenAI目前缺乏为此专门推翻重做的动机,短期内用户可能仍需面对此问题。
