Finding Flawed Fictions:通过情节漏洞检测评估语言模型的复杂推理¶
笔记时间:2026-07-28 评分:4 领域:narrative 子领域:evaluation 方法:benchmark, synthetic-data, plot-hole-detection 类型:benchmark
元信息¶
- arXiv:2504.11900v3
- 日期:2025-12-18
- 会议:COLM 2025
- 作者:Kabir Ahuja、Melanie Sclar、Yulia Tsvetkov
- 机构:University of Washington,Paul G. Allen School of Computer Science & Engineering
- 本地 PDF:
paper.pdf(70 页) - 英文全文:
main_en.md - 中文译文:
main_zh.md - 可追溯源码:
source/colm2025_conference.tex
定位¶
这篇论文用“寻找故事中的情节漏洞”评估语言模型的复杂推理。任务要求模型不只判断故事有没有 continuity error,还要同时找出后文的错误句和前文中被它矛盾的事实。由于两处证据可能相距很远,模型必须维护故事状态、检索相关事实并完成双向定位。
作者构建两个配对数据集:FlawedFictions 含 207 个注入漏洞的故事及 207 个对应无漏洞故事,共 414 条,平均 731 词;FlawedFictionsLong 含 97 个有漏洞和 103 个无漏洞故事,共 200 条,平均 2,703 词。

图 1(论文方法总览)。 FlawedFictionsMaker 先识别故事前段的重要事实,再构造与之相反的反事实,并据此重写后续情节。这样,数据生成过程天然知道“哪条旧事实被哪句新文本矛盾”,可以评估模型是否真的找对证据,而不只是猜中 Yes/No。
动机¶
现有长上下文 benchmark 常把检索到一个事实等同于理解,或者依赖短小、局部的逻辑题。真实故事中的 continuity error 更难:
- 相关事实可能隔着大量无关叙事内容。
- 矛盾通常不是词面重复,而是事件、人物状态和世界知识之间的语义冲突。
- 只看二元准确率可能掩盖侥幸猜测;模型必须指出矛盾两端才算形成完整证据链。
直接收集自然情节漏洞又很难获得可靠、细粒度的标注。因此作者选择从高质量人类故事出发,以受控方式注入已知漏洞,再由人工审核保留自然且确实矛盾的样本。
方法¶
1. FlawedFictionsMaker¶
数据构造流程为:
- 把原故事划分为三幕。
- 从第一幕抽取候选重要事实 \(\phi\),并按其对后续情节的重要性评分。
- 为选中的事实构造反事实 \(\neg\phi\)。
- 以 \(\neg\phi\) 为条件重写第二、三幕,再与未改动的第一幕拼接,制造跨段 continuity error。
- 用自动检查过滤明显失败、表述不自然或没有形成矛盾的候选。
- 交给至少三名 Prolific 标注员审核,只保留多数标注者确认存在漏洞的故事。
与任意生成一个“坏故事”相比,这种三幕拼接保留了原故事的开端和整体文风,也使漏洞的两个端点可追踪。
2. 分类与双向定位¶
模型首先完成二元分类:故事是否包含 continuity error。若有,还要输出两个句子集合:
- \(S_{\mathrm{Error}}\):包含新错误、蕴含 \(\neg\phi\) 的句子。
- \(S_{\mathrm{Contr}}\):前文中被矛盾、蕴含 \(\phi\) 的句子。
严格指标 CEEval-Full 要求三件事同时满足:分类正确;\(S_{\mathrm{Error}}\) 至少命中一个标注错误句;\(S_{\mathrm{Contr}}\) 至少命中一个标注冲突句。它比 Accuracy 更能区分真正定位矛盾与只猜标签的模型。
实验¶
1. 短故事已接近人类,长故事仍明显困难¶
论文 Table 1 的代表结果如下:
| 模型 | FlawedFictions Accuracy | FlawedFictions CEEval-Full | Long Accuracy | Long CEEval-Full |
|---|---|---|---|---|
| Claude 3.5 Sonnet | 0.76 | 0.67 | 0.56 | 0.35 |
| Claude 3.5 Sonnet + verifier | 0.74 | 0.68 | 0.60 | 0.50 |
| Human | 0.76 | 0.68 | — | — |
| o1 medium | 0.70 | 0.65 | 0.61 | 0.53 |
| GPT-4o CoT | 0.64 | 0.58 | 0.56 | 0.42 |
在平均 731 词的 FlawedFictions 上,Claude 3.5 Sonnet 的表现已接近论文的人类基线;长度增加到平均 2,703 词后,最佳 Long CEEval-Full 只有 0.53。简单 entailment baseline 的 CEEval-Full 仅 0.04,说明任务不能被压缩成孤立的句对矛盾识别。
2. 更多推理 token 没有稳定换来更好定位¶

图 2(test-time compute)。 横轴是模型使用的 token 数,纵轴是完整矛盾定位分数。不同设置没有呈现稳定的“想得越久越好”;o1 和 o3-mini 提高 reasoning effort 时甚至可能退化。
这项结果应解读为:当前模型的瓶颈不只是计算预算,还包括能否在长叙事中选择正确事实、保持状态并形成闭合证据链。盲目延长 CoT 可能产生更多无关搜索,而不是更准确的定位。
3. 模型生成文本更容易出现 continuity error¶

图 3(自然生成质量分析)。 在原作故事上,摘要与现代改编的错误检出率分别为 0.31 和 0.14;GPT-4o-mini 为 0.59 / 0.53,GPT-4o 为 0.45 / 0.48,Claude 3.5 Haiku 为 0.56 / 0.27,Claude 3.5 Sonnet 为 0.49 / 0.36。不同模型和改写任务存在差异,但总体上 LLM 文本比人类原作更容易被检测出连续性错误。
这个附加实验把 benchmark 的意义从“模型会不会找漏洞”延伸到“模型自己写故事时是否容易制造漏洞”:检测能力和生成可靠性是相关但不同的两个问题。
局限¶
- Long split 仍少于 4,000 词,远短于电影剧本、长篇小说和系列作品,不能代表真正超长叙事中的全部困难。
- 合成流程依赖 GPT-4o / GPT-4-turbo,并且仍需昂贵的人工审核;自动生成并没有消除标注成本。
- Benchmark 只关注 continuity error,不覆盖巧合、情节便利等其他“廉价情节技巧”。
- 数据主要来自英语文学叙事,跨语言和跨文化泛化尚未验证。
- 注入流程还不能精细控制漏洞的类型与难度,数据分布可能带有生成模型和过滤器的偏差。
- 人类基线仅使用 50 条样本和 9 名英语专业本科生,不能视为稳定的人类能力上限。
关系¶
- Finding Flawed Fictions 通过受控注入得到明确的矛盾两端,重点测试模型能否检测一个已知漏洞并给出证据。
- Lost in Stories 让 LLM 生成完整长篇故事,再检测自然出现的五类一致性错误,重点分析生成可靠性和错误增长规律。
- LiteReason 使用 Flawed Fictions 的二元判断作为 RLVR 训练任务,回答“专项 RL 与 latent reasoning 能否学会并压缩推理”。它没有按 CEEval-Full 同时评估双向定位,因此分数不能直接和原 benchmark leaderboard 横向比较。
结论¶
这篇论文的关键设计是把情节漏洞检测从一个 Yes/No 题升级成可核验的双向证据任务。结果表明,短故事上的高准确率并不意味着模型掌握了长叙事推理:文本变长后,完整定位显著下降,增加推理 token 也没有稳定修复问题。它因此既是长上下文推理 benchmark,也是一种检查故事生成系统是否真正维护人物和世界状态的方法。