Hugging Face Optimum Intel 与 OpenVINO 集成
Hugging Face 已将 Intel OpenVINO 集成到 Optimum Intel 库中,使用户能够进行加速推理并对 Transformer 模型进行量化,以部署在各种 Intel 处理器上。该集成通过 OpenVINO Runtime 和神经网络压缩框架(NNCF)简化了降低模型大小和预测延迟的过程。
OpenVINO 集成与模型支持
此集成的首次发布基于 OpenVINO 2022.2。它通过 OVModels 类实现对大量 PyTorch 模型的推理。
支持的模型类型
- 编码器模型: 支持对许多编码器模型(如 BERT 和 DistilBERT)进行后训练静态量化和感知量化训练。未来的 OpenVINO 版本预计会加入更多编码器模型。
- 编码器-解码器模型: 目前尚未启用这些模型的量化,但计划在下一个 OpenVINO 版本中提供支持。
使用 NNCF 进行模型量化
量化通过降低模型参数的位宽来减少内存和计算需求。这使得通过整数运算实现更快的矩阵乘法,并在推理期间降低内存使用。
量化过程
使用 OVQuantizer 和 OpenVINO 神经网络压缩框架(NNCF),用户可以执行后训练静态量化。该过程包括校准步骤,即将一小部分数据(例如 300 条样本)输入网络,以计算量化激活参数。
量化完成后,模型会导出为 OpenVINO 中间表示(IR)格式,包括用于网络拓扑的 XML 文件和用于权重的二进制文件。该格式使模型能够在任何目标 Intel 设备上运行。
性能提升:Vision Transformer(ViT)案例研究
为了展示该集成的有效性,Hugging Face 对在 food101 数据集上微调的 Vision Transformer(ViT)模型应用了后训练静态量化。结果显示在几乎不影响准确度的情况下实现了显著的效率提升。
效率与延迟基准
- Memory Reduction(内存降低): 模型大小降低了 3.8 倍,从 344MB 降至 90MB。
- Latency Improvement(延迟提升): 推理延迟提升了 2.4 倍,每个样本从 98ms 降至 41ms(基于 5,050 张图像的预测)。
- Accuracy(准确率): 原始模型和量化模型在评估数据集的 20% 子集上均保持 87.6 的准确率。
实现说明
由于模型在首次推理前会立即编译,首次预测的延迟会被放大。建议用户在进行基准测试前至少执行一次热身预测。