【AI篇】推理加速

278 阅读5分钟

1. AI推理加速的背景和意义

AI推理是指在已经训练好的模型上,对新的输入数据进行预测和推断的过程。在实际应用场景中,如果推理速度过慢,会导致系统相应延迟,影响用户体验,甚至在一些实时性要求极高的场景中,例如:自动驾驶、工业控制等,可能会引起严重的后果。例如:自动驾驶汽车需要在瞬间对复杂路况做出反应,如果因为推理速度跟不上而导致决策延迟,就可能发生交通事故。因此,研究AI推理加速具有极其重要的现实意义。

AI推理加速的核心目标是:在保持模型精度基本不变的前提下,提高模型在推理阶段的速度和效率,降低资源消耗。这对于部署在边缘设备、移动端、服务器端等场景都非常关键。

2. 基本推理方式

人工智能/逻辑推理/知识表示领域的四种常见推理方式:正向推理、反向推理、混合推理、双向推理

2.1 正向推理(Forward Reasoning / Forward Chaining)

定义:

已知事实出发,结合规则一步步推出新的事实或结论,直到达到目标或没有更多规则可以应用。

应用场景:

  • 专家系统(如诊断系统)
  • 数据驱动场景(如传感器触发规则)

优点:

  • 易于实现;
  • 能自动生成大量新知识;
  • 适合在事实不断变化、需要及时响应的系统中。

局限:

  • 推理路径不定,可能产生大量无用信息;
  • 若目标明确但路径复杂,效率较低。

2.2 反向推理(Backward Reasoning / Backward Chaining)

定义:

目标结论出发,反过来寻找支持该结论的前提条件,再判断这些前提是否成立。

应用场景:

  • 问答系统
  • 自动定理证明
  • Prolog 等逻辑编程语言

优点:

  • 针对性强,只推导与目标相关的路径;
  • 推理更精简高效,尤其是在目标已知时。

局限:

  • 对事实依赖强,需要准确、完备的初始知识;
  • 如果目标依赖链太深,可能回溯过多层级。

2.3 混合推理(Hybrid Reasoning)

定义:

将正向推理与反向推理结合,根据任务动态选择推理方向。

应用场景:

  • 复杂专家系统
  • 智能搜索与推荐系统

优点:

  • 灵活,兼顾数据驱动与目标导向;
  • 可以提高推理效率和精度;
  • 减少不必要的推导过程。

局限:

  • 实现复杂;
  • 控制策略设计难度大,需要良好设计切换机制。

2.4 双向推理(Bidirectional Reasoning)

定义:

同时从**事实出发(正向)目标出发(反向)**进行推理,若两条路径在某一点“汇合”,则目标成立。

应用场景:

  • 搜索问题(如路径规划、图搜索)
  • 问题求解(如象棋AI、迷宫求解)

优点:

  • 在大规模搜索空间中速度快;
  • 提高查找效率(尤其在解空间大时)。

局限:

  • 占用更多内存(需要同时保存两端的推理路径);
  • 汇合点不易找到或可能不存在。

2.5 总结对照

image.png

3. 推理阶段的基本流程

模型推理是指使用训练好的模型进行实际数据预测的过程,包括以下步骤

  1. 输入数据的预处理(归一化、张量转换等)
  2. 模型计算(前向传播)
  3. 输出处理(softmax,阈值判断等)

推理加速主要是优化的第二步,也就是前向传播的计算效率

4. 推理加速常用的技术

4.1 图优化(Graph Optimization)

  • 将模型表示成计算图后进行静态分析和优化。

  • 典型操作包括:

    • 操作融合(如Conv + BN + ReLU合并)
    • 常量折叠(提前计算常量表达式)
    • 去除冗余操作

✅ 代表工具:ONNX Runtime、TensorRT、OpenVINO、TVM

4.2 精度量化(Quantization)

  • 将原本使用 32 位浮点数(FP32)的模型参数转换成 16 位(FP16)、8 位(INT8)等较低精度的格式。

  • 优势:

    • 减少模型大小和内存使用
    • 加快计算(尤其在支持INT8硬件上)

✅ 类型:

  • 静态量化(Post Training Quantization)
  • 动态量化(推理时转换)
  • 量化感知训练(QAT)

4.3 算子优化/硬件加速

  • 不同硬件(CPU、GPU、NPU、TPU)对算子的支持不同,需要利用特定库实现更快的算子执行

  • 如:

    • Intel 的 MKL-DNN(CPU)
    • NVIDIA cuDNN(GPU)
    • 华为 Ascend / 麒麟芯片自带 NPU 驱动

CPU、GPU、NPU、TPU 对算子的支持

下面这个链接是另一篇文章,上面写了简略的CPU、GPU、NPU、TPU 对算子的支持,感兴趣可以看一下: juejin.cn/post/749866…


4.4 模型剪枝和结构重设计

  • 剪枝:去除模型中不重要的神经元或连接(如低权重值)
  • 结构设计:使用轻量模型(如:MobileNet、EfficientNet)或自动神经网络搜索(NAS)设计更快的模型

4.5 批处理与张量内存复用

  • 使用batch预测多个输入可以提高吞吐量
  • 减少重复分配和释放内存,提高效率

5.主流推理加速框架

框架名支持硬件特点
TensorRTNVIDIA GPU高度优化的推理库,支持FP16、INT8
ONNX RuntimeCPU/GPU/NPU跨平台,可插入 TensorRT、OpenVINO
OpenVINOIntel CPU/VPUIntel 优化方案,适合边缘设备
TVM多种硬件可编译成最适合目标设备的代码
TFLite移动端、边缘设备轻量,适合 Android/iOS 部署

6. 硬件角度的加速

AI推理的硬件加速主要依赖以下几种方式:

  • CPU 多线程并行计算
  • GPU 的并行矩阵乘加运算(Tensor Core)
  • 专用 NPU / TPU 芯片的指令集优化
  • FPGA 定制逻辑计算单元

例如:TensorRT + NVIDIA Tensor Core 在 FP16 精度下远快于传统 FP32 CPU 推理。

7. 总结:推理加速三大核心点

分类技术路径示例
模型层面精度量化、剪枝、轻量模型(如MobileNet)
软件层面ONNX 图优化、TensorRT 编译、算子融合
硬件层面GPU/NPU/TPU 加速、内存优化、异构计算