CN118159985A - 使用存储器来增强神经网络中的自注意力 - Google Patents
使用存储器来增强神经网络中的自注意力 Download PDFInfo
- Publication number
- CN118159985A CN118159985A CN202280067352.1A CN202280067352A CN118159985A CN 118159985 A CN118159985 A CN 118159985A CN 202280067352 A CN202280067352 A CN 202280067352A CN 118159985 A CN118159985 A CN 118159985A
- Authority
- CN
- China
- Prior art keywords
- output
- previous
- input
- sequence
- attention
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 122
- 230000015654 memory Effects 0.000 title claims abstract description 78
- 230000002708 enhancing effect Effects 0.000 title description 2
- 230000007246 mechanism Effects 0.000 claims abstract description 107
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 34
- 238000010801 machine learning Methods 0.000 abstract description 23
- 238000004590 computer program Methods 0.000 abstract description 16
- 238000012549 training Methods 0.000 description 23
- 230000000875 corresponding effect Effects 0.000 description 21
- 239000013598 vector Substances 0.000 description 13
- 230000004044 response Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 108091028043 Nucleic acid sequence Proteins 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 238000013526 transfer learning Methods 0.000 description 2
- TVYLLZQTGLZFBW-ZBFHGGJFSA-N (R,R)-tramadol Chemical compound COC1=CC=CC([C@]2(O)[C@H](CCCC2)CN(C)C)=C1 TVYLLZQTGLZFBW-ZBFHGGJFSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 241000009334 Singa Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000011987 methylation Effects 0.000 description 1
- 238000007069 methylation reaction Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于对网络输入执行机器学习任务以生成网络输出的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面,系统中的一个系统包括被配置为执行机器学习任务的神经网络,神经网络包括一个或多个增强的神经网络块。每个增强的网络块应用两个不同的注意力机制:在当前网络输入的表示上的第一注意力机制以及使用存储由第一注意力机制先前生成的输出的存储器来增强的第二注意力机制。
Description
相关申请的交叉引用
本申请要求于2021年10月6日提交的美国临时申请系列No.63/252,616的优先权权益,其全部内容通过引用并入本文。
背景技术
本说明书涉及使用神经网络对网络输入执行机器学习任务。
神经网络是采用非线性单元的一个或多个层以预测接收到的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作到网络中的下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应的参数集合的当前值从接收到的输入生成输出。
发明内容
本说明书描述了一种被实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统使用包括一个或多个“增强的”自注意力神经网络块的神经网络来生成用于接收到的网络输入的网络输出。
每个增强的网络块应用两个不同的注意力机制:在当前网络输入的表示上的第一注意力机制以及使用存储先前由第一注意力机制生成的输出的存储器增强的第二注意力机制。
能够实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。
将自注意力应用于输入序列的一些现有系统在能够被处理的输入序列的长度上受到约束,即,被约束为处理最多具有一定数量的元素的输入序列。这里,输入序列能够指正在执行的任务的输入序列或为了神经网络执行任务而需要生成的输出序列的已经生成的部分。
特别地,跨整个输入序列应用自注意力的计算和存储器需求都随着输入序列中的元素的数量成二次方地增长(即,计算和存储器复杂度是O(n2),其中n是输入序列中的元素的数量)。因此,当n太大时,将自注意力应用于输入序列可能是不可行的,从而将这些现有系统限制于小的问题域。例如,一些这样的现有系统不能有效地对与整本书籍、长日记文章、技术数学论文、软件应用的源代码等相对应的输入序列执行机器学习任务。
使用本说明书中描述的技术,系统能够通过将输入序列分割成多个子序列并且在相应阶段处将自注意力应用于子序列而将自注意力应用于任意长度的输入序列。系统能够维护在相应阶段期间确定的键和值对的存储器。当将自注意力应用于新的子序列时,对于新的子序列的每个元素,系统能够从存储器获得在相应的先前阶段处针对元素确定的相应的先前键和值。因此,系统能够跨输入序列的彼此远离的元素(即,在不同的相应子序列中)应用注意力。
以这种方式,系统能够对跨输入序列的长期依赖性进行建模。例如,如果系统被配置为针对表示书籍的输入序列来执行机器学习任务,则系统能够有效地将自注意力应用于表示书籍的实体(例如,角色)的元素,即使书籍的长部分(例如,多个章节)将实体的出现进行分离。
一些其他现有系统通过针对输入序列的每个元素、在输入序列的每隔一个元素上、在输入序列中的预定的先前元素集合上、或在从输入序列中的先前元素生成的预定的键和值集合上施行注意力而将自注意力应用于更长的输入序列。使用本说明书中描述的技术,系统能够使用存储器以针对输入序列的每个元素来动态地选择输入序列中的输入元素可能具有高注意力输出的一个或多个先前元素,(即,可能与输入元素相关的元素。也就是说,系统能够仅选择先前元素的子集,因此通过允许神经网络动态地选择将被施行注意力的子集来显著地降低系统的计算复杂度,同时改善神经网络的性能。
通常,当使用本说明书中描述的技术时,随着存储器的大小(即,能够存储在存储器中的键值对的数量)增加,神经网络的性能提高。也就是说,能够增加存储器的大小以最大程度地增强上述自注意力机制。换句话说,当被部署在其中将特定存储器预算分配给神经网络的一个或多个设备的目标集合上时,能够调整存储器的大小以最大化存储器预算,从而最大化在一个或多个设备的目标集合上的神经网络的性能。
更具体地,因为存储器在训练期间是不可微分的,所以能够在训练之后动态地调整存储器的大小,即,与训练期间使用的大小不同,以允许针对给定的存储器预算来优化神经网络。
如本说明书中所描述的,被配置为处理输入序列的基于自注意力的神经网络可能需要更少的计算以实现与现有技术卷积神经网络相同的性能。也就是说,对于固定的计算预算,基于自注意力的神经网络的性能优于卷积神经网络。这是因为应用自注意力通常比跨整个序列对内核进行卷积更高效,因为自注意力机制能够使用比卷积更少的计算对序列的不同区域施行注意力。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了示例神经网络系统。
图2A是用于在神经网络自回归地生成输出序列时使用增强块来处理块输入的示例过程的流程图。
图2B是用于在神经网络针对长输入序列生成网络输出时使用增强块来处理块输入的示例过程的流程图。
图3示出了神经网络的示例架构。
各个附图中相同的附图标记和标号表示相同的元件。
具体实施方式
本说明书描述了一种被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统在网络输入上执行机器学习任务以生成用于机器学习任务的网络输出。
机器学习任务能够是对作为输入序列的网络输入进行操作以生成网络输入的网络输出的任何机器学习任务。
以下是系统能够被配置为执行的机器学习任务的一些示例。
作为一个示例,任务可以是神经机器翻译任务。例如,如果对神经网络的输入是文本序列,例如,字、短语、字符或词语的序列,则在一种语言中,由神经网络生成的输出可以是将文本序列翻译成另一种语言,即,作为文本的输入序列的翻译的另一种语言的文本序列。作为特定示例,任务可以是多语言机器翻译任务,其中,单个神经网络被配置为在多个不同源语言-目标语言对之间转换。在该示例中,可以使用指示神经网络应将源语言文本翻译成的目标语言的标识符来增强源语言文本。
作为另一示例,任务可以是音频处理任务。例如,如果到神经网络的输入是表示口头话语的序列,则由神经网络生成的输出可以是文本段集合中的每个文本段的分数,每个分数表示该文本段是话语的正确转录的估计可能性。作为另一示例,如果到神经网络的输入是表示口头话语的序列,则由神经网络生成的输出能够指示在话语中是否说出了特定字或短语(“热词”)。作为另一示例,如果到神经网络的输入是表示口头话语的序列,则由神经网络生成的输出能够标识说出话语的自然语言。
作为另一示例,任务能够是自然语言处理或理解任务,例如,隐含任务、释义任务、文本相似性任务、情感任务、句子完成任务、语法任务等,其以某种自然语言对文本序列进行操作。
作为另一示例,任务能够是文本到语音任务,其中,输入是自然语言中的文本或自然语言中的文本的特征,并且网络输出是定义以自然语言说出的文本的音频的频谱图、波形或其他数据。
作为另一示例,任务能够是健康预测任务,其中,输入是从患者的电子健康记录数据导出的序列,并且输出是与患者的未来健康相关的预测,例如,应当为患者规定的预测治疗、患者将发生不良健康事件的可能性、或患者的预测诊断。
作为另一示例,任务能够是文本生成任务,其中,输入是文本序列,并且输出是另一文本序列,例如,文本输入序列的完成、对输入序列中提出的问题的响应、或关于由第一文本序列指定的主题的文本序列。作为另一示例,对文本生成任务的输入能够是除文本之外的输入,例如图像,并且输出序列能够是描述输入的文本。
作为另一示例,任务能够是用于根据训练图像集合的分布来生成图像的图像生成任务,其中,输入是条件输入,例如,文本序列、来自低分辨率图像的强度值序列、或标识所生成图像的目标对象分类的输入,并且输出是图像的像素的强度值序列。
作为另一示例,任务能够是智能体控制任务,其中,输入是表征环境的状态的观察或其他数据的序列,并且输出定义了响应于序列中的最新数据而由智能体执行的动作。智能体能够是例如真实世界或模拟机器人、用于工业设施的控制系统、或控制不同种类的智能体的控制系统。
作为另一示例,任务能够是基因组学任务,其中,输入是表示DNA序列或其他分子序列的片段的序列,并且输出是片段的嵌入以用于下游任务,例如通过利用对DNA序列片段的数据集合的无监督学习技术,或针对下游任务的输出。下游任务的示例包括启动子位点预测、甲基化分析、预测非编码变体的功能效应等。
作为另一示例,系统能够是计算机代码生成系统的一部分,并且能够接收作为编程语言中的期望代码段或一段计算机代码的文本描述的上下文序列,并且生成计算机代码的输出序列,例如,由上下文序列描述的一段代码或在计算机程序中跟随上下文序列的一段代码。
在一些情况下,机器学习任务是多个单独的机器学习任务的组合,即,系统被配置为执行多个不同的单独机器学习任务,例如,上述机器学习任务中的两个或更多个。例如,系统能够被配置为执行多个单独的自然语言理解任务,其中网络输入包括要对网络输入执行的单独自然语言理解任务的标识符。
图1示出了示例神经网络系统100。神经网络系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中能够实现以下描述的系统、组件和技术。
系统100是在任何给定的处理迭代处,使用自注意力神经网络110来处理用于处理迭代的网络输入102以生成表征机器学习任务(例如,上述任务之一)的网络输入102的网络输出112的系统。
在一些实施方式中,每个处理迭代对应于较大的原始输入序列的不同子序列。在这些实施方式中,神经网络110能够一个接一个地处理多个子序列,例如,针对每个子序列生成相应的网络输出,或者针对所有子序列生成单个网络输出,即,由神经网络110在处理最后一个之后生成的单个网络输出。因此,在每个处理迭代处,神经网络110处理对应的子序列。
在一些其他实施方式中,神经网络110被配置为自回归地生成包括多个输出元素的输出序列。也就是说,在每个处理迭代处,神经网络110处理包括输出序列中最近生成的输出元素的子序列以在输出序列中的下一个位置处生成下一个输出元素。因此,对于给定的处理迭代,用于处理迭代的当前输入序列和在先前处理迭代处处理的先前输入序列能够各自是包括已经由基于自注意力的神经网络生成的输出元素的输出序列的相应子序列。响应于输入序列(其能够包括,例如n个最近生成的输出元素)生成的在处理迭代处的网络输出能够是输出序列的下一个输出元素。
神经网络110包括一个或多个网络块120的序列,每个网络块120被配置为处理包括网络输入或网络输入的中间表示的块输入并且生成块输出。
如本说明书中使用的,“网络块”是接收输入(“块输入”)并且处理输入以生成输出(“块输出”)的一个或多个神经网络层的集合。
例如,网络块120的序列中的第一网络块能够处理网络输入102或使用嵌入层生成的网络输入的嵌入表示以生成作为网络输入的中间表示的块输出。然后,每个后续网络块120能够处理序列中的先前网络块的块输出。
在一些实施方式中,神经网络110的网络输出112是序列中的最终网络块120的块输出。
在一些其他实施方式中,使用一个或多个神经网络层进一步处理序列中的最终网络块120的块输出以生成神经网络110的网络输出112。
网络块120的序列包括一个或多个增强的自注意力网络块130。
增强的自注意力网络块130各自被配置为获得块输入序列并且对块输入序列执行两个不同的自注意力机制。
块输入序列已经从针对处理迭代的输入序列生成(例如,通过使用基于自注意力的神经网络的一个或多个在前网络块来处理输入序列),并且包括在输入序列中的多个输入位置中的每个输入位置处的相应块输入。
增强的自注意力网络块130能够将局部自注意力机制134(也称为“第一”自注意力机制)应用于输入序列的块输入,以针对每个块输入来生成相应的第一注意力输出。
例如,针对每个块输入,增强的自注意力网络块130能够从块输入来确定查询,例如,通过使用一个或多个第一神经网络层来处理块输入。对于每个块输入,增强的自注意力网络块130能够从块输入来确定键,例如,通过使用一个或多个第二神经网络层处理来块输入。
针对每个块输入,增强的自注意力网络块130能够从块输入来确定值,例如,通过使用一个或多个第三神经网络层来处理块输入。
然后,针对每个特定块输入,增强的自注意力网络块130能够使用针对特定块输入的查询、块输入序列中的块输入的相应键、以及块输入序列中的块输入的相应值来生成针对特定块输入的第一注意力输出。例如,针对块输入序列中的每个块输入,增强的自注意力网络块130能够通过组合针对特定块输入的查询和块输入的键来确定权重,并且确定输入序列中的块输入的值的加权和,其中,根据块输入的所确定的权重来加权每个块输入的值。
当神经网络自回归地操作时,局部自注意力机制134能够是因果自注意力机制,使得每个位置不对在给定位置之后的任何位置施行注意力。
下面更详细地描述自注意力机制。
增强的自注意力网络块130能够将kNN自注意力机制132(也称为“第二自注意力机制”)应用于输入序列的块输入,以针对每个块输入来生成相应的第二注意力输出。
增强的自注意力网络块132能够利用存储器150以增强第二自注意力机制132,从而允许第二自注意力机制132在比由自注意力神经网络110在生成迭代处获得的输入序列中包括的网络输入的序列更大的网络输入的序列上应用自注意力。
具体地,存储器150能够存储由自注意力神经网络块130的第一注意力机制134在自注意力神经网络110的相应先前执行处(即,当自注意力神经网络110在较早的生成迭代处处理相应的不同输入序列时)生成的相应键和对应值。
如上所述,在一些实施方式中,由自注意力神经网络110处理的当前输入序列和先前输入序列是相同输入序列的每个子序列。在这些实施方式中,自注意力神经网络110能够一个接一个地处理多个子序列,例如,针对每个子序列来生成相应的网络输出或者针对所有子序列来生成单个网络输出,并且存储器150存储由第一注意力机制134在处理输入序列的较早的子序列时生成的键和值。
在一些其他实施方式中,基于自注意力的神经网络110被配置为自回归地生成包括多个输出元素的输出序列,并且当前输入序列和先前输入序列能够各自是包括已经由基于自注意力的神经网络生成的输出元素的输出序列的相应子序列。响应于当前输入序列(其能够包括,例如n个最近生成的输出元素)生成的网络输出能够是输出序列的下一个输出元素(例如,跟随输出序列中的n个最近生成的输出元素的输出)。
因此,存储器150能够存储在自注意力神经网络块130的第一注意力机制134的相应先前执行处生成的(键,值)对,其中,该(键,值)对能够与由基于自注意力的神经网络110处理的当前输入序列相关。通过从存储器150获得一个或多个(键,值)对,如下面更详细地描述的,第二自注意力机制132因此能够对所有序列施行注意力并且改进基于自注意力的神经网络110的性能。
存储在存储器150中的键值对的数量能够取决于存储器150的大小,即,取决于分配给存储器150的存储空间的量。例如,系统100能够继续将键值对存储在存储器150中,直到存储器150已满为止,即,直到存储器150的存储器容量已满为止。一旦发生这种情况,当将键值对添加到存储器150时,系统100能够从存储器150丢弃相同数量的最旧的键值对,即,丢弃与正在添加的新键值对相等数量的最旧的键值对。
对于块输入序列中的每个块输入,第二自注意力机制132能够确定查询,例如,通过使用一个或多个神经网络层来处理块输入。在一些实施方式中,针对每个块输入,在第一注意力机制期间确定的查询和在第二注意力机制132期间确定的查询是相同的。也就是说,块130仅需要生成一个查询集合以执行两个注意力机制。.
针对块输入序列中的每个块输入,第二自注意力机制132能够使用从块输入确定的查询来获得由存储器150存储的一个或多个(键、值)对。
具体地,第二自注意力机制132能够根据从块输入确定的键和查询之间的相似性来标识存储器中的一个或多个(即,k个)(键、值)对,其中k是固定整数。例如,针对存储器中的每个对,第二自注意力机制132能够确定表示所确定的查询与该对的键之间的相似性的相应相似性得分,并且选择具有最高对应相似性得分的k个对。作为特定示例,第二自注意力机制132能够根据距离度量来选择对中的键与所确定的查询之间的距离被最小化的一个或多个对。也就是说,存储在存储器中的键与所确定的查询能够具有相同的维度n,并且因此第二自注意力机制132能够针对存储在存储器中的每个键来确定所确定的查询与键之间的n维坐标系中的相应距离。
在一些实施方式中,机制132能够使用在存储器150中的对上的k个最近邻(kNN)搜索来检索k个对。
在一些其他实施方式中,为了提高计算效率,系统能够使用在存储器150中的对上的近似kNN搜索来检索k个对。
系统能够利用各种常规kNN或近似kNN算法中的任一种来执行搜索。例如,系统能够使用针对系统正使用以执行搜索的设备的类型优化的kNN或近似kNN算法。
存储器150中的每个(键、值)对对应于在相应先前时间由增强的自注意力网络块处理的相应不同的先前块输入,并且因此对应于由基于自注意力的神经网络110处理的先前输入序列的相应不同的先前网络输入。因此,针对块输入序列的每个块输入,通过选择存储在存储器150中的(键,值)对的严格子集,第二自注意力机制132选择先前网络输入的严格子集以施行注意力。具体地,通过选择块输入的键与所确定的查询最相似的(键,值)对,第二自注意力机制132能够选择可能导致块输入的最大第二注意力输出的(键,值)对。也就是说,针对块输入序列中的每个块输入,第二自注意力机制132能够标识与块输入“应该”施行注意力的相应先前网络输入相对应的(键、值)对。
在从存储器150获得与每个块输入相对应的一个或多个相应(键、值)对之后,第二自注意力机制132能够针对每个块输入使用针对块输出的所确定的查询和针对块输出的所获得的(键、值)对来生成第二注意力输出。例如,针对块输入序列中的每个特定块输入以及针对从存储器获得的针对特定块输入的每个键,增强的自注意力网络块130能够通过组合针对特定块输入的查询和所获得的键来确定权重。增强的自注意力网络块130然后能够确定从存储器获得的针对特定块输入的值的加权和,其中,根据针对对应键(即,与该值在同一对中的键)所确定的权重来加权每个值。
在一些实施方式中,系统100在确定针对第二注意力机制132并且可选地针对第一注意力机制134的权重值时归一化键和查询。
也就是说,对于一个或多个先前键中的每一个,生成相应的权重值能够包括使用以下中的一个或多个对查询与先前键的所确定的乘积进行归一化:查询的维度、查询与相应的先前键的乘积的和、或者在查询与从子序列中的先前输出位置处的块输入所确定的相应第二键之间计算的第二乘积集合的和。在EMNLP,2020中的Alex Henry、PrudhviRajDachapally、Shubham Shantaram Pawar和Yuxuan Chen所著的“transformers的查询-键归一化(Query-key normalization for transformers)”中更详细地描述了以这种方式对键和查询进行归一化。
针对每个块输入,增强的自注意力网络块130能够组合针对块输入的第一注意力输出和针对块输入的第二注意力输出以生成针对块输入的块输出。
例如,增强的自注意力网络块130能够确定第一注意力输出和第二注意力输出的和。
作为另一示例,增强的自注意力网络块130能够级联第一注意力输出和第二注意力输出。
作为又一示例,增强的自注意力网络块130能够使用经学习的门值来组合第一注意力输出和第二注意力输出。例如,系统能够将第二注意力输出乘以经学习的门值以及将第一注意力输出乘以(1减去经学习的门值),然后对乘积求和。
在一些实施方式中,增强块130执行多头注意,并且第一注意力机制是多头自注意力机制,其中,增强的自注意力网络块130针对块输入序列中的每个块输入来生成多个相应的初始第一注意力输出,如上所述。
在这些实施方式中,第二注意力机制也是多头自注意力机制,其中第二注意力机制的每个头对应于第一注意力机制的头中的一个。对于第二注意力机制中的给定头,系统仅针对由第二注意力机制的对应头生成的键值对搜索存储器150。
在这些实施方式中,块130能够针对多个头中的每个头如上所述生成相应的注意力输出元素,并且然后能够组合多个头的注意力输出元素以生成块130的最终块输出,例如,通过级联、求和或平均注意力输出元素或通过将经学习的线性变换应用于注意力输出元素(的级联)。
因此,增强的自注意力网络块130的输出能够是包括与块输入序列中的每个块输入相对应的相应块输出的块输出序列。
在一些实施方式中,基于自注意力的神经网络110包括一个或多个其他网络块,例如,一个或多个其他局部自注意力网络块和/或一个或多个前馈网络块。
在本说明书中,局部自注意力网络块是获得包括多个块输入的块输入序列并且将自注意力应用于块输入而不访问存储器150的网络块。也就是说,局部自注意力网络块不对用于生成到局部自注意力网络块的块输入的网络输入之外的任何网络输入施行注意力。
虽然增强的神经网络块130能够被布置在块120的序列内的任何适当位置,但是在一些实施方式中,仅一个块120是增强的神经网络块130。例如,增强的神经网络块130能够是在块120的序列的“顶部”附近的块120中的一个。
下文参考图3来描述这个示例。
通常,每个块120能够包括执行其他操作(除了注意力操作之外)的其他组件。例如,块120中的一些或全部能够包括归一化组件、残差连接、或前馈神经网络层中的一个或多个。等效地,这些其他组件能够被视为序列中的单独块120,即,与执行注意力操作的块分离。
训练系统能够使用任何适当的技术来训练基于自注意力的神经网络110。
在一些实施方式中,存储器150是不可微分的。也就是说,存储在存储器150中的(键、值)对在反向传播期间或响应于在训练期间对基于自注意力的神经网络110的任何其他参数更新而不被更新。通过去除更新存储器150中的(键、值)对的计算要求,或者通过将(键、值)对添加到存储器150的操作进行反向传播,使存储器150不可微分能够显著地提高训练的效率。
在训练之后,能够以任何适当的设置来部署基于自注意力的神经网络110。例如,自注意力神经网络110能够部署在数据中心中或在边缘设备上。
如上所述,自注意力神经网络能够被配置为以两种模式中的一个进行操作。
在一种模式中,神经网络正在执行需要针对输入序列生成一个或多个输出(例如,分类输出)的任务。然而,输入序列太长而不能使用神经网络的局部注意力机制来处理。代替地,神经网络将输入序列划分成多个子序列并且在每个生成迭代处处理相应的子序列。
在另一模式中,神经网络正在执行需要自回归地生成输出序列的任务。然而,输出序列太长而不能使用神经网络的局部注意力机制来处理。代替地,神经网络将输出序列划分成多个子序列。在每个生成迭代处,神经网络生成当前子序列中的下一个输出,其中局部注意力机制以当前子序列中的已经生成的输出为条件。也就是说,针对每个子序列并且针对子序列中的每个特定输出位置,神经网络处理输入序列,该输入序列包括子序列中的特定输出位置之前的相应先前输出位置处的任何先前输出元素。
图2A是用于在神经网络自动回归地生成输出序列时使用增强块来处理块输入的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,包括在神经网络系统中的增强块(例如,包括在图1的神经网络系统100中的被适当编程的增强块130中的一个)能够执行过程200。
具体地,由增强块针对第一子序列之后的每个子序列中的每个输出位置来执行过程200。换句话说,针对每个子序列和针对子序列中的每个特定输出位置,神经网络处理包括子序列中的特定输出位置之前的相应先前输出位置处的任何先前输出元素的输入序列,以及作为该处理的一部分,每个增强块执行过程200。
增强块获得从针对输出位置的输入序列生成的块输入序列,并且包括子序列中的每个先前输出位置处的相应块输入(步骤202)。
针对子序列中的每个特定先前输出位置,增强块在先前输出位置处的块输入上应用自注意力机制以生成针对特定先前输出位置的相应注意力输出(步骤204)。
应用自注意力机制包括:从在特定先前输出位置处的块输入确定查询,从被配置为存储由神经网络在生成输出序列中的子序列之前的先前子序列时生成的先前键和对应的先前值的存储器中,根据所确定的查询与特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值,并且使用查询、先前键和先前值来生成特定先前输出位置的注意力输出。
增强块从对应于相应先前输出位置的注意力输出生成块输出序列,所述块输出序列具有子序列中的每个先前输出位置处的相应块输出(步骤206)。
具体地,如上所述,增强块通常还将第一注意力机制应用于输出位置以生成针对每个输出位置的另一注意力输出,并且针对每个特定先前输出位置,对(i)特定先前输出位置的注意力输出和(ii)特定先前输出位置的另一注意力输出进行组合。
一旦神经网络已经生成了针对给定子序列中的最后位置的最后输出,系统就能够针对子序列中的每个先前输出位置将对应的第二键和第二值提供给存储器以用于未来阶段。也就是说,系统能够将由局部自注意力机制针对输出位置生成的对应的第二键和第二值存储在存储器中以用于生成未来子序列。
图2B是用于在神经网络针对长输入序列生成网络输出时使用增强块来处理块输入的示例过程250的流程图。为了方便起见,过程250将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,包括在神经网络系统中的增强块(例如,包括在图1的神经网络系统100中的被适当编程的增强块130中的一个)可以执行过程250。
具体地,由增强块针对第一子序列之后的输入序列的每个子序列执行过程250。换句话说,在多个阶段中的每个阶段处,系统处理输入序列的相应不同输入子序列。在一些实施方式中,系统生成每个子序列的一个或多个网络输出。在一些其他实施方式中,系统仅针对最后子序列生成网络输出,即,系统处理较早子序列以提供用于在处理最后子序列之后进行的预测的“上下文”。
每个输入子序列具有处于输入顺序的多个输入位置中的每个输入位置处的相应网络输入,并且每个增强块在每个阶段处(即,针对每个输入子序列)执行过程250。
块获得从针对阶段的输入子序列生成的块输入序列,并且包括在多个输入位置中的每个输入位置处的相应块输入(步骤252)。
针对处于输入顺序的每个特定输入位置,系统在多个输入位置处的块输入上应用自注意力机制以生成针对特定输入位置的相应注意力输出(步骤254)。为了应用自注意力机制,系统从在特定输入位置处的块输入确定查询,从被配置为存储由在相应的先前阶段处的神经网络生成的先前键和对应先前值的存储器,根据所确定的查询与特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值,以及使用查询、先前键和先前值来生成特定输入位置的注意力输出。
然后,块从对应于相应输入位置的注意力输出生成块输出序列,所述块输出序列具有在多个输入位置中的每个输入位置处的相应块输出(步骤256)。
图3示出了神经网络110的示例架构。
具体地,图3示出了作为预测下一元素304(“to”)的一部分的当前输入序列302(“said the cat in the hat”)的处理。
如图3所示,神经网络110包括多个局部注意力块和单个增强的神经网络块340。在图3的示例中,每个局部和增强的注意力块之后是前馈神经网络(FNN)块。可替选地,这能够被视为使每个注意力块也包括执行FFN块的操作的组件。
更具体地,神经网络包括嵌入层310、块的序列、以及输出softmax层390。序列块包括初始局部注意力块320、附加层块、增强的神经网络块340、以及最终局部注意力块380。
增强神经网络块340接收由序列中的先前块生成的块输入330,并且使用块输入330和存储缓存的(键,值)对的外部存储器360来生成块输出370。
具体地,增强的神经网络块330在块输入330上执行局部注意力机制,并且在块输入330和存储在存储器360中的缓存的(键、值)对上执行kNN注意力机制。
为了执行kNN注意力机制,针对块输入中的每个位置,块330使用针对位置的查询来执行k个最近邻查找(或近似的k个最近邻查找)350以标识k个缓存的(键、值)对。针对每个位置,块330然后使用针对位置的查询和k个缓存的对执行注意力以生成kNN注意力机制的输出。
然后,块330能够通过组合局部注意力机制和kNN注意力机制的输出来生成块输出370。
一旦当前子序列已经被处理,则块330然后将由局部注意力机制生成的键和值添加到存储器360以用于在下一阶段处使用,即,在处理下一个子序列时。
在使用神经网络以执行机器学习任务之前,训练系统训练神经网络以执行任务,即确定神经网络的参数(即序列中的块、(多个)输出层、以及用于生成序列中第一块的输入的嵌入层的)的训练值。例如,训练系统能够使用传统的机器学习技术在任务的训练数据上从头开始训练神经网络,以最小化任务的损失函数,例如交叉熵损失、负对数似然损失等。作为另一示例,训练系统能够首先在无监督目标上预训练神经网络,然后在任务的训练数据上微调神经网络。作为又一个示例,训练系统能够通过半监督学习在未标记数据和任务的训练数据这两者上训练神经网络。
在训练期间,训练系统能够并入任何数量的技术以提高训练过程的速度、有效性或这两者。例如,系统能够使用暂退、标签平滑或这两者来减少过拟合。作为另一示例,系统能够使用分布式架构来执行训练,该分布式架构并行地训练神经网络的多个实例。此外,如上所述,系统能够首先通过无监督学习在大的无监督数据集上预训练神经网络,例如,以最小化BERT损失或其他无监督损失,并且然后在任务特定的训练数据上微调神经网络以优化任务的损失函数。
本说明书中使用的“嵌入”是具有预定维度(例如,具有预定数量的值)的数值的向量,例如浮点或其他类型的数值。
如上所述,自注意力块是包括注意力机制的神经网络层,该注意力机制在自注意力块输入(或从层输入导出的输入)上操作以生成自注意力块输出。自注意力机制可以被因果地掩蔽,使得输入序列中的任何给定位置不对在输入序列中的给定位置之后的任何位置(例如,来自任何位置的使用数据)施行注意力。存在许多不同的可能的注意力机制。包括注意力机制的自注意力层的一些示例在Vaswani等人的“注意力就是你所需要的(Attentionof all you need)”,第31届神经信息处理系统会议(NIPS2017),长滩,加利福尼亚,美国;Colin Roffffel,Noam Shapeer,Adam Roberts,Katherine Lee,Sharan Narang,MichaelMatena,Yanqi Zhou,Wei Li和Peter J Liu的“使用统一的文本到文本transformer探索迁移学习的局限性(Exploring the limits of transfer learning with a unified text-to-text transformer)”,arXiv preprint arXiv:1910.10683,2019;Daniel Adiwardana、Minh Thang Luong、David R.So、Jamie Hall、Noah Fiedel、Romal Thoppilan、Zi Yang、Apoorv Kulshreshtha、Gaurav Nemade、Yifeng Lu和Quoc V.Le的“走向一个类似人类的开放域聊天机器人(Towards a human-like open-domain chatbot)”,CoRR,abs/2001.09977,2020;以及Tom B Brown,Benjamin Mann,Nick Ryder,Melanie Subbiah,Jared Kaplan,Prafulla Dhariwal,Arvind Neelakantan,Pranav Shyam,Girish Sastry,Amanda Askell等人的“语言模型是很少有机会的学习者(Language models are few-shotlearners)”,arXiv preprint arXiv:2005.14165,2020中描述。
通常,注意力机制将查询和键值对集合映射到输出,其中查询、键和值都是向量。输出被计算为值的加权和,其中,分配给每个值的权重由具有对应键的查询的兼容性函数(例如点积或缩放点积)计算。
通常,自注意力机制被配置为将同一序列中的不同位置相关联以确定序列的变换版本作为输出。例如,注意力层输入可以包括输入序列的每个元素的向量。这些向量向自注意力机制提供输入并且被自注意力机制用于确定注意力层输出的相同序列的新表示,其类似地包括输入序列的每个元素的向量。自注意力机制的输出可以用作注意力层输出,或者它可以由前馈层、跳过连接或归一化操作中的一个或多个进行处理以提供注意力层输出。
在一些实施方式中,注意力机制被配置为将例如由矩阵WQ定义的查询变换、例如由矩阵WK定义的键变换、以及例如由矩阵WV定义的值变换中的每一个应用于作为到注意力层的输入数据X的注意力层输入,以导出包括针对输入序列中的每个向量的相应查询的查询矩阵Q=XWQ、包括针对输入序列中的每个向量的相应键的键矩阵K=XWK、以及包括输入序列中的每个向量的相应值的值矩阵V=XWV,其被用于确定针对输出的被施行注意力的序列。例如,注意力机制可以是通过将每个查询向量应用于每个键向量以确定每个值向量的相应权重而应用的点积注意力机制,然后使用相应权重来组合值向量以确定输入序列的每个元素的自注意力层输出。自注意力层输出可以通过缩放因子(例如,通过查询和键的维度的平方根)来缩放,以实现缩放的点积注意力。因此,例如,注意力机制的输出可以被确定为其中d是键(和值)向量的维度。在另一实施方式中,注意力机制包括“加性注意力”机制,其使用具有隐藏层的前馈网络来计算兼容性函数。注意力机制的输出可以由一个或多个完全连接的前馈神经网络层进一步处理。
注意力机制可以实现多头注意力,即,可以并行地应用多种不同的注意力机制。然后可以将这些的输出进行组合(例如,级联),其中经学习的线性变换被应用于在必要时减小到原始维度。
在一些实施方式中,由增强块应用的“局部”自注意力机制、由神经网络中的其他自注意力块应用的“局部”自注意力机制、或这两者能够是具有修改架构以(部分地)考虑生成或处理较长序列,例如,transformer-XL(T-XL)机器学习模型的自注意力机制。在自回归地生成输出序列中的N个输出词元之后,T-XL模型(或其他模型)能够将N个输出词元的表示存储在T-XL存储器中。T-XL模型能够将N个词元的多个段的相应表示存储在T-XL存储器中。每次在生成附加的N个输出词元之后,T-XL能够将附加的N个输出词元的表示存储在T-XL存储器中,其中,该表示由T-XL模型生成。T-XL模型能够通过处理已经在T-XL存储器中的至少相应表示以及在输出词元之前和还没有作为相应表示的一部分存储在T-XL存储器中的任何输出词元的组合序列,来自回归地生成输出序列中的每个输出词元。
本说明书使用与系统和计算机程序组件有关的术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。用于被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括指令,所述指令在由数据处理装置执行时使装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例能够在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中、或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,被编码在有形非暂时性存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。可替选地或附加地,程序指令能够被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该传播信号被生成以对信息进行编码以传输到合适的接收器设备以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。装置还能够是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。
还可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序能够以任何形式的编程语言编写,包括编译或解释语言、或声明性或过程语言;并且其能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程、或适用于计算环境中的其他单元。程序可以但不必对应于文件系统中的文件。程序能够存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、专用于所讨论的程序的单个文件中、或存储在多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并且通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”被广义地用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且它能够存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”被广义地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在同一计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机来执行。过程和逻辑流程也能够由专用逻辑电路(例如,FPGA或ASIC)、或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机能够基于通用或专用微处理器或这两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行或施行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储装置接收数据或将数据传送到一个或多个大容量存储装置或这两者以用于存储数据,例如磁性、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机能够嵌入另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)以及用户能够通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现。其他类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档和从该设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器。而且,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且从用户返回接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括例如用于处理机器学习训练或生产的公共和计算密集型部分(即,推理、工作负载)的专用硬件加速器单元。
能够使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有图形用户界面、Web浏览器或app的客户端计算机,用户能够通过该图形用户界面、Web浏览器或app与本说明书中描述的主题的实施方式交互,或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器例如出于向与充当客户端的设备交互的用户显示数据和从用户接收用户输入的目的,向用户设备传输数据,例如HTML页面。能够在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些细节不应被解释为对任何发明的范围或所要求保护的范围的限制,而是应当被解释为对特定发明的特定实施例可能特定的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征能够从组合中被切除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中示出并在权利要求中以特定顺序描述了操作,但是这不应当被理解为要求以所示的特定顺序或以次序顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中要求这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作能够以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定顺序或次序顺序以实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (29)
1.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机实现神经网络,所述神经网络被配置为处理网络输入以生成输出序列,所述输出序列包括输出顺序中的多个输出位置中的每个输出位置处的相应输出元素,
所述输出序列被划分成多个子序列,每个子序列包括在相应输出位置处的所述输出元素的不同子集,
针对每个子序列和针对所述子序列中的每个特定输出位置,所述生成包括处理输入序列,所述输入序列包括在所述子序列中的所述特定输出位置之前的相应先前输出位置处的任何先前输出元素,
所述神经网络包括一个或多个网络块的序列,所述序列包括至少一个自注意力网络块,所述至少一个自注意力网络块被配置为针对所述输出序列的第一子序列之后的每个子序列中的每个输出位置来执行操作,所述操作包括:
获得从针对所述输出位置的所述输入序列生成的块输入序列,并且包括在所述子序列中的每个所述先前输出位置处的相应块输入;
针对所述子序列中的每个特定先前输出位置,在所述先前输出位置处的所述块输入上应用自注意力机制以生成针对所述特定先前输出位置的相应的注意力输出,其中,应用所述自注意力机制包括:
从在所述特定先前输出位置处的所述块输入确定查询,
从被配置为存储由所述神经网络在生成所述输出序列中的所述子序列之前的先前子序列时生成的先前键和对应先前值的存储器中,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值,以及
使用所述查询、先前键和先前值来生成所述特定先前输出位置的所述注意力输出;以及
从对应于相应先前输出位置的所述注意力输出生成块输出序列,所述块输出序列包括所述子序列中的每个所述先前输出位置处的相应块输出。
2.根据权利要求1所述的系统,其中:
所述自注意力机制是第一自注意力机制;以及
针对每个子序列中的每个输出位置,所述至少一个自注意力网络块被配置为执行操作,所述操作进一步包括:
针对所述子序列中的每个特定先前输出位置,在所述先前输出位置处的所述块输入上应用第二自注意力机制以生成针对所述特定先前输出位置的相应第二注意力输出,其中,应用所述第二自注意力机制包括:
从在所述特定先前输出位置处的所述块输入确定第二查询,
从在所述多个先前输出位置处的所述块输入确定第二键,
从在所述多个先前输出位置处的所述块输入确定第二值,以及
使用所述第二查询、第二键和第二值来生成针对所述特定先前输出位置的所述第二注意力输出。
3.根据权利要求2所述的系统,其中,针对每个特定先前输出位置,对应的查询和第二查询是相同的。
4.根据权利要求2或3中任一项所述的系统,其中,生成所述块输出序列包括:针对每个特定先前输出位置,对(i)所述特定先前输出位置的所述注意力输出和(ii)所述特定先前输出位置的所述第二注意力输出进行组合。
5.根据权利要求4所述的系统,其中,针对每个特定先前输出位置,对(i)所述特定先前输出位置的所述注意力输出和(ii)所述特定先前输出位置的所述第二注意力输出进行组合包括:对所述注意力输出和所述第二注意力输出进行求和。
6.根据权利要求2至5中任一项所述的系统,所述操作进一步包括:
针对所述子序列中的每个先前输出位置,将对应的第二键和第二值提供给所述存储器以用于未来阶段。
7.根据权利要求1至6中任一项所述的系统,其中,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值包括:
从由所述存储器存储的所述先前键,根据距离度量来确定最接近所确定的查询的所述一个或多个特定先前键;以及
获得(i)所确定的所述一个或多个特定先前键和(ii)针对每个所确定的特定先前键由所述存储器存储的对应特定先前值。
8.根据权利要求1至7中任一项所述的系统,其中,使用所述查询、先前键和先前值来生成针对所述特定先前输出位置的所述注意力输出包括:
针对所述一个或多个先前键中的每一个,通过确定所述查询和所述先前键的乘积来生成相应的权重值;以及
计算所述先前值的加权和,其中,根据从对应的先前键生成的所述权重值对每个先前值进行加权。
9.根据权利要求8所述的系统,其中,针对所述一个或多个先前键中的每一个,生成相应的权重值包括使用以下中的一个或多个来归一化所述查询和先前键的所确定的乘积:
所述查询的维度,
所述查询的所述乘积与相应的先前键的和,或
在所述查询与从所述子序列中的所述先前输出位置处的所述块输入确定的相应的第二键之间计算的第二乘积集合的和。
10.根据权利要求1至9中任一项所述的系统,其中,所述网络块的序列进一步包括一个或多个局部自注意力网络块,每个局部自注意力网络块被配置为针对在所述输出序列的第一子序列之后的每个子序列中的每个输出位置,在每个阶段处执行操作,所述操作包括:
获得从所述输入序列针对所述输出位置生成的局部自注意力块输入序列,并且包括在所述子序列中的每个所述先前输出位置处的相应局部自注意力块输入;
针对所述子序列中的每个特定先前输出位置,在所述先前输出位置处的所述局部自注意力块输入上应用第三自注意力机制以生成针对所述特定先前输出位置的相应第三注意力输出,其中,应用所述第三自注意力机制包括:
从在所述特定先前输出位置处的所述局部自注意力块输入确定第三查询,
从所述子序列中的所述先前输出位置处的所述局部自注意力块输入确定第三键,
从所述子序列中的所述先前输出位置处的所述局部自注意力块输入确定第三值,以及
使用所述第三查询、第三键和第三值来生成针对所述特定先前输出位置的所述第三注意力输出。
11.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机实现神经网络,所述神经网络被配置为处理输入序列以生成网络输出,
所述处理包括,在多个阶段中的每个阶段处,处理所述输入序列的相应不同输入子序列,每个输入子序列具有处于输入顺序的多个输入位置中的每个输入位置处的相应网络输入,
所述神经网络包括一个或多个网络块的序列,所述序列包括至少一个自注意力网络块,所述至少一个自注意力网络块被配置为在每个阶段处执行操作,所述操作包括:
获得从所述阶段的所述输入子序列生成的块输入序列,并且包括在所述多个输入位置中的每个输入位置处的相应块输入;
针对处于所述输入顺序的每个特定输入位置,在所述多个输入位置处的所述块输入上应用自注意力机制以生成针对所述特定输入位置的相应注意力输出,其中,应用所述自注意力机制包括:
从在所述特定输入位置处的所述块输入确定查询,
从被配置为存储由在相应的先前阶段处的所述神经网络生成的先前键和对应先前值的存储器,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值,以及
使用所述查询、先前键和先前值来生成所述特定输入位置的所述注意力输出;以及
从对应于相应输入位置的所述注意力输出生成块输出序列,所述块输出序列包括在所述多个输入位置中的每个输入位置处的相应块输出。
12.根据权利要求11所述的系统,其中:
所述自注意力机制是第一自注意力机制;
所述至少一个自注意力网络块被配置为在每个阶段处执行操作,所述操作进一步包括:
针对处于所述输入顺序的每个特定输入位置,在所述多个输入位置处的所述块输入上应用第二自注意力机制以生成针对所述特定输入位置的相应第二注意力输出,其中,应用所述第二自注意力机制包括:
从在所述特定输入位置处的所述块输入确定第二查询,
从在所述多个输入位置处的所述块输入确定第二键,
从在所述多个输入位置处的所述块输入确定第二值,以及
使用所述第二查询、第二键和第二值来生成针对所述特定输入位置的所述第二注意力输出。
13.根据权利要求12所述的系统,其中,针对每个特定输入位置,对应查询和第二查询是相同的。
14.根据权利要求12或13中任一项所述的系统,其中,生成所述块输出序列包括:针对每个特定输入位置,对(i)所述特定输入位置的所述注意力输出和(ii)所述特定输入位置的所述第二注意力输出进行组合。
15.根据权利要求14所述的系统,其中,针对每个特定输入位置,对(i)所述特定输入位置的所述注意力输出和(ii)所述特定输入位置的所述第二注意力输出进行组合包括:对所述注意力输出和所述第二注意力输出进行求和。
16.根据权利要求12至15中任一项所述的系统,所述操作进一步包括:
针对所述多个输入位置中的每个输入位置,将对应的第二键和第二值提供给所述存储器以用于未来的阶段。
17.根据权利要求11至16中任一项所述的系统,其中,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值包括:
从由所述存储器存储的所述先前键,根据距离度量来确定最接近所确定的查询的所述一个或多个特定先前键;以及
获得(i)所确定的所述一个或多个特定先前键和(ii)针对每个所确定的特定先前键由所述存储器存储的对应特定先前值。
18.根据权利要求11至17中任一项所述的系统,其中,使用所述查询、先前键和先前值来生成针对所述特定输入位置的所述注意力输出包括:
针对所述一个或多个先前键中的每一个,通过确定所述查询和所述先前键的乘积来生成相应的权重值;以及
计算所述先前值的加权和,其中,根据从对应的先前键生成的所述权重值对每个先前值进行加权。
19.根据权利要求18所述的系统,其中,针对所述一个或多个先前键中的每一个,生成相应的权重值包括使用以下中的一个或多个来归一化所述查询和所述先前键的所确定的乘积:
所述查询的维度,
所述查询的所述乘积与相应的先前键的和,或
在所述查询与从在所述多个输入位置处的所述块输入确定的相应的第二键之间计算的第二乘积集合的和。
20.根据权利要求11至19中任一项所述的系统,其中,所述网络块的序列进一步包括一个或多个局部自注意力网络块,每个局部自注意力网络块被配置为在每个阶段处执行操作,所述操作包括:
获得从所述阶段的所述输入子序列生成的局部自注意力块输入序列,并且包括在所述多个输入位置中的每个输入位置处的相应局部自注意力块输入;
针对处于所述输入顺序的每个特定输入位置,在所述多个输入位置处的所述局部自注意力块输入上应用第三自注意力机制以生成针对所述特定输入位置的相应第三注意力输出,其中,应用所述第三自注意力机制包括:
从在所述特定输入位置处的所述局部自注意力块输入确定第三查询,
从在所述多个输入位置处的所述局部自注意力块输入确定第三键,
从在所述多个输入位置处的所述局部自注意力块输入确定第三值,以及
使用所述第三查询、第三键和第三值来生成针对所述特定输入位置的所述第三注意力输出。
21.一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质存储指令,所述指令在由一个或多个计算机执行时使所述一个或多个计算机实现根据权利要求1至20中任一项所述的神经网络。
22.一种由一个或多个计算机执行的方法,所述方法包括:
接收网络输入;以及
处理所述网络输入以生成输出序列,所述输出序列包括输出顺序中的多个输出位置中的每个输出位置处的相应输出元素,
所述输出序列被划分成多个子序列,每个子序列包括在相应输出位置处的所述输出元素的不同子集,
针对每个子序列和针对所述子序列中的每个特定输出位置,所述生成包括使用神经网络来处理输入序列,所述输入序列包括在所述子序列中的所述特定输出位置之前的相应先前输出位置处的任何先前输出元素,
所述神经网络包括一个或多个网络块的序列,所述序列包括至少一个自注意力网络块,所述至少一个自注意力网络块被配置为针对所述输出序列的第一子序列之后的每个子序列中的每个输出位置来执行操作,所述操作包括:
获得从针对所述输出位置的所述输入序列生成的块输入序列,并且包括在所述子序列中的每个所述先前输出位置处的相应块输入;
针对所述子序列中的每个特定先前输出位置,在所述先前输出位置处的所述块输入上应用自注意力机制以生成针对所述特定先前输出位置的相应注意力输出,其中,应用所述自注意力机制包括:
从在所述特定先前输出位置处的所述块输入确定查询,
从被配置为存储由所述神经网络在生成所述输出序列中的所述子序列之前的先前子序列时生成的先前键和对应先前值的存储器中,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值,以及
使用所述查询、先前键和先前值来生成所述特定先前输出位置的所述注意力输出;以及
从对应于相应先前输出位置的所述注意力输出生成块输出序列,所述块输出序列包括所述子序列中的每个所述先前输出位置处的相应块输出。
23.根据权利要求22所述的方法,其中:
所述自注意力机制是第一自注意力机制;以及
针对每个子序列中的每个输出位置,所述至少一个自注意力网络块被配置为执行操作,所述操作进一步包括:
针对所述子序列中的每个特定先前输出位置,在所述先前输出位置处的所述块输入上应用第二自注意力机制以生成针对所述特定先前输出位置的相应第二注意力输出,其中,应用所述第二自注意力机制包括:
从在所述特定先前输出位置处的所述块输入确定第二查询,
从在所述多个先前输出位置处的所述块输入确定第二键,
从在所述多个先前输出位置处的所述块输入确定第二值,以及
使用所述第二查询、第二键和第二值来生成针对所述特定先前输出位置的所述第二注意力输出。
24.根据权利要求23所述的方法,其中,针对每个特定先前输出位置,对应查询和第二查询是相同的。
25.根据权利要求23或24中任一项所述的方法,其中,生成所述块输出序列包括:针对每个特定先前输出位置,对(i)所述特定先前输出位置的所述注意力输出和(ii)所述特定先前输出位置的所述第二注意力输出进行组合。
26.根据权利要求23至25中任一项所述的方法,所述操作进一步包括:
针对所述子序列中的每个先前输出位置,将对应的第二键和第二值提供给所述存储器以用于未来阶段。
27.根据权利要求22至26中任一项所述的方法,其中,根据所确定的查询与所述特定先前值之间的相似性来获得一个或多个特定先前键和对应的特定先前值包括:
从由所述存储器存储的所述先前键,根据距离度量来确定最接近所确定的查询的所述一个或多个特定先前键;以及
获得(i)所确定的所述一个或多个特定先前键和(ii)针对每个所确定的特定先前键由所述存储器存储的对应特定先前值。
28.根据权利要求22至27中任一项所述的方法,其中,使用所述查询、先前键和先前值来生成针对所述特定先前输出位置的所述注意力输出包括:
针对所述一个或多个先前键中的每一个,通过确定所述查询和所述先前键的乘积来生成相应的权重值;以及
计算所述先前值的加权和,其中,根据从对应的先前键生成的所述权重值对每个先前值进行加权。
29.根据权利要求28所述的方法,其中,针对所述一个或多个先前键中的每一个,生成相应的权重值包括使用以下中的一个或多个来归一化所述查询和所述先前键的所确定的乘积:
所述查询的维度,
所述查询的所述乘积与相应的先前键的和,或
在所述查询与从所述子序列中的所述先前输出位置处的所述块输入确定的相应的第二键之间计算的第二乘积集合的和。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163252616P | 2021-10-06 | 2021-10-06 | |
US63/252,616 | 2021-10-06 | ||
PCT/US2022/045948 WO2023059831A1 (en) | 2021-10-06 | 2022-10-06 | Using memory to augment self-attention in neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118159985A true CN118159985A (zh) | 2024-06-07 |
Family
ID=84329547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280067352.1A Pending CN118159985A (zh) | 2021-10-06 | 2022-10-06 | 使用存储器来增强神经网络中的自注意力 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN118159985A (zh) |
GB (1) | GB2625489A (zh) |
WO (1) | WO2023059831A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116740414B (zh) * | 2023-05-15 | 2024-03-01 | 中国科学院自动化研究所 | 图像识别方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3155096A1 (en) * | 2019-09-25 | 2021-04-01 | Deepmind Technologies Limited | Augmenting attention-based neural networks to selectively attend to past inputs |
-
2022
- 2022-10-06 GB GB2404833.2A patent/GB2625489A/en active Pending
- 2022-10-06 CN CN202280067352.1A patent/CN118159985A/zh active Pending
- 2022-10-06 WO PCT/US2022/045948 patent/WO2023059831A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB2625489A (en) | 2024-06-19 |
WO2023059831A1 (en) | 2023-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210390271A1 (en) | Neural machine translation systems | |
US11238332B2 (en) | Attention neural networks with sparse attention mechanisms | |
US20210279576A1 (en) | Attention neural networks with talking heads attention | |
CN110245359B (zh) | 使用自回归机器学习模型进行并行解码 | |
US10909461B1 (en) | Attention neural networks with locality-sensitive hashing | |
US20220253672A1 (en) | Sparse attention neural networks | |
US20210248473A1 (en) | Attention neural networks with linear units | |
US20230107409A1 (en) | Ensembling mixture-of-experts neural networks | |
Chen et al. | Exploiting future word contexts in neural network language models for speech recognition | |
CN114467096A (zh) | 增强基于注意力的神经网络以选择性地关注过去的输入 | |
EP4121909A1 (en) | Attention neural networks with conditional computation | |
CN111832699A (zh) | 用于神经网络的计算高效富于表达的输出层 | |
CN117121016A (zh) | 在低级基元上的粒度神经网络架构搜索 | |
CN118159985A (zh) | 使用存储器来增强神经网络中的自注意力 | |
US20230316055A1 (en) | Attention neural networks with parallel attention and feed-forward layers | |
US20240005131A1 (en) | Attention neural networks with tree attention mechanisms | |
WO2023009766A1 (en) | Evaluating output sequences using an auto-regressive language model neural network | |
CN116982054A (zh) | 使用前瞻树搜索的序列到序列神经网络系统 | |
EP4396729A1 (en) | Using memory to augment self-attention in neural networks | |
WO2023147144A1 (en) | Attention neural networks with gated attention units | |
US20230177309A1 (en) | Training conditional computation neural networks using reinforcement learning | |
US20240078379A1 (en) | Attention neural networks with n-grammer layers | |
JP2024519265A (ja) | フィードフォワード空間変換ユニットを備えたニューラルネットワーク | |
CN115062122A (zh) | 对话应答方法、装置、电子设备及计算机可读存储介质 | |
CN117744631A (zh) | 文本预测的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |