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

← 第十一章 四个价值发生截面第十三章 失善从哪里发生 →

第十二章 失真从哪里发生

一、一个错误可以有好几种来历

收到一段有问题的论证,最容易做的事情是指出哪句话不对。这个工作不可缺少,却未必足以支持下一步修复。同一句“由此可知”后面接着一个没有根据的结论,可能因为原始问题被理解错了,也可能因为中间一个条件没有传过来,还可能因为一项猜测在几次改写之后变成了确定断言。表面的错误相似,形成它们的路径却不同。

本章把失真放回这些路径。这里的真首先是SDE运行相互支撑的问题,不只是最终句子的对错。如果系统在未经检验的情况下碰巧给出了正确答案,答案可以是对的,但“这个答案已经由当前依据得到支持”的运行声明仍然不成立。反过来,一条探索路线最终失败,也不意味着该过程中所有记录都失真。如实保留失败,恰好能够支持下一轮更准确的判断。

因此,需要把对象命题、关于证据的命题以及关于完成状态的命题区分开。一个命题可能为真,而当前材料尚未证明它;一个证明可能有效,却证明了另一个较弱命题;一份报告也可能准确说明自己没有得到结论。把这三类情况都压成“对”或“错”,会让该修复的位置重新隐去。

发生诊断不是用复杂解释替错误辩护。它所增加的责任是:不仅承认错误,而且提出它如何形成、怎样被遗漏的可检验解释。解释必须承受修正结果的反问。如果据此采取措施以后,同类错误没有减少,我们就不能继续拿一个漂亮的发生故事代替判断。

二、任务在表达中被换成了另一个任务

设想研究者要求证明一个结论对所有满足条件的对象成立。助手把任务概括成“寻找支持这个结论的实例”,随后给出十个成功案例。那些实例也许计算无误,但从全称证明转成实例搜集,已经改变了任务。失真并不发生在第十一次计算,而发生在任务被重新表达的那一刻。

这种改变有时非常细小。把“是否必然成立”改成“通常是否成立”,把“在原有条件下”改成“在适当条件下”,把“没有找到反例”改成“不存在反例”,都会改变后续需要承担的证据义务。系统若只检查新的表述是否被成功执行,便可能对一个已经偏离的任务给出完全合格的执行报告。

三方程的检查看到的不是一个孤立错词。当前显露的任务表述改变了D,新的D又挑选了只适合证明较弱结论的信息与方法;这些结果反过来巩固了“任务已完成”的显露。三个方面可以彼此配合得很顺畅,却共同脱离最初需要解决的问题。互相配合因此不等于已经获得真的支撑,还要检查所选层级与任务边界。

修复首先要保留原目标,而不是只保留最近一次改写。可以建立简短的目标对照:原问题要求什么,当前问题改了什么,谁依据什么理由同意这一变化。不是所有改写都错误,许多研究正因改写而进步;关键是把新任务公开作为新任务,而不是用它的成功抹掉原任务的未完成。

三、条件怎样从知识中脱落

另一个设想中,某个引理准确地说:在A与B同时成立时,可以得到C。最初的笔记保存了全部条件,随后为了检索方便,只留下“由A得到C”的标题;再后来,生成系统只读到标题,便在没有B的地方引用它。当前推导的缺口,实际上由压缩、存储和调用的连续过程共同形成。

把责任只归给最后调用者,能够提醒谨慎,却不足以解释为什么许多调用者会反复犯相同错误。如果检索接口总是优先显示结论,把适用条件藏在难以到达的附件中,复合系统就在不断把完整知识转成不完整的行动依据。个人加倍注意可能暂时补偿,原来的失真路径却仍然存在。

在这种情形中,必要的修复不是无限延长摘要,而是决定哪些条件不能与结论拆开。一个用于整体调用的知识单位,可以把证明细节折叠,但应使决定适用性的前提保持可用。至于哪些前提在当前任务中需要展开,还可以由相应工具检查。封装的原则不是显示越多越好,而是不能隐藏承担当前推理所必需的区别。

从价值发生的截面看,问题既涉及显露方式,也涉及意义与信息的错接,还涉及检索路径与资源配置。完整文档确实存在,不等于当前使用获得了完整条件。修复要追踪的是条件实际走过的路线,而不是在储存空间里证明某处曾经保存过它。

四、证据的身份会在传递中改变

一句“我们可以猜测”,经过润色成为“这表明”;一段“有待核实的参考资料”,经过排版进入正式参考文献;一个尚未完成的证明草图,被摘要称为“已经证明的结果”。这些变化不一定增加新的事实错误,却改变了证据的身份,使读者承担了原本不应承担的信任。

这里需要检查的不只是内容,也包括状态。候选、计算示例、经验观察、形式证明、解释性假说以及作者自述,不能因为都能够被写成自然语言,就在后续处理中获得同一种地位。一个出处真实存在,也不保证它支持当前句子;一个句子在别处被反复引用,更不等于这些引用具有独立依据。

可以为每项关键主张保留一条简短的依据链:当前主张依赖什么,来源实际说了什么,哪些推断是本项目新增的。依据链不必把所有阅读笔记公开给每个读者,但要使需要复核的人能够找到关键连接。没有连接的文献数量,只能显示材料规模,不能自动形成支持强度。

修复以后还要检查传播中的状态是否同步变化。正文已经改成“可能”,目录导语和宣传摘要却仍写“首次证实”,失真就没有被清除,只是换了位置。发生学判断要求改变沿实际传播路径继续进行,而不是在修改最容易看见的一处以后宣布整项工作完成。

五、身份跃迁:一种被低估的失真

上一节描述了证据身份在传递中怎样改变。这里给这一机制命名,并列出它的常见类型。本书提出:AI 时代有一种被低估的失真,它不是内容错误,而是身份跃迁:一个候选在传递中被当成了已证。

操作定义:一项内容在传递中,文字没有变化或变化很小,而它的证据身份从较弱的一类升到较强的一类,且没有新增依据支持这次升级,称为身份跃迁。判别的要点是:内容本身可能无误,出错的是它被赋予的地位。

日常案例一:家长群。晚上九点,有人在家长群里问:“听说明天可能停课?”十分钟后,另一个群里出现:“明天停课。”半小时后又有人转发:“学校通知明天停课。”每一步改动都很小:删掉“听说”,删掉“可能”,加上“学校通知”。没有人编造停课这件事——也许确实有人在讨论——但一个传闻变成了正式通知。第二天早上,有些家长没送孩子去学校。日常案例二:体检报告写着“甲状腺结节,建议定期复查”。家人转述成“查出甲状腺有问题”,再转一次成了“甲状腺查出东西了,得去大医院”。“建议复查”本来是一种随访安排,在传递中变成了诊断结论。

常见的跃迁类型可以列成下表。

跃迁类型 原来的身份 被当成 常见的语言痕迹 例子
候选→已证 猜想、证明草图 已证明的结论 “可以猜测”→“这表明”→“已证明” AI 给出的证明草图在摘要里写成“已证明”
样例→规律 几个成功实例 普遍规律 “这几次”→“通常”→“总是” 某个提示词试了三次都有效,就写进团队规范
作者自述→统计结论 一个人的经验报告 群体的普遍事实 “我后来不再逐句看”→“使用者会逐渐不再逐句看” 本书导论中王德生使用 GPT 的经历
思想实验→事故史 为分析构造的设想 发生过的历史 “设想”→“当年” 本书的高铁设想被读成早期高铁的真实状况
局部检查通过→整体完成 某一环节的通过标记 全部任务完成 “语法检查通过”→“验证通过”→“已完成” 形式检查通过,却没有核对形式命题是否表达原问题
建议、待查→诊断 随访或待核实事项 确定判断 “建议复查”→“查出问题” 体检报告的转述
转述→原话 间接来源 直接引文 加上引号、去掉“据说” 家长群里的“学校通知”

表中第三、四两种,正是本书导论“证据纪律”所防范的:切冬瓜不是已经完成的认知实验,高铁设想不是事故史,作者使用 GPT 的经历不是统计结论。本书后文若在某处把这些材料写成了更强的身份,犯的就是本节所说的失真。

跃迁很少一步完成,通常是几次小升级接力。停课的例子里,每一位转发者都只做了一点改动,单看每一步都像是正常的转述;体检的例子里,每一位家人都只是“说得简单一点”。这也是它难以被抓住的原因:没有哪一个人说了谎,责任分散在整条传递链上。所以诊断要沿链追溯,找到身份第一次升级的那一步,而不是只看最后那句话。本书的假设是,那一步也是修复最省力的位置——这可以检验:比较在第一次升级处修复与在最后一句处修复,看哪一种使同类跃迁复发更少。按这一假设,停课一例的修复点是第一次删去“听说”的那次转发;在 AI 写作里,常常是第一次把笔记改写成正文的那一轮。

还有一种不那么显眼的跃迁,发生在格式上而不是措辞上。同一句话,放在聊天记录里是随口一说,放进带编号的报告、加上参考文献编号、排成正式版式,读者就会给它更高的身份。本章第四节所说“有待核实的参考资料经过排版进入正式参考文献”,就属于这一种:文字一个没改,身份已经升了。

为什么说它在 AI 时代被低估?在 AI 辅助写作里,模型擅长把犹豫的语气改写成确定的语气,也擅长压缩;而压缩最先删掉的,往往正是“听说”“可能”“在这几例中”这类限定语。它们不承载内容,只承载身份。一处删改看起来是润色,实际上是升级。

修复的办法也由此而来:让身份标签跟着内容一起走。凡是删去或改写限定语的编辑,都当作一次身份变更处理,要求说明依据;没有新增依据的,限定语原样保留。这并不禁止压缩。“三位受访者都提到”压缩成“受访者提到”,身份没变,只是少了数字;压缩成“人们普遍认为”,身份就升了一级。区分的标准不是字数,而是改写后的句子是否要求读者承担更多的信任。家长群里,把“听说明天停课”转成“有人说明天可能停课”是合法压缩,转成“学校通知停课”就是跃迁。对 AI 辅助写作,可以把这条规则交给工具执行:比对修改前后的句子,凡是“可能”“初步”“在这几例中”一类词被删去,就标出来请作者确认。

与最近邻的分离线:一般的事实核查问“这句话对不对”;本节要求另外问“这句话现在顶着什么身份,这个身份是谁给的、凭什么给的”。两者在什么情形下判断不同?以停课为例,若第二天学校真的停课了,事实核查会说这条转发没有错;身份跃迁的分析仍然认为传递失真了,因为“学校通知”这一身份在发出时没有依据——这一次碰巧对了,下一次同样的传递方式就会出错。修复的位置也因此不同:事实核查改这一句,身份分析改这条传递链上删限定语的那一步。

可裁决预测:取一批 AI 辅助完成的文稿(如若干综述、报告或书稿章节),对其中被复核者标为有问题的关键主张逐条编码:(甲)内容错误,即命题本身与来源或事实不符;(乙)身份跃迁,即命题内容与来源一致,但其证据身份高于来源所支持的身份,判定方法是把该句与来源原文并排比对,核查上表所列的语言痕迹;(丙)两者兼有。编码由两名以上编码者独立完成,并报告一致性。若在这样的样本中,失真主要来自(甲),(乙)只占很小比例,那么本书高估了这一机制的分量,应当把它降为“一种偶尔出现、值得单独登记的失真”。

六、表示正确与对象正确之间还有一道检查

设想一个计算程序收到的长度单位是毫米,却被当作厘米处理。程序可以严格遵守写入的规则,计算也可以完全正确,结果却不符合实际任务。错误不是算术能力不足,而是对象差异进入表示时发生了错接。用更强的计算器重算同一份输入,可能只是更快地稳定复制错误。

在数学形式化中,也有相应的分析位置。一个符号表达可以获得有效证明,但仍然需要核对它是否表达原来的命题。量词次序、变量范围、空集条件以及定义中的隐含限制,都可能决定所证明的究竟是什么。Lean的验证指南明确把证明有效性与命题含义分开处理。[R3] 本书据此强调,完成一个环节的验证,不意味着全部接口都已被检查。

这种区分并不要求使用者把所有底层重新手工计算。更适当的做法,是给表示与对象之间的连接安排独立任务:检查单位,复述量词,构造边界例子,对照原始定义,或者让不同表示相互核验。检查的形式由对象决定,不必每次都相同,但连接不能无人承担。

这里也能看见对象的参与。表示不是任意命名以后就不再受约束。新的实例、反例和实际反馈,会迫使系统重新认识原来被忽略的差异。发生诊断要允许对象使表述失效,而不能把一切不合预期都解释为对象没有遵守模型。

七、版本变化使曾经正确的连接不再成立

一项结论可能不是从来就错,而是在条件改变以后仍被按旧身份使用。某个模块更新了定义,另一个模块继续引用旧证明;一份修订稿删除了假设,后面的论证却没有同步检查;技术文档已经改变接口,示例仍指向旧版本。这样的失真尤其容易被过去的成功记录遮蔽。

“上次已经检查过”只能回答上次那个对象在相应条件下的状态。若当前对象已变,过去的检查仍有历史意义,却不能未经对照就转成当前保证。因此,封装需要有可辨认的版本和依赖,而不只是一个不随内部变化改变的名称。名称相同与能力条件相同,是两种不同的同一性。

修复可以从变化的边界开始,而不是每次把全部系统推倒重来。先明确修改了哪个定义、数据、规则或接口,再追踪哪些后续结论依赖它。没有依赖关系的修复往往有两个极端:或者漏掉真正受影响的部分,或者把所有未受影响的工作也重新做一遍。前者牺牲依据,后者耗尽继续研究的能力。

本书中的连续写作也必须接受这项约束。“判断力本来就是复合能力”的母题更新以后,旧稿中“AI时代才开始复合”的句子就不再能凭此前已通过而保留。更新不能只进入新章节,还要回写导论、术语和案例解释。否则,一本书会同时保存互不相容的起点,却依靠不同章节的局部通顺掩盖整体失真。

八、为什么不能只增加一个检查者

发现错误之后,加一个复核环节似乎最稳妥。但一个新的检查者若只能看到同一份不完整摘要,采用同一个被误写的目标,也可能对同一错误给出一致确认。人数增加、模型数量增加或者审核轮次增加,都不能单独保证产生了新的证据。

需要追问新增检查改变了什么。它是否读取不同层级的材料,是否保留原始任务,是否能够核对适用条件,是否有权报告尚未解决?如果这些关系都没有变化,多一次“通过”可能只是同一依据的重复显露。独立性不是参与者名字不同,而是相关错误来源能否被不同的检查路径触及。

这也不意味着所有检查都必须完全独立。现实任务往往无法切断全部共同条件。更可行的是明确共享什么、分别检查什么,并针对高影响的共同依赖增加合适的核验。重要的不是制造绝对无依赖的神话,而是让系统知道自己尚在何处借用了同一组假设。

发生学的增量应在此接受检验:它有没有使复核抵达原来缺席的连接?如果新增分析只是换了一套术语描述相同问题,却没有改变检查对象、反馈位置或错误发现,那么不能仅凭理论名称宣布判断质量已经提高。

九、从候选原因到能够被反驳的诊断

诊断不应一次锁定最方便的解释。设想某研究助理频繁漏掉引理条件,可以提出三个候选原因:他没有学会识别条件,检索显示省略条件,或者时间安排使条件检查被系统性挤掉。三者可以同时存在,也可以只有其中一项占主导。需要通过材料与适当改变来区分,不能依据对个人能力的印象作出终局裁决。

若先改变检索显示,使用者在不增加训练的情况下就明显减少了某类遗漏,这会支持接口参与失真的解释,但仍不能排除其他因素。若改变显示无效,而针对条件辨识的训练有效,则诊断需要相应调整。这里谈的是研究设计,不是本书已经完成的实验。结果尚未取得时,不能用设想中的改善装成证据。

对于不能方便实施对照的情境,可以先追踪时间顺序、版本记录和失败实例,寻找不同解释预期会留下的差异。证据强度应随方法说明。一个事后访谈提供的线索,不能被写成已经排除了所有替代机制;一个明确的形式反例,也不需要因为缺少统计样本而被降为个人意见。

最重要的是让诊断能够失败。如果任何结果都能被解释为“发生更加复杂”,理论就失去了区分力。有效诊断应当承诺一些可观察的改变:修订某一处以后,预计哪些错误减少,哪些问题仍然存在;实际不符合,就修改原因判断,而不是责怪对象没有照理论运行。

十、知道一个说法怎样形成,不等于知道它是否成立

发生诊断必须警惕一种与自身方法特别接近的错误:发现某个结论来自利益、偏好或偶然遭遇,就宣布结论为假。一个人为什么提出命题,与命题能否得到证明,不是同一层问题。一个猜想可以来自误会,后来却被正确证明;一个动机严肃的研究,也可能没有得到成立的结果。追查发生不能越过相应领域的成立标准。

同样,指出某套规则在特定历史条件中形成,能够帮助我们理解其边界,却不能仅凭历史性就否定它在今天的有效性。需要进一步检查条件是否仍然满足,规则的实际作用是否改变。若只是把所有判断都还原为其来历,最终连发生诊断本身也只能是一段来历,无法说明为什么某个修订优于另一个。

本书因而区分两条证据链。一条说明主张由怎样的互动产生,另一条说明当前接受主张的理由;它们可能相交,却不必完全相同。最初的发现过程可以包含错误试探,最终证明则需要没有未处理的推理缺口。发生学关注前者怎样支持、干扰或遮蔽后者,不把二者相互取代。

这也回应一种合理的反对:既然形式证明足以确认逻辑有效性,为何还要研究发生?因为研究目标不仅是给这一次证明盖章,还包括理解目标怎样被选定、条件怎样被保存、错误怎样被发现,以及下一次能力怎样改变。形式检验在其范围内完成任务,发生分析解释并改进它所处的更大实践;双方不需要争夺同一项独占权。

十一、不同失真怎样相互放大

设想任务先被轻微改写,摘要随后省掉条件,复核者又只见到摘要。每一个环节单看都似乎只改变了一点,串联以后却可能把原本未完成的研究显露为完整结论。失真并不总是一个巨大错误引发后果,也可能来自多个小偏差在相同方向上累积。

若一次修复只补回最后缺少的条件,而任务表述仍然偏离,报告就会以更严谨的形式回答错误的问题。若恢复目标,却不修改摘要机制,相同的条件遗失又会在下一轮出现。诊断必须追踪相互作用,同时又避免把所有部分都宣布有问题,因为后者会使任何具体行动失去优先次序。

可以先寻找对错误身份起决定作用的连接:哪一处改变之后,“已完成”必须退回“待检验”?再寻找维持错误复发的连接:哪一处不改,同类误报会继续产生?前者优先保护当前使用,后者指向长期修复。两种工作都重要,却可能由不同层级承担,在不同时间完成。

这种安排也给暂停提供了明确理由。当影响尚未查清,可以暂停传播确定性结论,同时保留候选内容供研究;不必把暂停理解成知识全部失效,也不应为了保持产出速度而继续宣称完成。准确保存尚未解决的状态,本身就是下一轮获得真的一项条件。

十二、修复失真不是恢复一个无需再问的终点

本章从错误结果追到任务、条件、证据身份、表示接口和版本依赖,并不是为了把每次工作都变成庞大调查。大多数局部问题可以在适当粒度解决。发生诊断的必要性,来自不能继续用无效措施重复处理同类问题;其展开程度也应当接受成本与价值的判断。

一次修复至少需要留下两种不同结果:当前材料怎样改正,以及未来生成同类材料的方式怎样改变。前者使这一次可以继续使用,后者使过去的失败进入下一次能力。二者不一定同时完成,未完成的部分应当明确保留,而不是在文稿看起来整洁以后从记录中消失。

失真的修复也可能开启新的知识。发现一个隐含条件以后,研究不必只把它补回去,还可以追问它是否必要、是否能够被更弱条件替代、哪些对象会触发不同结论。这样,错误不再只是需要擦去的污点,而成为重组问题的入口。不过,新问题的价值仍要通过新的论证获得支撑,不能凭失败本身获得荣耀。

失真的修复,首先要使结论、依据与当前状态重新对应;更进一步,则可能把暴露出来的条件变成新的研究问题。发现隐含前提,不只意味着把它补回原句,还可以追问它是否必要。可是,即使这样的诊断完全正确,也仍有可能停在无人处理的报告里。价值能否继续发生,取决于真实的反馈能否进入相应的行动路径。

← 第十一章 四个价值发生截面第十三章 失善从哪里发生 →