088通过 CPU 优化推理
通过 CPU 优化推理¶
通过一些优化技术,可以在 CPU 上高效地运行大型模型的推理。其中一种优化方法是将 PyTorch 代码编译成中间格式,以便在高性能环境中(如 C++)运行。另一种方法是将多个操作合并到一个内核中,以减少每个操作单独运行时的开销。
在这篇文章中,你会学到如何使用 BetterTransformer 提高推理速度,以及如何将 PyTorch 代码转换为 TorchScript。如果你使用的是英特尔 CPU,还可以利用 英特尔扩展库 中的图优化技术进一步提高推理速度。最后,你将学到如何使用 🤗 Optimum 通过 ONNX Runtime 或 OpenVINO(如果你使用的是英特尔 CPU)加速推理。
BetterTransformer¶
BetterTransformer 通过其快速路径(原生 PyTorch 专门实现的 Transformer 函数)执行来加速推理。快速路径执行中的两种优化技术是:
- 融合:将多个连续的操作合并到一个“内核”中,以减少计算步骤的数量。
- 跳过填充标记的固有稀疏性:避免对嵌套张量进行不必要的计算。
BetterTransformer 还将所有注意力操作转换为使用更节省内存的 缩放点积注意力。
并不是所有模型都支持 BetterTransformer。请查看这个 列表,看看你的模型是否支持 BetterTransformer。
在开始之前,请确保已经安装了 🤗 Optimum。你可以参考 安装指南 安装。
使用 PreTrainedModel.to_bettertransformer() 方法启用 BetterTransformer: