量化概述¶
量化是一个减少模型计算精度并降低内存占用的过程。要了解更多信息,请访问ExecuTorch 概念页面。这对于包括可穿戴设备、嵌入式设备和微控制器在内的边缘设备特别有用,这些设备通常具有有限的资源,例如处理能力、内存和电池寿命。通过使用量化,我们可以使我们的模型更有效率,并使它们能够在这些设备上有效运行。
在流程方面,量化发生在 ExecuTorch 堆栈的早期。
可以在ExecuTorch 教程中找到更详细的工作流程。
量化通常与具有量化运算符实现的执行后端绑定。因此,每个后端都对模型的量化方式有自己的看法,这在特定于后端的 Quantizer
类中表示。 Quantizer
为建模用户提供了关于他们希望模型如何量化的 API,并将用户意图传递给量化工作流程。
后端开发人员需要实现自己的 Quantizer
来表达如何在后端中量化不同的运算符或运算符模式。这是通过量化工作流程提供的注释 API完成的。由于 Quantizer
也是面向用户的,它将公开特定 API 供建模用户配置他们希望模型如何量化。每个后端都应该为其 Quantizer
提供自己的 API 文档。
建模用户将使用特定于其目标后端的 Quantizer
来量化他们的模型,例如 XNNPACKQuantizer
。
有关使用 XNPACKQuantizer
的示例量化流程、更多文档和教程,请参阅ExecuTorch 教程中的 Performing Quantization
部分。