神经网络编译器:构建神经网络与芯片沟通的桥梁

作者: 季宇

来源: 探臻科技评论

发布日期: 2021-03-07

本文介绍了神经网络编译器的概念及其在神经网络芯片开发中的应用,通过将训练好的神经网络模型转换为符合硬件约束的等效模型,实现模型开发与硬件的解耦。文章详细描述了编译器的构建过程,包括计算图的构建、图重构和图微调等步骤,并通过实验验证了该方法在不同硬件约束下的有效性。

与通用处理器不同,在神经网络芯片的开发模型通常面临一些硬件的限制,例如输入输出数据和权重参数的精度有限,计算规模的限制以及非线性函数的类型的限制。本文引入了一个神经网络编译器,将训练好的、没有约束的NN模型转换为满足给定硬件约束的等效网络,可以将NN模型的开发与具体硬件解耦合。同时,我们提出了多种技术来使该编译流程能够适应于不同种类的NN芯片,并且编译流程在极端硬件约束下也是可靠的。

为了弥合NN模型开发的灵活性需求和NN芯片的精简、高性能需求之间的差异,我们可以将整个系统栈通过软件编程模型和硬件执行模型分层。其中,将软件编程模型转换为近似等效的硬件执行模型,主要遵循以下几个步骤:构建计算图,如图2(a)所示。基于输入的NN信息构建G =(V,E),NN信息包括训练后的参数、网络拓扑、顶点信息和训练数据。此外,还可以获得深度学习框架支持的操作集F。图重构,如图2(b)。

它构造了一个中间CG,Gˆ =(Vˆ,Eˆ)。相应的操作集Fˆ包含所有类似核心算子(乘加与非线性激活)的操作。这些操作与核心算子具有类似的形式,或者可以由核心算子轻松实现,但不包含这些硬件约束。图微调,如图2(c)所示。我们进一步将Gˆ转换为G。每个顶点vˆ ∈ Vˆ以Gˆ的拓扑顺序遍历,并在G中形成对应的顶点。该过程还包含如下子步骤:数据重编码、完全展开、权重微调。

其中数据重编码可以通过自编码器以增大模型规模来提高模型冗余,从而保障在极端硬件约束下的准确率。

我们测试了不同硬件约束下该方法的效果,其精确度如表1所示:表1各种神经网络模型参数。权重微调可以以不同的粒度进行,通过实验探索准确性和微调粒度之间的关系,我们发现:逐层微调即可有效解决误差累积的问题。我们通过实验评估了数据重编码的效果,下图分别列示具有不同输入输出与权重转换前后的精度。

结果表明,在极端约束下,该数据重编码策略可有效提高转换精度。我们评估了权重调整算法以及三种权重编码策略,下图结果显示了权重调整可以在以下三种情况下很好地设置权重参数:随着权重精度的提高(未引入任何其他约束),所有这些参数都可以达到上限精度。接着,进一步给出了权重调整步骤的每个阶段效果(权重精度为2位,没有任何其他限制),如下表所示:表2权重调整效果。

我们提出了一种针对NN芯片的编译器解决方案,该方案可以将训练好的NN模型转换为满足硬件约束的等效模型,并提出了多种技术来减少转换误差和提高处理速度。评估表明,该转换方法非常有效,引入的误差可以忽略不计,编译转换耗费的时间也重新训练时间要快。

UUID: 2aab6792-49fa-40da-9889-2341f124e30c

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/学术头条公众号-pdf2txt/学术头条2021年/2021-03-07_神经网络编译器:构建神经网络与芯片沟通的桥梁.txt

是否为广告: 否

处理费用: 0.0035 元