SDE · AI越强,人就越弱吗?
第四编

第十八章 颗粒度:什么能够作为一个整体被调用?

王德生 著 · 本章正文4,855汉字 · 打开第124页

本章小节

一、一次操作里面,可能装着多少事情?

设想一位作者要把书稿交给读者。过去,他分别整理章节、检查标题、处理引文、生成目录、输出文件,再检查不同格式中的遗漏。后来,一套经过检验的流程把其中若干环节组织起来,他可以用一次调用启动它们。屏幕上只发生了一个动作,内部却并没有只剩下一件简单的事。

若据此认为作者只动了一次手,所以几乎没有能力,就把动作颗粒与功能复杂性混为一谈。反过来,若因为一次调用产生了完整文件,就宣布整本书已经完成思想与事实审查,也同样错误。一次操作能够承接什么,取决于封装的实际边界,而不是按钮名称的宏大程度。

颗粒度关注的,正是什么被作为一个整体单位来辨认、处理与调用。它不是只能用尺寸衡量的物理大小,也不是笼统的精细程度。一个单位可以在外部被整体使用,在内部包含许多彼此关联的过程;当活动改变时,原来的单位又可能被展开或重新组合。

因此,颗粒度是工具文明中极为关键、又容易被忽略的角度。工具不只增加操作速度,还可能改变一次操作究竟意味着什么。我们看到的动作变少,可能是能力被可靠承接,也可能是未解决的复杂性被界面遮住。必须追踪内部与外部怎样连接,才能辨认这两种情形。

二、粒子模态如何在调用中显露

作者能够把一个排版流程作为整体调用,是因为某些内部关系已经相对稳定。章节层级怎样识别,目录怎样形成,样式怎样应用,输出怎样检查,都需要有适当实现。对作者当前活动而言,这些过程可以暂时收进一个单位,不必每次重新构造。

这种单位化就是本书讨论粒子模态时强调的含义。它不是内部不再发生,也不是绝对不可分割,而是复杂发生在某个互动尺度上呈现为一个具有整体性、稳定性与相对独立性的功能单位。所谓粒子,是相对于当前调用关系而言的成形,不是脱离一切条件的实体。

同一个流程对维护者可能并不呈现为一个粒子。当目录出错时,他需要区分标题识别、编号规则与输出格式;对测试者来说,还可能需要进一步区分输入类型与异常样本。粒子化与展开不是矛盾,而是不同活动中颗粒地位的变化。

由此,封装不是把细节消灭,而是使细节不必以同样方式暴露给每一个参与者。文明中的很多便利,都有赖于这种不对称显露:有人能够整体调用,另一些过程承担内部实现与维护。问题不在于所有人看到相同细节,而在于需要承担的细节是否确实得到承接。

三、调用颗粒与执行颗粒可以朝不同方向变化

一个流程被封装得更完整,调用颗粒可能变大;与此同时,内部执行可能变得更细。例如,作者一次提交整章材料,系统却逐个检查标题、引用位置与格式差异。外部动作减少,内部辨认增加,这两种变化可以同时发生。

因此,粗颗粒调用不等于粗糙处理。用一个请求启动一组严密操作,与用一个模糊概括掩盖所有细节,并不是同一种粗。前者是组织关系上的整体化,后者可能是信息丢失。若不区分,便会误以为只有亲自面对全部细节才算认真。

反过来,细颗粒操作也不保证精确。一个人逐条点击许多选项,可能只是重复确认默认值,并没有发现关键错误;一份日志记录全部微小动作,也可能使重要变化更难定位。颗粒细不等于判断好,步骤多不等于理解深。它们是否有价值,取决于与任务的关系。

这使能力评价需要改变。不能只统计使用者执行了多少动作,而要看相应颗粒上承接了什么功能。一次调用可能连接长期准备与成熟机制,也可能只是产生未经检验的文本。外部动作相似,能力构成不同,不能用同一条动作数量尺度结算。

四、显露、执行、检验与责任未必使用相同颗粒

在书稿流程中,作者希望以章为单位查看排版结果;内部程序可能以段落或字符为单位处理;校对可能围绕标题、引文与页边界进行;最终对外承诺又可能以整本书为单位。几个层面使用不同颗粒,是正常组织的一部分,不需要强行统一。

但它们之间需要有转接。若整章被宣布检查完成,却没有任何办法说明检查覆盖哪些类型的错误,那么检验颗粒与承诺颗粒之间存在缺口。若某个字符级错误能够导致整份文件无法使用,系统也需要把局部异常提升为适当层级的提醒,而不是把它埋在无人查看的细节中。

责任颗粒尤其不能只跟随界面。一个人点击了整书输出,不意味着他能够独立承担所有内部软件缺陷;工具承接了格式转换,也不意味着它承担作者对书中论证的全部承诺。这里不是给出具体法律归责,而是要求不同承诺与实际能力、权限和支持相匹配。

当这些颗粒关系没有被说明,焦虑就容易出现。一方面,使用者被要求对自己看不见的所有细节负责;另一方面,他又因为不逐项执行而被认为没有贡献。解决办法不是简单增加审核按钮,而是明确哪些功能在哪个颗粒上得到承担,哪些问题需要转接到其他层级。

五、一个过大封装为什么可能制造假完成?

设想同一个按钮被命名为“完成出版”。实际上,它只完成了排版、目录与文件转换。作者看到成品形态齐全,便以为事实、引文、论证和阅读体验也已经得到检验。这里的错误不是自动化本身,而是调用名称把不同性质的任务收进了一个超出实际能力的整体。

颗粒过大的问题,可以表现为内部异质性被抹去。格式检查与论证检查需要不同依据,来源核对与价值判断也不是同一种操作。把它们放在同一个流程中并非原则上不可能,但需要各自有真实实现,不能因前几项运行成功就让后几项分享可靠性。

识别假完成,可以要求整体承诺返回功能清单与证据类型。哪些已经检查,依据是什么,哪些尚未检查,哪些需要其他支持?这种说明不必要求作者重做全部内部工作,而是让一次调用的边界不被完成品的外观遮蔽。

也可以缩小名称与承诺。把按钮称为“生成排版稿”,比称为“完成出版”更接近实际功能。范围缩小未必降低工具价值,它可能减少使用者错误地把成品外形当作整项活动已完成的机会。颗粒度设计同时也是承诺设计。

六、过细的颗粒同样可能阻碍能力发生

另一种情形是流程把所有细节都推给作者。每一种字体、每一段间距、每一个分页都需要人工逐项确认。作者投入大量注意,却仍难以把握整章阅读节奏。工具提供了许多控制点,反而没有形成值得调用的整体,所谓自由变成不断处理琐碎差异的负担。

这里需要区分选择丰富与选择合适。让使用者能够改变所有内部参数,不一定比提供几种可靠的整体方案更有用。一个人可能需要的是可理解的版式选择与异常处理,而不是学习全部排版机制。细节开放应当与实际任务对应,不能把未完成的封装包装成无限自主。

过细还可能造成接口疲劳。多个局部结果都需要人工转接,使用者被迫成为连接器,无法把注意放到书稿本身。即使每个工具单独表现不错,整体工作仍然困难。此时改进的方向是重新组织可调用单位,而不是要求人更努力管理所有零散工具。

当然,有些工作确实需要细颗粒控制。专业排版者可能要精确调整某个页面,作者也可能在关键段落上反复试验。问题不在于细节本身,而在于是否把某些专业情境中的必要细节变成所有使用者的普遍义务。好的系统应当允许不同参与者在合适颗粒上进入。

七、颗粒切换:平时调用,异常时展开

一种有价值的组织方式是平时整体调用,遇到相关异常再进入较细颗粒。书稿输出通常可以按章检查;若发现某页缺失,再定位到标题结构、段落或转换环节。这样,整体便利与局部修复可以并存,不必在完全黑箱与全部手工之间二选一。

颗粒切换需要支持。一个只有最终文件、没有任何可追踪结构的流程,很难在错误发生后展开;一个保存关键版本和对应关系的流程,则更容易定位。展开不要求每位使用者成为内部专家,但需要有可得的维护、帮助或替代路径。

展开的触发也可以被部分封装。某些异常能够由自动检查识别并定位,使用者只在需要时接收适当范围的信息。这里并没有把判断永久留给人,而是要求判断承担得合适。关键是触发机制是否能够辨认重要变化,而不是最后由谁点击。

重新封装同样重要。某次异常处理完成以后,经验若没有进入后续流程,下一次就可能重复同样困难。修复可以促使调用边界更清楚,或者使某个检查进入常规运行。颗粒的展开与收拢由此成为能力持续发生的一部分,而不是只有失败时才临时拆开的补救动作。

八、检查可以有不同颗粒,但不能假装覆盖一切

一项整体服务的检验,不必总是逐项重演。可以检查关键约束、比较独立证据、测试边界情形,或在适当任务中采用抽样。不同办法各有适用范围,需要依据错误类型与后果来选择。本书不提供一套适用于所有高风险活动的通用验收比例。

例如,检查若干页面能发现某些普遍样式问题,却不能据此证明全书没有一处遗漏。逐页查看能够发现更多版面问题,也不等于已经核实所有事实。检验颗粒不同,能够支持的结论不同。诚实的质量说明应当让这些差异显露,而不是把任一检查统一写成“全面审核通过”。

工具还可能把多个同源判断包装成多重验证。若生成与检查只是同一材料的不同转述,形式上有两道程序,不一定增加独立依据。颗粒看似更细,证据并未更强。验证设计需要看实际信息来源与失效方式,不能只数有多少个检查环节。

这也解释了为何“人必须看过”不是普遍充分条件。一个人在缺少材料、时间与相关能力时看过结果,并不能使结果自动可靠。反过来,一些内部检查可以稳定由工具承担。问题在于检验是否真实支持了承诺,而不在于检验是否具有足够多的人类动作。

九、颗粒度改变,会改变什么被看作能力

过去,一位作者能够熟练处理许多细小排版操作,容易被看见为有技术能力。后来,成熟流程承接了这些操作,另一位作者用较少动作获得类似结果。若评价只看旧操作的熟练程度,后者便显得能力不足;若评价只看最终外观,又可能忽略前者在特殊情形中的修复经验。

较好的比较需要分开任务颗粒。日常调用、专业维护、异常展开与新流程设计是不同能力。一个人可以在其中某些方面较强,在另一些方面依赖支持。不能因为他不擅长某一层,就否定全部复合活动;也不能因为他能够整体调用,就宣布掌握所有内部专业能力。

这使“能力退化”需要更谨慎的表述。某些细颗粒技能可能因使用减少而变化,是否构成值得担忧的损失,要看它在新的活动中承担什么功能、是否存在可靠支持,以及失效后的代价。不能把所有旧技能减少都视为文明衰退,也不能用新便利宣布所有旧技能都已无用。

个人还可以因为兴趣继续保留细颗粒实践。手工排一页书、慢慢修改一句话,可以具有审美与体验价值,不必以效率优越为辩护。封装使这些活动不再是所有人的强制劳动,却不应剥夺愿意进入者的实践空间。

十、颗粒不是天然给定,而是在互动中形成

同一篇文章,可以被看作一份完整作品,也可以被看作若干论证、段落或句子。哪一种颗粒合适,取决于当前活动。读者了解大意时需要的单位,与编辑检查论证时需要的单位不同。颗粒并非只是客体本来具有的大小,而是事物结构与当前操作方式相互作用的结果。

这不意味着可以任意切分。把一个需要上下文才能成立的论证截成一句话,可能破坏其意义;把多个不同来源的材料合并成一段统一叙述,也可能抹去重要差异。颗粒选择受到内容关系约束,应当接受实际理解与使用的检验。

由此,颗粒度分析与主客互动的整体性相连。我们不是先面对一组永远固定的原子,再把它们机械拼接,而是在活动中使某些过程成形为单位,并在新问题中重新展开。工具参与了这种成形,使用者也通过调用、检验与修正改变单位的边界。

因此,颗粒度升维不宜只写成“封装越来越大”。更完整的描述是:活动获得了新的单位化方式,能够在适当层级整体处理,并在需要时保留更细差异的进入路径。大颗粒、细辨认与跨颗粒转接可以相互支持,而不是简单处于同一条大小刻度上。

颗粒的选择还应有一个退出试验:把当前单位交给没有参与它形成的人,只给适用条件与必要材料,看他能否继续完成所承诺的活动。若成功依赖设计者在旁边不断补充未写明的判断,那么单位也许还没有达到原先声称的独立程度。试验不要求每位使用者理解所有内部机制,只要求功能承诺、必要接口与支持条件对得上。

十一、最合适的介入,不一定是最多的介入

面对复杂流程,人们常以为增加干预便增加控制。实际上,干预需要与可理解的差异和实际权限相匹配。一个人不断修改自己不了解的内部参数,可能破坏原先稳定的运行;一个人只在关键条件变化时获得明确选择,反而可能更有效地影响结果。

我们可以把目标表述为寻找当前活动所需的充分介入颗粒,而不是追求所有细节的最大参与。这里的充分不是已经找到一个普遍数学最优值,而是相对于目的、风险、证据与支持作出的具体判断。不同活动可能需要不同安排,随着工具成熟也可能变化。

充分介入还可以由多人和工具共同承担。调用者负责提供必要情境,维护者负责内部机制,自动检查负责某些异常识别,相关人员在结果影响自身时参与讨论。这种分工不是先验固定,而是需要根据实际功能组织。没有理由让同一个自然人承担所有颗粒上的工作。

一旦这种安排成立,较少的个人动作可以意味着更成熟的封装,而不是更少的主体性。人可以把注意放在真正需要回应的地方,也可以安心接受服务。解除“我必须时时介入才能证明存在”的负担,正是工具文明可能提供的一种自由。

十二、颗粒度如何回应“我只按了一个按钮”

一句“我只按了一个按钮”不能独自证明参与深浅。它可能描述一项成熟服务的正常调用,也可能描述对未经验证流程的轻率托付。需要继续询问:按钮承接了什么,哪些准备已经发生,内部可靠性由谁承担,结果进入了什么活动,以及使用者作出了怎样的承诺。

回答这些问题之后,我们可能发现某次调用没有包含特别的创造,但仍然完全正当;也可能发现一次简短动作连接了长期积累与新的组织,不能按动作数量低估。两种情形都不需要把人包装成永远不可替代的天才。活动贡献可以如实说明,人的价值不必通过夸大贡献来保护。

广度、高度与颗粒度已有各自的观察对象:关系范围、组织依赖和单位形态。接下来把它们放进同一场景,比较只改变一项、几项联动及彼此牵制的情形。只有这些差别能够被保留,三向才不会重新缩成一个“更强”总分。