ELAI S.r.l.

AI用8毫秒回答:真的来得及吗?

两组平均值相同的延迟数据说明:评估嵌入式系统除了模型速度,还需要截止时间、百分位数和统计不确定性。

AI用8毫秒回答:真的来得及吗?

平均值无法回答的问题

光学传感器检查零件,AI模型必须在采集事件后10毫秒内给出结果。报告显示平均延迟8 ms,能据此说设备总能及时响应吗?不能。平均值把总时间分摊到各次试验,却没说明多少回答超过截止时间。零件若已越过可操作位置,分类即使正确也可能失去作用。

摘要。构造两组各含1000条、平均值相同的延迟数据,计算百分位数和超时,再加入设备其他阶段的耗时,最后推导有限样本中零超时的含义。从实际问题逐步走到二项概率,不要求读者预先掌握统计学。全部数据均为明确构造的合成数据,不是开发板、加速器或EL-AI产品实测。

先定义我们测的是什么时间

延迟是所选两个事件之间的时间。“函数调用到返回”不同于“传感器采样到执行器可获得结果”。Deadline是结果必须到达的截止时间。推理时间可能不含读传感器、预处理、内存复制和等待。本文设D=10 ms,以L>D为超时,恰好10 ms算准时,必须明确这一约定。

先只研究推理时间,不模拟队列,假设各次试验间隔足够长、互不重叠,也没有运行神经模型。A含1000个8 ms,B含990个7.8 ms和10个27.8 ms。以整数微秒存储,7.8 ms记为7800,避免小数舍入影响计数。

相同平均值,不同结果

平均值把总时间除以次数。B的大量快速情况恰好补偿少量慢速情况。公式没错,只是回答了不同于准时性的问题。

mean(B) = (990 × 7.8 + 10 × 27.8) / 1000 = 8.0 ms miss_fraction = count(L > D) / n

A在这条数据中零超时,B有10次,即1%。B多数时候更快,却在平均值掩盖的少数情况超时。无法断言A在硬件上总稳定,因为数据是这样构造的。证明的是数学可能性,而非某架构更优。分类准确率相同也不能消除时间差异。

百分位数是阈值,不是最坏情况

计算99百分位数时,排序1000个时间,取第990个。使用最近秩定义ceil(q n),q在0到1之间。代码索引减一,因为列表从零开始。至少99%的值不超过该阈值,不代表剩余1%与它相近。有些库在位置间插值,比较报告必须知道定义。

数据平均 msp99 msp99.9 ms观测最大 ms超时 / 1000
A8.08.08.08.00
B8.07.827.827.810

B虽有10次超时,p99反而优于A。p99.9进入慢尾部,升到27.8 ms。若允许部分超时,“p99小于10 ms”可以合理,但不等于所有响应都小于10 ms。观测最大值27.8 ms也不是对未来所有输入和设备状态的已证明上界。

两组合成数据:左侧为超过阈值的比例,右侧为独立试验下零超时后的统计上界。坐标与假设区分构造数据和统计推断。
两组合成数据:左侧为超过阈值的比例,右侧为独立试验下零超时后的统计上界。坐标与假设区分构造数据和统计推断。

左图中B在8到27.8 ms之间保持1%,把阈值从10提高到20 ms无法挽救这10次。到27.8 ms才降为零,因为计数规则为L>D。A在8 ms降为零。完整曲线能避免只看一个百分位数。右图将在区分样本与总体后解释。

设备不只是模型

假设采集、预处理和结果交付固定耗时1.5 ms,阶段不重叠。这是教学假设,不是测量。总延迟Ltot=Linf+1.5 ms,两者平均变为9.5 ms;A全为9.5,B有990次9.3和10次29.3。超时率仍为1%,正常情况余量却变了。只测神经计算内核会遗漏其他阶段。

能直接相加是因为额外成本为常数。一般情况下,两阶段p99相加不等于系统p99,和的分布还取决于哪些延迟同时发生。应在同一请求上关联测量各阶段,或使用有效的逐阶段上界。重叠流水线和异步加速器还必须区分提交工作与结果真正就绪的时刻。

零超时不等于零概率

现在假想在相同条件下进行了n次真实独立试验,没有超时。这一统计假设不会把合成数据变成实测。设p为未知但固定的单次超时概率,一次不超时概率为1−p,n次独立试验的概率相乘,所以短期测试可能漏掉稀有事件。

P(K=0 | p,n) = (1−p)ⁿ (1−pU)ⁿ = α ⇒ pU = 1 − α^(1/n)

K为超时次数,n为试验次数,α为选定概率阈值。单侧95%置信上界取α=0.05,寻找使零超时概率为5%的pU。n=1000时pU≈0.002991,即约0.299%。所以零次超时不能支持“以95%置信度低于千分之一”,上界仍约千分之三。

置信度描述在模型成立时反复测试的区间程序覆盖率,不是固定参数的主观概率,也不保证下一次运行。右图展示上界随n下降,但需要更多有信息量的观测,而非复制同一情况。若负载与温度导致成簇超时,独立性存疑,不能直接套用公式。

给定目标需要多少次试验?

测试前可以反推样本量。采用零超时接受规则、要求上界不大于ε时,需(1−ε)ⁿ≤α。取对数,注意log(1−ε)为负数,得到下式。除以负数时不等号反向,这一点决定测试是否过短。

n ≥ ceil(log(α) / log(1−ε)) α = 0.05, ε = 0.001 ⇒ n ≥ 2995

至少2995次独立且零超时的试验才能支持该单侧上界。若出现一次超时,零事件公式不再适用,需对应的二项计算。这不是嵌入式系统认证,而是有明确条件的统计试验。若p真为1%,100次独立请求至少一次超时概率为1−0.99¹⁰⁰≈63.4%。单次罕见的事件在序列中可能常见。

从示例到设备测试方案

真实试验首先要明确计时边界。异步调用若提交后立刻停止计时,测到的是提交而非完成。计数器需足够分辨率、正确换算和溢出回绕处理。Zephyr官方文档在代码块前后读取计数器,将周期换算为时间,所用定时器可能因架构、SoC或板卡不同而变化。本文没有在硬件上执行这些API。

每组测试应记录板卡与修订、处理器、频率、操作系统或运行时版本、编译选项、模型与精度、输入形状、内存使用和样本数。区分冷启动与稳定运行,说明预热、并发、中断和温度条件。不要自动删除慢样本,应先判断是测量错误还是真实服务事件。单位同为毫秒不代表不同协议可以直接比较。

模型权重不同于峰值RAM,延迟、功率和每次推理能量也不同,不能从合成时间推算能耗。严格实时要求需要在允许条件下论证最坏情况,包括阻塞与干扰,而非只看百分位数。允许部分延迟的任务可能更适合实测分布与明确的过期结果处理策略。选择取决于超时后果,本文未量化后果。

复现结果并理解代码

包内含两组完整列表、生成程序、JSON结果和绘图代码。无随机性,无需种子。t与10000比较,以微秒计数超时;除以1000转换成毫秒。百分位数按声明的排序秩计算。概率界使用expm1与log1p减少接近1时的精度损失,这是数值实现选择,不是新统计模型。

已执行检查验证平均8 ms、B超时10次、p99为7.8 ms以及最小样本数2995,并检查2995满足不等式而2994不满足。这些结果背后没有Zephyr或神经网络性能测试。用于真实数据时,必须以可追踪测量替换列表,重新审视独立性、输入分布和条件稳定性。

回答最初的问题

平均8毫秒不能证明及时性。应定义起止事件、计数超时、观察尾部,并区分观测与保证。B的p99更好,却每千次超时10次;即使1000次独立试验零超时,统计上界仍近0.3%。应测量真正关心的要求,不让平均值回答它不包含的问题。

来源与归属界限

NIST精确二项界文档提供统计参考,本文直接推导零事件单侧特例。Zephyr官方页面说明计数器、换算与测量边界,查阅的是2026年9月28日可访问网页,不是实验使用的固件版本。本文为可复现教学专论,不是硬件基准、原创研究或EL-AI已有嵌入式产品的证明。

NIST — Exact Binomial Confidence Limits.

Zephyr — Executing Time Functions.

Zephyr — Kernel Timing.

from math import ceil, log, log1p, expm1
x = [7800]*990 + [27800]*10  # synthetic microseconds
q99 = sorted(x)[ceil(.99*len(x))-1]
print("mean ms:", sum(x)/len(x)/1000)
print("p99 ms:", q99/1000)
print("deadline misses:", sum(t > 10000 for t in x))
print("95% upper p after 1000 independent zero-miss trials:",
      -expm1(log(.05)/1000))
print("zero-miss trials for upper p <= .001:",
      ceil(log(.05)/log1p(-.001)))
# Constructed data; no hardware timing was performed.

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 9 月 28 日。