Google 今天发布了 Quantification Aware Training(QAT)API,使开发人员可以利用量化的优势来训练和部署模型 AI 模型。通过这个 API,可以将输入值从大集合映射到较小集合的输出,同时,保持接近原始状态的准确性。
新的 API 的目标是支持开发更小、更快、更高效的机器学习(ML)模型,这些模型非常适合在现有的设备上运行,例如那些计算资源非常宝贵的中小型企业环境中的设备。
通常,从较高精度到较低精度的过程有很多噪声。因为量化把小范围的浮点数压缩为固定数量的信息存储区中,这导致信息损失,类似于将小数值表示为整数时的舍入误差(例如,在范围[2.0,2.3]中的所有值都可以在相同的存储中表示。)。问题在于,当在多个计算中使用有损数时,精度损失就会累积,这就需要为下一次计算重新标度。
谷歌新发布的 QAT API 通过在 AI 模型训练过程中模拟低精度计算来解决此问题。在整个训练过程中,将量化误差作为噪声引入,QAT API 的算法会尝试将误差最小化,以便它学习这个过程中的变量,让量化有更强的鲁棒性。训练图是利用了将浮点对象转换为低精度值,然后再将低精度值转换回浮点的操作,从而确保了在计算中引入了量化损失,并确保了进一步的计算也可以模拟低精度。
谷歌在报告中给出的测试结果显示,在开源 Imagenet 数据集的图像分类模型(MobilenetV1 224)上进行测试,结果显示未经量化的精度为 71.03%,量化后的精度达到了 71.06%。
针对相同数据集测试的另一种分类模型(Nasnet-Mobile)中测试,在量化后仅有1% 的精度损失(74% 至 73%)。
除了模拟精度降低的计算外,QAT API 还负责记录必要的统计信息,以量化训练整个模型或模型的一部分。比如,这可以使开发人员能够通过调用模型训练 API 将模型转换为量化的 TensorFlow Lite 模型。或者,开发人员可以在模拟量化如何影响不同硬件后端的准确性的同时尝试各种量化策略。
Google 表示,在默认情况下,作为 TensorFlow 模型优化工具包一部分的 QAT API 配置为与 TensorFlow Lite 中提供的量化执行支持一起使用,TensorFlow Lite 是 Google 的工具集,旨在将其 TensorFlow 机器学习框架上构建的模型能够适应于移动设备,嵌入式和物联网设备。
“我们很高兴看到 QAT API 如何进一步使 TensorFlow 用户在其支持 TensorFlow Lite 的产品中突破有效执行的界限,以及它如何为研究新的量化算法和进一步开发具有不同精度特性的新硬件平台打开大门”,Google 在博客中写道。
QAT API 的正式发布是在 TensorFlow Dev Summit 上,也是在发布了用于训练量子模型的机器学习框架 TensorFlow Quantum 之后发布。谷歌也在会议的会话中预览了 QAT API。
雷锋网编译,via venturebeat