跳转至

第 4 部分:神经网络模型压缩与VLSI优化方向介绍

当我们在设计某个算法的硬件架构时,一般都会事先考虑是否能对算法进行优化,使之对硬件设计更加友好。不巧的是,当前神经网络模型本身就存在很多冗余,优化空间很大,不同的方法组合起来构成了"模型压缩"这个研究方向。

现有模型压缩方法总结

NN Hardware设计概述

近几年的NN Hardware主要关注的点在Inference,Training更多的还是在GPU上。

1. NN hardware评价的性能指标

除了Power,Area以外,评价速度的指标最常用的是OP/s,也即每秒能够执行的operation数目。这两年大家已经不再像以前那么关注高速,而更多的关注的一个指标叫做Energy Efficiency,单位是OP/s/W。

2. 大家都focus在什么地方?

  • a) 只针对卷积层的硬件实现
  • b) 降低DRAM的访问次数以降低功耗
  • c) 降低SRAM的访问次数
  • d) 使用快速算法(Winograd,FFT)实现卷积计算的硬件架构
  • e) 使用超低精度数据量化
  • f) 稀疏神经网络的硬件架构

3. 一些典型研究组的NN Hardware的工作

  • a) 中科院DianNao系列:中科院计算所的陈天石陈云霁团队几乎可以算是最早开始做NN hardware的。
  • b) MIT的Eyeriss架构:ISSCC2016的一篇文章。可以算是NN硬件中最经典的文章之一了。
  • c) Stanford韩松(Song Han)等人的EIE,ESE等工作:他们属于Software-Hardware Co-design设计思路的代表团队。
  • d) 清华魏少军组:DNA,Thinker等芯片。他们设计目标是NN的可重构架构。

模型压缩技术详解

量化 (Quantization)

量化是将高精度(如32位浮点)模型转换为低精度(如8位整数)表示的技术。

量化方法

  • 权重量化:将网络权重从浮点转换为定点
  • 激活量化:量化网络中间层的激活值
  • 混合精度:不同层使用不同精度

量化优势

  • 减少存储需求
  • 降低计算复杂度
  • 提高推理速度
  • 降低功耗

剪枝 (Pruning)

剪枝是移除神经网络中不重要的连接或神经元的技术。

剪枝类型

  • 结构化剪枝:移除整个通道或层
  • 非结构化剪枝:移除个别连接
  • 渐进式剪枝:逐步移除不重要的连接

剪枝策略

  • 基于重要性的剪枝:根据权重大小或梯度
  • 基于敏感度的剪枝:分析各层对精度的敏感度
  • 知识蒸馏辅助剪枝:使用教师网络指导剪枝

知识蒸馏 (Knowledge Distillation)

知识蒸馏使用大型教师网络指导小型学生网络学习。

蒸馏过程

  1. 训练大型教师网络
  2. 使用教师网络生成软标签
  3. 训练学生网络同时学习硬标签和软标签

蒸馏优势

  • 保持模型性能
  • 显著减少模型大小
  • 提高推理效率

低秩分解 (Low-rank Decomposition)

低秩分解将大型矩阵分解为多个小型矩阵的乘积。

分解方法

  • SVD分解:奇异值分解
  • CP分解:CANDECOMP/PARAFAC分解
  • Tucker分解:高阶张量分解

VLSI优化技术

数据流优化

数据重用策略

  • 输入重用:同一输入用于多个计算
  • 权重重用:权重在多个计算中重复使用
  • 输出重用:中间结果的重用

内存层次优化

  • 寄存器级优化:最小化寄存器访问
  • 缓存级优化:提高缓存命中率
  • 主存级优化:减少主存访问

并行计算架构

数据并行

  • SIMD:单指令多数据
  • 向量处理:向量化计算
  • 流水线:计算流水线设计

模型并行

  • 层间并行:不同层并行计算
  • 通道并行:通道维度并行
  • 空间并行:空间维度并行

专用硬件设计

脉动阵列 (Systolic Array)

  • 规则的数据流模式
  • 高效的矩阵乘法实现
  • 适合卷积计算

数据流架构

  • 基于数据流的计算
  • 动态调度和优化
  • 适应不同网络结构

实际应用案例

移动端部署

  • 手机端推理:ARM CPU + GPU
  • 边缘计算:专用AI芯片
  • 物联网设备:超低功耗设计

云端部署

  • 服务器加速:GPU集群
  • 专用加速卡:TPU、NPU
  • 混合架构:CPU + GPU + 专用芯片

自动驾驶

  • 实时推理:低延迟要求
  • 高精度要求:安全关键应用
  • 功耗限制:车载环境约束

未来发展趋势

技术趋势

  • 神经架构搜索:自动设计网络结构
  • 混合精度训练:动态精度调整
  • 硬件感知训练:考虑硬件约束的训练

应用趋势

  • 边缘AI:更多边缘设备部署
  • 实时AI:低延迟应用需求
  • 绿色AI:可持续的AI发展

模型压缩与VLSI优化是AI硬件化的关键技术,需要算法和硬件的深度融合。