What actually runs: a measurement study of language model placement and decode speed on the Apple Neural Engine
通过对苹果神经网络引擎上语言模型放置与解码速度的严谨测量研究,作者证明了计算表达与权重编码而非仅仅是模型架构决定了加速器的驻留情况与性能,从而得出了一种优先考虑编码效率的设计程序,以实现显著更小且更快的三元模型。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一部智能手机正试图理解一段对话。为了实现这一目标,它必须在设备上运行一个庞大的数字大脑——语言模型。为了让这一切流畅运行,手机需要使用一个专门为这种思维方式构建的、超高速的处理器,而不是其通用的主脑。挑战在于,这个特殊的处理器非常挑剔;它只运行某些特定类型的计算,并且会拒绝运行其他类型的计算,即便那些计算在数学上是完全等价的。多年来,开发者们一直试图猜测哪些计算可行以及如何使其变快,往往依赖于最终被证明是错误的经验法则。他们曾假设,如果一个模型足够小,它就能在快速处理器上运行,或者认为减小数字的大小总会有所帮助。但没有人真正观察过这个处理器到底在做什么,或者精确测量模型的规模和存储数字的方式是如何改变其速度的。
一位名叫 Shahir M A 的研究人员决定停止猜测,开始观察。利用一台搭载 M1 芯片的 Apple 电脑,他们构建了一系列实验,以观察当一个语言模型尝试在手机的特殊处理器(即被称为神经网络引擎的处理器)上运行时,究竟发生了什么。他们不仅观察软件“声称”要做什么,还测量了流经芯片的实际电流和数据,以观察真实的发生情况。他们测试了构建同一种数学运算的数十种不同方式,训练了不同规模的真实模型,并改变了模型内部数字的存储方式,范围从标准精度到极度压缩的低精度格式。他们的目标很简单:找出究竟是什么让模型能够进入快速处理器,以及一旦进入后,它的说话速度能有多快。
他们发现的第一件事是,处理器并不关心计算的含义,只关心它是如何书写的。他们发现,如果你以一种特定的方式编写某种类型的归一化(一种帮助模型保持数字稳定的步骤),处理器会立即接受它并在全速下运行。但如果你使用另一种略微复杂的指令来编写完全相同的数学步骤,处理器就会拒绝处理它,并迫使手机使用其较慢的通用大脑。这就像是处理器说的是一种特定的数学方言——如果你使用正确的方言,它就会倾听;但如果你使用不同的方言,即使意思相同,它也会转身离开。这意味着,开发者编写代码的方式与数学本身同样重要。
第二个,或许也是最令人惊讶的发现是,模型的规模并不是决定它能否在快速处理器上运行的唯一因素。研究人员发现,一个拥有约两千六百万个参数、使用标准精度的模型,规模太小,根本无法在特殊处理器上运行。它被迫在慢速大脑上运行,生成每个单词都需要超过一秒钟。然而,当他们将这个完全相同的模型通过压缩内部数字来减少位数时,处理器突然接受了它。压缩后的版本可以在快速处理器上运行,并在不到一秒的时间内生成单词。事实上,对于较小的模型,压缩数字是让它们进入快速处理器的唯一途径。该处理器有一个隐藏的规则:除非经过压缩,否则它不会运行小型模型。这颠覆了“较大的模型总是需要快速处理器”的普遍假设;在这里,小型模型需要通过压缩才能“进门”。
一旦模型进入快速处理器,速度几乎完全取决于需要移动多少数据,而不是数学运算有多复杂。研究人员测量了数据流,发现模型每生成一个单词,都必须将其所有的权重(构成其知识的数字)通过处理器进行一次流式传输。无论对话持续多久,每生成一个单词都会发生这种情况。因此,速度直接与这些权重的位数挂ays在了一起。一个使用压缩、低精度数字的模型移动的数据量要少得多,因此速度也更快。他们发现,一个使用两位数(two-bit)数字的模型比使用标准数字的模型快了近三倍,仅仅是因为它需要移动更少的数据。模型使用的数学类型(例如它更侧重于注意力机制还是卷积)一旦模型已经在处理器上运行,对速度的影响微乎其微。唯一重要的就是被移动的数据量的大小。
研究人员得出结论,为手机构建语言模型的最佳方式是从压缩开始,而不是从规模开始。与其先构建一个大型模型然后再尝试缩小它,不如首先选择最压缩的格式,然后将可用的内存预算用于增加更多的参数。他们发现,一个拥有两千五百万个参数、使用特定压缩数学形式的模型,可以仅占用十兆字节的空间,并能以约零点六毫秒的速度生成单词。这比开发者通常开始使用的标准、未压缩模型要小近十倍,且速度快了三倍。这项研究表明,构建快速、设备端语言模型的路径不在于让模型变得更大或更复杂,而在于选择正确的数学书写方式和正确的数字存储方式。通过测量实际的数据流,他们证明了速度的关键不仅在于拥有一个快速的处理器,更在于知道如何精准地“喂养”它。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。