让语言模型打分而非生成,BERT-base 把 KBQA 榜 F1 从 34 拉到 52

2026-09-24

符号 agent 枚举合法查询,LM 只负责打分:BERT-base 把 GraphQ F1 从 34.3 提到 52.0,Codex 10 个样本即可做 KBQA。

这篇在解决什么

让语言模型操作外部环境(机器人、API、数据库),主流做法是让它直接生成可执行计划。生成式用法把三副担子全压在模型身上:语法合法、忠实于环境、过程可控。环境一大就露馅:Freebase 有 4,500 万实体、30 亿条事实,模型自生成的查询大多跑不通,低数据场景下 UnifiedSKG 一类生成式方法的输出多数干脆是非法程序。这篇 ACL 2023 论文(俄亥俄州立 Yu Gu、Yu Su 组)提出倒转分工:符号 agent 负责生成合法计划,语言模型只负责打分。

方法

框架叫 Pangu,循环四步:agent 在环境里把当前计划扩展成一批新候选,每个都保证合法可执行;LM 给候选与用户话语的匹配度打分;保留 top-K 进入下一轮;终止条件满足即返回最优计划。落在知识库问答(KBQA)上:计划用 S 表达式表示,agent 执行半成品查询、枚举中间实体挂着的全部关系来扩展候选。打分接口随模型形态变:BERT 取 [CLS] 表示,T5 向解码器走一步、取一个闲置 token 的概率,Codex 直接取 P(计划|问题) 并按长度归一。

打分函数要学的只是一个偏序:金标子计划排错误计划之前,更完整的计划排不完整计划之前。这比学着从零生成整个计划容易得多。

结果

数据集此前最佳 F1Pangu 成绩
GrailQA78.7(DecAF)BERT-base 79.9,T5-3B 81.7
GraphQ34.3(ArcaneQA)BERT-base 52.0
WebQSP78.8(DecAF,3B 模型)BERT-base 77.9,T5-3B 79.6

GraphQ 提升最陡,17.7 个点。换到少样本设定,Pangu 加 Codex 用 10 个示例在 GraphQ 拿 42.8 F1,超过全量数据微调的 ArcaneQA(34.3);GrailQA 上 10-shot 也有 56.3,单样本 EM 就能过 50%。这是头一次有工作证明 LLM 能少样本做好 KBQA。

论文还给了一个解释性发现:自回归基线 ArcaneQA 在训练见过与没见过的程序之间,输出概率分布剧烈漂移;Pangu 的分布两边一致。生成式模型背熟见过的结构,遇到新组合就垮,判别式打分天然外推得更稳。

为什么重要

这是「LLM 当评分器、符号系统当执行器」路线在落地语言理解上最干净的早期验证:1.1 亿参数的 BERT-base 打平甚至超过十倍大的生成式系统,少样本能力顺带解锁。同一思路后来在工具调用、代码生成的束搜索、过程奖励模型里反复出现。对做 agent 的人,它提醒:生成不是利用语言模型的唯一方式,在可枚举的动作空间里,打分往往更稳。

局限与存疑

作者自认:迭代打分开销大,比 ArcaneQA 训练推理都慢约两倍、显存翻倍,前向次数正比于候选计划数;Codex 少样本的提示设计还粗糙,与微调的差距没有完全闭合。还要划清边界:这套做法依赖「合法动作可被枚举」,KBQA 恰好规整;开放环境里枚举本身就是瓶颈,论文只在 KBQA 上做了完整验证。

术语

原文与代码

社区讨论

全部论文解读