
1. 一个问题当AI必须“出手”时云端算力救不了你1.1 物理AI的实时性“死线”最近我们团队在调试一台边缘侧机械臂控制器碰上个特别磨人的现象目标工件明明就在相机视野正中央机械臂每次靠近去抓总觉得比人的预期慢半拍。一开始我怀疑是网络问题把相机从30帧换到90帧把传输协议从TCP换成UDP问题纹丝不动。后来把推理引擎的完整日志拉出来才看到真相一次从“识别完成”到“伺服指令更新”的完整链路耗时约120毫秒其中神经网络推理本身只占40毫秒剩下80毫秒几乎全耗在数据表示转换、任务调度和跨节点通信上。整个控制回路就像一个人戴着一副高延迟眼镜在抓东西每一步都觉得自己反应过来了其实已经在物理世界面前慢了半圈。这个例子很能说明所谓“物理AI”与纯数字AI的本质差异。数字AI的任务输出是“答案”答错了可以重试物理AI的任务输出是“动作”动作做晚了、做错了代价是即时且物理性的。大家聊边缘智能时经常强调“AI模型部署在靠近数据源的地方而不是所有计算都压在云端”——这背后的核心动因就是延迟。云端计算在带宽和成本上确实有优势可一到实时控制场景那一趟网络往返就是“撞线瞬间”和“反应开始”之间的几十毫秒物理系统根本等不起。但“本地有算力”只是第一步。算力放在身边并不等于算力花在了刀刃上。我们的推理引擎当时把所有中间张量都默认处理成FP32浮点表面看起来没什么问题但细想一下整个物理控制链路机械臂电机关节控制周期通常是1kHz舵机位置精度有限伺服环内部的指令字长不过16位定点。一个关节角速度指令用32位浮点表示和用12位定点表示在物理世界里真的存在本质差别吗这决定了我们是在“为任务的实际需求计算”还是在“为浮点标准的历史惯性计算”。1.2 边缘智能算力受限但更值得抠的是数据表示粒度边缘设备算力有限通常的解法无非换轻量模型、做网络剪枝、降量化精度这些都是“在同一个算力体系里省着花”的思路。真正让我觉得值得重新思考的是另一个变量计算数据表示本身的粒度。举个例子。我们后来做了一次小实验把机械臂控制器里最耗时的一组浮点运算改成16位定标定点运算任务成功率不仅没有下降端到端延迟反而下降了约18%。原因不难理解定点数在嵌入式CPU上可以直接走整数流水线访存带宽减半缓存命中率上升。这就是“任务依赖最优基数”这个概念最朴素的一次体现——根据任务实际需要选择合适的数据表示而不是一股脑上最高精度。所以我这篇文章想展开的是一个相对基础但门槛不低的命题面向物理AI的智能计算如何在多值离散计算的框架下为具体任务找到那个依赖任务特性的最优基数。这个“基数”不是玄学它有严格定义、有推导路径、也有落地实验可以验证。2. 多值离散计算一块“档位可变”的新地板2.1 关于“数字该有多少档”的讨论其实进行了一百多年很多人听到“多值离散计算”第一反应是这是不是某种新造概念。坦白说它的历史比计算机本身还长。1920年前后波兰逻辑学家Jan Lukasiewicz提出了三值逻辑把传统二值逻辑的“真、假”扩展成“真、假、不确定”三个状态最初是为了处理亚里士多德那个著名问题明天是否发生海战今天说“真”或“假”都不合适。与此同时Emil Post也发表了一般n值逻辑的理论框架。也就是说多值逻辑在一百年前就完成了数学层面的奠基。后来为什么二值逻辑一统天下因为电子电路实现“导通/截止”两个状态成本极低、可靠性极高而实现三个以上稳定电平的模拟电路在早期工艺下太脆弱。这是物理约束压在数学架构上的一段历史。但有意思的是每隔十几年工业界就会因为“信息密度不够”或“功耗墙太高”重新把多值方案拎出来。1980年代有一波多值逻辑集成电路的研究潮当时的动机就是用更少的连线传更多的信息今天我们看到的很多技术本质上也是同一逻辑在新时代的延续。2.2 今天硬件里的“多值”比你想象的更常见如果只看AI芯片会觉得我们生活在二值数字世界的铁幕里。但把视角放到整个硬件体系多值离散计算其实已经大量商业化了硬件形态离散状态数基数典型用途核心代价TLC闪存8个电平3bit/单元存储擦写寿命下降、纠错需求上升QLC闪存16个电平4bit/单元存储可靠性与速度进一步劣化PAM4信号4个电平每符号传2bit眼图变窄、均衡复杂度上升忆阻器存储阵列通常4-16档电导存算一体权重存储电导漂移、编程精度有限脉宽调制PWM任意多档占空比电机控制、开关电源开关损耗与电磁干扰这些形态都指向同一件事数字世界并非天然只有0和1而是“在噪声允许的前提下尽可能塞进更多离散状态”。闪存从SLC到TLC再到QLC每一代都在增加基数但每一代都被存储可靠性问题拖后腿通信从NRZ换成PAM4换来的代价是接收端均衡器必须更强。多值化很像是“常压推进剂”——信息密度提升是真切的但每提升一档稳定性就松一分。放到智能计算里这个规律同样成立。神经网络量化就是一个典型从FP32到INT8精度损失微乎其微还能白赚三倍加速继续压到INT4多数模型可以接受再往INT2压只有极少数结构能扛住。这个过程里每下一档都是在跟噪声和误差放大作斗争。2.3 基数是什么以及在AI推理里的映射为了后面推导更顺先把术语定死。所谓“基数”就是一次计算或一个存储单元能区分的离散状态数量。二值逻辑基数2三值逻辑基数3一个Nbit定点数基数2^N。在AI量化语境里数据格式基数能表达的档位数典型场景1bit二元网络22极端压缩、部分语音唤醒INT244大模型极端量化探索INT41616端侧视觉模型压缩INT8256256工业部署最常用区间FP16/FP32连续近似极大训练、高精度科学计算动作离散化3-503-50机器人/自动驾驶决策输出还有一个容易被忽略的地方在物理AI里“基数”不只出现在网络的权重和激活值上还出现在策略的动作空间设计上。强化学习里把一个连续控制量离散成多少个动作档位本质上就是在做一个基数决策。后面第四章我会展开讲这个决策对控制效果的影响常常比网络本身的量化深刻得多。2.4 信息密度、功耗、可靠性一个三角张力把多值离散计算的收益和代价摆在一起看会发现它们构成一个永恒的三角张力信息密度基数提高每个存储单元或每条信号线能携带更多比特所有存储和通信带宽压力随之下降。功耗同一物理资源上表达更多信息意味着更少的面积开销和寄生电容翻转次数理论上更省功耗。可靠性相邻档位的电平差随基数增大而缩小噪声一旦大于半个档距读出的状态就会“跳档”——这恰恰是物理AI最不能接受的错误类型。所以“多值离散计算”本身并不是灵丹妙药它真正有价值的地方在于给了设计者一个连续的旋钮去权衡这三个目标。而怎么拧这个旋钮答案藏在具体任务里。3. “最优基数”为什么是任务依赖的一个可以推出来的直觉3.1 基数越高越好的那一半量化误差下降先看一个理想化但不失代表性的模型。假设一个物理控制量x坐落于[0,1]区间我们用N个等间隔档位去离散表示它相邻档位的间隔就是Δ ≈ 1/(N-1)。量化误差近似均匀分布在[-Δ/2, Δ/2]之间它的均方误差是E_quant(N) ≈ 1/[12(N-1)²]也就是说基数每翻一倍量化误差大约降到原来的四分之一。单看这一项肯定基数越大越好。放到控制回路里量化误差直接影响输出平滑度。如果任务要求轨迹平滑、不能出现台阶式抖动量化误差这一项的权重Cq就会很大对应的“够用档位”也就水涨船高。3.2 基数越高越危险的那一半噪声容限与能耗但物理世界从来不会配合数字的完美。传感器有热噪声电源有纹波电机运行时会引入电磁干扰这些噪声叠加在一个离散信号上如果相邻档位间距Δ小于噪声标准差σ读数就会在相邻档位之间随机跳动。量化误差是“有界的、平滑的”噪声引起的跳档却是“突变的、随机的”。在控制回路里一次跳档可能表现为执行器的一个突兀抖动严重时直接诱发极限环震荡。把这种误判的等效误差简化建模可以写成E_noise(N) ∝ [σ(N-1)]²噪声项随基数增长是二次方上升的。基数越高误判越频繁误判后果越严重。这就是为什么单纯追求“高精度”在物理AI里可能适得其反——你分得越细噪声越容易把你的读数从一格推到另一格。别忘了还有能耗基数提高意味着逻辑门更复杂、存储单元更多、数据通路更宽。在边缘设备有限的功耗预算里这是硬约束不是可选项。3.3 一个简化模型最优基数被任务和噪声同时锚定把上面两项合在一起总误差就是一条关于N的“U形曲线”E_total(N) ≈ Cq/[12(N-1)²] Cn·[σ(N-1)]²对N求导并令其为零得到最优基数的一个估计N* - 1 ≈ [Cq/(Cn·σ²)]^(1/4)这个式子的意义不在精确计算而在揭示三个关键趋势一是最优基数不是固定常数。同一个硬件平台跑不同任务时Cq不同最优基数就不同同一个任务换到不同噪声环境下最优基数也要跟着变。这就是“任务依赖最优基数”的字面含义。二是σ的影响被四次方根“压扁”了。环境噪声翻十倍最优基数不会降到原来的十分之一而是大约降为原来的约1.78分之一。这提醒我们想通过粗暴降基数来对抗恶劣环境效果其实是有限且迟钝的。三是Cq和σ是相乘关系。任务精度需求紧张Cq大时能抵消一部分噪声压力反过来也一样。这解释了为什么“感知任务里的低比特量化”和“控制任务里的低比特量化”完全不能混为一谈——前者Cq小后者Cq往往非常大强行套用会出问题。需要说明的是这个模型是为建立直觉而做的简化近似不是严格的动态系统最优控制证明。真要落工程还是要结合具体任务做实验标定。但这个U形曲线的基本形态我在多个实际项目中都观察到了方向是可靠的。3.4 暂停一分钟通信领域的现成类比如果觉得上面的数学有点抽象我换一个几乎每个工程人都见过的场景。无线通信里选择调制阶数的时候——信道质量好的时候上64QAM甚至256QAM一符号塞进更多比特传输速率高信道变差了就退回QPSK甚至BPSK用低阶调制换可靠性。调制阶数M就是无线信道上的“离散基数”而实时信道信噪比SNR就是那个σ。没人会用256QAM去跑一个信号烂到不行的链路也没人会在一条干净光纤链路上坚持用BPSK。这个“根据信道状态选择调制阶数”的机制学术界叫自适应调制编码工程上已经用了几十年。任务依赖最优基数在智能计算里的角色和它几乎一模一样任务精度需求扮演“目标吞吐量”硬件与环境的噪声水平扮演“信道SNR”设计者的工作就是在这两者之间选一个合适的“调制阶数”——也就是基数。这个类比帮我跟很多硬件同事对齐了认知。他们一听“动态调制”眼睛就亮了我一说“AI推理里也可以按任务和噪声动态调整离散粒度”大家就都明白了背后的逻辑。4. 物理AI里的四个实例最优基数长什么样4.1 机械臂动作离散化档位太少会抖太多会废我们团队在机械臂抓取任务上做过一组粗糙但很有说服力的对比实验。用同一个DDPG算法训练二自由度机械臂做定点抓取只改变一个参数把连续动作空间离散成N个档位。结果如下动作基数抓取成功率轨迹表现单步推理耗时2档41%末端明显震荡只能全速/停基准5档89%平滑可接受基准6%20档83%部分训练过程不收敛基准40%2档不够用是很直观的控制量只能在全速和零之间切换机械臂每一次靠近目标都要经历“冲过头-刹车-再冲”的振荡过程。20档反而更差则让很多人意外。原因有两个一是动作空间变大后强化学习的探索效率下降策略更难收敛二是档间距缩小到一定程度后传感器噪声导致的档位误判开始干扰策略学习。这个实验告诉我们“最优基数”在那里实实在在地存在着而且它不是单调函数是一个中间大两头小的山丘。5档在这个任务上刚好踩在量化误差、探索难度、噪声容限三者平衡的甜点上。物理执行器如果是步进电机这个效应更夸张——步进电机固有分辨率可能只有200步一圈你给控制器1000档位的位置指令最后还是要被机械结构强行量化到200步多出来的数字细腻度纯粹是浪费算力。4.2 自动驾驶制动决策粒度要匹配执行机构与传感器噪声自动驾驶是讨论“任务依赖最优基数”时绕不开的场景因为它的决策输出有天然的分级结构全力制动、中度制动、缓行减速、保持滑行、轻加速、正常加速……每一个都是离散状态档位数量的设计就是一个典型的基数决策。档位太少的问题在舒适性上暴露无遗。如果制动只有“全刹”和“不刹”两个档任何减速度需求都会被强行映射成一次急刹车里头的人体验极差低附着路面上还容易触发轮胎抱死。档位太多的问题则出在稳定性。假设把一个减速度指令细分成512级表面上驾驶员或决策系统可以精细控制刹车力度但如果车速、轮速传感器的噪声显著同一位置在不同帧之间读到的速度会差出半个档位制动命令就会在两个相邻档位之间高频跳变。液压执行机构跟不跳变本身会产生额外磨损整车姿态也不稳定。实际工程里我见过的主流做法是把减速度分成5到16档并且每一档之间的切换都设置死区滞后。这个死区宽度本质上就是根据传感器噪声σ标定的——噪声大就加宽死区、减少有效档位噪声小就适当细分。设备和环境一变最优档位数就变这不是拍脑袋定的是拿测量数据算出来的。4.3 边缘视觉质检每层激活值的最优位宽都不一样视觉质检场景看起来离“物理执行”比较远但它同样受“任务依赖最优基数”支配只不过这里的“任务”从宏观的任务类型细化到了神经网络的每一个层。常识上INT8量化基本可以做到无损INT4大部分模型能接受INT2只有少数层能扛住。但如果你逐层去看敏感性会发现有趣的分布浅层卷积在做边缘和纹理检测特征值动态范围大且彼此接近量化极易混淆它们深层语义特征反而冗余度高对低比特量化相当容忍。我们在一块边缘推理板上做过一个检测模型的逐层位宽分配实验前两层保留6bit中间层压到4bit最后反卷积层回到6bit整体平均位宽4.5bitmAP只掉了0.4个百分点推理能效提升了约1.6倍。把头两层也压到4bitmAP立刻下跌超过2个百分点。这就是“任务依赖”的微观版本每一层承担不同的子任务它们的最优基数自然不同。统一给整个网络分配一个固定位宽本质上是在用“次优”覆盖“最优”。4.4 具身智能中的自适应基数让档位跟着任务难度走具身智能任务还有一个显著特点任务难度在运行过程中实时变化。一个机械臂执行插孔装配时快速接近阶段控制精度要求低慢速对准阶段控制精度要求高一个AGV在空旷走廊里导航时路线可以粗糙进库位时就必须精细。我们在这类任务上试过两档自适应方案高精度模式和高速模式由一个任务状态机在两者之间切换。高精度模式用更高的控制分辨率和更细的动作基数高速模式则降低基数换取更快的推理节拍。实测下来任务循环时间缩减了22%平均轨迹误差只增加了3%。相较“全网统一永久固定一个高基数”的方案这个设计更贴合“任务依赖最优基数”的字面意思——最优基数连同一个任务自身都不是恒定的它跟着任务难度走。5. 从理论到落地我建议的三条工程路径5.1 离线任务感知量化先给每一层单独定基数如果你想在现有硬件上立刻吃到“任务依赖最优基数”的红利最简单可靠的路径是做离线任务感知量化。流程分四步先训练一个标准高精度模型作为基准最好用FP32或FP16。对网络每一层做逐层位宽搜索。不需要暴力搜索全空间用启发式就行从8bit开始逐层下调位宽观察任务级指标不是权重相似度的下降曲线找到“再降一档就明显崩”的拐点停在这一档。用任务级指标评估量化结果。分类任务看top-1/top-5检测任务看mAP控制任务直接看任务成功率和轨迹误差。千万不要只对比量化前后特征图的余弦相似度那种指标会骗人。完成后做短周期微调恢复精度再固化成部署格式。这条路径最大的优点是稳不需要改硬件也不需要运行时调度逻辑适合产品快速上线。代价是搜索和标定成本集中在线下一旦任务场景变化比如换了光照条件、换了执行器最优基数漂移后需要重新标定。5.2 运行时基数自适应像通信系统调调制阶数一样调精度离线量化把基数固定成一组常数但第四章的机械臂例子里已经说明同一个任务在不同阶段的最优基数可能是不同的。如果你希望系统能实时适应环境噪声和任务难度变化可以上运行时基数自适应。工程上不需要做得很复杂在设备里预置两到三套位宽配置比如“高精度版”和“高速版”再写一个轻量调度器根据任务状态、噪声估计可以用传感器残差或IMU方差来估计、剩余电量或热功耗预算选择当前周期用哪套配置。调度器本身不需要参与推理它只是几行状态机逻辑成本几乎可以忽略。这里有两个必须处理的坑一是切换时要保证状态连续性。同一时刻从8bit切到4bit网络输出的分布会有一个跳变控制指令直接叠加这个跳变会表现为执行器抖动。建议在基数切换时给输出加一个一阶低通过渡项平滑过渡几十个控制周期。二是加切换滞后。不要因为噪声瞬时波动就来回切配置否则系统会陷入“切换震荡”。判断条件要留滞回区间比如噪声指标连续超过阈值50ms才切换。5.3 硬件协同混合基数近存计算架构的实验方向如果你的视野放到两三年后的硬件那么最有意思的方向是混合基数近存计算也就是让芯片在同一块阵列上同时支持不同基数的计算单元。忆阻器存算一体天然适合干这件事——它的电导可以编程到不同的离散档位2档、4档、8档、16档都行而且可以按列独立编程。理论上可以在同一块阵列上把最敏感的层配置成8档高基数存储把冗余度高的层配置成4档甚至2档低基数存储让“任务依赖最优基数”直接嵌进硬件配置里。我们和一些芯片团队聊过这个方向当前的主要瓶颈是工艺层面的良率和漂移控制多档电导编程的一致性还有差距尤其是低基数高密度的列电导漂移会直接影响推理精度。如果做原型验证建议先从“同一阵列不同列使用不同编程脉冲数”这种小规模实验开始先把噪声统计规律摸清楚再谈全阵列调度。5.4 落地时的三个避坑点第一个坑只看精度指标不走查时序行为。某个模型量化后静态精度只掉0.1%看起来毫发无损但实际运行时离散值偶发跳变在控制回路里表现为偶发的输出毛刺。评估量化模型时一定要连着执行器和传感器一起跑真实时序回放观察有没有突发跳变。第二个坑把最优基数当成一个常数来标定。同一个机械臂空载和满载时的惯量不同同等控制分辨率下的任务表现也不同同一个视觉系统白天和黑夜的传感器噪声不同最优位宽可能就变了。标定最优基数时至少要覆盖典型工况最好留出一档自适应余量。第三个坑忽略执行器和传感器自身的分辨率极限。正确的做法是逆向推算先把执行器分辨率换算成等效档位数比如步进电机200步一圈就是200档再把传感器噪声换算成等效最小可区分档位最后再决定数字端的基数。数字端做得再细物理端消化不了都是浪费。6. 我们还没解决的问题和一个可复现的小实验6.1 三个还没解决的关键问题第一动态最优基数的在线辨识。当前我们只能靠任务状态机做分段切换但还没有一套统一的方法在运行时同时估计任务精度需求系数Cq和环境噪声σ然后实时算出当前最优基数。想要做到真正的“随任务自适应”这是绕不开的研究点。第二跨层耦合的联合优化。感知层的基数、规划层的基数、执行层的基数分别可以在各自层次上求得优解但组合在一起未必是全局最优。比如感知层给低基数会引入测量噪声规划层的最优基数就会跟着偏移执行层分辨率粗规划层做得再细腻也没意义。这个联合问题目前还没有成熟解法。第三缺少标准评测集。物理AI的任务形态差异太大了机械臂、无人车、四足机器人、柔性产线各有各的噪声类型和精度需求很难有一个统一的基准来横向比较“任务依赖最优基数”这个指标。如果大家能形成一套统一的评测协议这个方向的进展会快很多。6.2 评测指标少看TOPS多看“每焦耳有效任务进步”做物理AI的工程师很容易被算力指标绑架TOPS、TOPS/W、模型大小、FLOPs这些数字会写在宣传册上但它们跟任务成功率之间隔了好几层。我的建议是加两个更物理的指标任务成功率/单位能耗比如“千焦耳内完成多少次成功抓取”。这个指标同时惩罚了算力浪费和无效决策。每焦耳的有效任务进步把一次任务划分成若干子目标看每消耗一焦耳完成了多少个子目标。这个指标能反映基数选择是否跟上了任务难度变化。我们在对比一个4bit模型和一个8bit模型时用这两个指标得到了反直觉的结论仅仅看mAP或top-18bit几乎全面胜出但算“每焦耳成功抓取次数”4bit模型反而是0.9次8bit只有0.7次。低基数模型靠更高的能效和更快的推理节拍在单位能耗下完成了更多有效物理动作。6.3 一个不需要硬件就能跑起来的小实验即使你现在没有机械臂、没有自动驾驶平台也能在标准强化学习环境里复现“任务依赖最优基数”的核心现象。用OpenAI Gym的Pendulum或CartPole把连续动作空间离散成不同档位N分别跑一轮训练观察两张曲线奖励曲线的收敛速度和最终水平、以及训练过程中的动作方差。CartPole特别适合做这个实验因为它动作空间本身就小经典实现就是2档或者3档。你把它扩展到5档、10档、20档会发现奖励曲线并不是单调变好的通常在一个中间档位附近表现最好档位太少学不稳档位太多学不动。验证完这个现象再回过头看这篇文章里的公式和案例应该会有更强的体感。我们团队现在对“任务依赖最优基数”的基本态度可以总结成一句话不要在数字域里盲目追求精度先搞清楚任务在物理世界的分辨率极限在哪里。这个思路的下一步我们准备把仿真里观察到的噪声-基数关系搬到实际设备上做一轮验证——如果实机趋势和仿真一致“多值离散计算物理AI”这个组合就不再只是理论上的漂亮概念而是一条可以反复抄作业的工程路径。