SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size - 中文验证版
英文原文卡片:squeezenet_2016.md
状态:已翻译。
元数据
- Slug:
squeezenet_2016 - 年份: 2016
- 会议: arXiv/ICLR submission
- 作者: Forrest N. Iandola, Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, Kurt Keutzer
- 阅读状态: read complete
- 计算范式: 高效推理与边缘部署 (
efficient_edge_inference) - 主要来源: PDF、抽取文本
计算设置
论文对目标部署设备有明确说明,但未列出训练硬件。它从分布式训练通信、向汽车无线传输更新以及 FPGA/ASIC 推理的角度论证小型 CNN 的必要性。具体硬件示例是一块 Xilinx "Vertex-7" FPGA,具有 8.5 MB 片上内存且无片外内存。作者认为,足够小到可以放入片上的 CNN 可以避免在视频帧实时流过时受参数内存带宽的瓶颈限制。
训练硬件在抽取文本中未列出。训练软件环境是 Caffe,发布了 SqueezeNet 的 Caffe 配置文件,并讨论了 MXNet、Chainer、Keras 和 Torch 的移植。按项目规则,训练设备语境推断为 2016 年 Caffe/cuDNN GPU 工作站或集群,但本卡片中受支持的主张是关于模型体积和部署内存,而非实测 GPU 训练设置。
瓶颈
核心瓶颈是参数搬运。对于分布式数据并行 CNN 训练,论文指出通信开销与参数数量成正比,因此更小的网络减少服务器间通信。对于客户端部署,瓶颈是导出带宽:一次 AlexNet 更新约需 240MB 才能发送到汽车。对于嵌入式推理,瓶颈更加严峻:如果参数放不进片上内存,推理就必须从较慢的片外内存流式读取权重(如果片外内存存在的话)。
这不同于后来以延迟或乘加次数为优先的移动端论文。SqueezeNet 的首要预算是模型大小。一个 4.8MB 的 CNN 可以以 240MB AlexNet 无法做到的方式被分发、传输、缓存并可能放在 FPGA 上。因此该方法将架构视为内存容量和通信设计问题。
方法适配
SqueezeNet 使用 Fire module 在保持 ImageNet 准确率的同时缩小参数数量。Fire module 首先应用仅由 1x1 滤波器组成的 squeeze layer,然后应用混合 1x1 和 3x3 滤波器的 expand layer。这实现了两种显式的参数节省策略:用 1x1 滤波器替换大量 3x3 滤波器,并减少剩余 3x3 滤波器看到的输入通道数。由于在相同输入/输出通道数下 1x1 滤波器比 3x3 滤波器少 9 倍参数,这直接针对权重存储。
第三种策略是延迟下采样。通过使较大的激活图在网络中保持更深,模型尝试在严格的参数预算下保持准确率。这是一个计算权衡:较晚的下采样可能使激活计算高于积极下采样的小模型,但它花费该计算以避免增加存储的参数。该架构还去除了全连接层,以卷积和平均池化结束,从而避免了密集分类器权重。
论文的压缩讨论具有硬件意识。深度压缩可以通过稀疏性和低位码本进一步减小 SqueezeNet,但作者警告说,码本量化不会自动为 8 位或 6 位值带来 4 倍或 5.3 倍的通用处理器加速。速度收益取决于能利用压缩表示的硬件,例如相关工作讨论的 EIE 式加速器。
证据
在 ImageNet 上与 AlexNet 对比,基准 AlexNet 被列为 240MB,top-1 准确率 57.2%,top-5 准确率 80.3%。未压缩 SqueezeNet 为 4.8MB,小 50 倍,同时达到 57.5% top-1 和 80.3% top-5。使用深度压缩后,SqueezeNet 在 8 位下为 0.66MB,6 位下为 0.47MB,同时保持相同的 57.5/80.3 准确率。最终的 0.47MB 模型被报告为比 32 位 AlexNet 小 510 倍。
设计空间实验展示了内存/准确率旋钮的行为。将 squeeze ratio 提高到 SqueezeNet 设定值以上,可将 top-5 准确率从 AlexNet 级别的 80.3%(模型大小 4.8MB)提升到 86.0%(模型大小 19MB),之后准确率趋于平缓。改变 3x3 滤波器比例显示,当 50% 的扩展滤波器为 3x3 时 top-5 准确率在 85.6% 达到平台;在该实验中,更多 3x3 滤波器增加了模型大小而未提高 ImageNet 准确率。
宏观架构同样重要。普通 SqueezeNet 的 top-1 为 57.5%,top-5 为 80.3%,模型大小 4.8MB。添加简单旁路连接将准确率提升至 60.4% top-1 和 82.5% top-5,且不增加模型大小。复杂旁路连接达到 58.8%/82.0% 但模型大小增至 7.7MB。这是一个重要的计算事实:如果通道维度对得上,残差式信息流可以在不增加参数存储的情况下恢复准确率。
历史影响
SqueezeNet 帮助将高效 CNN 工作从仅压缩已存在的大型模型转向直接设计紧凑模型。它将模型大小与分布式训练通信、OTA 传输和片上推理联系起来,使"放入内存"成为一等架构标准。它还使 Fire module 成为使用 1x1 卷积管理参数带宽的具体范例。
局限
本文未测量在手机、GPU、FPGA 或 ASIC 上的端到端延迟。如果内核效率低或激活流量占主导,小参数文件仍可能表现不佳。压缩结果依赖稀疏/量化执行支持才能获得真实加速收益。未列出训练设备细节,因此除所述通信论证外,不应就训练吞吐量做出任何主张。
链接
- 计算范式:高效边缘推理
- 方法索引:cnn、distillation
- Ledger 更新:compute bottlenecks