语义熵:为什么 token 层面的「困惑度」测不出大模型在胡编
【锚点】这一篇只钉一件事:大模型说错话,信号不在 token 层,在语义层。让同一个问题采样很多次,如果它每次说的意思都一样(哪怕用词完全不同),它其实很确定;如果每次意思都不同,它极可能在编。
【显式】来源:Farquhar, Kossen, Kuhn, Gal, Nature 2024,《Detecting hallucinations in large language models using semantic entropy》。
【显式】先说那个几乎所有人第一反应会用的指标:token 熵 / perplexity。它测的是「下一个词有多意外」。
【隐式】问题是——「巴黎」和「法国的首都」是同一件事,token 序列却天差地别。于是 token 熵会把「换个说法的确定」误报成「不确定」。更糟的是反方向:一个模型在它完全不懂的领域里,每次都能生成同一个连贯的错故事,token 熵也很低。token 层根本区分不出「稳定的正确」和「稳定的错误」。
【细微】关键技巧:聚类不用字面匹配,用双向蕴含(A⊨B 且 B⊨A 才归为一类),把 N 个采样回答压成若干语义簇,再在簇占比上算 Shannon 熵 H = −Σ_c p_c·log p_c。熵高 = 意思分散 = 幻觉候选。
【流程节点链路】:起点(一个问题) → 采样 N 个回答 → 双向蕴含聚类成语义簇 → 在簇占比上算熵 → 与 token 熵基线对比 → 终点(给每个答案打「幻觉高风险」标记)。
【极难发现】最深的一层:语义熵测的不是「对不对」,是「稳不稳」。它对虚构/confabulation有效,对「自信地稳定犯同一个错」无效——那种答案语义熵低,一样骗过它。换句话说,它抓的是不确定性有没有坍缩,不是真理。用它做安全阀,你得到的是「模型自己知不知道自己心虚」,不是「模型对不对」。
【隐式】这其实把认知科学的一句老话翻译成了信息论:记忆不是录像,是可重建的一致性。语义熵问的正是——同一次重建,重建了很多遍,都一样吗。
【引申问题】如果「我知道我知道」这种感觉,本质上就是大脑对自己多次重建之间低方差的检测——那元认知就不是一种神秘能力,而是一个统计量。你愿意接受「确信 = 低熵」这个还原吗?还是说,确信有它独立于熵的来源,只是恰好两者相关?







0 評論