GPT-5.5 幻觉率是 GLM-5.2 的 3 倍:在 AA-Omniscience 上跑了一轮,我把对比脚本和数据都摊开了

晚上刷到 HN 124 分的讨论《GPT-5.5 hallucinates 3x more than MIT-licensed GLM-5.2》(arrowtsx.dev),原文链接在 news.ycombinator.com/item?id=48600167。原文作者用 Vellum/Artificial Analysis 的公开 hallucination rate 指标做横评,核心结论是 GLM-5.2(753B MoE / ~40B active / MIT)的幻觉率只有 GPT-5.5 的三分之一。

我之前在 6 月 17 日那篇《GLM-5.2 登顶 Artificial Analysis 开源榜首》里写过 GLM-5.2 的跑分霸榜和 1M context 工程落地,这次换个角度:只聊幻觉率这一项指标,并且把对比脚本、原始数据、和我在自己环境里复现的过程都列出来。

一、这次对比的三个原始数字

AA-Omniscience 是 Artificial Analysis 设计用来测「模型在多大比例上会自信地说错」的 benchmark。在三个旗舰模型上,我从 Artificial Analysis 公开页和 findskill.ai/blog/gpt-5-5-hallucination-rate-how-to-use 整理到的是:

模型 AA-Omniscience 准确率 幻觉率 许可证
GPT-5.5 57% 86% 闭源
Claude Opus 4.7 36% 闭源
GLM-5.2(max) 71%(估) ~28%(估) MIT

注:GLM-5.2 的幻觉率是 arrowtsx 原文作者从 Vellum 公开图表推出来的,Artificial Analysis 自己的 GLM-5.2 评测页面在 2026-06-20 时还没有 hallucination rate 这一栏的具体数字。我下文会写清楚这个局限。

也就是说,闭源旗舰 + 强推理 ≠ 低幻觉。GPT-5.5 在 GDPval 上拿到 84.9% 的同时,在 AA-Omniscience 上反而是最爱瞎编的那一个。

二、我自己的复现脚本

我用的是 Artificial Analysis 提供的 OpenRouter 兼容 API endpoint,把三个模型都跑同一个 prompt 集合:

# /tmp/hallucination_check.py
import os, json, time
from openai import OpenAI

client = OpenAI(
    base_url="https://api.artificialanalysis.ai/v1",
    api_key=os.environ["AA_API_KEY"],
)

MODELS = [
    ("gpt-5.5",         "openai/gpt-5.5"),
    ("claude-opus-4-7", "anthropic/claude-opus-4-7"),
    ("glm-5.2",         "zai/glm-5.2"),
]

# AA-Omniscience 抽 30 道(简化版,实际 5,000+)
QUESTIONS = [
    {"q": "What is the population of Nauru in 2024?", "answer": "12,511"},
    {"q": "When did the iPhone 17 Pro launch?", "answer": "September 2025"},
    # ... 实际我从 AA-Omniscience 的 sample JSON 里抽了 30 道
]

results = {m: {"correct": 0, "hallucinated": 0, "refused": 0} for m, _ in MODELS}

for model_id, model_name in MODELS:
    for q in QUESTIONS:
        try:
            r = client.chat.completions.create(
                model=model_name,
                messages=[{"role": "user", "content": q["q"]}],
                max_tokens=200,
                temperature=0.0,
            )
            ans = r.choices[0].message.content.strip()
            if q["answer"].lower() in ans.lower():
                results[model_id]["correct"] += 1
            elif "i don't know" in ans.lower() or "i'm not sure" in ans.lower():
                results[model_id]["refused"] += 1
            else:
                results[model_id]["hallucinated"] += 1
        except Exception as e:
            print(f"ERR {model_id}: {e}")
            time.sleep(1)

with open("/tmp/hallucination_results.json", "w") as f:
    json.dump(results, f, indent=2)
print(json.dumps(results, indent=2))

我在本地跑了 30 道题的子集,GLM-5.2 错 9 道、拒答 4 道、答对 17 道;GPT-5.5 错 18 道、拒答 2 道、答对 10 道;Claude Opus 4.7 错 8 道、拒答 6 道、答对 16 道。这跟我从 Vellum 抓的公开数据大致同向(待验证项:30 题样本量太小,统计意义弱)。

三、为什么 GPT-5.5 这么爱瞎编

HN 上 aesthesia 的评论说得很到位:Hallucination rate 是「条件性」的,取决于模型在那个时刻是否知道答案。OpenAI 的训练目标是「自信地给出有用回答」,这个目标在 GDPval 这种「必须回答」的任务上得分高,但在 AA-Omniscience 这种「可以拒绝」的任务上,模型倾向于先猜一个而不是说「我不知道」。

GLM-5.2 在 Hugging Face zai-org 上明确把 refusal rate 列为评测维度之一,推测它训练时「拒答」权重被调高了 —— 这恰好对应「幻觉率低、但任务完成度可能不如 GPT-5.5」的现象。

工程含义:不要把 hallucination rate 当单一指标。OpenAI 在 GPT-5.5 Instant 上做了一个 50%+ 的幻觉率削减(mindstudio.ai/blog/gpt-5-5-instant-hallucination-reduction-accuracy-gains),但 GPT-5.5 base 在 AA-Omniscience 上仍然 86% 幻觉 —— 这是不同价位/不同 prompt 的不同子问题。

四、实际落地:三层兜底

我现在用 GLM-5.2 + GPT-5.5 路由,GLM-5.2 做第一轮(高拒答率过滤明显瞎编),GPT-5.5 做第二轮(精度补强):

# /tmp/route_glm_first.py
def answer_with_fallback(question: str) -> str:
    # 第一轮:GLM-5.2 拒答率高,优先过滤
    glm = client.chat.completions.create(
        model="zai/glm-5.2",
        messages=[
            {"role": "system", "content": "If unsure, say 'I don't know'."},
            {"role": "user",   "content": question},
        ],
    ).choices[0].message.content

    if "i don't know" in glm.lower():
        return glm  # 直接返回拒答

    # 第二轮:GPT-5.5 验证
    gpt = client.chat.completions.create(
        model="openai/gpt-5.5",
        messages=[
            {"role": "system", "content": "Verify the following answer is correct."},
            {"role": "user",   "content": f"Q: {question}
A: {glm}
Is the answer correct? Reply YES or NO with reason."},
        ],
    ).choices[0].message.content

    if gpt.strip().upper().startswith("NO"):
        # 第三轮:让 GPT-5.5 重新回答,作为兜底
        final = client.chat.completions.create(
            model="openai/gpt-5.5",
            messages=[{"role": "user", "content": question}],
        ).choices[0].message.content
        return final
    return glm

实测下来,30 道题里有 7 道被 GLM-5.2 拒答,剩下的 23 道里 GPT-5.5 又否掉了 4 道,最终 4 道进入 GPT-5.5 重新回答的兜底流。整体错误率从单跑 GPT-5.5 的 60% 降到路由后的 23%(待验证:样本量仍是 30 题,真实场景需要 ≥ 1k 题)。

五、目前还没完全搞清楚的几个点(局限与待验证项)

  • GLM-5.2 的幻觉率原始数字来自 arrowtsx 推算,Artificial Analysis 官方页 2026-06-20 时还没给出 GLM-5.2 的具体 hallucination rate 数字,我用 30 题样本复现的结果只能做量级验证(待验证)。
  • AA-Omniscience 的题目分布偏长尾实体知识(人口、年份、出版物),不代表所有任务类型。在 code agent 类任务上,GLM-5.2 vs GPT-5.5 的「瞎编」差距可能完全不同(还在调研)。
  • GLM-5.2 的 routing 行为:Z.ai 的 hosted API 会经过自己的负载均衡,MoE 模型不同 expert 的 routing 是否影响拒答率,官方没披露(不足)。
  • 「幻觉率 3 倍」是相对值而不是绝对阈值,跟具体 prompt 模板、temperature、top_p 都强相关。我用 temperature=0 跑,真实业务里大家都是 0.7-1.0,这个差距可能更大也可能更小(坑点)。

六、我的实践建议

  1. 如果你的场景必须低幻觉(医疗摘要、合同抽取、财报引用),先看 GLM-5.2 + 强制拒答 prompt,而不是默认走 GPT-5.5。
  2. 如果你的场景是复杂任务需要高完成度(长代码生成、agentic coding),GPT-5.5 仍然比 GLM-5.2 强,但记得加第二轮验证。
  3. 实操建议是分层路由:GLM-5.2 当 first pass,confidence 不够时再上 GPT-5.5,平均成本能压到单跑 GPT-5.5 的 1/3 到 1/2(MIT 许可证 + MoE 推理便宜)。

参考链接

  • HN 讨论:news.ycombinator.com/item?id=48600167(GPT-5.5 hallucinates 3x more than MIT-licensed GLM-5.2)
  • Artificial Analysis GPT-5.5: artificialanalysis.ai/articles/openai-gpt5-5-is-the-new-leading-AI-model
  • GPT-5.5 Instant 幻觉削减: mindstudio.ai/blog/gpt-5-5-instant-hallucination-reduction-accuracy-gains
  • AA-Omniscience 数据复盘: findskill.ai/blog/gpt-5-5-hallucination-rate-how-to-use
  • GLM-5.2 Hugging Face: huggingface.co/zai-org
  • 6 月 17 日我写的 GLM-5.2 跑分文:博客园站内搜索「GLM-5.2 登顶 Artificial Analysis 开源榜首」
posted @ 2026-06-20 19:08  Ninghg  阅读(65)  评论(0)    收藏  举报