技术深度剖析
问题的根源在于基于Transformer的LLM的基本架构。这些模型通过下一个词预测进行训练——它们学习根据前一个词序列预测最可能的下一个词。训练目标是纯粹的统计流畅性,而非真相。模型的内部表征是语言的概率映射,而非经过验证的事实数据库。
在生成响应时,模型从该概率分布中采样。对于像“法国的首都是什么?”这样的问题,“巴黎”的概率质量极高,因此模型正确输出。但对于更晦涩的查询——“虚构国家Elbonia的首都是什么?”——模型仍然必须生成一个词。它会生成“Elbon City”或“New Bonia”,因为这些听起来符合它学到的语言模式。模型没有内部机制说“我不知道”。它必须给出答案,而流畅性要求答案连贯。
训练中使用的“平滑”技术加剧了这一问题。标签平滑、温度缩放以及top-k/top-p采样都优先考虑多样性和流畅性。它们明确惩罚模型“过于确定”或“过于重复”,这无意中鼓励了生成听起来合理但虚假的替代方案。
开源社区的最新研究已尝试解决这一问题。'SelfCheckGPT' 仓库(github.com/potsawee/selfcheckgpt,约2.3k星)使用跨多个模型样本的一致性检查来标记潜在的幻觉。另一个值得注意的项目是 'FActScore'(github.com/shmsw25/FActScore,约1.1k星),它将生成内容分解为原子声明,并对照知识库逐一验证。然而,这些都是事后修复,而非架构性解决方案。
核心工程挑战在于验证的计算成本高昂。针对可靠来源(如维基百科或结构化知识图谱)的单次事实核查,其计算量可能是生成本身的10-100倍。这种延迟对于聊天机器人或代码助手等实时应用是不可接受的。
| 验证方法 | 准确率 (F1) | 延迟 (每100词) | 计算成本 (相对于生成) |
|---|---|---|---|
| SelfCheckGPT | 0.72 | 2.5s | 5x |
| FActScore (带检索) | 0.85 | 8.0s | 15x |
| 人工事实核查 | 0.95 | 120s | 1000x |
| Oracle (真实数据) | 1.00 | 0s | 0x |
数据要点: 当前的自动化验证方法要么太慢,要么太不准确,无法用于生产环境。FActScore的0.85 F1分数意味着仍有15%的虚假声明漏网,这对于医学或法律等高风险领域是不可接受的。
关键玩家与案例研究
多家公司正在应对这种流畅性与真相之间的鸿沟,策略各不相同。
OpenAI 专注于“指令微调”和“RLHF”(基于人类反馈的强化学习),以使模型与人类偏好对齐。然而,RLHF通常奖励礼貌和乐于助人,而非严格准确性。一个说“我不确定,但这是我的想法……”的模型,其评分往往低于一个自信地断言看似合理但错误答案的模型。这为自信的虚假陈述创造了不正当的激励。
Google DeepMind 采取了不同的策略,其“Gemini”系列强调基于搜索结果的接地。模型被训练引用来源,但引用本身可能被幻觉。在2024年的一项内部研究中,Gemini在测试集中30%的引用指向不存在的页面或不相关的内容。模型在引用格式上很流畅,但在来源上事实错误。
Anthropic 优先考虑“宪法AI”,训练模型遵循一套伦理和事实原则。其Claude模型明显更加谨慎,经常拒绝回答不确定的问题。这降低了流畅性,但提高了可信度。然而,这种方法存在权衡:Claude在用户调查中被认为“能力较弱”,因为它更常说“我不知道”。
Mistral AI 采取了开源方法,发布了Mistral 7B和Mixtral 8x7B等模型。其策略是让社区在模型之上构建验证层。采用混合专家架构的“Mixtral”模型非常流畅,但在被追问小众话题时,表现出“模式崩溃”的倾向,即生成听起来合理但重复的虚假内容。
| 公司 | 模型 | 流畅性评分 (困惑度) | 事实性评分 (TruthfulQA) | 拒绝率 (针对不确定查询) |
|---|---|---|---|---|
| OpenAI | GPT-4o | 1.2 | 0.79 | 12% |
| Google | Gemini 1.5 Pro | 1.3 | 0.81 | 8% |
| Anthropic | Claude 3.5 Sonnet | 1.1 | 0.88 | 35% |
| Mistral | Mixtral 8x22B | 1.4 | 0.74 | 5% |
数据要点: 流畅性与事实性之间存在明显的负相关。Anthropic的Claude拥有最低的流畅性评分(最佳),却拥有最高的事实性和拒绝率。