为什么 Rule、传统 ML 和 LLM 不会互相取代

AI Engineering
#AI#Architecture#Enterprise AI#PIA

上一篇我们提出渐进式智能架构(PIA):企业 AI 系统应该按照「确定性 → 统计 → 生成」的层级逐层升级,永远先用能解决问题的最低级别智能。这个判断引出的下一个问题是:为什么不能把所有事情直接交给 LLM?Rule 和传统 ML 是不是只是 LLM 成熟之前的过渡技术?

我的判断很明确:Rule、传统 ML 和 LLM 之间不存在取代关系,它们面对的是三种不可通约的问题空间。把三者混为一谈的系统,往往同时付出高成本、高延迟和高幻觉三重代价。

本文要做的就是为这三层智能划定各自的边界,说明它们为什么必须共存。

需要说明的是,把问题空间按 Known Knowns / Known Unknowns / Unknown Unknowns 与三层智能一一对应的框架,是我在提出 PIA 的过程中首次系统阐述的,它不是对已有概念的简单重述。


引言:从问题出发,而不是从模型出发

本文的论证起点不是某篇论文或某个开源项目,而是我在提出 PIA 时反复遇到的一类反直觉现象:新模型越强大,人们越想用它取代旧技术。

企业 AI 领域有一种很自然的冲动:新模型出来了,就忍不住想让旧技术退场。

GPT-4 能写诗、能写代码、能通过律师考试,于是很多人认为规则引擎、词典、传统分类器、甚至知识图谱都可以退休了。这种冲动在 demo 阶段特别有说服力——你问一个问题,LLM 什么都答得出来,看起来比一堆规则优雅得多。

但真正落地后,这种冲动会撞上三件事。

第一,成本。一个中等规模的客服系统每秒处理几千次查询,如果全部走 GPT-4 级别的模型,单日均 token 费用轻松上千美元。而一条规则命中的成本接近于零。

第二,延迟。LLM 的端到端响应通常在数百毫秒到数秒之间,而规则匹配和 BERT 级别的分类器在几毫秒到几十毫秒之间。对实时交互场景来说,这个差距是产品级的。

第三,确定性。LLM 输出的是概率采样结果,同一个问题重复问,措辞、格式甚至结论都可能变化。企业系统需要的不是「大概对」,而是「错了能定位、能修复」。

所以真正的问题不是「LLM 能不能做」,而是「这件事值不值得用 LLM 做」。

架构应该从问题出发,而不是从模型出发。


第一章:三层智能各自的不可替代性

企业 AI 的智能大致可以分为三层。每一层都有另外两层给不了的东西。

1.1 L1 的护城河:给出「保证」而不是「答案」

第一层是确定性智能:规则、别名表、词典、缓存、知识图谱、状态机。

它的核心能力不是快,而是保证。一条规则写明「SEC → Securities and Exchange Commission」,只要输入是 SEC,输出就永远是这个全称。一百万次调用结果一致,错了可以追溯到具体的规则版本、修改人和生效时间。

这种保证在合规、金融、医疗、法律场景里不是锦上添花,是入场门槛。一个律师用一个系统查法条,他不在乎系统能不能「理解」法条,他在乎的是:这条引用是不是来自现行有效的条文、是不是原文、能不能被验证。

LLM 给不了这种保证。你问它一百次,第一百零一次它可能决定换一种更「自然」的说法,或者把 SEC 解释成 Southeastern Conference。这不是 bug,是概率语言模型的本性。

LLM 可以给出答案,但只有规则能给出保证。

L1 的 checklist 应该包括:

  • 每条规则都有版本、责任人、生效时间和 TTL;
  • 命中结果可被审计,能还原「为什么返回这个答案」;
  • 存在明确的 miss 信号,不能命中时诚实升级;
  • 定期用金丝雀抽检,防止过期规则自信地给出错误答案。

1.2 L2 的护城河:处理模糊、相似、泛化,成本可控

第二层是统计智能:逻辑回归、XLM-R、BERT、Embedding、Entity Linking、Reranker。

它解决的是已知意图的未知表达。比如一个客服系统知道用户意图只有两百类——查余额、改地址、申请退款、投诉——但每一类都有几十种、上百种说法。“我的钱去哪了”、“账户怎么少了”、“这笔扣款我没印象”,说的是同一件事。

这个问题用规则做,会变成一场灾难。你要为每一种说法写一条规则,规则数量会指数级膨胀,维护成本直线上升。用 LLM 做,则是杀鸡用牛刀。

BERT 级别的分类器推理一次只要几毫秒到几十毫秒,成本是 LLM 的千分之一甚至万分之一。在每秒数千次调用的生产环境里,这个差距不是优化空间,是生死线。让 GPT-4 去做意图分类,相当于让外科主任医师去给全公司测体温——不是不能测,是这个岗位配置本身就错了。

L2 的 checklist 应该包括:

  • 分类器输出经过校准,softmax 概率和实际准确率对齐;
  • 设置 OOD 检测,识别输入是否超出已知意图空间;
  • 检索分数要有阈值,低于阈值时诚实升级;
  • 按问题大类分别设定阈值,不能全局拍脑袋。

1.3 L3 的护城河:开放推理、多跳分析、规划

第三层是生成式智能,也就是 LLM:推理、多跳分析、规划、Agent、开放问题。

它的不可替代性在于问题空间不可枚举。面对「帮我分析这个客户流失背后的供应链原因」或者「这份合同有哪些潜在的法律风险没有被常见条款覆盖」这类问题,规则词典读不懂题面,分类器也找不到对应的意图槽位。问题本身就不是一个已知的类,而是一组需要现场组合、推理、探索的认知任务。

LLM 的价值在这里才完整释放。它可以读长文档、调用工具、跨多个信息源做推理、生成结构化的分析结论。前两层解决不了的问题,才应该落到这里。

L3 的 checklist 应该包括:

  • 输出必须附带推理轨迹或工具调用链,不能是黑盒结论;
  • 对关键结论做 self-verification 或多采样一致性检查;
  • 设置明确的人工接管点,不确定时不硬答;
  • 所有沉淀回低层的结论都要经过质量门和血缘标记。

1.4 反例:用 LLM 做查表,用规则做开放问题,都是灾难

两层之间的边界不能被浪漫化。我见过两种典型的错位。

第一种是用 LLM 做查表。“SEC 是什么”这种问题,本应走别名表,结果被送进 GPT-4。结果是一次查询 1.8 秒、0.02 美元,而别名词典查询是 0.1 毫秒、成本约等于零。答案可能还对,但系统为这种「对」付出了四个数量级的延迟和五个数量级的成本。

更隐蔽的是风险。词典不会把 SEC 解释成 Southeastern Conference,但 LLM 在极少数情况下会。成本高、延迟高、还有低概率幻觉,三重亏损。

第二种是用规则做开放问题。比如试图用一堆 if-else 处理「这个合同是否有效」的开放法律问题。合同效力涉及主体资格、意思表示、标的合法性、强制性规定、司法解释例外,规则很快就会爆炸成无法维护的丛林。而且新法条一出,整片规则可能瞬间过期。

电梯发明之后,楼梯没有被取代;直升机发明之后,电梯也没有。


第二章:问题的认知分层

为什么要分层?表面看是成本和延迟问题,往深里挖,是因为问题本身是分层的

2.1 Known Knowns:可枚举、可规则化

Known Knowns 是「已知的已知」。问题和答案都确定,可以被完整枚举、写成规则或查表解决。

比如:

  • “SEC 是什么”对应一个标准全称;
  • “退货政策是多少天”对应一条业务规则;
  • “这个 SKU 的库存”对应数据库里的一条记录。

这类问题的特征是:你可以提前写出一份清单,把所有可能的输入和输出对应起来。清单可能很长,但理论上可穷尽。

对 Known Knowns 使用 LLM,是一种结构性的浪费。模型在做的不是智能,是「用万亿参数模拟一张查找表」。

2.2 Known Unknowns:意图空间已知,表达变体未知

Known Unknowns 是「已知的未知」。你知道问题属于哪一类,但具体表达千变万化,无法枚举。

比如退款意图。用户不会都说”我要退款”。他们会说”这东西我不要了”、“能不能退”、“钱什么时候回来”、“这个订单帮我取消掉”。意图空间是已知的——围绕退款、改地址、查物流等几百类——但表达变体无法穷举。

这正是统计智能的主场。分类器、Embedding、Reranker 的核心能力,就是在有限类别和无限表达之间建立泛化映射。

2.3 Unknown Unknowns:问题空间不可枚举

Unknown Unknowns 是「未知的未知」。你不知道问题属于哪一类,甚至无法预先定义问题空间。

比如:

  • “这份财报有没有隐藏的经营风险?”
  • “这个供应链中断会对 Q3 交付产生什么连锁影响?”
  • “帮我为这次并购设计一个合规检查清单。”

这类问题没有标准答案,也没有预定义意图。它需要理解上下文、拆解目标、多跳推理、动态调用工具。只有 LLM 才能处理。

2.4 认知分层与智能层的对应关系

三种问题类型和三层智能之间的对应关系非常自然:

pia_2_1_light

这不是技术怀旧,而是对问题空间的尊重。

用超出一层问题的智能去解决它,是浪费;用低于一层问题的智能去解决它,是失败。

GPT-4 查词典是前半句;用关键词匹配回答多跳推理是后半句。两种错误在企业项目里都见过,账单都很贵。


第三章:Intelligence Hierarchy

3.1 不是因为 LLM 太慢才分层

很多人以为 PIA 分层是因为 LLM 太慢、太贵。这是把结果当成原因。

真正的原因是:智能本身是有层级的。确定性智能、统计智能、生成式智能,不只是能力递增,也是认知性质不同。可解释性、一致性、可审计性、毫秒级响应,不是「更强的 LLM」能够变出来的属性,它们是不同计算范式的本质属性。

明天就算 LLM 快十倍、便宜十倍,这个层级依然存在。因为企业系统需要的从来不只是「聪明」,还包括「可知、可控、可追责」。

3.2 能力与成本的双向约束

三层智能之间存在两条同时起作用的约束:

  • 能力向上递增:L1 只能处理确定映射,L2 能处理有限空间的泛化,L3 能处理开放问题;
  • 成本向上递增:L1 单次调用成本趋近于零,L2 是千分之一到百分之一美元级,L3 是美分级甚至更高。

PIA 的核心原则就是在这个双向约束下做选择:永远停留在能够解决问题且足够自信的最低一层。

这不是权宜之计,而是一种系统性的最小必要智能原则。


第四章:如何判断该停在哪一层

架构图好画。真正的工程难题是:一条 query 进来,系统凭什么判断它是 Known、Known Unknown 还是 Unknown Unknown?

4.1 被动升级(Escalation by Confidence)

不预先判断,永远从 L1 开始试,让每一层自己说「我不行」。

L1 的信号最干净:规则没匹配、缓存没命中、词典没查到,就是没有歧义的升级指令。L2 看置信度:分类概率、检索相似度、Reranker 分数低于阈值,说明「像,但不够像」,升级。L3 看自验证:输出后做 self-check 或多采样一致性检查,仍不确定就升级更强模型或人工兜底。

优点是简单、自然、每一层都不浪费;缺点是逐层串行,最坏路径的延迟等于各层延迟之和。

4.2 主动路由(Pre-routing)

用一个轻量级的层级判断器预先预测问题层级,直接路由到目标层。

典型实现是一个 BERT 级分类器,输入 query,输出 Known Known / Known Unknown / Unknown Unknown。训练数据来自历史日志:哪些问题最终停在 L1,哪些升到了 L3。RouteLLM、HybridLLM 已经在 LLM 之间验证过这个思路,PIA 把它推广到跨范式的智能层级。

优点是省掉中间层、延迟低;缺点是判断器自己会错,需要持续训练和漂移监控。

4.3 混合模式(生产实践最常用)

最实用的做法是把两者结合起来:

  • L1 永远先过,成本几乎为零,不过白不过;
  • L1 miss 之后,由 Router 决定走 L2 还是直接跳 L3;
  • 对明显开放、跨领域、需要推理的问题,直接送 L3。

这样确定性问题零成本解决,模糊问题按需泛化,明显开放的问题跳过中间层直抵 LLM。这是生产环境中最常见的形态。

4.4 判断信号:hit/miss、置信度、熵、OOD、self-verification、历史反馈

无论用哪种策略,可用的判断信号无非这几类:

信号来源层含义
Hit / MissL1确定性与非确定性问题的天然分界
置信度 / 分数阈值L2泛化的把握有多大
熵 / OOD 检测L2输入是否超出已知问题空间
Self-verificationL3推理结果是否自洽
历史反馈全层同类问题过去在哪一层被解决

这里有一个关键细节:低层传给高层的只能是信号,不能是结论。 如果把 L2 的错误分类结果作为上下文塞进 L3,LLM 很容易顺着已有结论说下去,错误被放大而不是被纠正。


第五章:智能下沉的两个台阶

分层判断不是静态的。一个设计良好的 PIA 系统里,L3 解决的问题应该不断沉淀回 L1 和 L2。系统越用越便宜、越用越快。

但下沉不是一个动作,而是两个台阶。

5.1 L3 → L1 点状沉淀:缓存记住答案

第一个台阶是点状沉淀。LLM 每解决一个新问题,答案先进入缓存:「这个问题 → 这个答案」。

这种沉淀的收益非常直接。一次 LLM 调用可能花费几美分、耗时数秒,而缓存命中后的成本趋近于零、延迟在毫秒级。在高频问题上,单均成本和延迟可以下降两个数量级以上。

但点状沉淀的局限也很明显:它只覆盖一模一样的重复提问。换一种说法,缓存照样 miss。它本质是「记住答案」,不是「学会解法」。

5.2 L1 聚类 → 泛化提炼:学会解法

第二个台阶是聚类加泛化。当缓存里的个案积累到一定密度,对它们做聚类,一个「问题类」就浮现出来。

原来十几种不同的问法,背后是同一类问题。这时候,系统从「已知问题的已知答案」进入了一种更微妙的状态:「一类已知问题的未知解」。

接下来要做的是泛化提炼:

  • 让 LLM 从一百个个案中归纳出规则,变成 L1 的确定性规则;
  • 或者把个案作为标注样本,训练 L2 分类器,让模型学会识别这个类的任意变体。

到这一步,L3 的个案智能才被真正压缩成了 L1 或 L2 的泛化能力。

5.3 为什么聚类是关键动作

聚类之所以关键,是因为它完成了从「答案空间」到「问题空间」的跳跃。

缓存活在答案空间里:一个问题对应一个答案。规则和模型活在问题空间里:一类问题对应一个解法。不聚类,下沉永远停留在点状缓存,系统只是个大号备忘录;聚类加泛化,系统才真正在长本事。

L3 给你一个答案,聚类给你一类问题,泛化给你一种能力。

聚类的 checklist 应该包括:

  • 缓存个案达到一定数量阈值后再启动聚类,避免过早泛化;
  • 用 Embedding 聚类 + 人工抽检相结合的方式定义问题类;
  • 每个类必须能明确归入 L1 规则化或 L2 模型化路径;
  • 泛化后的规则或模型必须保留「来自 LLM 生成」的血缘标记,便于错误时回溯。

结语

回到文章开头的问题:Rule、传统 ML 和 LLM 会不会互相取代?

答案是不会。它们不是同一赛道上的选手,而是面向不同问题空间的工种。Rule 负责给出保证,传统 ML 负责可控泛化,LLM 负责开放推理。三者之间不是淘汰赛,而是分工制。

LLM 越强,越应该把它用在只有它能做的事情上。它越强,L1 和 L2 能沉淀下来的能力就越多,三层的边界反而越清晰。

互相取代是幻想,各司其职才是架构。


相关阅读

  • 系列第一篇:《渐进式智能:企业 AI 系统的新架构思想》(理念提出)