麻省理工学院的研究人员开发了一种硬件和软件系统,可以减少文本分析和生成所需的计算能力,能源和时间。
人类的语言可能效率低下。重读这个故事的第一句话。只有两个词“语言”和“效率低下”传达了句子的几乎全部含义。关键字的重要性是计算机进行自然语言处理(NLP)的一种流行新工具的基础:注意力机制。当将其编码为更广泛的NLP算法时,注意力机制就会停留在关键字上,而不是将每个单词都视为同等重要。这样可以在NLP任务中产生更好的结果,例如检测积极或消极的情绪或预测句子中接下来的单词。
但是,注意力机制的准确性通常是以速度和计算能力为代价的。它在普通用途的处理器上运行缓慢,就像您在消费级计算机上可能会发现的那样。因此,麻省理工学院的研究人员设计了一个名为SpAtten的组合软件-硬件系统,专门用于运行注意力机制。SpAtten以更少的计算能力实现了更简化的NLP。系统类似于人脑处理语言的方式,读取很快,系统只专注于关键词。
自2015年推出以来,注意力机制一直是NLP的福音。它内置于最新的NLP模型中,例如Google的BERT和OpenAI的GPT-3。注意机制的关键创新是选择性-它可以根据算法先前在训练阶段遇到的单词模式进行比较,从而推断出句子中哪些单词或短语最重要。尽管注意机制已迅速被NLP模型采用,但这并非没有代价。
NLP模型需要大量的计算机功能,这在一定程度上要归因于关注机制的高内存需求。这实际上是NLP模型的瓶颈。挑战之一是缺乏使用注意力机制来运行NLP模型的专用硬件。诸如CPU和GPU之类的通用处理器在注意力机制复杂的数据移动和算术顺序方面遇到麻烦。随着NLP模型变得越来越复杂(尤其是长句子),问题将变得更加严重。我们需要算法优化和专用硬件来处理不断增长的计算需求。
SpAtten,可以更有效地运行注意力机制。他们的设计包括专用软件和硬件。SpAtten的一项重要软件进步就是使用“级联修剪”,或者从计算中消除不必要的数据。一旦注意力机制帮助选择了句子的关键词(称为标记),SpAtten就会删除不重要的标记并消除相应的计算和数据移动。注意机制还包括多个计算分支(称为“头”)。与令牌类似,不重要的头部也会被识别并修剪掉。一旦被调度,无关的令牌和头部就不会算入算法的下游计算中,从而减少了计算量和内存访问量。
为了进一步减少内存的使用,研究人员还开发了一种称为渐进量化的技术。该方法允许算法以较小的位宽块形式使用数据,并从内存中获取尽可能少的数据。较低的数据精度(对应于较小的位宽)用于简单的句子,较高的精度用于复杂的句子。直观上来说,这就像获取“ cmptr progm”一词作为“计算机程序”的低精度版本一样。
除了这些软件进步之外,研究人员还开发了一种专门用于运行SpAtten和注意力机制同时最小化内存访问的硬件体系结构。他们的体系结构设计采用高度的“并行度”,这意味着可以在多个处理元素上同时处理多个操作,这很有用,因为注意力机制可以同时分析句子中的每个单词。该设计使SpAtten可以在少数计算机时钟周期内对令牌和头部(对于潜在的修剪)的重要性进行排名。总体而言,SpAtten的软件和硬件组件可以消除不必要或效率低下的数据操作,而仅着眼于完成用户目标所需的任务。
该系统背后的理念以其名称为特色。SpAtten是“稀疏关注”的代表词,研究人员在论文中指出,SpAtten“与'spartan'谐音,意味着简单而节俭。这就像上面提到的技巧:使句子更简洁。这种简洁性在测试中得到了证实。
研究人员认为,SpAtten对于为其大多数人工智能工作负载采用NLP模型的公司可能有用。未来的愿景是消除语言冗余的新算法和硬件将降低成本,并节省数据中心NLP工作负载的功率预算。
领取专属 10元无门槛券
私享最新 技术干货