ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI数学推理评测引热议:从自动定理证明到自然语言推理的边界突破

AI数学推理评测引热议:从自动定理证明到自然语言推理的边界突破

1. 当数学圈开始讨论一份模型评测结果时,他们在争论什么

数学圈很少对某个工程产物集体发声。这个领域的日常是定义、证明、反例、推广,节奏以年为单位,讨论对象通常是猜想和定理,而不是某个团队发布的技术报告。所以当一批数学研究者几乎同时把注意力投向同一份模型评测结果,并且用上了"纯粹疯狂"这类情绪浓度很高的措辞时,这件事本身就值得拆开看。

我关注这类交叉话题有一段时间了。数学和自动推理的关系不是新东西,符号计算、定理证明助手、自动定理证明器已经发展了几十年,但那些工具的共同点是:它们依赖严格的形式化输入,依赖人类把问题翻译成机器能处理的语言,依赖一套可验证的推理规则。换句话说,过去的机器在数学里扮演的是"执行者",它不会自己决定去证明什么,也不会自己选择用哪条路径。

这次引发讨论的核心,恰恰是这条边界被推了一下。评测结果里出现的题目,不是标准化的计算题,也不是有固定套路的竞赛题,而是需要构造性思维、需要多步非平凡推理、甚至需要一点"灵感"的问题。当模型在这些题目上给出可读、可检验、有时还挺优雅的解答时,数学研究者的第一反应不是"机器会算数了",而是"它到底在做什么"。

这篇文章想做的事情很具体:把这场讨论背后的技术脉络、评测设计的门道、以及一个从业者应该怎么看待这类结果,一层层拆开。适合谁看?如果你是对自动推理、模型评测、AI for Science 感兴趣的开发者,或者你本身有数学背景、想搞清楚这些结果意味着什么,那接下来的内容应该对你有用。我不会给你一个"AI 已经能证明定理了"的结论,那种结论既不负责任也没信息量。我要做的是把"为什么这件事让数学家坐不住"讲清楚。

2. 从符号推理到自然语言推理:这次评测到底测了什么

2.1 传统自动定理证明的工作方式

要理解这次讨论的冲击力,得先知道过去机器做数学是什么样子。以交互式定理证明器为例,它的工作流程大致是这样:人类先把命题写成形式化语言,比如把"存在无穷多个素数"翻译成一套基于类型论或集合论的表达式,然后证明器在每一步要求你给出推理规则的应用,它负责检查这一步是否合法。整个过程里,机器是裁判,人是运动员。

自动定理证明器稍微激进一点,它会自己搜索证明路径,但搜索空间是被严格限定的,它不会"理解"命题的含义,只是在符号层面做重写和归结。这类工具在硬件验证、协议正确性证明这些领域非常成功,因为那些领域的命题结构规整、可形式化程度高。

问题在于,绝大多数数学研究中的命题,在被人证明之前,根本不知道该怎么形式化。一个猜想的价值往往在于它连接了两个看似无关的领域,这种连接不是符号层面的,而是概念层面的。传统工具在这里帮不上忙,因为它们没有"概念"这个东西。

2.2 自然语言推理带来的变量

这次评测的题目是以自然语言给出的,模型需要用自然语言输出解答。这个设定看起来只是接口变了,实际上改变了整个问题的性质。自然语言里的数学命题携带了大量隐含信息:哪些是已知结果、哪些是标准技巧、哪个方向是"显然"的、哪个方向需要构造。人类数学家读题时自动调用了这些背景,模型要做的也是类似的事情。

我个人的判断是,这才是数学家真正在意的地方。如果模型只是把形式化证明搜索做得更快,那是工程进步,大家会鼓掌但不会震惊。但当模型在自然语言层面表现出对数学结构的敏感——比如知道某个问题该用反证法、知道某个构造需要引入辅助对象、知道某条路径走不通要及时换方向——这就触及了一个更根本的问题:这种敏感是从哪里来的?

有一种解释是模式匹配。训练数据里包含了大量数学文本,模型见过足够多的证明,所以在遇到相似结构时能复现相似的推理链。这个解释能说明一部分现象,但解释不了模型在"新"问题上的表现,尤其是那些训练数据里不太可能出现的组合。

另一种解释是模型在内部形成了某种抽象表示,这种表示虽然不是形式化的,但在功能上捕捉到了数学对象之间的关系。这个解释更有意思,但也更难验证。目前没有公认的方法能直接检查模型内部到底学到了什么,所以这场讨论短期内不会有定论。

2.3 评测题目设计的几个关键选择

评测结果的可信度,很大程度上取决于题目是怎么选的。我看了讨论里提到的几类题目,大致可以分成三档。

第一档是标准课程范围内的题目,比如线性代数、实分析里的典型习题。这类题目的解法在教材里都有,模型做对不奇怪,做错才奇怪。这一档主要用来排除"模型完全不会数学"这种极端情况。

第二档是竞赛级别的题目,需要技巧但不需要新概念。这类题目对模型来说是有挑战的,因为解法不唯一,而且往往有一个"巧妙"的切入点。模型在这档的表现是讨论的焦点之一,因为它反映的是搜索和启发式的能力,而不是记忆。

第三档是研究级别的开放问题,或者至少是研究生阶段才会接触的问题。这一档最敏感,因为如果模型在这里也能给出有价值的思路,那性质就完全不同了。不过据我了解,这一档的评测样本很少,而且对"什么算有价值"的判断本身就有争议。

提示:看任何模型评测结果时,先看题目分布。如果题目集中在第一档,结论要打折;如果第三档占比高但样本少,结论要谨慎。样本量和题目难度分布,比总分更能说明问题。

3. 数学家说"疯狂",他们真正担心的是什么

3.1 不是怕被取代,而是怕说不清楚

外界容易把数学家的反应解读成"职业焦虑",这个解读太粗糙了。数学研究的核心活动是理解,证明只是理解的载体。一个证明写出来,同行读完之后说"我懂了",这个"懂了"才是数学共同体认可的东西。模型给出的解答,即使每一步都正确,如果读者读完不知道"为什么这样想",那它在数学意义上就是不完整的。

我见过一些模型生成的证明,逻辑链条是通的,但读起来像是一个不知道自己在干什么的人在抄步骤。每一步都对,但步骤之间的动机是缺失的。数学家对这种缺失非常敏感,因为动机恰恰是数学训练要培养的东西。

所以"疯狂"这个措辞,我理解成一种认知失调:一个不展示理解过程的系统,产出了看起来需要理解才能产出的东西。这个矛盾不解决,讨论就会一直悬着。

3.2 可验证性与可理解性的分离

数学有一个很好的性质:证明是可以被独立验证的。你给我一个证明,我不需要相信你,我只需要逐步检查。这个性质让数学成为最可靠的知识体系之一。模型生成的证明,如果足够形式化,理论上也可以被验证器检查。

但这里有个断层。自然语言证明到形式化证明之间,有一道很宽的鸿沟。模型输出的是自然语言,要验证它,要么人工检查,要么先形式化再机器检查。人工检查的成本很高,而且检查者需要具备相应的数学成熟度。形式化则可能改变证明的结构,甚至引入原证明里没有的错误。

这个断层意味着,模型在自然语言层面的数学能力,目前很难被严格地、规模化地验证。我们只能靠专家抽样评估,而抽样评估的主观性很强。这是这场讨论里一个被低估的技术难点。

3.3 对"数学直觉"这个概念的压力测试

数学直觉是个模糊的词,但数学家都知道它存在。它表现为:看到一个命题,大概知道它是对的还是错的;看到一个证明,大概知道它有没有漏洞;遇到一个卡点,大概知道该往哪个方向试。这种直觉是多年训练的结果,很难用规则描述。

模型在评测里的表现,某种程度上是在对这个概念做压力测试。如果模型的输出能被有经验的数学家评价为"有直觉",那说明直觉这个东西可能比我们想的更容易被某种统计过程捕捉。如果评价是"没有直觉但碰巧对了",那说明直觉和正确性是可以分离的,这本身也是个有意思的结论。

我倾向于认为,目前的证据还不足以支持任何一个方向的强结论。但这场讨论的价值在于,它把"数学直觉"从一个只可意会的概念,变成了一个可以被实验触及的问题。

4. 一个从业者该怎么复现和评估这类结果

4.1 搭建自己的评测集:从可控难度开始

如果你想自己评估模型在数学推理上的表现,不要一上来就用研究级问题。我的建议是从可控难度开始,逐步加码。具体做法是建一个分层评测集,每层有明确的判定标准。

第一层:计算与化简。比如求导、积分、矩阵运算、级数展开。这一层的判定是客观的,答案唯一,可以用符号计算库自动比对。这一层主要用来确认模型的基本运算能力,如果这里出错率高,后面的结果都不用看了。

第二层:标准证明题。从教材里选那些有标准解法的命题,比如"证明根号2是无理数"这类。判定标准是:证明的每一步是否合法,是否覆盖了所有情况。这一层需要人工检查,但检查成本可控,因为解法是已知的。

第三层:构造性问题。比如"给出一个满足某性质的反例"或者"构造一个函数使得某条件成立"。这一层的判定更复杂,因为答案不唯一,需要判断构造是否真的满足条件。这一层最能反映模型的创造性。

第四层:开放探索。这一层不建议作为常规评测,因为判定成本太高。但可以少量采样,用来观察模型在未知领域的表现倾向。

4.2 判定标准的制定比题目选择更重要

我踩过的一个坑是:花了很多时间选题目,但判定标准很模糊,导致结果没法用。后来我调整了做法,先定判定标准,再根据标准选题目。

判定标准要回答几个问题:答案唯一吗?如果不唯一,怎么判断一个答案是否可接受?证明的每一步都需要检查吗?还是只看关键步骤?如果模型给出了一个正确但冗长的证明,算通过吗?如果模型给出了一个错误但接近正确的证明,怎么记录?

我的做法是给每个题目附一个评分细则,分成三档:完全正确、部分正确、错误。部分正确的定义要具体,比如"思路正确但某一步计算错误"算部分正确,"思路错误但结论碰巧对了"算错误。这个细则在评测前就要写好,不能看到模型输出之后再定,否则会有确认偏误。

4.3 用形式化工具做交叉验证

对于第二层和第三层的题目,如果条件允许,可以用形式化工具做交叉验证。具体流程是:把题目和模型的解答都翻译成形式化语言,然后用证明助手检查。这个过程很费时间,但能发现一些人工检查容易漏掉的问题,比如隐含假设、边界情况。

我试过用这种方式检查一批模型生成的证明,发现的主要问题不是逻辑错误,而是隐含假设。模型经常在证明里用一些它没有明确说明的前提,这些前提在人类读者看来可能是"显然"的,但在形式化检查里就是漏洞。这个发现让我对模型输出的可靠性有了更清醒的认识。

注意:形式化翻译本身可能引入错误。如果翻译错了,检查结果就没有意义。所以交叉验证的结果要谨慎对待,最好由懂形式化的人来做翻译。

5. 这类结果对数学实践和工具链的潜在影响

5.1 作为猜想生成器的可能性

数学研究里有一类工作叫"猜想生成",就是基于已有结果提出新的、可能成立的命题。这类工作过去主要靠人的直觉和领域经验。模型如果能在这个环节提供候选猜想,哪怕大部分是错的,只要有少数值得验证,就有价值。

我试过让模型在给定一组已知结果后提出推广猜想,结果参差不齐。有些猜想是平凡的,有些是已知的,但也有少数看起来有意思。判断一个猜想是否有价值,需要领域知识,这个判断目前还得靠人。但模型可以扩大候选池,降低"想到一个方向"的成本。

5.2 对数学写作和教学的影响

数学写作有很强的规范性,定义、定理、证明、注记,每个部分都有约定俗成的写法。模型在这方面已经能帮上忙,比如把一段草稿整理成规范的证明,或者把证明改写成更易读的形式。这类任务的风险较低,因为最终内容由人把关。

教学场景更有意思。模型可以生成不同难度的练习题,可以给出多种解法,可以针对学生的错误给出反馈。这些应用不需要模型达到研究水平,只需要它在课程范围内可靠。从评测结果看,这个目标是比较现实的。

5.3 工具链整合的现实障碍

把模型整合进数学工作流,最大的障碍不是模型能力,而是接口和信任。数学家习惯的工作环境是纸笔、白板、排版系统,模型要嵌入这个环境,需要非常自然的交互方式。目前的做法大多是在聊天界面里问答,这个方式对数学工作来说太笨重了。

另一个障碍是信任。数学家不会用一个他们不理解其输出依据的工具来做重要判断。模型输出的不确定性,和数学要求的确定性之间有根本张力。这个张力不是靠提高准确率就能解决的,需要新的交互范式,比如模型给出多个候选、标注置信度、提供可检查的中间步骤。

6. 关于这场讨论,我自己的几点判断

第一,评测结果本身是真实的,但解读需要克制。模型在特定题目上的表现,不能直接推广到"模型会做数学研究"。数学研究是一个包含选题、试错、合作、写作的复杂过程,解题只是其中一环。

第二,数学家的反应是健康的。一个领域对新工具保持审慎,是学术共同体正常运作的表现。如果数学家集体欢呼"AI 解决了数学",那才值得担心。

第三,对开发者来说,这类讨论提供了很好的需求信号。数学家在意的是可理解性、可验证性、可整合性,这些都不是单纯的准确率指标能覆盖的。谁能把这三个问题解决好,谁就能做出真正有用的数学工具。

第四,我个人在实际尝试中的体会是,模型目前最适合的角色是"陪练"而不是"主力"。它可以帮你快速检查一个思路是否可行,可以帮你把想法写成初稿,可以在你卡住的时候提供一些你可能没想到的方向。但最终的判断、最终的证明、最终的责任,还是得由人承担。这个分工在可预见的未来不会变。

最后分享一个小技巧:如果你用模型辅助数学工作,养成让它"说出不确定的地方"的习惯。直接问它"这个证明里哪一步你最有把握,哪一步最没把握",它的回答往往能帮你快速定位需要重点检查的环节。这个习惯帮我省了不少时间,也避免了几次把错误结论当正确结果用的情况。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进