v16 完整材料归档 · 本页保留迁移前内容与输出,当前归属请看课程导读。

CLS08|设备、自动设计与动态计算

本册小节 · 直接定位
  1. CLS 08 · 成本目标怎样改变模型设计?
  2. 1. 卷积究竟同时完成哪两件事?
  3. 2. 为什么先扩展,又线性压回去?
  4. 3. 少算乘法,为什么仍可能更慢?
  5. 4. 实际计时到底量了什么?
  6. 5. NAS 自动选择之前,人已经选择了什么?
  7. 6. 扩展规模与部署选网改变的不是当前输入
  8. 7. MobileNetV4 为什么仍在改模块?
  9. 8. 逐输入早退需要谁来承担错停风险?
  10. 9. 图内动态并不一定让 token 数逐图变化
  11. 10. 计算省下之后,还要检查哪一层?

CLS 08 · 成本目标怎样改变模型设计?

已经理解完整卷积后,再给识别器加一条现实条件:它要在一部手机上响应。输入与类别没有变,内存、算子和等待时间却进入了问题。模型可以更小,可以为设备选择子网,也可以按当前输入改变计算;这些选择发生在不同阶段,不能混称为同一种“自适应”。

本讲义连接早期多通道卷积与课堂设备、搜索、动态计算两条支线。可改条件的实验见 Lab C · 成本与选择 和 Lab D · 继续计算的条件。表中数值明确区分论文报告与教学构造;本讲义没有生成手机实测结果。

1. 卷积究竟同时完成哪两件事?

普通卷积用每个输入通道的空间邻域共同产生每个输出通道。若核为 $k\times k$、输入通道 $M$、输出通道 $N$,忽略 bias,每个输出位置需要 $k^2MN$ 次乘加。MobileNet 的 depthwise 先在每个输入通道内做空间过滤,再用 $1\times1$ pointwise 在通道间混合;账目成为 $k^2M+MN$。MobileNet,2017。

取 $k=3,M=32,N=64$,普通卷积为 18,432 MAC,分解后是 $288+2,048=2,336$ MAC,约相差 7.89 倍。若输出有 $H_oW_o$ 个位置,再共同乘上该位置数。各自的参数数目恰等于各自每输出位置的 MAC 数;两种结构的参数数目并不相同,激活大小也不能从参数量推出。

空间过滤与通道混合:精确成本算例

分解限制了可表达的核形式,因此不是任意普通卷积的无损等价变形。7.89 是算术工作之比,绝不是已经测得的手机加速倍数。返回 卷积分解。

2. 为什么先扩展,又线性压回去?

MobileNetV2 的 inverted residual 先把较窄输入扩到更宽的中间通道,在其中做 depthwise 处理,再线性投影回窄空间。低维瓶颈里的非线性可能丢掉信息:例如标量 −1 与 −2 经 ReLU 都变成 0,无法从输出恢复差异。这是数学直觉,不是对真实高维数据流形的完整证明。MobileNetV2。

“线性瓶颈”不意味着整个块没有非线性,而是窄输出投影后不再加同样的截断。shortcut 也只在步幅、通道等形状条件允许时使用。复用 LAB03 的 $1\times1$ 和残差模块时,应保持这些接口明确,不能仅凭图上画一条跳线就默认可相加。

3. 少算乘法,为什么仍可能更慢?

FLOPs 或 MAC 统计算术工作,设备还要读取权重、搬运激活、调度算子与同步。分支很多的网络可能把运算切碎;小算子可能无法填满硬件;逐元素算子虽然 MAC 很少,仍需读写大量数据。ShuffleNetV2 将这些因素带回网络设计。ShuffleNetV2原文。

下表重列 arXiv:1807.11164v1(2018-07-30)Sec.2、Table 1 的 GPU ×1 列:GTX 1080 Ti、cuDNN 7.0,输入空间为 $56\times56$,十个重复双 $1\times1$ 卷积块。指标为 batches/s,属于论文报告的算子微基准。Table 1 没有单独重述 batch size,因此不把 Figure 1 的 batch=8 无条件补成该表元数据;也不换算单图延迟。它与主讲采用的 ARM 列是不同设备的结果,分别读表。Table 1 版本入口。

输入∶输出通道比例 通道数 吞吐(batches/s)
1∶1 128→128 1480
1∶2 90→180 1296
1∶6 52→312 876
1∶12 36→432 748

这些近似匹配算术量的配置仍有速度差异,足以反驳“只看 FLOPs 就能确定实际速度”。它没有告诉我们在当前硬件上同样会快多少。

4. 实际计时到底量了什么?

计时前写明输入 shape、batch、dtype、线程、设备、后端、warmup 次数、重复次数及同步方式。异步设备若不等待操作完成,计到的可能是提交任务时间。报告 median 与 p95 时保留重复记录,不仅写一个最小值。参数、MAC、峰值激活、延迟、能耗分别回答不同问题;没有能耗仪或可信计量就不画 J/image。

还要分开预处理、模型推理与端到端响应。用户等待包含采集、排队、传输、预处理、推理和显示,任何一段都可能成为瓶颈。Lab C 使用实际可用设备测量并记录环境;即便在 CPU 上顺利运行,也不能改名为移动端实测。延迟分布用于比较当前条件,不是模型永久属性。

5. NAS 自动选择之前,人已经选择了什么?

一层循环给定结构 $m$ 训练参数;外层提出结构,再依据验证表现与设备成本选择下个候选。MnasNet 的软目标同时评价准确率 $ACC(m)$ 与目标设备实测延迟 $LAT(m)$:

$$R(m)=ACC(m)\left[\frac{LAT(m)}{T}\right]^{w},\qquad w=\begin{cases}\alpha,&LAT(m)\leq T,\\ \beta,&LAT(m)>T.\end{cases}$$

$T$ 是目标延迟,$\alpha,\beta$ 是人为设定的折衷强度。原文主要实验取 $\alpha=\beta=-0.07$:超出 $T$ 的候选仍有连续的 reward,不会被自动剔除。其经验依据是延迟翻倍时,约 5% 的相对准确率增益可相抵;令 $1.05\times2^\beta=1$ 得 $\beta=-\log(1.05)/\log2\approx-0.0704$。这是作者选择折衷权重的经验规则,不是所有设备与任务的定律。

在一段固定 $w$ 的区间内,$d\log R=d\log ACC+w\,d\log LAT$,说明目标比较相对变化。把它直接改成“只有 $LAT\leq T$ 才合格”会变成另一个硬约束协议。MnasNet,Sec.3、式2–3。

搜索空间、训练代理、验证划分、设备目标、搜索预算仍由研究者定义。随机搜索是有意义的基线:在相同候选空间与试验次数下,复杂策略是否真的找到更好的配置?ProxylessNAS 追问代理任务与目标执行条件的错位,MobileNetV3 体现自动搜索与人工调整可以协作;都不意味着目标一写出,人就退出研究。ProxylessNAS、MobileNetV3。返回 搜索中的两层循环。

6. 扩展规模与部署选网改变的不是当前输入

EfficientNet 的 compound scaling 协调深度、宽度和输入分辨率;baseline 搜索与随后放大规模是不同步骤。EfficientNet。OFA 则训练可裁出不同深度、宽度、核与分辨率子网的共享权重网络,按部署条件选择配置。Once-for-All,ICLR 2020。

如果为手机选好子网后每张图都用它,这仍是部署阶段选型。共享权重下候选排序能否代表独立训练结果,也是需要检查的假设。不能看到“子网”就把 OFA 称为逐样本早退。返回 部署选网。

7. MobileNetV4 为什么仍在改模块?

设备成本不是只由年代决定。MobileNetV4 的 UIB 统一表达几类块选择,并把搜索、训练与蒸馏放在硬件条件中研究。论文 Table 2 的 Pixel 8 EdgeTPU:base Conv-L 为 2.35 ms,加入三个 MHSA 后 2.76 ms,改为三个 MQA 后 2.60 ms。相对于 base 增加的延迟由 0.41 降至 0.25 ms,约降 39%;完整网络则是 2.76→2.60,约降 5.8%。两个分母不同,结论也不同。MobileNetV4,ECCV 2024。

这是一份论文在指定硬件与执行条件下的报告,不是本课重测,也不是“截至 2026 最新 SOTA”的声明。它提醒我们先问改善发生在模块、整网还是端到端交互,再使用百分比。

8. 逐输入早退需要谁来承担错停风险?

MSDNet 等多出口网络在中间位置给出预测,路由策略决定停止或继续。若用最大类别概率超过阈值就退出,阈值必须在验证集选择;评价标签不能进入在线门控。中间预测有用不等于置信度总可信,自信错误可能恰好最早退出。MSDNet。

先把全部出口算出来、再离线选择,能够研究准确率与出口选择,却没有真的省下后续运算。声称实际加速,需要实现跳过计算并把出口头、门控与调度计入。anytime 设置在任意中断时提供当前预测;budgeted batch 设置分配一批样本的总体预算,二者不能仅靠画同一张多出口图混为一谈。Lab D 同时保留全深度与固定或随机策略对照。

简单基线改变了本次判断。 LAB13独立训练的两出口digits BN模型用验证集选τ=0.5:动态测试345/360(95.83%)、平均conv/linear MAC 3091.73;固定浅出口同为345/360、MAC 2944;全深350/360(97.22%)、MAC 20032。验证集相对全深最多下降1个百分点的选择条件,在测试下降1.39个百分点,不能当测试保证。这次357/360张早退;14张错停中6张原本可由深出口纠正。只看准确率与这份MAC账,动态没有优于固定浅出口。它提出了停止分数何时值得复杂化的问题,不是否定动态计算本身。

这些是LAB13保存结果的离线回放,不是MSDNet复现或实际早退延迟测量;模型与LAB14同源,完整成本排除项和随机对照在Lab。返回机制与结果的对照。

9. 图内动态并不一定让 token 数逐图变化

DynamicViT 按特征选择哪些位置继续参与。给定每阶段保留比例时,数量可以固定,动态的是位置。原文 DeiT-S 比较中,原模型 top-1 79.8%、4.6 GFLOPs;$\rho=0.7$ 时 79.3%、2.9 GFLOPs。论文对应吞吐是 1337.7 与 2062.1 images/s,测试为单张 RTX 3090、batch=32;这是吞吐,不是单请求延迟。DynamicViT,NeurIPS 2021。

MoNE 为 token 分配不同宽度的嵌套子模型,提示少算不必总靠删除位置。本课使用其图像证据时,指标是 ImageNet-21k precision@1;近似读取的图点必须标“论文曲线近似读数”,不能换为 ImageNet-1k top-1 或借视频加速数字说明图像效果。MoNE,NeurIPS 2024。

10. 计算省下之后,还要检查哪一层?

一个精确但完全构造的调度例:三张图固定执行各 10 ms,总计 30 ms;按需执行为 4、8、10 ms,总工作 22 ms;再计门控与分组重排共 9 ms,总计 31 ms。它证明“少做算术”不逻辑蕴含“更短响应”,不报告任何真实硬件。真正执行还要检查并行、等待和尾延迟,不能把这个串行加法模型当完整调度器。

2021 年的动态网络综述归纳按实例、空间及时间改变计算的研究;这是综述公开时间,不是动态网络概念出生年份。本课只展开与图像识别相关的实例与空间部分。条件化参数可能随输入改变,却不必在测试时执行梯度更新。动态网络综述。

现在可以清楚区分:部署选一个固定子网、一次前向决定路径、以及用测试数据更新状态或参数。最后一种需要新的学习信号与评价边界,进入 CLS09。返回 计算与更新的区别,写出在你的场景中何时应继续、停止或保持不变。

回到主讲继续判断