CN117795527A - 使用自回归语言模型神经网络评估输出序列 - Google Patents
使用自回归语言模型神经网络评估输出序列 Download PDFInfo
- Publication number
- CN117795527A CN117795527A CN202280052514.4A CN202280052514A CN117795527A CN 117795527 A CN117795527 A CN 117795527A CN 202280052514 A CN202280052514 A CN 202280052514A CN 117795527 A CN117795527 A CN 117795527A
- Authority
- CN
- China
- Prior art keywords
- sequence
- output sequence
- candidate output
- tokens
- input
- 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 113
- 238000011156 evaluation Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000003860 storage Methods 0.000 claims abstract description 10
- 238000012549 training Methods 0.000 claims description 87
- 230000004044 response Effects 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 16
- 230000001143 conditioned effect Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 27
- 230000000875 corresponding effect Effects 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 19
- 239000013598 vector Substances 0.000 description 13
- 238000009826 distribution Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000026676 system process Effects 0.000 description 4
- 238000013526 transfer learning Methods 0.000 description 4
- 238000009966 trimming Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 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
- 238000013519 translation Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 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
- 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/08—Learning methods
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- 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/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
用于使用语言模型神经网络来评估候选输出序列的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。特别地,自回归语言模型神经网络被用于生成候选输出序列。同一自回归语言模型神经网络被用于评估候选输出序列以针对一个或多个准则中的每一个确定评级分数。然后使用该评级分数来确定是否提供候选输出序列。
Description
相关申请的交叉引用
本申请要求2021年7月28日提交的美国临时申请No.63/226,748的权益。本申请的公开内容被认为是本申请的公开内容的一部分并且通过引用并入本文。
背景技术
本说明书涉及使用神经网络处理输入以生成输出序列。
神经网络是采用一个或多个非线性单元层来接收到的输入预测输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,另一隐藏层或输出层)的输入。网络的每个层根据相应的参数集的当前值来从接收到的输入生成输出。
发明内容
本说明书描述了被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统使用自回归语言模型神经网络来生成输出序列,并且然后使用相同的自回归语言模型神经网络来评估输出序列,即,以便确定输出序列是否适合于作为系统的输出提供或者响应于给定请求来选择应当提供哪个输出序列。因此,系统使用相同的自回归神经网络来既生成序列又在所生成的序列之间“判别(discriminate)”以确定响应于给定请求来提供哪个序列(如果有的话)。
本说明书中描述的主题能够在特定实施例中实现,以便实现以下优点中的一个或多个。
所描述的技术允许自回归语言模型神经网络既用作生成器又用作判别器,即,既用于生成输出序列又用于评估输出序列满足一个或多个准则的程度。
相对于具有单独的生成器和判别器模型,具有能够用作生成器和判别器两者的单个模型允许关于生成候选以最小附加计算开销准确地评估候选输出。也就是说,相对于使用单独的生成器模型评估序列,系统能够以更小的附加时延并且同时消耗少得多的附加存储器来评估生成的序列。
例如,在一些情况下,语言模型神经网络能够被部署在具有受约束的存储器空间的设备上,即,在可用存储器上或在需要低解码时延的设备上(例如,在诸如移动设备、智能扬声器或其他物联网(IoT)设备的边缘设备上或嵌入机器人或其他物理系统)上部署语言模型神经网络。在这些情况下,系统能够以最小的附加计算开销来评估由神经网络在设备上生成的序列,从而允许响应于接收到的请求而提供的输出序列的质量被提高,同时仍然执行设备上的处理并且无需通过网络进行附加的数据通信。也就是说,因为语言模型神经网络被用作生成器和判别器两者,所以边缘设备能够在设备上本地执行评估而不超过存储器或时延约束。
此外,该单个模型能够被用于过滤特定于任务的微调数据而后经过滤的数据被用于微调该模型以在特定任务上良好运作。在微调之后,由语言模型神经网络生成的输出序列的质量能够被显著增加,因为语言模型已经在没有大量不合标准的输出的情况下对训练数据进行微调。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。
根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例神经网络系统的图。
图2是准则评估系统的一个示例的图。
图3是用于评估候选输出序列的示例过程的流程图。
图4是准则评估系统的另一示例的图。
图5是用于评估候选输出序列的另一示例过程的流程图。
各个附图中相同的附图标记和标号表示相同的元件。
具体实施方式
图1是示例神经网络系统100的图。神经网络系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中能够实现下面描述的系统、组件和技术。
神经网络系统100是响应于接收到的请求生成输出序列150的系统。
例如,系统100能够是输出序列生成系统,其生成无提示的输出序列150,即,不以任何用户指定的上下文输入为条件。在这些实施方式中,由系统100生成的输出序列近似于在系统100的训练期间使用的训练输出序列的分布的样本。
作为示例,系统100能够是生成文本序列的文本生成系统,即,由系统100生成的每个输出序列150是来自文本词元(token)的词表的文本词元序列,该词表包括例如在自然语言文本中出现的字符、子词、词、标点符号、数字或其他符号中的一个或多个。例如,系统100可以响应于接收到的请求生成文本序列,并且提供文本序列以供呈现给用户。
作为另一示例,系统100能够是生成作为像素序列的图像的图像生成系统,即,由系统100生成的每个输出序列150是根据指定顺序布置的输出图像中的像素的颜色值序列。
作为另一示例,系统100能够接收作为请求的一部分的上下文序列102并且生成作为对上下文序列102的响应的输出序列150。
作为特定示例,系统100能够是对话系统的一部分,并且上下文序列102能够包括由来自对话系统的用户在对话期间提交的最新近会话话轮(conversational turn)的音频或文本,而输出序列150是会话中的下一话轮,例如,作为对最新近会话话轮的响应的文本或音频。可选地,上下文序列102还能够包括会话中早前发生的一个或多个历史会话话轮。
作为另一特定示例,系统100能够是机器翻译系统的一部分,并且上下文序列102能够包括源语言的文本,而输出序列150是目标语言的文本,其是源文本到目标语言的翻译。
作为另一特定示例,系统100能够是计算机代码生成系统的一部分,并且上下文序列102能够是编程语言中的期望代码段或计算机代码的片段的文本描述,并且输出序列150能够是计算机代码,例如,由上下文序列102描述的代码的片段或在计算机程序中在上下文序列102之后的代码片段。
更具体地,系统100接收对输出序列150的请求,并且作为响应,使用自回归语言模型神经网络110生成一个或多个候选输出序列120,即,不以上下文序列102为条件或以上下文序列102为条件。
每个候选输出序列120包括来自多个位置中的每个位置处的词元词表的相应词元。词元词表能够包括表示文本符号或其他符号的各种词元中的任何词元。例如,词元词表能够包括出现在自然语言文本的语料库中的字符、子词、词、标点符号、数字或其他符号中的一个或多个。
语言模型神经网络110被称为自回归神经网络,因为神经网络110通过以下操作来自回归地生成词元的输出序列:在该输出序列中以包括在输出序列中的特定文本词元之前的任何词元(即,已经针对在特定词元的特定位置之前的输出序列中的任何先前位置生成的词元)为条件来生成每个特定词元。当系统100还接收上下文序列102时,当前输入序列还能够包括上下文序列102。例如,当生成输出序列中的任何给定位置处的词元时的当前输入序列能够包括上下文序列102和在输出序列中的给定位置之前的任何先前位置处的词元。作为特定示例,当前输入序列能够包括上下文序列102,随后是“sentinel(哨兵)”序列,其表示向神经网络110指示应当生成对上下文序列102的响应的预定词元序列,并且然后是在输出序列中的给定位置之前的任何先前位置处的词元。可选地,子序列能够由当前输入序列内的预定词元(例如,“<”和“>”词元)分开。
更具体地,为了生成候选输出序列120内的特定位置处的特定词元,神经网络110能够处理当前输入序列以生成分数分布(例如,概率分布),该分数分布将相应分数(例如,相应概率)指派给词元词表中的每个词元。然后,神经网络110能够使用分数分布从词表中选择词元作为特定词元。例如,神经网络110能够以贪心方式选择最高得分的词元或能够例如使用核采样(nucleus sampling)或另一采样技术从分布中采样词元。
作为特定示例,语言模型神经网络110能够是基于自回归的基于Transformer的神经网络,其包括(i)各自应用自注意力操作的多个注意力块和(ii)处理最后一个注意力块的输出以生成分数分布的输出子网络。
神经网络110能够具有各种基于Transformer的神经网络架构中的任一种。这种结构的示例包括以下中描述的那些:Colin Raffel、Noam Shazeer、Adam Roberts、KatherineLee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter J Liu.Exploring thelimits of transfer learning with a unified text-to-text transformer(利用统一的文本到文本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和QuocV.Le.Towards ahuman-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、Grish Sastry、AmandAskell等.Language models are few-shot learners(语言模型是少试学习者).arXiv preprint arXiv:2005.14165,2020。
然而,大体上,基于Transformer的神经网络包括注意力块的序列,并且在给定输入序列的处理期间,序列中的每个注意力块接收给定输入序列中的每个输入词元的相应输入隐藏状态。注意力块然后至少部分地通过应用自注意力来为每个输入词元生成相应的输出隐藏状态来更新每个隐藏状态。第一注意力块的输入隐藏状态是输入序列中的输入词元的嵌入,并且每个后续注意力块的输入隐藏状态是由先前注意力块生成的输出隐藏状态。
在该示例中,输出子网络处理由序列中的最后一个注意力块针对输入序列中的最后一个输入词元生成的输出隐藏状态,以生成分数分布。
在一些实施方式中,系统100或另一训练系统在语言建模任务(例如,给定当前文本词元序列的情况下需要预测在训练数据中的当前序列之后的下一词元)上预先训练语言模型神经网络110。作为特定示例,语言模型神经网络110能够在诸如可从互联网或另一文本语料库公开获得的文本的大数据集上的最大似然目标上被预训练。
大体上,因为神经网络110是自回归的,所以系统100能够使用相同的神经网络110来响应于相同的请求生成多个不同的候选输出序列120,例如,通过使用根据由神经网络110生成的分数分布的束搜索解码、使用Sample-and-Rank解码策略、或使用利用神经网络的自回归性质的另一解码策略来生成。
当生成多个候选输出序列120时,系统100需要确定多个序列中的哪一个作为响应于请求的输出序列150。此外,即使仅生成单个输出序列,一些候选输出序列120也不适合被提供为最终输出序列150。
为了确定如何响应给定请求,即,为了确定响应于请求而提供哪个候选输出序列120(如果有),系统100维护指定一个或多个准则(“输出序列准则”)集合的数据,每个准则度量给定输出序列的对应性质。
该准则集合能够包括在系统100被配置为执行的任务方面度量与给定候选输出序列的质量相关的性质的各种准则中的任何准则。
例如,该准则集合能够包括对应于输出序列的理智度(sensibleness)的准则。理智度准则度量模型的响应是否是理智的,即,由神经网络110生成的给定候选输出序列是否在当前交互的上下文中(即,作为对上下文序列102的响应)是合理的,并且不与上下文序列102中或在当前交互期间的更早前序列中的任何信息相矛盾。因此,如果输出序列是理智的,则输出序列满足该准则。
作为另一示例,该准则集合能够包括对应于输出序列的特定性(specificity)的准则。特定性准则度量模型的响应是否是特定的,即,由神经网络110生成的给定候选输出序列是否特定于对应的上下文序列102,而不是可以应用于各种上下文序列中的任何上下文序列的通用响应。例如,如果上下文序列102是“I love television(我爱电视)”并且模型响应“Metoo(我也是)”,则这在特定性上将收到低分数,例如,分数0,因为该响应可以在许多不同的上下文中使用。如果模型响应“Me too.I love watching reality shows,(我也是。我爱看真人秀)”,则其将更高特定性分数。
作为另一示例,该准则集合能够包括对应于输出序列的有趣度的准则。有趣度准则度量模型的响应是否令人感兴趣,即,由神经网络110生成的给定候选输出序列是否对生成对应上下文序列102的人是有趣的。例如,对“How do I throw a ball?(我如何投掷球)?”的响应可以是“You can throw a ball by first picking it up and thenthrowing it.(你可以通过首先拿起球并然后投掷球来投掷球)”。替代地,另一种更令人感兴趣的答案可能是“One way to toss a ball is to hold it firmly in both handsand then swing your arm down and up again,extending your elbow and thenreleasing the ball upwards.(投掷球的一种方法是双手牢牢握住球,然后向下摆动手臂并再次向上摆动手臂,伸展肘部,然后向上释放球。)”虽然最初的回答是合理的,并且特定于该问题,但对于提出问题的人来说,它可能不会被认为是令人感兴趣的或信息丰富的。另一方面,替代响应提供了回答问题的附加信息,并且因此关于有趣度准则会比初始响应更高。
作为上述准则的替代或补充,能够包括其他准则。例如,其他准则能够包括适合度(suitability)准则,其度量给定输出序列适合于响应于请求而被提供的程度。
系统100使用准则评估系统130来为集合中的一个或多个准则中的每一个生成相应的评级分数140。给定准则的评级分数140度量由自回归语言模型神经网络110生成的候选输出序列120满足准则的程度。
大体上,准则评估系统130使用来自语言模型神经网络110的输出以计算高效但准确的方式生成评级分数140。
下面将参考图2-5描述用于利用神经网络110针对集合中的一个或多个准则生成评级分数140的示例技术。
也就是说,系统130利用神经网络110来提高评级分数140的准确性和生成评级分数140的计算效率两者,而不是仅使用单独训练的机器学习模型来生成评级分数140。
一旦生成评级分数140,系统100就能够响应于以各种方式中的任何方式的请求而使用评级分数140来确定是否提供候选输出序列120。
例如,在系统100生成多个候选输出序列的实施方式中,系统100能够为候选输出序列中的每个候选输出序列、针对集合中的一个或多个准则根据候选输出序列的相应评级分数140生成相应质量分数。例如,给定候选输出序列的质量分数能够是一个或多个准则的评级分数140的总和或加权和。
系统100然后能够选择具有最高相应质量分数的候选输出序列120作为要响应于请求而被提供的序列。
作为另一示例,系统100能够针对准则的至少子集维持相应的阈值。在该示例中,对于子集中的每个准则,系统100能够针对给定候选输出序列120确定集合中的准则的给定候选输出序列的相应质量分数是否满足(例如,超过)该准则的阈值,并且然后当给定候选输出序列的针对集合中的第一输出准则的相应质量分数不满足阈值时(即使给定候选输出序列以其他方式将具有最高质量分数)确定不响应于请求提供给定候选输出序列。
除了或代替使用系统130来确定如何响应请求,系统100还能够使用系统130对特定于任务的微调数据进行过滤而后经过滤的数据被用于微调该模型以在特定任务上良好运作。
具体地,系统100能够获得特定于任务的微调数据,该特定于任务的微调数据包括训练输出序列集合以及可选地包括每个训练输出序列的对应上下文序列。然后,系统130能够生成训练输出序列中的每个训练输出序列的评级分数,并且然后使用评级分数将一个或多个训练输出序列从微调数据中过滤出去。例如,系统130能够确定过滤掉具有低于阈值的质量分数的任何训练输出序列。作为另一示例,系统130能够确定过滤掉针对准则的指命(designated)子集中的每个准则具有低于另一阈值的评级分数的任何训练输出序列。通过过滤掉这些训练输出序列,系统提高了微调数据中的输出序列的整体质量,因此,在微调之后,由语言模型神经网络110生成的输出序列的质量能够被显著增加。
图2是准则评估系统130的一个示例的图。
在图2的示例中,准则评估系统130包括一个或多个准则中的每个准则的相应准则引擎220A-N。
每个准则引擎220A-N接收候选输出序列120并生成对应准则的评级分数140。评级分数140表示由自回归语言模型神经网络110生成的候选输出序列120满足准则的程度。
为了生成评级分数140,每个准则引擎220A-N接收候选输出序列120并且基于候选输出序列120和来自指定该准则的词表的一个或多个词元的预定序列—即,向自回归神经网络110标识哪个准则正在被评估的词元序列—来生成输入序列230。更具体地,在使用神经网络110来评估一个或多个准则之前,系统接收每个准则的相应词元序列作为输入。例如,词元序列能够是对应准则的自然语言名称或其他标识符,例如,词“specificity(特定性)”能够表示特定性准则,而词“interestingness(有趣度)”能够表示有趣度准则。
具体地,对于给定准则的输入序列230包括候选输出序列120,随后是指定输出序列准则的一个或多个词元。当系统100还接收上下文序列102时,输入序列230还能够包括上下文序列。
作为特定示例,输入序列230能够是以下形式:
<context><sentinel><response><attribute-name>、其中“context”表示上下文序列102,“sentinel”表示向神经网络110指示应当生成对上下文序列102的响应的预定词元序列,“response”是候选输出序列120,并且“attribute-name”是指定该准则的词元。
系统130然后使用神经网络110处理输入序列230以生成词表中的每个词元的相应分数。由于神经网络110已经处理上下文序列102以生成候选输出序列120,因此该处理(也称为“评估判别器”)简单地涉及处理在候选输出序列120之后附加的一个或多个附加词元“<attribute-name>”,同时重用在候选输出序列120的生成期间生成的隐藏状态。这与使用用于评估准则的不同神经网络形成对照并且在计算上显著更高效,即,因为不同的神经网络将需要处理上下文102和候选输出序列120中的所有词元,以便对候选输出序列102进行准确地评分。
因此,每个引擎220A-N生成不同的输入序列230,并且使用神经网络110来生成词元词表上的对应分数分布。
然后,每个引擎220A-N根据在词元词表的对应真子集中的词元的相应分数来确定评级分数140。
也就是说,每个准则具有词表中的一个或多个词元的对应真子集。
当每个评级分数具有相同的范围时,对应真子集能够是相同的。
当不同的评级分数具有不同的范围时,对应真子集能够不同。例如,当评级分数范围从0到1时,引擎220A-N能够使用词元“1”的分数作为评级分数140。更一般地,引擎220A-N系统能够将评级分数140计算为等于评级分数的每个可能的真实值(ground truth)的加权和,其中每个真实值的权重是表示词表中的真实值的词元的分数。
因此,如图2所示,系统130以计算有效的方式使用神经网络110为一个或多个准则生成评级分数140,即,因为生成评级分数140每准则仅要求神经网络110处理若干附加词元。
在使用神经网络110来生成评级分数之前并且在神经网络110被预训练之后,系统130或另一训练系统微调神经网络110,以便使神经网络110准确地生成评级分数,即,通过在训练数据集中的训练样例(training example)的多批次上重复地执行训练步骤来进行微调。
每个训练样例包括训练输入序列,该训练输入序列包括(i)训练输出序列,随后是(ii)指定来自准则集合的特定准则的一个或多个词元。每个训练样例还包括对应的输出序列准则的真实值评级分数,其表示训练输出序列满足特定输出序列准则的程度。能够获得真实值评级分数,例如其是用户手动标记输出序列的结果或是另一自动标记系统的输出。
为了执行训练步骤,系统(即,系统130或另一训练系统)获得一个或多个训练样例的批次。例如,系统能够从用于微调训练过程的较大训练样例集合对批次进行采样。
对于批次中的每个训练样例,系统使用自回归语言模型神经网络来处理训练样例中的训练输入序列,以生成词表中的每个词元的相应分数。
然后,系统训练自回归语言模型神经网络以最小化损失函数,该损失函数针对批次中的每个训练样例度量(i)针对该训练样例生成的词表中的词元的相应分数与(ii)会产生训练样例的真实值评级分数的词表中的词元的分数的真实值集合之间的误差。例如,损失函数能够是负对数似然损失或交叉熵损失。
特别地,系统能够例如通过反向传播来计算损失函数相对于神经网络110的参数的梯度。然后,系统能够通过将优化器应用于计算出的梯度来更新神经网络110的参数以生成更新,并且然后将更新与参数的当前值相加或从参数的当前值中减去更新。
系统能够以计算高效的方式执行该微调,因为损失仅被应用于由损失函数度量的误差,即,仅针对预测的评级分数,而不针对训练输入序列中的任何更早前位置处的任何预测应用损失。
如上所述,在已经执行微调之后,系统130或另一训练系统还能够使用引擎210A-N来生成用于进一步微调神经网络110的经过滤的训练数据集。
图3是用于评估候选输出序列的示例过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的神经网络系统(例如,图1中描绘的神经网络系统100)能够执行过程300。
系统接收对输出序列的请求(步骤302)。在一些实施方式中,请求包括上下文序列,并且该请求是针对对上下文序列的响应。
系统使用自回归语言模型神经网络生成包括多个词元的第一候选输出序列,多个词元中的每个词元选自词元的词表(步骤304)。如上所述,在一些实施方式中,系统使用神经网络生成多个候选输出序列,即,除了第一候选输出序列之外还生成一个或多个附加候选输出序列。
针对一个或多个输出序列准则的集合中的每个输出序列准则,系统使用自回归语言模型神经网络处理输入序列以针对词表中的每个词元生成相应分数,该输入序列包括(i)第一候选输出序列,随后是(ii)一个或多个词元,该一个或多个词元指定输出序列准则(步骤306)。当请求还指定条件作用(conditioning)序列时,输入序列还包括条件作用序列。
对于每个输出序列准则,系统根据词元的词表的对应真子集中的词元的相应分数确定第一候选输出序列的相应评级分数,该评级分数表示由自回归语言模型神经网络生成的第一候选输出序列满足该输出序列准则的程度(步骤308)。
可以并行地生成分数,例如通过使用自回归语言模型神经网络的多个副本处理多个输入序列,多个输入序列中的每个输入序列包括(i)第一候选输出序列,随后是(ii)一个或多个词元,该一个或多个词元指定该分数的相应的输出序列准则。这种并行化可以允许更快速地确定评级分数,从而允许更快速地提供基于候选输出序列的输出。
当已经生成附加候选输出序列时,系统还执行步骤306和308以生成每个附加候选输出序列的相应评级分数。
然后,系统使用针对一个或多个输出序列准则的第一候选输出序列的相应评级分数确定是否响应于请求而提供第一候选输出序列(步骤310)。例如,系统能够如上所述参考图1进行该确定。
图4是准则评估系统130的另一示例的图。
在图4的示例中,准则评估系统130包括分类器460,分类器460为一个或多个准则中的每个准则生成相应的评级分数140。
具体地,如图2所示,语言模型神经网络110包括第一子网络430和输出子网络450。
第一子网络430被配置为处理包括多个输入词元的输入序列,以针对每个输入词元生成相应的隐藏状态440。
输出子网络450被配置为处理紧接在特定位置之前的位置处的输入词元的相应隐藏状态,以针对词元的词表中的每个词元生成相应的分数,并且使用相应的分数来选择词表中的词元之一作为第一候选输出序列中的特定位置处的词元。
例如,如上所述,神经网络110能够是基于Transformer的神经网络,其包括各自应用自注意力机制的多个注意力块。更具体地,在该示例中,基于Transformer的神经网络包括注意力块的序列,并且在给定输入序列的处理期间,序列中的每个注意力块接收给定输入序列中的每个输入词元的相应输入隐藏状态,并且至少部分地通过应用自注意力来更新每个隐藏状态以生成每个输入词元的相应输出隐藏状态。第一注意力块的输入隐藏状态是输入词元的嵌入,并且每个后续注意力块的输入隐藏状态是由前一个注意力块生成的输出隐藏状态。
在该示例中,注意力块是第一子网络410的一部分,并且隐藏状态440是由序列中的最后一个注意力块生成的输出隐藏状态。
输出子网络450能够包括例如一个或多个全连接层,其处理输入序列中的最后的输入词元的隐藏状态440,以针对词元的词表中的每个词元生成相应的分数。作为特定示例,输出子网络450能够包括一个或多个线性神经网络层,随后是softmax输出层。
在图4的示例中,为了生成评级分数140,系统130使用第一子网络430处理输入序列420,以针对输入序列420中的每个输入生成相应隐藏状态440。
具体地,输入序列420包括多个输入词元,其包括候选输出序列120中的所有位置处的所有词元。也就是说,输入序列420包括整个候选输出序列120。当系统100还接收上下文序列102时,输入词元还包括来自上下文序列102的词元。
例如,输入序列420能够是以下形式:
<context><sentinel><response>、
其中“context”表示上下文序列102,“sentinel”表示向神经网络110指示应当生成对上下文序列102的响应的预定词元序列,并且“response”是候选输出序列120。
对于生成可变长度输出序列的许多自回归神经网络110,当在给定时间步选择预定的序列结尾词元时,给定输出序列被终止。即,一旦选择了序列结尾词元,系统100就确定输出序列为在生成输出序列期间在给定时间步之前的各时间步的词元。在这些实施方式中,系统130不需要执行任何附加处理以便为输入序列410生成隐藏状态,即,因为输入序列410已经被处理以便选择结束候选输出序列120的生成的序列结尾词元。
系统130然后使用分类器460处理隐藏状态440中的一个或多个,以针对一个或多个准则中的每个准则生成相应的评级分数140。例如,由分类器460处理的一个或多个隐藏状态440能够是由第一子网络针对第一候选输出序列中的最后位置处的词元生成的相应隐藏状态。作为另一示例,由分类器460处理的一个或多个隐藏状态440能够是由第一子网络430针对输入词元中的指命位置处的指命输入词元(例如,输入序列中的第一输入词元)生成的相应隐藏状态。作为又一示例,一个或多个隐藏状态440能够包括所有隐藏状态440,并且分类器460能够被配置为对隐藏状态440取平均。
分类器460是神经网络,其包括一个或多个分类器层,并且被配置为使用一个或多个分类器层来处理一个或多个隐藏状态,以针对一个或多个准则中的每个准则生成相应的评级分数140。例如,分类器层能够包括一个或多个全连接层,其中最后一层具有对应于每个准则的相应节点,例如逻辑回归或sigmoid节点,其中每个节点被配置为针对对应准则生成相应评级分数140。
因此,在图4的示例中,系统130能够通过使用小的、计算上高效的分类器460处理隐藏状态(其已经作为生成候选输出序列的一部分而生成)来生成所有准则的分数。
在使用分类器460来生成评级分数之前并且在神经网络110被预训练之后,系统130或另一训练系统训练分类器460以便使分类器460准确地生成评级分数,即,通过在训练数据集中的训练样例的多批次上重复地执行训练步骤来进行训练。
为了执行训练步骤,系统(即,系统130或另一训练系统)获得一个或多个训练样例的批次。例如,系统130能够从用于微调训练过程的较大训练样例集合对该批次进行采样。
对于该批次中的每个训练样例,系统通过使用一个或多个分类器层处理包括多个输入词元的输入来处理由第一子网络生成的相应隐藏状态中的一个或多个以针对每个输出序列准则生成相应的评级分数,该多个输入词元包括训练样例中的训练输出序列中的所有位置处的所有词元。
然后,系统训练一个或多个分类器层以最小化损失函数,损失函数针对批次中的每个训练样例度量(i)针对训练样例生成的相应评级分数与(ii)训练样例的相应真实值评级分数之间的误差。
特别地,系统能够计算损失函数相对于分类器层的参数的梯度。然后,系统能够通过将优化器应用于计算的梯度来更新分类器层的参数以生成更新,然后将更新与参数的当前值相加或从参数的当前值中减去更新。
系统能够以计算上高效的方式执行该训练,因为分类器460具有相对少的参数,即相对于神经网络110,并且系统在分类器460的训练期间保持输入子网络冻结。
如上所述,在已经执行分类器460的训练之后,系统130或另一训练系统还能够使用分类器460来生成用于进一步微调神经网络110的经过滤的训练数据集。
图5是用于评估候选输出序列的另一示例过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的神经网络系统(例如,图1中描绘的神经网络系统100)能够执行过程500。
系统接收对输出序列的请求(步骤502)。在一些实施方式中,请求包括上下文序列,并且请求是针对对上下文序列的响应。
系统使用自回归语言模型神经网络生成包括多个词元的第一候选输出序列,多个词元中的每个词元选自词元词表(步骤504)。
如上所述,语言模型神经网络包括第一子网络和输出子网络。
第一子网络被配置为:在候选输出序列中的多个位置中的每个特定位置处,处理包括多个输入词元的输入,以针对该输入词元中的每个输入词元生成相应的隐藏状态,该输入词元包括候选输出序列中的该特定位置之前的每个位置处的词元,并且可选地包括上下文序列中的词元。
输出子网络被配置为:在多个位置中的每个特定位置处,处理紧接在该特定位置之前的位置处的输入词元的相应的隐藏状态,以针对词元的词表中的每个词元生成相应的分数;以及使用相应的分数选择词表中的词元之一作为第一候选输出序列中的特定位置处的词元。
如上所述,在一些实施方式中,系统使用神经网络生成多个候选输出序列,即,除了第一候选输出序列之外还生成一个或多个附加候选输出序列。
系统通过使用一个或多个分类器层处理包括第一候选输出序列中的所有位置处的所有词元的输入来处理由第一子网络生成的相应的隐藏状态中的一个或多个,以针对一个或多个准则集合中的每个准则生成相应的评级分数(步骤506)。
当已经生成附加候选输出序列时,系统还执行步骤506以针对附加候选输出序列中的每一个生成相应的评级分数。
然后,系统使用针对一个或多个输出序列准则的第一候选输出序列的相应评级分数来确定是否响应于请求而提供第一候选输出序列(步骤508)。例如,系统能够如上所述参考图1进行该确定。
本说明书中使用的“嵌入(embedding)”是具有预定维度(例如,具有预定数量的值)的数值(例如浮点或其他类型的数值)的向量。
如上所述,自注意力块是包括注意力机制的神经网络层,注意力机制在自注意力块输入(或从层输入导出的输入)上操作以生成自注意力块输出。自注意力机制可以被有原因地掩码,使得输入序列中的任何给定位置不会对于在输入序列中的该给定位置之后的任何位置进行注意(例如,使用来自其的数据)。存在许多不同的可能的注意力机制。包括注意力机制的自注意力层的一些示例在以下中描述:Vaswani等人的“Attention is all youneed(注意力就是你需要的)”,31st Conference on Neural Information ProcessingSystems(NIPS2017),Long Beach,CA,USA;Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter JLiu.Exploring the limits of transfer learning with a unified text-to-texttransformer(利用统一的文本到文本transformer来探索转移学习的限制).arXivpreprint arXiv:1910.10683,2019;Daniel Adifingana、Minh-Thang Luong、David R.So、Jamie Hall、Noah Fiedel、Romal Thoppilan、Zi Yang、Apoorv Kulshreshtha、GauravNemada、Yifeng Lu和Quoc V.Le.Towards a human-like open-domain chatbot(迈向类人开放域聊天机器人).CoRR,abs/2001.09977,2020;和Tom B Brown,Benjamin Mann,NickRyder,Melanie Subbiah,Jared Kaplan,Prafula Dhariwal,Arvind Neelakantan,PranavShyam,Girish Sastry,Amand Askell等.Language models are few-shot learners(语言模型是少试学习者).arXivpreprint arXiv:2005.14165,2020。
大体上,注意力机制将查询和键值对的集合映射到输出,其中查询、键和值都是向量。输出被计算为值的加权和,其中指派给每个值的权重是由具有对应键的查询的兼容性函数(例如点积或缩放点积)计算的。
大体上,自注意力机制被配置为使同一序列中的不同位置相关以确定序列的变换版本作为输出。例如,注意力层输入可以包括输入序列的每个元素的向量。这些向量向自注意力机制提供输入,并且被自注意力机制用于确定注意力层输出的相同序列的新表示,其类似地包括输入序列的每个元素的向量。自注意力机制的输出可以被用作注意力层输出,或者可以由前馈层、跳跃连接或规范化操作中的一个或多个来处理以提供注意力层输出。
在一些实施方式中,注意力机制被配置为将查询变换——其例如由矩阵WQ定义、键变换——其例如由矩阵WK定义、以及值变换——其例如由矩阵WV定义中的每一个应用于作为向注意力层的输入数据X的注意力层输入,以导出包括针对输入序列中的每个向量的相应查询的查询矩阵Q=XWQ、包括针对输入序列中的每个向量的相应键的键矩阵XK=XWK以及包括输入序列中的每个向量的相应值的值矩阵V=XWV,其被用于确定针对输出的有注意力序列。例如,注意力机制可以是通过以下操作来应用的点积注意力机制:将每个查询向量应用于每个键向量以确定每个值向量的相应权重、然后使用相应权重来组合值向量以确定输入序列的每个元素的自注意力层输出。自注意力层输出可以通过缩放因子(例如,通过查询和键的维度的平方根)来缩放,以实现缩放的点积注意力。因此,例如,注意力机制的输出可以被确定为其中d是键(和值)向量的维度。在另一实施方式中,注意力机制包括“加性注意力”机制,其使用具有隐藏层的前馈网络来计算兼容性函数。注意力机制的输出可以由一个或多个全连接的前馈神经网络层进一步处理。
注意力机制可以实现多头注意力,即,可以并行地应用多个不同的注意力机制。然后可以将这些的输出组合(例如,级联),其中所学习的线性变换被应用以在必要时减小到原始维度。
本说明书使用与系统和计算机程序组件有关的术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。用于被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括指令,该指令在由数据处理装置执行时使装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例能够被实现在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中或在它们中的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,例如,被编码在有形非暂时性存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机存取存储器设备或它们中的一个或多个的组合。替代地或附加地,程序指令能够被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该传播信号被生成为对信息进行编码以用于传输到合适的接收器设备以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置还能够是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置能够可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
还可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序能够以任何形式的编程语言编写,包括编译或解释语言、或声明性或过程语言;并且其能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境中的其他单元。程序可以但不必对应于文件系统中的文件。程序能够被存储在文件的一部分中,该文件保存其他程序或数据,例如,存储在标记语言文档中的一个或多个脚本、专用于所讨论的程序的单个文件中、或存储在多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并且通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广义地用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广义地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在同一计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机来执行。过程和逻辑流程也能够由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储装置接收数据或将数据传送到一个或多个大容量存储装置或两者,一个或多个大容量存储装置用于存储数据,例如磁性、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置,例如通用串行总线(USB)快闪驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,以及用户能够通过其向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其他类型的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档和从该设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且从用户返回响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括例如专用硬件加速器单元,其用于处理机器学习训练或生产的公共和计算密集型部分,例如推理、工作负载。
机器学习模型能够使用机器学习框架(例如,TensorFlow框架)来实现和部署。
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有图形用户界面的客户端计算机、网络浏览器或用户可以通过其与本说明书中描述的主题的实施方式交互的应用,或者一个或多个这种后端组件、中间件组件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器例如出于向与充当客户端的设备交互的用户显示数据和从用户接收用户输入的目的,向用户设备传输数据,例如HTML页面。能够在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些细节不应被解释为对任何发明的范围或所要求保护的范围的限制,而是应当被解释为特定于具体发明的具体实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征能够从组合中被去除,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,虽然在附图中示出并在权利要求书中以特定顺序描述了操作,但是这不应当被理解为要求以所示的特定顺序或以顺序的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中要求这种分离,并且应当理解,所描述的程序组件和系统通常能够在单个软件产品中集成在一起或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求书的范围内。例如,权利要求书中记载的动作能够以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定顺序或顺序次序以实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (23)
1.一种由一个或多个计算机执行的方法,所述方法包括:
接收对输出序列的请求;
使用自回归语言模型神经网络生成第一候选输出序列,其中所述第一候选输出序列包括多个词元,所述多个词元中的每一个是从词元的词表中选择的;
针对一个或多个输出序列准则的集合中的每个输出序列准则:
使用所述自回归语言模型神经网络处理包括以下的输入序列以针对所述词表中的每个词元生成相应的分数:(i)所述第一候选输出序列,随后是(ii)一个或多个词元,所述一个或多个词元指定该输出序列准则;
根据词元的所述词表的对应的真子集中的词元的相应的分数来确定所述第一候选输出序列的相应的评级分数,所述相应的评级分数表示由所述自回归语言模型神经网络生成的所述第一候选输出序列满足所述输出序列准则的程度;以及
使用所述第一候选输出序列的针对所述一个或多个输出序列准则的相应的评级分数,响应于所述请求而提供所述第一候选输出序列。
2.根据权利要求1所述的方法,其中,所述请求是针对在上下文序列之后的输出序列,其中,生成所述第一候选输出文本序列包括:使所述自回归语言模型神经网络以包括所述上下文序列的输入为条件,并且其中,包括(i)所述第一候选输出序列随后是(ii)指定所述输出序列准则的一个或多个词元的所述输入序列还包括所述上下文序列。
3.根据权利要求1或权利要求2所述的方法,还包括:
使用所述自回归语言模型神经网络生成一个或多个附加候选输出序列;
针对每个附加候选输出序列:
针对一个或多个输出序列准则的所述集合中的每个输出序列准则:
使用所述自回归语言模型神经网络处理包括以下的输入序列以生成所述词表中的每个词元的相应分数:(i)该附加候选输出序列,随后是(ii)所述一个或多个词元,所述一个或多个词元指定该输出序列准则;
根据词元的所述词表的对应的子集中的词元的相应的分数来确定相应的评级分数,所述相应的评级分数表示由所述自回归语言模型神经网络生成的该附加候选输出序列满足该输出序列准则的程度;以及
其中,使用针对所述一个或多个输出序列准则的相应的评级分数响应于所述请求而提供所述第一候选输出序列包括:
使用所述第一候选输出序列和所述一个或多个附加候选输出序列的相应的评级得分,从所述第一候选输出序列和所述一个或多个附加候选输出序列中选择要响应于所述请求而被提供的序列。
4.根据权利要求3所述的方法,其中,使用所述第一候选输出序列和所述一个或多个附加候选输出序列的相应的评级得分从所述第一候选输出序列和所述一个或多个附加候选输出序列中选择要响应于所述请求而被提供的序列包括:
针对所述候选输出序列中的每个候选输出序列,根据该候选输出序列的、针对所述集合中的输出序列准则中的一个或多个输出序列准则中的每一个的相应的评级分数来生成相应的质量分数;以及
选择具有最高的相应质量分数的候选输出序列作为响应于所述请求而要被提供的所述序列。
5.根据任一前述权利要求所述的方法,其中,使用所述一个或多个输出序列准则的相应的评级分数响应于所述请求而提供所述第一候选输出序列包括:
确定所述第一候选输出序列的针对所述集合中的第一输出准则的相应的质量分数是否满足阈值;以及
当所述第一候选输出序列的针对所述集合中的所述第一输出准则的相应的质量分数不满足所述阈值时,确定不响应于所述请求提供所述第一候选输出序列。
6.一种训练根据任一前述权利要求所述的自回归语言模型神经网络的方法,所述方法包括:
获得一个或多个训练样例的批次,每个训练样例包括:
训练输入序列,所述训练输入序列包括:(i)训练输出序列,随后是(ii)一个或多个词元,所述一个或多个词元指定输出序列准则的所述集合中的特定输出序列准则,以及
对应的输出序列准则的真实值评级分数,所述真实值评级分数表示所述训练输出序列满足所述特定输出序列准则的程度;
针对所述批次中的每个训练样例:
使用所述自回归语言模型神经网络处理该训练样例中的训练输入序列,以针对所述词表中的每个词元生成相应的分数;以及
训练所述自回归语言模型神经网络以最小化损失函数,所述损失函数针对所述批次中的每个训练样例度量(i)该针对该训练样例生成的所述词表中的词元的相应的分数与(ii)会产生该训练样例的真实值评级分数的所述词表中的词元的分数的真实值集合之间的误差。
7.根据权利要求6所述的方法,其中,训练所述自回归语言模型神经网络以最小化损失函数包括:
仅将损失应用于所述误差,而不将损失应用于所述训练输入序列中的任何更早前的位置。
8.根据权利要求6或权利要求7所述的方法,还包括:在训练所述自回归语言模型神经网络以最小化损失函数之前,在语言建模任务上训练所述自回归语言模型神经网络,所述语言建模任务要求在给定词元的序列中的先前词元的情况下预测词元的所述序列中的下一词元。
9.一种由一个或多个计算机执行的方法,所述方法包括:
接收对输出序列的请求;
使用自回归语言模型神经网络生成第一候选输出序列,其中所述第一候选输出序列包括多个位置中的每个位置处的相应的词元,并且其中所述语言模型神经网络包括:
第一子网络,所述第一子网络被配置为在所述多个位置中的每个特定位置处:
处理包括多个输入词元的输入以生成所述输入词元中的每个输入词元的相应的隐藏状态,所述输入词元包括在所述第一候选输出序列中的该特定位置之前的每个位置处的词元;以及
输出子网络,所述输出子网络被配置为在所述多个位置中的每个特定位置处:
处理紧接在该特定位置之前的位置处的输入词元的相应的隐藏状态,以针对词元的词表中的每个词元生成相应的分数;并且
使用相应的分数选择所述词表中的词元中的一个词元作为所述第一候选输出序列中的该特定位置处的词元;
使用一个或多个分类器层处理相应的隐藏状态中的一个或多个隐藏状态以针对一个或多个输出序列准则的集合中的每个输出序列准则生成相应的评级分数,所述相应的隐藏状态是由所述第一子网络通过处理包括多个输入词元的输入来生成的,所述多个输入词元包括所述第一候选输出序列中的所有位置处的所有词元,所述相应的评级分数表示由所述自回归语言模型神经网络生成的所述第一候选输出序列满足该输出序列准则的程度;以及
使用所述第一候选输出序列的针对所述一个或多个输出序列准则的相应的评级分数,响应于所述请求而提供所述第一候选输出序列。
10.根据权利要求9所述的方法,其中,所述请求是针对在上下文序列之后的输出序列,其中,生成所述第一候选输出文本序列包括:使所述自回归语言模型神经网络以包括所述上下文序列的输入为条件,并且其中,针对每个特定位置,所述输入词元还包括来自所述上下文序列的词元。
11.根据权利要求9或权利要求10所述的方法,还包括:
使用所述自回归语言模型神经网络生成一个或多个附加候选输出序列;
针对每个附加候选输出序列,针对一个或多个输出序列准则的所述集合中的每个输出序列准则生成相应的评级分数,所述相应的评级分数表示由所述自回归语言模型神经网络生成的该附加候选输出序列满足该输出序列准则的程度;并且
其中,使用所述一个或多个输出序列准则的相应的评级分数响应于所述请求而提供所述第一候选输出序列包括:
使用所述第一候选输出序列和所述一个或多个附加候选输出序列的相应的评级分数从所述第一候选输出序列和所述一个或多个附加候选输出序列中选择要响应于所述请求而被提供的序列。
12.根据权利要求11所述的方法,其中,使用所述第一候选输出序列和所述一个或多个附加候选输出序列的相应的评级分数从所述第一候选输出序列和所述一个或多个附加候选输出序列中选择要响应于所述请求而被提供的序列包括:
针对所述候选输出序列中的每个候选输出序列,根据该候选输出序列的、针对所述集合中的输出序列准则中的一个或多个输出序列准则中的每一个的相应的评级分数来生成相应的质量分数;以及
选择具有最高的相应质量分数的候选输出序列作为响应于所述请求而要被提供的所述序列。
13.根据权利要求9-12中任一项所述的方法,其中,使用所述一个或多个输出序列准则的相应的评级分数响应于所述请求而提供所述第一候选输出序列包括:
确定所述第一候选输出序列的针对所述集合中的第一输出准则的相应的质量分数是否满足阈值;以及
当所述第一候选输出序列的针对所述集合中的所述第一输出准则的相应的质量分数不满足所述阈值时,确定不响应于所述请求提供所述第一候选输出序列。
14.根据权利要求9-13中任一项所述的方法,其中,处理由所述第一子网络通过处理包括多个输入词元的输入来生成的相应的隐藏状态中的一个或多个隐藏状态,所述多个输入词元包括所述第一候选输出序列中的所有位置处的所有词元,包括:
处理由所述第一子网络针对所述第一候选输出序列中的最后位置处的词元生成的相应的隐藏状态。
15.根据权利要求9-14中任一项所述的方法,其中,处理由所述第一子网络通过处理包括多个输入词元的输入来生成的相应的隐藏状态中的一个或多个隐藏状态,所述多个输入词元包括所述第一候选输出序列中的所有位置处的所有词元,包括:
处理由所述第一子网络针对所述输入词元中的指命位置处的指命输入词元生成的相应的隐藏状态。
16.根据权利要求9-15中任一项所述的方法,还包括在生成所述第一候选输出序列期间针对所述第一候选输出序列中的最后位置之前的一个或多个指定位置:
使用所述一个或多个分类器层处理由所述第一子网络在所述第一候选输出序列中的所述指定位置处生成的相应的隐藏状态中的一个或多个隐藏状态,以生成一个或多个输出序列准则的集合中的每个输出序列准则的相应的评级分数,所述相应的评级分数表示所述第一候选输出序列的、自所述指定位置起已经生成的一部分满足该输出序列准则的程度;
基于在所述指定位置处生成的所述集合中的输出序列准则的相应的评级分数,确定是(i)在所述指定位置之后继续生成所述第一候选输出序列,还是(ii)不响应于所述请求提供所述第一候选输出序列的任何部分。
17.一种训练根据权利要求9-16中任一项所述的自回归语言模型神经网络的方法,所述方法包括:
获得一个或多个训练样例的批次,每个训练样例包括:
训练输出序列,以及
所述输出序列准则中的一个或多个输出序列准则中的每一个的相应的真实值评级分数,所述相应的真实值评级分数表示所述训练输出序列满足特定输出序列准则的程度;
针对所述批次中的每个训练样例:
使用所述一个或多个分类器层处理相应的隐藏状态中的一个或多个隐藏状态以针对每个输出序列准则生成相应的评级分数,所述相应的隐藏状态是由所述第一子网络通过处理多个输入词元的输入来生成的,所述多个输入词元包括该训练样例中的训练输出序列中的所有位置处的所有词元;以及
训练所述一个或多个分类器层以最小化损失函数,所述损失函数针对所述批次中的每个训练样例度量(i)针对该训练样例生成的相应的评级分数与(ii)该训练样例的相应的真实值评级分数之间的误差。
18.根据权利要求17所述的方法,其中,训练所述一个或多个分类器层以最小化损失函数包括:
在训练所述一个或多个分类器层期间保持所述输入子网络被冻结。
19.根据权利要求17或权利要求18所述的方法,还包括:在训练所述一个或多个分类器层之前,在语言建模任务上训练所述自回归语言模型神经网络,所述语言建模任务要求在给定词元的序列中的先前词元的情况下预测词元的所述序列中的下一词元。
20.根据任一前述权利要求所述的方法,其中,所述输出序列是文本序列,并且词元的所述词表包括多个文本词元。
21.根据权利要求20所述的方法,在还从属于权利要求2或权利要求10的情况下,其中,所述上下文序列是文本序列。
22.一种系统,包括:
一个或多个计算机;以及
存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-21中任一项所述的相应的操作。
23.一个或多个存储指令的计算机可读存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-21中任一项所述的方法的相应的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163226748P | 2021-07-28 | 2021-07-28 | |
US63/226,748 | 2021-07-28 | ||
PCT/US2022/038742 WO2023009766A1 (en) | 2021-07-28 | 2022-07-28 | Evaluating output sequences using an auto-regressive language model neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117795527A true CN117795527A (zh) | 2024-03-29 |
Family
ID=85039180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280052514.4A Pending CN117795527A (zh) | 2021-07-28 | 2022-07-28 | 使用自回归语言模型神经网络评估输出序列 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230029590A1 (zh) |
KR (1) | KR20240034804A (zh) |
CN (1) | CN117795527A (zh) |
GB (1) | GB2622755A (zh) |
WO (1) | WO2023009766A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117178274A (zh) * | 2021-05-21 | 2023-12-05 | 谷歌有限责任公司 | 生成中间文本分析以服务于上下文文本生成的机器学习语言模型 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521672B2 (en) * | 2010-11-22 | 2013-08-27 | Microsoft Corporation | Dependency-based query expansion alteration candidate scoring |
DE202017106532U1 (de) * | 2016-10-28 | 2018-02-05 | Google Llc | Suche nach einer neuronalen Architektur |
WO2018204706A2 (en) * | 2017-05-03 | 2018-11-08 | Google Llc | Recurrent neural networks for online sequence generation |
CN109726811A (zh) * | 2017-10-27 | 2019-05-07 | 谷歌有限责任公司 | 使用优先级队列训练神经网络 |
US11386900B2 (en) * | 2018-05-18 | 2022-07-12 | Deepmind Technologies Limited | Visual speech recognition by phoneme prediction |
CN111727442A (zh) * | 2018-05-23 | 2020-09-29 | 谷歌有限责任公司 | 使用质量分数来训练序列生成神经网络 |
US10831990B1 (en) * | 2019-05-09 | 2020-11-10 | International Business Machines Corporation | Debiasing textual data while preserving information |
KR20210059367A (ko) * | 2019-11-15 | 2021-05-25 | 삼성전자주식회사 | 음성 입력 처리 방법 및 이를 지원하는 전자 장치 |
US11487522B1 (en) * | 2020-06-26 | 2022-11-01 | X Development Llc | Training and/or using neural network model to generate target source code from lower-level representation |
US20220138559A1 (en) * | 2020-11-05 | 2022-05-05 | International Business Machines Corporation | Answer span correction |
-
2022
- 2022-07-28 GB GB2400855.9A patent/GB2622755A/en active Pending
- 2022-07-28 US US17/876,451 patent/US20230029590A1/en active Pending
- 2022-07-28 KR KR1020247004967A patent/KR20240034804A/ko unknown
- 2022-07-28 WO PCT/US2022/038742 patent/WO2023009766A1/en active Application Filing
- 2022-07-28 CN CN202280052514.4A patent/CN117795527A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230029590A1 (en) | 2023-02-02 |
GB2622755A (en) | 2024-03-27 |
WO2023009766A1 (en) | 2023-02-02 |
KR20240034804A (ko) | 2024-03-14 |
GB202400855D0 (en) | 2024-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3711000B1 (en) | Regularized neural network architecture search | |
US11544573B2 (en) | Projection neural networks | |
US11544536B2 (en) | Hybrid neural architecture search | |
CN110520871B (zh) | 使用学习进度测量训练机器学习模型 | |
KR102170199B1 (ko) | 비교 세트를 사용한 입력 예시들 분류 | |
US20240127058A1 (en) | Training neural networks using priority queues | |
WO2019157251A1 (en) | Neural network compression | |
US20220092416A1 (en) | Neural architecture search through a graph search space | |
CN110402445B (zh) | 使用递归神经网络浏览序列数据的方法和系统 | |
US20230049747A1 (en) | Training machine learning models using teacher annealing | |
CN109313540B (zh) | 口语对话系统的两阶段训练 | |
WO2018211143A1 (en) | Neural network system | |
EP3602419A1 (en) | Neural network optimizer search | |
CN111989696A (zh) | 具有顺序学习任务的域中的可扩展持续学习的神经网络 | |
CN110235149B (zh) | 神经情节控制 | |
US20230107409A1 (en) | Ensembling mixture-of-experts neural networks | |
US20220383119A1 (en) | Granular neural network architecture search over low-level primitives | |
Xue et al. | Hypro: A hybridly normalized probabilistic model for long-horizon prediction of event sequences | |
CN117795527A (zh) | 使用自回归语言模型神经网络评估输出序列 | |
WO2021159099A9 (en) | Searching for normalization-activation layer architectures | |
IE20180149A1 (en) | Projection neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |