王德生、张琼 著 · 第398卷 · 修订版v3.0

← 第二十七章 步骤、引理与证明模块第二十九章 错误猜想如何开启新路线 →

第二十八章 工具成熟与当前证明

一、两个问题,为什么总被压成一个信任问题

“AI已经证明过很多题,所以这次大概也对。”这句话把历史使用经验带入当前预期,有其自然之处;但若用它代替当前命题的依据,就越过了证据边界。工具值得继续使用,与当前结论已经证明,是两个相互支持却不相同的问题。

另一种相反的说法是:“因为这次仍需核验,所以过去的改进没有意义。”这也不成立。成熟工具可以使核验更稳定、更有针对性,减少个人重复展开的负担。每次仍有必要检查,并不意味着使用者必须亲自重新经历工具的全部形成史。

本章区分两个循环。第一个循环围绕工具与流程的可靠性发生:尝试、失败、检测、修正及新的使用。第二个循环围绕当前证明:明确目标、取得依据、完成适用检查并保留结果状态。前一个循环改善后一个循环的条件,后一个循环又可以为前一个循环提供反馈。

当两个循环被混同,系统容易走向两个极端:要么因为过去成功就停止当前核验,要么因为当前仍有风险就要求每个人从头检查所有细节。封装的成熟不在这两个极端,而在不同层级判断得到持续承接。

二、可靠性不是一个脱离任务的性格

人们常说一个模型可靠或不可靠,仿佛可靠性像性格一样附着在模型名称上。对于研究系统,更有用的说明应是:在什么任务、什么输入、什么工具条件和什么验收机制下,它能够怎样表现。离开这些条件,一个总体形容词很难指导使用。

某套系统可能善于把清楚的局部引理转换成形式证明,却不善于判断自然语言目标是否合理;也可能能够提出有启发性的猜想,却不能独立检验关键条件。两者都有可用之处,但需要不同封装接口。不能把一类能力的成功用于担保全部研究活动。

因此,工具成熟应当以能力单元为对象。先明确要承接的工作,再设计输入范围、失败状态和反馈方式。成熟可以局部发生,不必等待一个在所有数学领域都无所不能的系统。局部能力的边界清楚,往往更容易进入真实合作。

这也使评价有了改进方向。报告“这类目标的条件映射经常出错”,比报告“模型数学不行”更能指向修复;说明“在本流程内候选与已证状态未被区分”,也比要求使用者普遍更加警惕更可操作。

三、测试题库怎样成为反馈,而不是成绩展示

为了研究某类能力,可以组织具有明确目标和验收依据的任务集。但任务集不应只包含容易成功的题目,也不应在看到结果后悄悄删去失败案例。选择过程本身会影响对可靠性的判断,需要保留说明。

可以区分用于改进流程的任务和用于观察改进后表现的任务。若系统已经根据某些题目的反馈反复调整,再在同一批题目上取得高分,这首先支持对这些任务的适应,不能直接当作陌生任务的表现。这个区别来自比较逻辑,不需要把所有重复使用都叫作无效。

任务变化还应触及相关边界。相同公式只更换几个数字,可能主要检验局部稳定;改变量词、对象范围或缺失条件,则能够观察另一类判断。需要根据所要封装的能力选择变化,而不是用大量表面不同的题目制造覆盖广泛的印象。

每次失败应保留其类型和后续处理。条件遗失、语义偏移、依赖缺口、程序问题及证明路线不成立,需要不同修复。若只保存最终正确答案,发生机制就被抹掉,题库会变成宣传材料而不是能力积累的条件。

四、为什么失败能够成为成熟的一部分

一个寻找证明的系统可以大量失败,而仍然逐渐变得有价值。搜索本来可能尝试不成立的路线,关键在于失败是否被识别、是否改变后续尝试,以及是否阻止未经支持的结果进入接受层。错误候选不等于错误成果,两者必须分开。

设系统提出十条路线,其中九条被及时否定,一条得到完整证明。这与十条路线都被包装成成功,再由使用者偶然发现问题,具有完全不同的判断结构。不能只比较生成次数和成功话术,而应检查状态转换的依据。

承认失败还可以提高协作质量。一个模块准确指出“需要证明H,但当前条件尚不能支持”,使研究者能够集中处理H;一个自信地跳过H的答案,则把困难藏到上层。可用的失败报告保留了任务位置,是后续能力发生的材料。

因此,成熟评估应同时观察解决率和状态诚实程度。前者说明多少目标得到完成,后者说明系统能否如实区分完成、未完成和被否定。两项都重要,但不能相互补偿:诚实地失败不是证明成功,频繁成功也不能免除对虚假完成的检查。

五、当前证明为何仍需自己的凭据

假设某工具此前在一千个任务中都给出正确结果。新的任务可能包含此前没有覆盖的定义、边界或依赖,因此历史记录无法独自完成当前证明义务。接受这个结论,不等于否认历史经验;它只是规定经验能够支持什么。

对于当前任务,需要知道形式或非形式证明具体建立了哪条推导,使用了哪些基础,以及目标表达是否一致。工具过去表现好,可以帮助决定采用何种流程、投入何种检查资源,却不能使一个实际存在的逻辑缺口消失。

这就像在我们的高铁思想实验中,系统经过大量测试以后,乘客能够放心使用,但运行中的安全机制并不会因此撤去。对应到数学,研究者可以不逐行读,必要的推导检查仍然在复合系统中发生。封装减去的是个人重复承担,不是当前任务的证据要求。

如果当前只有模型自报“已完成”,而没有任何相应依据,历史成绩只能提供有限的信任线索,不能使这次结果自动成为证明。真正成熟的接口应当返回可以核验的状态和凭据,而不只是更有把握的语气。

六、两循环错位:用工具的历史成绩兑付这一次的证明义务

本章第一节区分了两个循环。这一节要说明,两者之间最常见的问题不在某一个循环内部,而在两本账被互相挪用。AI 证明的信任问题,在可靠性之外还有一类,就是两循环错位。

两循环,一是工具成熟循环,记录工具在许多任务上的历史表现;二是当前结论循环,记录这一次命题是否成立的凭据。两循环错位,是指用一个循环的结果去结算另一个循环的义务。它有两个方向。一个方向是拿工具的好成绩免除这一次的检查:“它一向靠谱。”另一个方向是因为这一次出错,就否定整个工具:“它这次错了,以后都别用。”前者把历史当作当前凭据,后者把单次当作历史记录。可操作的判别是:对任何一次接受或拒绝的决定,问支撑它的理由属于哪个循环。理由全部来自历史,而决定的是这次结论是否成立,是第一种错位;理由全部来自这一次,而决定的是工具今后是否可用,是第二种错位。

日常案例:一家口碑很好的修车铺,街坊都说靠谱。你去换刹车片,取车时师傅说换好了。口碑属于工具成熟循环,它说明这家店值得来、值得优先选择;可“这一次刹车片到底换没换”属于当前结论循环,它的凭据是换下来的旧片、单据上的零件型号、踩刹车时的脚感。因为口碑好就不看旧件,是第一种错位;因为这次漏拧了一颗螺丝,就再也不来并逢人说这家店不行,是第二种错位。合理的做法是:口碑决定你选这家店,也决定你检查到什么程度——也许看一眼旧件就够了,不必另找一家复检;这一次的凭据决定你是否把车开上高速。这一次若真出了问题,它应当进入这家店的历史记录,调整下一次的检查强度,而不是把记录一笔勾销。

看病也是一样。一家名声很好的医院,说明在那里看病值得、误诊的可能较低;这一次的诊断成立与否,凭据是这一次的检查结果、医生对症状的解释,以及必要时的第二意见。病人因为医院有名就不看化验单,或因为这一次被漏诊就认定整个医院都不行,两种反应都在挪账。

计算器是另一个熟悉的例子。常用的计算器几乎不会算错,第一个循环的记录非常好;但某一次结果离谱,最常见的原因是按错了键。因为计算器可靠就不复核输入,是第一种错位;因为结果离谱就认定计算器坏了,是第二种错位。这一次的凭据在输入记录里,不在计算器的历史里。

两个循环之间并非没有往来,只是往来有固定的通道。历史成绩可以合法地进入当前循环,但只能决定两件事:选不选这个工具,以及这一次检查做到什么程度。历史成绩是这一次结论的先验依据,但不能代替这一次的凭据;在凭据可得时,二者不可互相抵账。单次结果也可以合法地进入成熟循环,但只能作为一条记录,按它所属的任务子类更新历史,而不是替换整个历史。修车铺的例子里,口碑让你只看一眼旧件就够了,这是历史在调节检查强度;漏拧的螺丝进入你对这家店的记录,下次换刹车时你多踩两脚试试,这是单次在更新历史。两条通道都开着,两本账都不被挪用。

回到 AI 证明。模型此前在大量题目上表现良好,这属于第一个循环;这一次的证明是否成立,需要上一节所说的凭据。第二种错位在 AI 讨论中同样常见。一位研究者发现模型在某个证明里编造了一个并不存在的引理,便宣布“AI 证明不可信”。这一次的错误是真实的,也应当进入历史记录;但它能说明的是:这类任务、这种输入下,存在这种失败,需要相应的检查。它不能直接改写模型在其他子类任务上的全部记录。把单次失败放大为整体否定,与把整体成绩缩小为单次凭据,犯的是同一种挪账。

两循环错位也解释了一个常见现象:讨论“AI 证明能不能信”时,双方往往各拿一本账,一方举总体成功率,一方举单次错误,争论无法收敛,因为二者回答的是不同问题。

与最近邻的分离线如下。Tymoczko [R26] 讨论四色定理的计算机辅助证明 [R27] 时指出,这类证明无法由人逐步审查,使证明的接受带上了经验成分——我们相信的一部分来自程序和机器的可靠性。Gonthier [R28] 用 Coq 形式化四色定理,把信任从庞大的程序转移到一个小型、可审查的内核。这一步在数学中实际上已经处理了两循环错位:需要依赖历史可靠性的部分被压缩到最小、最可审查的内核,每一次证明的凭据则由内核逐步检查。在有这种内核的领域,本节没有增量。本书的推广在没有内核的领域。例如一份 AI 生成的法律意见:模型在法律问答上历史表现良好,但这一次引用的判例是否存在、是否适用于本案事实、结论是否越出所引规则,没有一个小型内核可以统一检查。这时不能像 Gonthier 那样把信任缩进内核,只能把当前凭据拆成可以分别检查的几项,并阻止“模型一向准”的历史记录去顶替其中任何一项。对这份法律意见,至少可以拆成四项:所引判例与法条是否存在且引文无误;所引规则的适用条件是否与本案事实相符;结论是否只推到所引规则支持的范围;有没有遗漏与结论相反的规则。每一项都有自己的凭据来源,前一项可以借助检索核对,后几项需要懂行的人判断。模型的历史成绩可以决定哪几项抽查、哪几项逐条查,却不能让其中任何一项被记为“已核”。

可裁决预测:若在给定领域内,工具的历史成绩与单次结论的正确率关联紧密到可以互相替代——具体说,在各个可以事先识别的任务子类中,条件正确率与总体正确率没有可辨认的差别,并且这一次有无凭据不影响接受决定的正确率(即被接受的结论中错误所占的比例,而不是工具输出本身的正确率)——那么区分两循环在该领域没有实际价值,用历史成绩代替当前凭据不会带来额外错误,本书应在该领域收回这一区分。反之,若存在可以事先识别的子类(例如量词改变、定义边界、陌生领域),其条件正确率明显低于总体,就说明历史成绩无法兑付这一次的义务。计算器大致接近前一种情形,这也是我们很少逐次核验计算器、只核验输入的原因。对无内核领域还可以多做一步检验:若逐项检查当前凭据与直接依赖历史成绩相比,并没有减少错误接受,本书在该领域的主张同样应当收回。

七、检查器本身为什么也有发生史

验证工具不是从文明之外降临的绝对裁判。它的逻辑设计、实现、测试和使用方式都可以发生问题。因此,复合系统需要说明自己信任哪些基础,以及怎样通过相应方式提高支持程度,而不是把怀疑无穷向后推。

对检查器的研究可以包括明确样例、边界样例、已知错误输入、独立实现的比较,以及对代码与逻辑规则的审查。不同方法覆盖不同问题。多个检查器一致,可以增加某些方面的支持,但若它们共享同一错误定义,仍不能自动发现语义偏移。

这里需要保留有限信任边界。任何具体系统都在一定基础上工作,本书不要求每次研究都证明全部逻辑和全部硬件。它要求将相关基础说明清楚,按任务需要采用相称的检验,并在出现异常时能够定位应该重新展开的层级。

因此,“检查器也可能错”不应成为停止使用一切工具的理由,也不应被轻率忽略。它是一项组织问题:哪些风险由现有机制承接,哪些需要额外复核,哪些仍然是明确保留的条件。适当的信任是有范围的,而不是零或一的心理开关。

八、独立核验需要实质独立,而不是换一个名字

设三个AI角色分别被命名为作者、审稿人和总编辑,但它们只读取同一份已经删去关键前提的摘要。即使三者都赞同,赞同也可能只是同一缺失信息在三处重复。角色名称没有制造新的证据。

实质独立需要说明哪一部分发生了不同。例如,核对者直接接触原目标和原定义,不只接受生成者的转述;形式检查针对实际证明对象,不只分析自然语言评价;另一种推导从不同条件关系出发,而不是改写同一段文本。

独立也不是越多越好。若新增检查覆盖同一类问题却成本很高,可能挤占其他关键义务的资源。应该按可能失效的位置安排不同依据,而不是用审稿人数制造安全感。分工应来自任务的缺口结构,而非组织图的外观。

这与六路径的使用一致。不同入口可以帮助揭示不同问题,但只有后续维度真正校正前面判断,路径差异才成为实质差异。六个角色照同一模板输出,不等于六条发生路径已经运行。

九、更新以后怎样保留可靠性,而不是只保留名称

一个证明系统的模型、提示、知识库、解析器或检查工具变化,都可能改变相应能力。不是每次变化都导致失效,但原有支持范围需要与实际变化对照。继续使用同一个产品名,不能证明内部承接关系完全未变。

可以将任务流程与关键版本关联,记录哪些能力在什么配置中获得过检查。更新之后,先在受影响的范围内重新验证,再决定哪些封装继续有效。若只是界面文字变化,影响可能很小;若修改了目标解析或证明接受逻辑,则需要更强确认。

版本记录还应保留回退与比较能力。发现新问题后,能够确定何时出现、影响什么任务,以及旧流程是否仍然可用。没有记录的更新,会使过去的经验难以进入当前判断,使用者只剩下模糊印象。

但也不能把维护变成无限冻结。新版本可能修复旧问题并打开新能力。发生学所要求的不是拒绝改变,而是让改变带着依据进入使用,避免把创新与可追溯性当成必须二选一的目标。

十、概率模型能帮助什么,不能帮助什么

在第十七章的零失败模型中,若试验独立、分布不变且失败能被识别,有限次数的零失败仍然对应非零的不确定范围。把这一模型用于证明工具,只能帮助讨论特定测试条件下的经验表现,不能直接给每个数学命题赋予已经证明的身份。

更进一步,观察到的失败率还取决于检测能力。设某类真实失败发生的概率为p,检测机制在失败出现时发现它的概率为q,并暂且假定没有误报,则观察到失败的概率是pq。这只是条件概率乘法,不需要假设两个事件完全独立,因为q已被定义为条件概率。

如果q未知,观察到很少失败不能单独识别p。可能是真失败少,也可能是检测能力弱。要从观察频率推断真实失效情况,就需要对检测机制另有支持,或者采用能覆盖相应失败的对照方法。不能把“没人发现错误”直接翻译成“没有错误”。

这个模型对封装发生有直接提醒:使用者越来越少阅读以后,表面错误报告可能减少,但这既可能来自系统改善,也可能来自发现机会减少。判断成熟需要检查承接机制,而不是只数投诉或警报。经验记录的生成过程本身,也属于价值发生诊断。

十一、人的信任应该怎样与系统能力共同调整

使用者不可能每次都直接测量整个工具的可靠性。他需要通过具体经验、可理解的状态说明及可信反馈形成使用预期。这种预期是封装发生的重要部分,但应该与能力范围保持联系,而不是被整体品牌印象取代。

可以向使用者呈现与当前任务相关的信息:这次使用了哪些已核验模块,哪些步骤仍未解决,目标是否有过实质修改,以及什么情况需要人工介入。信息不一定多,却要能改变实际决策。把全部技术日志倾倒给人,不等于提供了可使用的判断依据。

当系统能力提高,使用者可以逐步减少不必要的重复检查;当任务进入陌生范围,或证据状态发生变化,又应有条件地增加展开。这样,信任不是持续上升的单向曲线,而是随具体任务调节的关系。

作者关于GPT的经验在这里提供了研究入口,却不承担普遍结论。我们可以从这一经历提出问题:什么互动使逐句检查转为整体调用,哪些依据被实际承接,何时需要重新展开?回答这些问题,需要具体记录,而不是把个人自述扩成所有使用者的统计事实。

十二、从局部封装到较大研究流程

工具成熟可以从很小的范围开始。某类目标解析、某种代数变换或某组依赖检查获得支持后,可以作为模块进入更大流程。每次扩大,都需要检查组合产生的新义务。局部成功不是整体成功的自动保证。

例如,一个形式化模块能够正确处理已明确的命题,一个证明模块能够在该形式语言中完成推导,一个报告模块能够解释结果。三者连接以后,仍需确认自然语言目标与形式目标一致,报告没有扩大结论。流程边界上的判断不能因为内部模块各自优秀而被省略。

可以把成熟过程理解为逐步扩大可承接的关系,而不是逐步减少所有检查。某些内部检查自动化了,接口检查可能变得更重要;某些人工任务减少了,研究者对新结构的理解任务可能增加。判断的分布改变,不等于判断总量简单消失。

因此,项目评价应保留流程视图。哪里节省了时间,哪里新增了责任,哪里形成了新的证据,哪里仍然依赖临时补救,都应该进入比较。只有这样,“更成熟”才指向实际复合能力,而非演示中的顺畅程度。

十三、什么时候可以停止一次检验

如果把可靠性理解为完全没有剩余条件,检验将无法结束。实际研究需要在明确任务、证据与风险范围内作出接受、暂缓或拒绝。停止不是宣布永久正确,而是说明当前已经获得了什么支持,以及哪些条件仍被保留。

数学命题的证明完成,需要相应逻辑义务闭合;工具使用的接受,则还涉及检查环境、语义映射与采用基础。研究项目可以清楚记录这些层次,而不要求每次都重新证明整个文明知识系统。明确边界本身就是一种可检查的判断。

若资源耗尽但关键义务尚未完成,正确状态是未完成或需转交,而不是降低标准使流程退出。预算可以决定本轮研究何时停下,不能决定一个缺口何时被算作证明。灵活机制改变工作组织,不改变成立条件。

停止还可以是创造性的。发现原目标不成立之后,停止原证明搜索,为替代命题留下空间;发现某条路线代价过高,则保留已有成果并转向其他路线。停止不必等于放弃研究,它也可以是价值判断进入下一轮的动作。

十四、成熟过程怎样成为文明积累

当某套证明流程经过反复试用和检验,其支持范围能够清楚传递,后来者就不必亲自重演全部失败历史。他们可以在适当条件下使用已有能力,把注意放到新的问题。这正是封装作为文明积累机制的意义。

但传递应同时保留维护与修改路径。一个只留下成功案例、删除缺陷记录的工具,会使后来者无法理解边界;一个无法导出证明依据的系统,也可能把研究成果锁在特定入口中。能够继续使用,与能够重新检查,都属于公共能力的条件。

这里的“公共”首先是一项规范性设计方向,不是对现实现状的普遍描述。它要求我们研究哪些记录适合共享,哪些专业劳动需要持续支持,以及谁能把新问题反馈到工具改进中。封装不是免费从过去取走成果,而需要维护其继续发生的条件。

工具成熟与当前证明,是两条必须同时保留的线。过去的成功说明为什么值得继续使用这套机制,当前的证明依据说明为什么可以接受这一结论。二者相互促进,却不能交换身份。一个错误猜想的完整处理将展示这种关系:原命题被否定,新条件被提出,新证明被建立;每一步都保留自己的证据状态,而不靠最后的成功重写最初的问题。

← 第二十七章 步骤、引理与证明模块第二十九章 错误猜想如何开启新路线 →