隆重推出 🤗 Optimum:用于大规模 Transformer 模型的优化工具包
这篇文章是 Hugging Face 普及最先进机器学习生产性能之旅的第一步。为此,我们将与我们的硬件合作伙伴(如本文中的英特尔)携手合作。加入我们,关注我们的新开源库 Optimum!
为什么选择 🤗 Optimum?
🤯 扩展 Transformer 模型并非易事
特斯拉、谷歌、微软和 Facebook 有什么共同点?当然有很多,但其中之一是它们每天都运行数十亿个 Transformer 模型预测。特斯拉的自动驾驶(真幸运!)使用 Transformer 模型,Gmail 完成你的句子,Facebook 实时翻译你的帖子,Bing 回答你的自然语言查询。
Transformer 模型极大地提高了机器学习模型的准确性,征服了自然语言处理领域,现在正扩展到其他模态,从语音和视觉开始。但将这些庞大的模型投入生产并使其大规模快速运行,对于任何机器学习工程团队来说都是一个巨大的挑战。
如果你不像上述公司那样拥有数百名高技能机器学习工程师,该怎么办?通过 Optimum,我们的新开源库,我们旨在构建用于 Transformer 模型生产性能的权威工具包,并实现模型在特定硬件上训练和运行的最大效率。
🏭 Optimum 让 Transformer 模型发挥作用
为了获得最佳的模型训练和推理性能,模型加速技术需要与目标硬件专门兼容。每个硬件平台都提供特定的软件工具、功能和可对性能产生巨大影响的旋钮。同样,为了利用稀疏性、量化等高级模型加速技术,优化的内核需要与芯片上的算子兼容,并针对从模型架构派生出的神经网络图进行定制。深入研究这种三维兼容性矩阵以及如何使用模型加速库是一项艰巨的工作,很少有机器学习工程师拥有这方面的经验。
Optimum 旨在简化这项工作,提供针对高效人工智能硬件的性能优化工具,这些工具是与我们的硬件合作伙伴协作构建的,并将机器学习工程师转变为机器学习优化向导。
通过 Transformers 库,我们让研究人员和工程师轻松使用最先进的模型,抽象化框架、架构和管道的复杂性。
通过 Optimum 库,我们让工程师轻松利用他们可用的所有硬件功能,抽象化硬件平台上模型加速的复杂性。
🤗 Optimum 实践:如何为 Intel Xeon CPU 量化模型
🤔 为什么量化很重要,但很难做到完美
预训练语言模型(如 BERT)在各种自然语言处理任务上取得了最先进的结果,其他基于 Transformer 的模型(如 ViT 和 Speech2Text)分别在计算机视觉和语音任务上取得了最先进的结果:Transformer 无处不在机器学习世界,并将继续存在。
然而,将基于 Transformer 的模型投入生产可能很棘手且成本高昂,因为它们需要大量的计算能力才能工作。为了解决这个问题,存在许多技术,其中最流行的是量化。不幸的是,在大多数情况下,量化模型需要大量工作,原因有很多:
- 模型需要被编辑:一些操作需要被其量化对应项替换,需要插入新的操作(量化和反量化节点),其他操作需要适应权重和激活将被量化的事实。
这部分可能非常耗时,因为 PyTorch 等框架以急切模式工作,这意味着上述更改需要添加到模型实现本身。PyTorch 现在提供了一个名为 torch.fx
的工具,它允许你在不实际更改模型实现的情况下跟踪和转换模型,但在你的模型开箱即不支持跟踪时,使用起来很棘手。
除了实际的编辑之外,还需要找出模型哪些部分需要编辑,哪些操作有可用的量化内核对应项,哪些操作没有,等等。
模型编辑完成后,还有许多参数可以调整以找到最佳量化设置。
- 我应该使用哪种观察器进行范围校准?
- 我应该使用哪种量化方案?
- 我的目标设备支持哪些量化相关数据类型(int8、uint8、int16)?
平衡量化和可接受的精度损失之间的权衡。
导出量化模型以供目标设备使用。
尽管 PyTorch 和 TensorFlow 在简化量化方面取得了巨大进展,但基于 Transformer 模型的复杂性使得它们很难开箱即用,并且在不付出大量努力的情况下很难让它们正常工作。
💡 英特尔如何利用 Neural Compressor 解决量化及更多问题
英特尔® Neural Compressor(以前称为低精度优化工具或 LPOT)是一个开源 Python 库,旨在帮助用户部署低精度推理解决方案。后者将低精度配方应用于深度学习模型,以实现最佳产品目标,例如推理性能和内存使用,并满足预期的性能标准。Neural Compressor 支持训练后量化、量化感知训练和动态量化。为了指定量化方法、目标和性能标准,用户必须提供一个指定调优参数的 YAML 配置文件。该配置文件可以托管在 Hugging Face 的模型中心,也可以通过本地目录路径提供。
🔥 如何使用 Optimum 轻松为 Intel Xeon CPU 量化 Transformer 模型
关注 🤗 Optimum:普及 ML 生产性能的旅程
⚡️最先进的硬件
Optimum 将专注于在专用硬件上实现最佳生产性能,在该硬件上可以应用软件和硬件加速技术以实现最大效率。我们将与我们的硬件合作伙伴携手合作,以轻松且易于访问的方式通过 Optimum 启用、测试和维护加速,就像我们与英特尔和 Neural Compressor 所做的那样。我们很快将宣布新的硬件合作伙伴,他们已加入我们实现机器学习效率的旅程。
🔮 最先进的模型
与我们的硬件合作伙伴的合作将产生针对硬件优化的模型配置和工件,我们将通过 Hugging Face 模型中心向 AI 社区提供这些配置和工件。我们希望 Optimum 和硬件优化的模型能够加速生产工作负载中效率的采用,这代表了机器学习所消耗的大部分总能量。最重要的是,我们希望 Optimum 能够加速 Transformer 模型的大规模采用,不仅适用于最大的科技公司,也适用于我们所有人。
🌟 协作之旅:加入我们,关注我们的进展
每一次旅程都始于第一步,而我们的第一步就是 Optimum 的公开发布。加入我们,通过为该库点赞迈出你的第一步,这样你就可以在我们推出新支持的硬件、加速技术和优化模型时随时关注我们的进展。
如果您希望 Optimum 支持新的硬件和功能,或者您有兴趣加入我们,在软件和硬件的交叉领域工作,请通过 hardware@huggingface.co 联系我们