Hugging Face Optimum 发布

Hugging Face 推出了 Optimum,这是一个开源库,旨在通过为针对特定硬件优化 Transformer 模型提供工具包,从而实现机器学习生产性能的民主化。该库旨在抽象化模型加速的复杂性,使工程师能够在无需深厚的硬件特定软件工具专业知识的情况下,在训练和推理过程中实现效率最大化。

解决 Transformer 扩展的复杂性

为生产环境扩展 Transformer 模型具有挑战性,因为最佳性能需要专门与目标硬件兼容的加速技术。这涉及处理软件工具、硬件特性和优化内核之间复杂的兼容性矩阵,这些内核必须与硅片上的算子以及模型架构的特定神经网络图对齐。

虽然 Transformers 库通过抽象框架和架构的复杂性简化了最先进模型的使用,但 Optimum 抽象了硬件平台上的模型加速复杂性,使这些功能能够被更广泛的机器学习工程师所使用。

硬件特定优化与量化

Optimum 专注于通过直接与硬件合作伙伴协作来启用、测试和维护加速技术,从而实现最大效率。这种集成的一个主要例子是与 Intel 的合作,旨在为 Intel Xeon CPU 优化模型。

量化的挑战

量化是一种广泛使用的技术,用于降低部署基于 Transformer 的模型(如 BERT、ViT 和 Speech2Text)时的计算能力和成本。然而,由于以下几个因素,实现量化通常很困难:

  • Model Editing:某些操作必须被替换为量化的对应项,并且必须插入新的量化/反量化节点。在像 PyTorch 这样的 eager-mode 框架中,这通常需要修改模型实现本身。
  • Parameter Tuning:工程师必须确定用于范围校准的正确观察器,选择合适的量化方案,并为目标设备识别支持的数据类型(例如,int8、uint8、int16)。
  • Accuracy Trade-offs:需要不断平衡模型大小的减少和速度的提高与可接受的精度损失之间的关系。
  • Export Complexity:最终的量化模型必须专门为目标设备进行导出。

与 Intel Neural Compressor 的集成

为了在 Intel 硬件上解决这些挑战,Optimum 集成了 Intel® Neural Compressor(以前称为 Low Precision Optimization Tool 或 LPOT)。这个开源 Python 库允许用户使用训练后量化、量化感知训练和动态量化的方案来部署低精度推理解决方案。用户通过一个配置 YAML 文件指定其调优参数、目标和性能标准,该文件可以存储在本地或托管在 Hugging Face Model Hub 上。

未来目标与生态系统影响

Optimum 被设计为 Hugging Face 与各种硬件合作伙伴之间的协作努力,旨在提供硬件特定的优化模型配置和构件。这些优化后的模型将通过 Hugging Face Model Hub 提供。

通过提供这些工具,Hugging Face 旨在减少机器学习生产工作负载所消耗的总能量,并加速各种规模组织的 Transformer 的大规模采用,而不仅仅是大型科技公司。

Sources

相关