LLM 抽关系总抽出自相矛盾?这篇论文给了两条可以抄的解法

做信息抽取的同行应该都有过这种体验:让 LLM 从一份文档里抽关系三元组,它告诉你 "A 是 B 的上级,B 是 C 的上级",但同一个模型又说 "C 和 A 没关系"。对称性、传递性、功能唯一性——这些人类直觉里的基本约束,LLM 逐个推理时根本不会主动遵守,每个候选三元组都是独立生成的,逻辑链条说断就断。

不是 LLM 笨,是任务定义本身就少了这一层。

昨天 arXiv 上挂出来一篇论文,正好在搞这个事。Mingxuan Sun 提出的 CONSISTRE 框架,针对的是文档级关系抽取(DocRE)里的关系一致性难题:让 LLM 抽关系时,得让它「自己说的话自己兜得住」。

论文给了两条并行路径,覆盖了两种主流部署场景。

第一条路径走推理时干预,面向黑盒 LLM——也就是那些用 API 调的闭源模型。不碰模型参数,只在外围加三层:约束感知提示(让模型生成时就意识到关系约束存在)、约束验证(生成后检查有没有违反对称性/传递性/函数唯一性)、迭代自我反思(发现矛盾后让模型自己修正)。这一套不需要微调,拿 off-the-shelf 的闭源模型直接用,论文在 DocRED 上跑出了有竞争力的 F1。

第二条路径走训练时注入,面向开源小模型。核心思路是用知识蒸馏把大模型(教师)的推理轨迹灌进 7-8B 级的学生模型,做 SFT,然后再用 GRPO 对齐——reward 函数同时优化提取性能和关系一致性。这条路径等于把一致性建模直接写进模型权重里,推理时不再需要额外的验证环路。

结果也很直观:第二条路径让 7-8B 的开源模型大幅缩小了跟闭源 SOTA 的差距,推理成本却低了一个量级。如果你正在搭一条信息抽取管线,这是个非常实际的参考——一致性建模带来的提升比盲目换大模型划算得多。

当然,不要过度外推。DocRED 是一个特定 benchmark,论文投的也是 IEEE/ACM 期刊而非顶会,摘要里没有披露绝对数值,目前也看不到代码库。但 CONSISTRE 给的框架价值和两条路径的设计思路是很清楚的,对于任何一个自建信息抽取系统的团队来说,「推理时加约束验证」这个轻量改进几乎可以次日落地。

我自己看完的第一反应是:之前好几个项目的后处理代码里,其实已经有人在手工写规则修矛盾了——这篇论文无非是告诉了你,这件事可以系统化地做,而且不应该只做在后处理层。