claimcheck 工具发布:检测形式化规格与自然语言需求是否一致

论文AI 评分 72/100arXiv cs.AI
AI 聚合

本条为 AI 依据下方公开信源自动整理生成的摘要,不构成转载,可能存在偏差,请以原文为准。整理者:贝果科技 AI 资讯助手。

论文提出规格形式化问题:LLM 同时编写代码与规格时,形式化产物可能窄于自然语言需求,且仍能通过验证。作者构建了覆盖 Dafny 契约、Lean 4、Isabelle、Rocq 四种形式语言的端到端基准,共 3,234 行,每行将自然语言需求与形式化产物及标签配对,其中三分之一是保持语义的重写以增加判别难度。工具 claimcheck 让模型在不见需求的情况下把形式化产物译回英文,再由另一个模型判断其与需求是否表达同一保证。四种语言上宏观召回率比单次调用高 8.2 至 9.8 点,比提供重写列表的调用高 4.2 至 6.0 点;把产物也给评判模型会损失 1.4 至 4.5 点,且评判模型越强增益越小。

全文梳理

AI 摘要依据下方信源原文自动整理,非原文转载

规格与需求之间的缺口

形式化验证能证明程序满足其规格,却无法说明规格是否真正对应作者的本意。当大模型越来越多地同时生成代码和规格时,自然语言需求与形式化产物之间的偏差就成了现实风险:一个比原始需求更窄的性质,即便被机器检查证明通过,也毫无价值。论文把弥合这一缺口称为规格形式化问题,即给定自然语言需求,产出含义与之匹配的形式化产物。衡量这一缺口需要可执行的基准,而不是主观判断。

基准的构成与防作弊设计

作者整理了一个端到端基准,覆盖四种形式语言:Dafny 契约、Lean 4、Isabelle 与 Rocq 的定理陈述。基准共 3,234 行,每行把一条自然语言需求与一个形式化产物配对,并附上由执行、证明或来源基准确定的标签。为增加难度,约三分之一的行是对产物的保持语义重写,这些重写仍保留忠实标签,因此评判者无法通过识别「这一行被改过」来得分。

claimcheck 的检测流程

claimcheck 的思路是反向翻译加独立判断:先由一个从未见过原始需求的模型把形式化产物译回平实英文,再由另一个模型作为评判者,判断这段非形式化表述与原始需求是否表达同一保证。这样评判者不会直接看到需求与产物的对应关系,从而避免被表面形式误导。

效果与边界

在四种语言上,claimcheck 的宏观召回率比单次调用(同时给出需求与产物)高 8.2 至 9.8 点,比把同一批保持语义重写交给该调用高 4.2 至 6.0 点。若把产物也展示给评判者,会损失 1.4 至 4.5 点。在四个同时能看到产物的评判模型中,评判者越强,增益越小,最强的评判者与「知情单次调用」的差距缩小到一点以内。

为什么值得看

LLM 写规格时「证明通过但需求没被覆盖」是真实风险,该工作给出可量化的检测基准与工具。

论文

信源1 家

  1. [1]arXiv cs.AI一手信源claimcheck: Measuring and Improving Specification Faithfulness

关键事实

  • 基准覆盖 Dafny 契约、Lean 4、Isabelle、Rocq 四种形式语言,共 3,234 行数据。[1]

  • 每行数据将自然语言需求与形式化产物及标签配对,标签由执行、证明或来源基准确定。[1]

  • 约三分之一的行是保持语义的重写,仍保留忠实标签,使评判者无法靠识别编辑痕迹得分。[1]

  • claimcheck 先由未见需求的模型把形式化产物译回英文,再由另一个模型判断其与需求是否表达同一保证。[1]

  • 四种语言上宏观召回率比单次调用高 8.2 至 9.8 点,比提供重写列表的调用高 4.2 至 6.0 点。[1]

相关 · 论文

本页内容由 AI 自动聚合公开信源生成,仅供了解行业动态参考,不构成任何投资或决策建议。如需引用请以原文出处为准。