System 1 与 System 2 之争烧到开源圈:先判断再思考真的更省算力吗
【免费下载链接】laya-coremlLocal Laya typed decisions on Apple Core ML and Neural Engine. Validated ports, ~5 ms short decisions on M3 Max, reproducible speed and energy benchmarks.项目地址: https://gitcode.com/gh_mirrors/la/laya-coreml
诺贝尔经济学奖得主卡尼曼提出的双系统理论,本意是描述人类心智的两种决策模式:System 1 快而直觉,System 2 慢而审慎。2026 年秋天,这场争论以另一种形态烧进了开源圈——当 Laya 把"System 1 决策模型"做成开源项目,以 421M 参数、33ms 级推理速度对标闭源 API 时,社区真正在争辩的问题是:把"判断"从"思考"中拆出来,单独训练一个不做生成、只做判定的模型,到底省不省算力?
这个问题不能靠口号回答,只能靠实测。laya-coreml 仓库在 M3 Max 上给出了目前最完整的一份证据链:单问题短决策 P50 4.98ms、相对编译版 MLX FP16 快 1.39 倍、整机能耗每决策低 2.78 倍——但同样诚实地记录了它 96 token 的上下文上限、91.7ms 级别的长输入表现,以及"快判断"无法覆盖全部决策场景的边界。本文基于社区情报与仓库源码,把这份账算清楚。
从心理学概念到开源模型:System 1 为什么值得单独造一个模型
先看 Laya 到底做了什么。它不是把通用大模型变小,而是改变了任务的数学形态:把"决策"建模为单次前向传播的分类问题,而不是"生成一段文本"的自回归问题。
在 决策原语定义 中,所有任务被收敛为三类:choice(从若干选项中选择)、score(打分评级)、noul(是非判断)。输入不是自由的提示词,而是按固定模板拼装的序列——[CLS] <类型> 指令 [SEP] [MASK] 选项0 [MASK] 选项1 ... [SEP] 状态 [SEP](见 序列构造)。模型只需要对每个[MASK]位置输出一个 logit,经过校准温度缩放和 softmax 变成概率,再交给一个轻量 action head 输出动作概率。整个推理路径在 结果装配 中完成,返回结构里output_tokens恒为 0——这是它与一切生成式模型最本质的区别:没有解码,就没有逐 token 的 KV cache 增长,也没有"生成错了要重新生成"的纠错回路。
为什么值得专门造一个这样的模型?社区文章"Jev 火了,但真正值得写的是"一文点破了要害:System 1 决策的护城河不在速度,而在RLCD 训练带来的置信度校准能力(ECE 指标)。通用模型被 Prompt 逼着做判定时,输出的是"文字",概率要经过一层不可控的转换;而 Laya 训练时直接优化"判定对了没有、判定有多确定",输出本身就是校准后的概率。这个差异在工程上直接表现为:能否把模型的概率当数用。
"先判断再思考"的算力账:5ms 决策背后的能耗结构
laya-coreml 仓库的核心贡献,是把 Laya 移植到 Apple Core ML 与 Neural Engine,并给出了可复现的速度与能耗基准。在 Neural Engine 实测报告 中,同一多语言 checkpoint、同一组 91 token 的发票判定问题(填充到 96),三种后端在 M3 Max 上各跑六个 20 秒交替块,共 65,598 次稳定调用,结果如下:
| 指标 | 编译版 MLX FP16 | Core ML ANE FP16 | Core ML ANE W8 |
|---|---|---|---|
| P50 / P95 延迟 | 6.94 / 7.39 ms | 4.98 / 5.31 ms | 4.88 / 5.23 ms |
| 平均整机功率估计 | 61.39 W | 30.75 W | 27.39 W |
| 整机能耗 / 决策 | 0.4288 J | 0.1540 J | 0.1344 J |
| 速度增益 | 1× | 1.39× | 1.42× |
| 能耗增益 | 1× | 2.78× | 3.19× |
这份数据最有价值的地方在于它的测量纪律:用 SMC PSTR 传感器直接读数而非 IOReport 组件计数器、梯形积分、相邻空闲功率平均扣除、异常样本整轮拒绝而不是删点(详见 能耗测量说明)。它还特意纠正了一个常见的算账错误——速度增益 × 平均功率下降比 = 能耗增益,把能耗比再乘一次速度就是重复计算时间。
"先判断再思考省算力"在数字层面的答案是:省,且省在结构上。非自回归意味着计算量与输入长度近似线性而非随生成长度二次累积;无解码意味着峰值功率低(30.75W 对 61.39W);不需要维护 KV cache 意味着 421M 参数的模型在 96 token 的固定图里就能把全部工作压进神经引擎。社区流传的"Laya-MLX 在 Apple Silicon 上 7.4ms 极速决策"与这里的 4.98ms 互相印证——这不是个别跑分的巧合,而是架构使然。
快思考与深理解的边界:哪些决策不需要深度推理
省下的算力不是免费的,它有明确的代价边界。仓库在 端口保真与限制 中写得非常克制:短决策的 4.98ms 不能外推为长上下文优势——单独导出的 ANE L1024 图能通过完整 63/63 校验,但一次真实的 1024 token 请求要约 91.7ms。双向编码器不缓存跨问题的上下文状态(API 说明),每个问题都是一次独立的前向传播。这说明 System 1 模型的适用域是有明确形状的:短输入、固定选项、低延迟、高频、需要概率可用的判定。
哪些任务属于这个形状?社区案例和仓库代码给出了同一份清单:
- 意图识别与工单分流:CSDN 实战文章验证了邮件分类、退款判定、部门路由;
- 内容审核与 Guardrails:垃圾邮件检测、钓鱼识别、安全护栏,选项集合固定且可枚举;
- 路由与工具选择:多语言路由、Agent 动作选择;
- 实时控制:laya-coreml 自带的贪吃蛇演示把这一场景可视化到了极致——模型每帧从四个方向中选择一个,同时回答"是否有安全路线""食物是否可达"两个是非问题(见 决策策略)。在 Snake 基准 中,ANE FP16 版本在三个 600 步不间断对局里维持了49.1–50.0 decisions/s的完整游戏循环吞吐,零死亡、仅两次安全干预。实测画面见仓库自带的演示:
而需要深度推理的场景——长文档研判、多步规划、开放性回答——社区文章"决策模型选型:从 Jev、Kev、Laya 分层"给出的判断与之完全一致:按决策成本分层,能用枚举判定解决的就不要动用生成式推理。System 1 的价值不是取代 System 2,而是把 System 2 从大量低价值判断里解放出来。
Laya 与 BERT/生成式模型在中文场景的实测差异
社区头条文章"当「快思考」遇上「深理解」:Laya 和 BERT 到底有什么区别"问出了一个关键问题:Laya 基于 ModernBERT 架构,它和 BERT 差在哪?
仓库源码给出了三层答案。第一,训练目标不同:BERT 学的是掩码语言建模,Laya 用 RLCD 对比决策训练,学的是"给定状态,这个选项比那个选项更合理";第二,输出形态不同:Laya 除了分类头还有 action head(动作概率)与按选项数量分桶的校准温度(见 校准温度读取);第三,置信度定义不同:Laya 的置信度不是简单的 top-1 概率,而是归一化香农熵1 - H(p)/log(k)(置信度计算),衡量的是"概率分布有多集中",这对多选项判定比单一概率更有信息量。
中文场景的实测差异在仓库的验证夹具里可复现。benchmarks/cases.py的 parity 用例直接用"发票4411被重复扣款,请今天退款。"这类真实中文消息构造状态,与英、德、法、西、印地、日、俄八种语言同组测试。在 多语言枚举校验结果 中,中文用例的probability_max_abs_error为 0.0001149,三个问题的 argmax 判定与上游参考全部一致;完整 63 题夹具(含中文)在 CPU+GPU 与 CPU+NE 两个计算单元下均通过,最大概率绝对误差 0.0016。这说明 FP16 Core ML 移植对中文判定的保真度是数字级的,不是"差不多就行"。
与生成式模型的差异则在社区实践中被反复验证:一篇中文实战记录用 Laya 做智能家居意图解析,在仅 740 条中文家电语料上微调,将准确率从 0.36 提升到 0.837,单次推理约 207ms,且输出自带置信度分布——显著优于"通用大模型 + Prompt 工程"方案。中文场景的代价也在同一批文章中被反复提及:置信度可能系统性偏高(开源模型在小样本、少选项问句上的已知现象)、是非题需要额外适配模板、首次推理需要预热。仓库在 端口保真 里同样提示:这些校验证明的是转换保真度,而非通用任务准确率。
对开发者判断力分配的建议:什么时候该用哪套系统
把情报与源码合在一起,可以给出一份可执行的分诊建议:
第一,先用"选项是否可枚举"做第一刀。判定目标能写成 2–32 个离散选项、且判定标准能文字化时(是否退款、哪个部门、危不危急、合不合法),才是 System 1 的领地。仓库的 ANE 运行时强制 B1/K32 签名(ANE 运行时校验),超过 32 个选项或 96 token 直接拒绝——这个限制本身就是设计意图的说明书。
第二,微调是最后手段,不是默认手段。社区文章总结的触发信号只有三类:格式强制、领域术语适配、私有决策偏好。在这之前应优先验证提示词、RAG 与链路升级。这不只是方法论洁癖——Laya 的训练管线是私有数据与持续标定堆出来的,开源复刻能兼容接口范式,却难以复制高精度校准("48 小时复刻潮"一文的核心论点),把稀缺的校准能力浪费在格式问题上不划算。
第三,概率可以信,但先查温度。这是仓库给我们最值得记住的一课:上游 checkpoint 的choice:11+桶校准温度原始值为0.1006,直接使用会把 logits 放大约 10 倍,让一个 0.24 的 top 概率被发布成 0.99——抛硬币被报告成确定。仓库因此在 温度钳制逻辑 中把所有温度钳制到 [0.5, 5.0],保留原始值供检查并发出 RuntimeWarning。任何把置信度当作决策门槛的管线,都应该把这段逻辑抄进自己的部署层。
第四,把 4.98ms 放回它的坐标系。它是"单问题、91 token、预热后、同进程内"的端到端数字,包含了提示构造、分词、数组、同步推理、校准与格式化(测量口径),但不包含模型加载、首次编译、跨问题状态和长输入。Snake 的三问题串行调用实测是 16–26ms P50,这才是完整游戏帧的真相。宣称"先判断再思考更省算力"没有问题,但必须同时声明省的是什么——省的是解码、KV cache 与峰值功率,不省上下文长度,更不省把任务定义成枚举问题的设计成本。
结论
"先判断再思考更省算力"在开源圈不是营销话术,而是一个被 65,598 次调用和 PSTR 传感器数据验证过的工程事实:判定型任务走 System 1 单次前向路径,在 M3 Max 上以 4.98ms 和 0.154J 的代价完成一次带校准概率的决策,比编译版 MLX FP16 快 1.39 倍、省 2.78 倍整机能耗。但它同时是一个有严格边界的真命题:96 token 的容量上限、91.7ms 的长输入现实、以及必须人工钳制的校准温度,共同提醒我们——System 1 省下的是算力,System 2 该花在哪儿,仍然是你来定。当开源项目把这两者的边界用可复现的基准测量出来,这场争论才算真正有了论据,而不是只有立场。
【免费下载链接】laya-coremlLocal Laya typed decisions on Apple Core ML and Neural Engine. Validated ports, ~5 ms short decisions on M3 Max, reproducible speed and energy benchmarks.项目地址: https://gitcode.com/gh_mirrors/la/laya-coreml
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考