Hugging Face Infinity CPU 性能案例研究

Hugging Face Infinity 是一种容器化推理解决方案,旨在降低在 CPU 基础设施上部署的 Transformer 模型的延迟并提高吞吐量。通过针对特定硬件架构优化模型,它能够实现实时用例并降低大规模部署的基础设施成本。

Hugging Face Infinity 的架构

Infinity 由两个主要组件组成,它们协同工作以提供硬件加速的推理流水线:

  • Infinity Container:一个 Docker 容器,提供硬件优化的推理解决方案并暴露 HTTP /predict 端点。
  • Infinity Multiverse:一种模型优化服务,可针对目标硬件架构优化 Hugging Face Transformer 模型,以确保与 Infinity Container 的兼容性。

每个 Infinity Container 旨在为单个模型和单个任务提供服务。支持的任务包括 token 分类、序列分类、排序以及特征提取/文档嵌入。

在 Intel Ice Lake 上的性能基准测试

在一项使用 Amazon EC2 C6i 实例(由采用 Ice Lake 架构的第 3 代 Intel Xeon Scalable 处理器驱动)的案例研究中,Hugging Face 对用于序列分类的 DistilBERT 模型进行了基准测试。

端到端测量

与仅测量模型执行的基准测试不同,Infinity 的性能是作为端到端流水线进行测量的,涵盖了预处理、预测和后处理。

关键结果

在 Ice Lake 优化的容器上运行的 Infinity 相比其他配置实现了以下改进:

  • 对比 Vanilla Transformers:在 Ice Lake 硬件上,延迟和吞吐量提升高达 800%。
  • 对比 Cascade Lake:与基于 Cascade Lake 架构的实例相比,延迟和吞吐量提升高达 34%。

吞吐量对比

当在两个物理核心上以 batch size 为 1 运行运行时,Infinity 在所有序列长度下均表现出比 vanilla Transformers 显著的吞吐量增益:

Sequence Length Infinity Transformers Improvement
8 248 req/sec 49 req/sec +506%
16 212 req/sec 16 req/sec +424%
32 150 req/sec 40 req/sec +375%
64 97 req/sec 28 req/sec +346%
128 55 req/sec 18 req/sec +305%
256 27 req/sec 9 req/sec +300%
384 17 req/sec 5 req/sec +340%
512 12 req/sec 4 req/sec +300%

延迟指标

对于长度不超过 64 个 token 的序列,Infinity 可以提供低至 1-4ms 的延迟。基准测试还表明,Infinity 在 p95、p99 和最大延迟 (p100) 之间保持了稳定的性能,偏差极小。

部署影响

能够针对吞吐量或延迟进行优化,使企业能够为相同的负载降低基础设施成本,或者实现此前在基于 CPU 的基础设施上无法实现的实时 AI 应用。


注意:截至 2022 年 12 月,Hugging Face Infinity 不再作为商业推理解决方案提供。Hugging Face 现在建议使用 Inference Endpoints 进行托管基础设施,或使用 Optimum IntelOptimum ONNX Runtime 库进行开源硬件优化。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch