自然语言处理模型的提早退出的制作方法

文档序号:22967356发布日期:2020-11-19 21:41阅读:132来源:国知局
自然语言处理模型的提早退出的制作方法

本公开涉及人工智能领域,更具体地,涉及自然语言处理模型的提早退出。



背景技术:

计算设备渐增地用于处理“自然语言”或人类语言。然而,许多自然语言处理任务的计算要求由于自然语言的词汇表(vocabulary)的大小而尤为显著。



技术实现要素:

根据本公开的实施例,提供了一种装置,包括:处理器;和存储器,所述存储器存储指令和自然语言处理(nlp)推断模型,所述指令当由所述处理器执行时使得所述处理器执行以下操作:经由所述nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果生成输出,并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

根据本公开的实施例,提供了一种非暂态计算机可读存储介质,包括指令,所述指令当由处理器执行时使得所述处理器执行以下操作:经由nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果生成输出,并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

根据本公开的实施例,提供了一种由计算机实现的方法,包括:经由nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果生成输出,并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

附图说明

图1示出了计算设备。

图2示出了nlp模型。

图3示出了逻辑流程。

图4示出了nlp模型。

图5示出了逻辑流程。

图6示出了nlp模型。

图7示出了存储介质。

图8示出了计算系统。

具体实施方式

本文所公开的实施方式提供了自然语言处理(nlp)的提早退出机制。即,本公开提供了被布置成执行nlp模型的系统,其中nlp模型的执行可在完成和输出生成之前停止。例如,本公开提供了被布置成执行nlp模型的计算设备。计算设备可布置成利用第一词汇表在执行期间(例如,在完成nlp模型的执行之前)从nlp模型生成输出。计算设备可被布置成基于所生成的输出而退出nlp模型的执行(例如,提早,即在完成之前)。另选地,计算设备可被布置成完成nlp模型的执行并且利用第二词汇表来生成输出,其中第二词汇表大于第一词汇表或包括第一词汇表。

本公开可利用由多个编码器构成的nlp模型来实现,这些编码器被布置成处理nlp任务。应当注意,这种类型的nlp模型是本公开可应用于的许多不同nlp模型中的一种。nlp模型还可包括第一分类器和第二分类器,该第一分类器被布置成利用第一词汇表生成输出,该第二分类器被布置成利用第二词汇表生成输出,其中第二词汇表大于第一词汇表。在一些情况下,第一词汇表可以是第二词汇表的子集。例如,第一词汇表可包括语言的“常用”或较频繁使用的记号(token)(例如,符号、字母、数字、词语等),而第二词汇表可包括这些常用记号以及该词汇表的其它记号。

伴随着对本文所用的标记和命名的通用参考,下述具体实施方式的一个或多个部分可按照在计算机或计算机网络上执行的程序过程来呈现。这些过程描述和表示被本领域的技术人员用于将他们工作的实质最有效地传达给本领域的其他技术人员。此处的过程通常被认为是产生期望结果的自洽操作序列。这些操作是需要对物理量的物理操纵的那些操作。通常,但非必然地,这些量采取能够进行存储、传输、组合、比较和以其它方式操纵的电、磁或光学信号的形式。主要出于通用目的,有时将这些信号称为比特、值、元素、符号、字符、项、数字等被证明是方便的。但是,应注意,这些术语和类似术语应与适当的物理量相关联,并且它们仅仅是应用于这些量的方便标签。

另外,这些操纵可以用通常与逻辑操作相关联的术语(例如,添加或比较)来提及。用于执行这些逻辑操作的可用机器可包括如通过计算机程序来选择性地激活或配置的通用数字计算机,该计算机程序是根据本文的教导写入的;和/或可包括出于所需目的而特别构造的装置。各种实施例还涉及用于执行这些操作的装置或系统。这些装置可出于所需目的而特别构造,或可包括通用计算机。多种这些机器的所需结构将根据所给出的描述而清晰。

现参考附图,其中类似的附图标号始终用于指代类似的元件。在下面的描述中,出于说明的目的,解释了许多具体细节以提供对本发明的全面理解。然而,显而易见的是,新颖的实施例可在没有这些具体细节的情况下付诸实践。在其它情况下,周知的结构和设备以框图形式示出以促进本发明的描述。其目的在于涵盖落入权利要求书的范围内的所有修改、等同物和替代。

图1示出了计算设备100。计算设备100表示任何数量和类型的设备,这些设备被布置成处理推断模型,尤其是自然语言处理(nlp)模型。计算设备100包括处理器110、存储器120和接口130。

处理器110可包括电路或处理器逻辑,例如各种市售处理器中的任一者。在一些示例中,处理器110可包括多个处理器、多线程处理器、多核处理器(无论多个核是共存于相同晶粒上还是分立晶粒上),和/或一些其它种类的多处理器架构(多个物理分立的处理器藉此以一些方式进行链接)。另外,在一些示例中,处理器110可包括图形处理部分,并且可包括专用存储器、多线程处理和/或一些其它并行处理能力。在一些实施例中,处理器110可以是专用集成电路(asic)或现场可编程集成电路(fpga)。在一些实施方式中,处理器110可以是被布置成执行与人工智能(ai)相关的计算的电路,有时称为加速器或ai加速器。

存储器120可包括逻辑,该逻辑的一部分包括集成电路的阵列,从而形成用以持久地存储数据的非易失性存储器或非易失性存储器和易失性存储器的组合。应当理解,存储器120可基于各种技术中的任何技术。特别地,存储器120所包括的集成电路的阵列可布置成形成一种或多种类型的存储器,例如,动态随机存取存储器(dram)、nand存储器、nor存储器,等等。

接口130可包括逻辑和/或特征以支持通信接口。例如,接口130可包括一个或多个接口,该一个或多个接口根据各种通信协议或标准进行操作以在直接或网络通信链路上进行通信。利用一种或多种工业标准(包括子代和变体)中所描述的通信协议或标准,可发生直接通信。例如,接口130可促进在总线上的通信,例如,外围组件快速互连(pcie)、非易失性存储器快速(nvme)、通用串行总线(usb)、系统管理总线(smbus)、sas(例如,串行附接小型计算机系统接口(scsi))接口、串行at附接(sata)接口,等等。在一些示例中,接口130可布置成支持无线通信协议或标准,例如,wi-fi、蓝牙、zigbee、lte、5g等。

存储器120存储指令122、自然语言处理器(npl)模型140、输入数据121、输出数据123、中间结果125、置信度127和阈值129。

nlp模型140布置成在词典(lexicon)a142和词典b144上进行操作。即,nlp模型140布置成针对词典a142和词典b144执行任何数量和种类的nlp操作(例如,翻译、语音识别、文本至语音、语音分段、总结、共指消解、语法归纳、光学字符识别、词语分段、断句、解析,等等)。利用许多实施方式,词典a142是词典b144的子集。即,词典b144的词汇表包括词典a142的词汇表。一般来讲,词典a142的词汇表对应于词典b144的词汇表中的“通常”或“频繁”使用的记号。这在下文将更详细地解释,例如,参考图4。

nlp模型140可以是各种机器学习模型中的任一者,例如,序列至序列模型、编码器解码器模型、转换器模型,等等。作为具体实施例,nlp模型140可以是转换器的双向编码器表示(bert)模型、语言模型的嵌入(elmo)模型、生成预训练(gpt)模型,等等。

一般来讲,处理器110可执行指令122以执行nlp模型140来从输入数据121生成输出数据123。换句话讲,处理器110可执行nlp模型140以基于输入数据121而生成输出数据123。此外,利用一些示例,处理器110可执行指令122以接收输入数据121(例如,经由接口130从远程计算设备或存储设备,等等)和提供输出数据123(例如,经由接口130提供至远程计算设备或存储设备)。

nlp模型140可具有多个层(例如,参考图2和图4)。例如,nlp模型140可具有多个编码器块层、转换器块层,等等。处理器110可执行nlp模型140以基于利用第一选择层(或nlp模型140的第一部分)和词典a142处理输入数据121来生成中间结果125。处理器110在执行指令122和/或nlp模型140时可确定与中间结果125相关的置信度127。换句话讲,置信度127可包括利用中间结果的准确度的对置信度水平的指示。在一些实施例中,置信度127作为生成中间结果的一部分由nlp模型140生成。一般来讲,nlp模型140被布置成从输入121推断出某事(例如,nlp任务)。置信度127在“置信度”中包括推断(例如,所生成输出)准确的指示。在一些示例中,置信度127可基于softmax(柔性最大值传递函数)预测(例如,利用softmax激活函数的神经网络,等等)。

处理器110在执行指令122时可基于置信度127和阈值129确定是否将中间结果125设定为输出123以及是否退出或停止处理nlp模型140。例如,处理器110在执行指令122时可将置信度127与阈值129相比较(例如,大于比较、大于或等于比较,等等)。处理器110在执行指令122时可基于比较而将中间结果125设定为输出数据123。例如,在置信度127大于、或大于等于阈值129的情况下,输出数据123可被设定为中间结果125。另外,处理器110在执行指令122时可基于比较而使得nlp模型140的处理停止(或退出)。例如,在置信度127大于、或大于等于阈值129的情况下,nlp模型140的处理可退出。

相反地,nlp模型140的处理可基于比较而继续。例如,在置信度127不大于或不大于等于阈值129的情况下,nlp模型140的处理可继续。即,处理器110在执行nlp模型140时可继续处理输入数据121,以能够部分地基于通过nlp模型140的其它层以及词典b144处理输入数据121来生成输出数据123。

图2示出了nlp模型200,nlp模型200可表示在图1的计算设备100上执行的nlp模型140。nlp模型200包括多个处理层210和分类器220。一般来讲,层210可包括被布置成在输入数据121上操作以提供nlp操作或任务的各种连接的神经层中的任一者(例如,编码器、解码器、转换器,等等)。

应当注意,nlp模型200可包括各种类型的层中的任意类型以及任意数量的层。然而,出于清楚的目的,该图示出了有限数量的层。如图所示,nlp模型200包括词典a处理层210-1(或初始处理层)和词典b处理层210-2(或后续处理层)。

分类器220可以是被布置成基于语言而生成输出的各种前馈神经层的任一者。此外,分类器220可生成与由分类器220所生成的输出相关联的置信度(例如,softmax,等等)。一般来讲,nlp模型200可包括针对nlp模型200被布置为在其上操作的每种词汇表(或语言)的分类器。继续进行上述示例,其中nlp模型140布置成利用词典a142和词典b144(其中词典a为词典b的子集)来计算nlp任务;nlp模型200将包括至少两个分类器220。如图所示,nlp模型200包括词典a分类器220-1和词典b分类器220-2。

应当注意,因为词典a142为词典b144的子集,所以词典a分类器220-1将小于词典b分类器220-2(例如,具有更少的维数或节点)。换句话讲,因为词典a142的词汇表的大小将小于词典b144的词汇表(由于词典a142是词典b144的子集),所以基于词典a142的分类器220自然将小于基于词典b144的分类器220。

图3示出了逻辑流程300。逻辑流程300可表示由本文所描述的一个或多个设备所执行的一些或所有操作。例如,逻辑流程300可表示由计算设备100所执行的操作。逻辑流程300参考图1的计算设备100以及图2的nlp模型200进行描述。然而,基于逻辑流程300的操作可通过不同于本文所描述计算设备的计算设备来实现。

逻辑流程300可在框310“基于利用nlp推断模型的(一个或多个)初始层处理输入数据而生成中间结果”处开始,其中中间结果可从通过nlp推断模型的初始层处理输入数据来生成。例如,中间结果125可通过经由nlp模型200的词典a处理层210-1处理输入数据121来生成。作为另一示例,计算设备100的处理器110可执行nlp模型(例如,nlp模型140、nlp模型200,等等),并且可从通过nlp模型的初始层(例如,(一个或多个)词典a处理层210-1,等等)和分类器(例如,词典a分类器220-1,等等)处理输入数据121来生成中间结果125。

继续进行至框320“生成与中间结果相关联的置信度”,与中间结果相关联的置信度可被生成。例如,词典a分类器220-1可生成与来自词典a处理层210-1和词典a分类器220-1的输出(例如,中间结果125,等等)相关联的置信度127。作为另一示例,计算设备100的处理器110可执行nlp模型200的词典a分类器220-1以确定中间结果125的置信度并且将所确定置信度的指示存储为置信度127。

继续进行至决策框330“将置信度与阈值相比较”,框320处所生成的置信度可与阈值相比较。例如,置信度127可与阈值129相比较(例如,大于,大于或等于,等等)。作为另一示例,计算设备100的处理器110可执行指令以将置信度127与阈值129相比较。利用一些实施方式,置信度127可表示为百分比。在此类情况下,阈值129也可表示为百分比并且可指示可接受水平,中间结果在该可接受水平下可设定为输出。例如,阈值129可以是80%、85%、90%、95%,等等。应当注意,阈值本身可部分地基于特定nlp任务和/或针对较简单任务、更具安全性意识的任务等具有“较高”阈值设定的应用。

逻辑流程300可从决策框330继续进行至框340或框350。例如,基于框330处的比较(例如,基于确定置信度大于阈值、大于或等于阈值等),逻辑流程300可从决策框330继续进行至框340。另选地,基于框330处的比较(例如,基于确定置信度不大于阈值、不大于或等于阈值等),逻辑流程300可从决策框330继续进行至框350。

在框340“将中间结果设定为输出数据”处,中间结果可被设定为输出数据。例如,中间结果125可设定为输出数据123。作为另一示例,处理器110在执行指令122时可将中间结果125设定为输出数据123。逻辑流程300可从框340继续进行至框360“退出nlp模型的处理”,其中处理nlp模型(或与之相关的计算操作)可停止。例如,nlp模型200本身的处理可退出,从而绕过(一个或多个)词典b处理层210-2的处理。作为另一示例,处理器110可退出nlp模型(例如,nlp模型140、nlp模型200,等等)的处理。

在框350“基于处理nlp推断模型的(一个或多个)后续层而生成输出数据”处,输出数据可通过处理nlp推断模型的后续层(例如,在框310处所处理的那些层之后的层,等等)和第二分类器来生成。例如,可通过继续通过nlp模型200的词典b处理层210-2和词典b分类器220-2处理输入数据121来生成输出数据123。作为另一示例,计算设备100的处理器110可继续执行nlp模型(例如,nlp模型140、nlp模型200,等等),并且可从继续通过nlp模型的后续层(例如,词典b处理层210-2,等等)和词典b分类器220-2处理输入数据121来生成输出数据123。逻辑流程300可从框350和框360结束。

图4示出了nlp模型400,nlp模型400可表示在图1的计算设备100上执行的nlp模型140。nlp模型400包括编码器堆栈410和多个分类器420。应当注意,本公开可以利用包括编码器/解码器堆栈、或转换器堆栈的nlp模型来实现。然而,出于方便的目的,nlp模型400被示出为仅包括编码器堆栈410。

编码器堆栈410包括多个编码器411,其中每个编码器被布置成接收输入数据121。在一些示例中,输入数据121可包括对多个记号(例如,词语、字母、数字、符号,等等)的指示,其中nlp模型400被布置针对这多个记号来处理nlp任务。另外,记号可对应于语言的词汇表(例如,词典b)。编码器堆栈410中的每个编码器411可包括自关注层和前馈神经网络层。在操作期间,编码器411可接收记号的输入矢量(或矩阵)并且处理记号以生成记号的输出矢量(或矩阵),该输出矢量由编码器堆栈410的链中的下一编码器411进行处理。

分类器420被布置成从编码器堆栈410中的编码器411接收输出并且基于语言或词汇表生成输出以及与该输出相关联的置信度。在此,置信度可表示输出的正确性的置信度。例如,分类器420可包括前馈神经网络,该前馈神经网络包括softmax层,该softmax层被布置成输出来自分类器的输出是正确的概率。在一些示例中,分类器420的softmax层包括针对每个可能的输出的节点,并且基于编码器的嵌入大小进行缩放。即,分类器420可包括具有大小(嵌入大小,词汇表大小)的神经网络节点的矩阵。因此,对于大词汇表,分类器的大小可能巨大。作为具体示例,常见nlp模型的一些嵌入大小为512嵌入,其中词汇表为33000。因此,分类器将具有[512,33000]的大小。在一些情况下,嵌入大小可以是2048,并且词汇表可以是150000。因此,分类器420将具有[2048,150000]的大小。可以理解,这种大小的分类器的计算要求可能巨大。

本公开提供了多个分类器,每种语言一个分类器。例如,利用上文所提供的词典a和词典b的实施例,第一分类器(例如,词典a分类器420-1)将具有[嵌入维数,词典a142的词汇表大小]的大小。同样,第二分类器(例如,词典b分类器420-2)将具有[嵌入维数,词典b144的词汇表大小]的大小。将英语语言用作示例,英语语言具有大于170000个词语的词汇表。然而,该词汇表中存在“通常”使用的多个词语。换句话讲,英语语言的170000+词汇表的子集相比于其余词语被更频繁的使用。再次将英语用作示例,英语词汇表中的10个最常用词语占英语语言所用词语的所有出现次数的25%。因此,大小为[嵌入维数,10]的分类器可将英语语言中的常用词汇表条目进行分类,而大小为[嵌入维数,170000+]的分类器将需要被用于将词汇表中的每个条目进行分类。

图5示出了逻辑流程500。逻辑流程500可表示由本文所描述的一个或多个设备所执行的一些或所有的操作。例如,逻辑流程500可表示由计算设备100所执行的操作。逻辑流程500参考图1的计算设备100以及图4的nlp模型400进行描述。然而,基于逻辑流程500的操作可通过不同于本文所描述计算设备的计算设备来实现。

逻辑流程500可在框510“基于利用nlp模型的(一个或多个)编码器的一部分和第一语言分类器处理输入数据而生成中间结果,其中中间结果包括对置信度的指示”处开始,其中中间结果和置信度可从通过nlp推断模型中的编码器堆栈的(一个或多个)初始编码器以及第一语言分类器处理输入数据来生成。例如,中间结果125和置信度129可通过经由编码器411-1至411-n和词典a分类器420-1处理输入数据121来生成。作为另一示例,计算设备100的处理器110可执行nlp模型400,以通过经由编码器411-1至411-n和词典a分类器420-1处理输入数据121来从处理输入数据121生成中间结果125和置信度129。

继续进行至决策框520“将置信度与阈值相比较”,在框510处作为中间结果的一部分生成的置信度可与阈值相比较。例如,置信度127可与阈值129相比较(例如,大于,大于或等于,等等)。作为另一示例,计算设备100的处理器110可执行指令122以将置信度127与阈值129相比较。

逻辑流程500可从决策框520继续进行至框530或框540。例如,基于框520处的比较(例如,基于确定置信度大于阈值、大于或等于阈值等),逻辑流程500可从决策框520继续进行至框530。另选地,基于框520处的比较(例如,基于确定置信度不大于阈值、不大于或等于阈值等),逻辑流程500可从决策框520继续进行至框540。

在框530“将中间结果设定为输出数据”处,中间结果可被设定为输出数据。例如,中间结果125可被设定为输出数据123。作为另一示例,处理器110在执行指令122时可将中间结果125设定为输出数据123。逻辑流程500可从框530继续至框550“退出nlp模型的处理”,其中处理nlp模型(或与之相关的计算操作)可停止。例如,nlp模型400本身的处理可退出,从而绕过词典b编码器413(例如,编码器411-(n+1)至编码器411-(n+m),等等)和词典b分类器420-2的处理。作为另一示例,处理器110可退出nlp模型400的处理。

在框540“基于利用nlp模型的其余的(一个或多个)编码器以及第二语言分类器进一步处理输入数据而生成输出数据,其中第二语言包括第一语言”处,输出数据可通过经由nlp模型的编码器堆栈的后续编码器以及第二语言分类器处理输入数据来生成。例如,输出数据123可通过继续通过编码器411-(n+1)至411-(n+m)以及词典b分类器420-2处理输入数据121来生成。作为另一示例,计算设备100的处理器110可继续执行nlp模型400,并且可从继续通过nlp模型400的词典b编码器413(例如,编码器411-(n+1)至411-(n+m))和词典b分类器420-2处理输入数据121来生成输出数据123。逻辑流程500可从框540和框550结束。

利用一些示例,可提供多个“提早退出”点。图6示出了nlp模型600,nlp模型600可表示在图1的计算设备100上执行的nlp模型140,并且包括多个提早退出点。nlp模型600包括多个处理层210和分类器220。一般来讲,层210可包括被布置成在输入数据121上操作以提供nlp操作或任务的各种连接的神经层(例如,编码器、解码器、转换器,等等)中的任一者。

应当注意,nlp模型600可包括各种类型的层中的任何类型以及任何数量的层。一般来讲,这些层可布置成针对特定词典执行nlp任务。在此,出于清楚的目的,该图示出了有限数量的层。例如,nlp模型600包括初始处理层210-1和最后处理层210-2。如本文所描述,每组的(一个或多个)层可布置成在词典上进行操作(或针对特定词典执行nlp任务)。例如,初始处理层210-1包括词典a处理层210-11和词典b处理层210-12。

在该示例中,词典a和词典b可以是互相排斥的;词典a和词典b可共享类似词典,但彼此不同;或如上文所描述,词典a可以是词典b的子集。然而,词典c包括词典a和词典b两者。即,词典a和词典b为词典c的子集。

分类器220可以是被布置成基于语言而生成输出的各种前馈神经层中的任一者。此外,分类器220可生成与由分类器220所生成的输出相关联的置信度(例如,基于softmax,等等)。一般来讲,nlp模型600可包括多个分类器,初始分类器220-1和最后分类器220-2。换句话讲,nlp模型600可包括多个初始分类器220,初始分类器220可用于在完成所有层210的计算之前提供nlp模型600的处理的“提早退出”。例如,nlp模型600被示出为包括词典a分类器220-11和词典b分类器220-12。在操作期间,中间结果125可由初始分类器220-11生成,并且nlp模型600的处理可基于中间结果125的置信度与阈值129的比较而中止。基于比较,输出数据123可基于中间结果125而被设定,并且nlp模型600的处理可提早地中止;或处理可如本文所描述地继续。然而,在具有多个初始分类器220的情况下,处理可返回至初始层(例如,在具有另外初始处理层和另外初始分类器220的情况下)。另选地,在计算操作已在所有初始处理层210和初始分类器220上执行的情况下,处理可继续进行至最后处理层210和最后分类器220。

因为词典a和词典c为词典b的子集,所以词典a分类器220-11和词典c分类器220-12将小于词典b分类器220-2(例如,具有较少维数或节点)。换句话讲,因为词典a和词典c的词汇表的大小将小于词典b的词汇表(由于词典a和词典c为词典b的子集),所以基于词典a和词典c的分类器220自然将小于基于词典b的分类器220。

在此,初始分类器220-11和220-12可用于提供nlp模型600的“提早退出”特征。

图7示出了存储介质2000的一个实施例。存储介质2000可包括任何非暂态计算机可读存储介质或机器可读存储介质,诸如光、磁或半导体存储介质。在各种实施例中,存储介质2000可包括制造制品。在一些实施例中,存储介质2000可存储计算机可执行指令,诸如用于实现本文所描述的技术、逻辑流程或操作中的一个或多个的计算机可执行指令(诸如相对于图3和图5的300和/或500)。存储介质2000还可存储用于指令122、nlp模型140、nlp模型200、nlp模型400和/或nlp模型600的计算机可执行指令。计算机可读存储介质或机器可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器,等等。计算机可执行指令的示例可包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、视觉代码,等等。实施例不限于此上下文。

图8示出了系统3000的一个实施例。系统3000为具有多个处理器核的计算机系统,诸如分布式计算系统、超级计算机、高性能计算系统、计算群集、大型计算机、微型计算机、客户-服务器系统、个人计算机(pc)、工作站、服务器、便携式计算机、膝上型计算机、平板计算机、手持设备(诸如个人数字助理(pda)),或用于处理、显示或传送信息的其它设备。类似实施例可包括例如娱乐设备(诸如便携式音乐播放器或便携式视频播放器)、智能电话或其它蜂窝电话、电话机、数字视频摄像机、数字静态照相机、外部存储设备,等等。其它实施例实现了较大规模服务器配置。在其它实施例中,系统3000可具有利用一个核的单个处理器或多于一个处理器。需注意,术语“处理器”是指具有单核的处理器或具有多个处理器核的处理器封装。在至少一个实施例中,计算系统3000表示计算设备100。更一般地,计算系统3000被配置为实现本文关于图1至图7所描述的所有逻辑、系统、逻辑流程、方法、装置和功能。

本申请所描述的任何功能旨在指代被布置为实现所描述功能的计算机相关实体的结构(例如,电路等)。此类计算机相关实体的结构示例由示例性系统3000来提供。例如,此类结构可以是但不限于处理器、执行过程的处理器、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、执行线程、程序,和/或计算机。另外,(一个或多个)结构可通过各种类型的通信介质彼此通信地耦合以协调操作。协调可涉及信息的单向或双向交换。例如,结构可以在通信介质上传送的信号的形式来传送信息。该信息可实现为分配至各种信号线的信号。在此类分配中,每个消息为信号。然而,其它实施例可另选地采用数据消息。此类数据消息可通过各种连接发送。示例性连接包括并行接口、串行接口、和总线接口。

如该图所示,系统3000包括母板3005以用于安装平台组件。母板3005为点到点互连平台,该点到点互连平台包括经由点到点互连3056(诸如超级路径互连(upi))耦合的第一处理器3010和第二处理器3030。在其它实施例中,系统3000可具有另一总线架构,诸如多点分支总线。此外,处理器3010和处理器3030中的每一者可分别为具有多个处理器核(包括处理器核3020和处理器核3040)的处理器封装。虽然系统3000为双插槽(2s)平台的一个实施例,但是其它实施例可包括两个以上的插槽或一个插槽。例如,一些实施例可包括四插槽(4s)平台或八插槽(8s)平台。每个插槽为处理器的安装件,并且可具有插槽标识符。需注意,术语平台是指具有所安装的某些组件(诸如处理器3010和芯片集3060)的母板。一些平台可包括额外组件,并且一些平台可仅包括插槽以安装处理器和/或芯片集。

处理器3010,3020可以是各种可商购获得的处理器中的任一者,包括但不限于core(2)处理器;处理器;应用、嵌入式和安全处理器;处理器;ibm和cell处理器;以及类似处理器。双微处理器、多核处理器和其它多处理器架构也可用作处理器3010、3020。

第一处理器3010包括集成存储器控制器(imc)3014和点到点(p-p)接口3018和3052。类似地,第二处理器3030包括imc3034和p-p接口3038和3054。imc3014和3034分别将处理器3010和3030耦合至相应存储器,存储器3012和存储器3032。存储器3012和3032可以是平台(诸如双数据速率3型(ddr3)或4型(ddr4)同步dram(sdram))的主存储器(例如,动态随机存取存储器(dram))的部分。在本实施例中,存储器3012和3032局部地附接至相应处理器3010和3030。在其它实施例中,主存储器可经由总线和共享存储器集线器与处理器耦合。

处理器3010和3030分别包括与(一个或多个)处理器核3020和3040的每一者耦合的缓存。处理器核3020、3040还可包括存储器管理逻辑电路(未画出),该存储器管理逻辑电路可表示被配置成实现逻辑流程300、逻辑流程500、和/或(一个或多个)处理器核3020、3040中的nlp模型140/200/400/600的功能的电路,或可表示介质和处理器内的电路的组合以将全部或部分的nlp模型140/200/400/600存储于存储器中,诸如缓存、存储器3012、缓冲器、寄存器,等等。逻辑流程300、逻辑流程500和/或nlp模型140/200/400/600的功能可作为代码整体或部分地驻留于存储器中,诸如经由芯片集3060附接至处理器3010和/或3030的存储介质2000。逻辑流程300、逻辑流程500和/或nlp模型140/200/400/600的功能还可整体或部分地驻留于存储器中,诸如存储器3012和/或处理器的缓存。此外,逻辑流程300、逻辑流程500和/或nlp模型140/200/400/600的功能也可作为电路整体或部分地驻留于处理器3010内,并且可例如在寄存器或缓冲器(诸如处理器3010、3030内的寄存器3016)或在处理器3010、3030的指令流水线内执行操作。另外,逻辑流程300、逻辑流程500和/或nlp模型140/200/400/600的功能可集成于硬件加速器的处理器中以用于利用dnn执行推断。

如所述,处理器3010和3030中的多于一个处理器可包括逻辑流程300、逻辑流程500和/或nlp模型140/200/400(诸如处理器3030和/或经由接口(i/f)3066与芯片集3060耦合的人工智能(ai)加速器3067)的功能。i/f3066可以是例如增强外围组件互连(pci-e)。

第一处理器3010经由p-p互连3052和3062耦合至芯片集3060,并且第二处理器3030经由p-p互连3054和3064耦合至芯片集3060。直接介质接口(dmi)3057和3058可分别耦合至p-p互连3052和3062以及p-p互连3054和3064。dmi可以是高速互连,该高速互连促进例如每秒八千兆传输(gt/s),诸如dmi3.0。在其它实施例中,处理器3010和3030可经由总线进行互连。

芯片集3060可包括控制器集线器,诸如平台控制器集线器(pch)。芯片集3060可包括系统时钟以执行时钟功能,并且可包括i/o总线的接口(诸如通用串行总线(usb)、外围组件互连(pci)、串行外围互连(spi)、集成互连(i2c),等等)以促进外围设备在平台上的连接。在其它实施例中,芯片集3060可包括一个以上的控制器集线器,诸如具有存储器控制器集线器、图形控制器集线器和输入/输出(i/o)控制器集线器的芯片集。

在本实施例中,芯片集3060经由接口(i/f)3070与可信平台模块(tpm)3072和uefi、bios、闪存组件3074耦合。tpm3072为专用微控制器,该专用微控制器设计成通过将加密秘钥集成至设备中来使硬件安全。uefi、bios、闪存组件3074可提供预引导代码。

此外,芯片集3060包括i/f3066以使芯片集3060与高性能图形引擎(图形卡3065)耦合。在其它实施例中,系统3000可包括在处理器3010和3030与芯片集3060之间的柔性显示接口(fdi)。fdi使处理器中的图形处理器核与芯片集3060互连。

各种i/o设备3092连同总线桥3080和i/f3068一起耦合至总线3081,总线桥3080将总线3081耦合至第二总线3091,i/f3068连接总线3081与芯片集3060。在一个实施例中,第二总线3091可以是低引脚计数(lpc)总线。各种设备可耦合至第二总线3091,包括例如键盘3082、鼠标3084、通信设备3086和存储介质700,存储介质700可存储如本文先前所描述的计算机可执行代码。此外,音频i/o3090可耦合至第二总线3091。i/o设备3092、通信设备3086和存储介质800中的多者可驻留于母板3005上,而键盘3082和鼠标3084可以是附加外围设备。在其它实施例中,一些或所有i/o设备3092、通信设备3086和存储介质800为附加外围设备,并且不驻留于母板3005上。

至少一个示例的一个或多个方面可通过表示处理器内的各种逻辑的存储于至少一种机器可读介质上的表示指令来实现,这些表示指令当由机器、计算设备或系统读取时引起该机器、计算设备或系统制备逻辑以执行本文所描述的技术。此类表示(已知为“ip核”)可存储于有形机器可读介质上并且供应至各种客户或制造设施以加载至制作逻辑或处理器的制备机器中。

各种示例可利用硬件元件、软件元件或两者的组合来实现。在一些示例中,硬件元件可包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(asic)、可编程逻辑设备(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片集,等等。在一些示例中,软件元件可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例行程序、子例行程序、功能、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、词语、数值、符号,或其任何组合。确定示例是否利用硬件元件和/或软件元件来实现可根据任何数量的因数而改变,诸如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束条件,如给定实施方式所期望的。

一些示例可包括制造制品或至少一种计算机可读介质。计算机可读介质可包括非暂态存储介质以存储逻辑。在一些示例中,非暂态存储介质可包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器,等等。在一些示例中,逻辑可包括各种软件元件,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例行程序、子例行程序、功能、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码片段、计算机代码片段、词语、数值、符号,或其任何组合。

根据一些实施例,计算机可读介质可包括非暂态存储介质以存储或保持指令,这些指令当由机器、计算设备或系统执行时引起该机器、计算设备或系统执行根据所描述的示例的方法和/或操作。指令可包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码,等等。指令可根据预定义的计算机语言、方式或语法来实现以用于指示机器、计算设备或系统来执行特定功能。指令可利用任何合适高水平、低水平、面向对象、视觉、编译和/或解释编程语言来实现。

一些示例可利用“在一个示例中”或“一示例”的措辞连同其派生物来进行描述。这些术语意指,结合该示例所描述的特定特征、结构或特性包括于至少一个示例中。说明书中各处出现的短语“在一个示例中”未必始终是指相同示例。

一些示例可利用“耦合”或“连接”的措辞连同其派生物进行描述。这些术语未必旨在为彼此同义的。例如,利用术语“连接”和/或“耦合”的描述可指示,两个或更多个元件彼此直接物理或电气接触。然而,术语“耦合”还可意指,两个或更多个元件未彼此直接接触,但仍彼此协作或交互。

此外,在前述具体实施方式中,各种特征在单个示例中被分组在一起以使本公开简化。本公开的这种方法不应解释为反映这样的意图:所要求保护示例要求多于每个权利要求所明确列举的特征。相反,如下述权利要求书所反映的,本发明主题在于少于单个所公开的示例的所有特征。因此,下述权利要求书据此并入具体实施方式中,其中每个权利要求本身作为一个单独示例。在附属权利要求书中,术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的简洁英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标签,并且不旨在将数字要求强加于其对象上。

尽管主题已以特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,附属权利要求书所限定的主题不一定限于上文所描述的具体特征或动作。相反,上文所描述的具体特征和动作被公开为实现权利要求的示例形式。

适用于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,该至少一个处理器通过系统总线直接地或间接地耦合至存储器元件。存储器元件可包括在程序代码的实际执行期间采用的本地存储器、大容量存储和缓存存储器,该缓存存储器提供至少一些程序代码的暂时存储以减少代码在执行期间必须从大容量存储进行取回的次数。术语“代码”涵盖广泛范围的软件组件和结构体,包括应用、驱动程序、过程、例行程序、方法、模块、固件、微代码和子程序。因此,术语“代码”可用于指代指令的任何集合,这些指令当由处理系统执行时执行一项或多项期望操作。

本文所描述的逻辑电路、设备和接口可执行在硬件中所实现的功能,和以在一个或多个处理器上执行的代码所实现的功能。逻辑电路是指硬件,或硬件和实现一个或多个逻辑功能的代码。电路为硬件,并且可指代一个或多个电子线路。每个电子线路可执行特定功能。电路的电子线路可包括分立的电子组件,这些分立的电子组件与一个或多个导体、集成电路、芯片封装、芯片集、存储器等互连。集成电路包括形成于基板(诸如硅晶片)上的电路,并且可包括组件。集成电路、处理器封装、芯片封装和芯片集可包括一个或多个处理器。

处理器可在(一个或多个)输入处接收信号,诸如指令和/或数据,并且可处理该信号以生成至少一个输出。在执行代码时,代码改变了构成了处理器流水线的晶体管的物理状态和特性。晶体管的物理状态转化成存储于处理器内的寄存器中的一和零。处理器可将晶体管的物理状态转移至寄存器中,并且可将晶体管的物理状态转移至另一存储介质。

处理器可包括电路以执行一个或多个子功能,该一个或多个子功能被实现来执行处理器的整体功能。处理器的一个示例是包括至少一个输入和至少一个输出的状态机或专用集成电路(asic)。状态机可操纵至少一个输入以通过对该至少一个输入执行预定义的一系列串行和/或并行操纵或转化来生成至少一个输出。

如上文所描述的逻辑可以是集成电路芯片的设计的一部分。芯片设计以图形计算机编程语言形成并且存储于计算机存储介质或数据存储介质(诸如磁盘、磁带、物理硬驱动器,或虚拟硬驱动器(诸如存储存取网络中))中。如果设计者未制备芯片或用于制备芯片的光刻掩模,那么设计者通过物理手段(例如,通过提供存储设计的存储介质的副本)或以电子方式(例如,通过互联网)将所得到的设计直接地或间接地传送至此类实体。所存储设计然后转换成适当格式(例如,gdsii)以用于制备。

所得到的集成电路芯片可由制备者以原始晶片的形式(即,作为具有多个未封装芯片的单个晶片)分布为裸晶粒,或以封装形式进行分布。在后者的情况下,芯片安装于单个芯片封装(诸如塑料载体,其中引线附连至母板或其它更高级载体)中或多芯片封装(诸如陶瓷载体,该陶瓷载体具有表面互连或埋置互连的任一者或两者)中。在任何情况下,芯片然后与其它芯片、分立的电路元件和/或其它信号处理设备集成为(a)中间产物(诸如处理器板、服务器平台或母板)或(b)终端产物的一部分。

下述示例属于进一步示例,许多排列和配置将根据这些示例而变得清晰。

示例1.一种装置,包括:处理器;和存储器,所述存储器存储指令和自然语言处理(nlp)推断模型,所述指令当由所述处理器执行时使得所述处理器执行以下操作:经由所述nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果生成输出并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

示例2.根据示例1所述的装置,所述存储器存储指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:确定所述置信度是否大于或等于所述阈值;和基于确定所述置信度大于或等于所述阈值,而基于所述中间结果生成所述输出并停止经由所述nlp推断模型的计算。

示例3.根据示例2所述的装置,所述存储器存储指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于确定所述置信度不大于或等于所述阈值,而经由所述nlp推断模型生成所述输出。

示例4.根据示例1所述的装置,所述nlp模型包括多个编码器、与第一词典相关联的第一分类器和与第二词典相关联的第二分类器,其中所述第一词典为所述第二词典的子集,所述存储器存储指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于所述多个编码器的第一部分和所述第一分类器而得到所述中间结果和所述置信度。

示例5.根据示例4所述的装置,所述存储器存储指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于所述多个编码器和所述第二分类器而得到所述输出。

示例6.根据示例4所述的装置,所述存储器存储指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:不处理所述多个编码器的第二部分以停止经由所述nlp推断模型的计算,其中所述多个编码器的所述第二部分与所述多个编码器的所述第一部分是互相排斥的。

示例7.根据示例4所述的装置,其中所述第二词典包括具有多个记号的词汇表,并且所述第一词典包括具有所述多个记号的子集的词汇表。

示例8.根据示例7所述的装置,其中所述第一词典的词汇表是部分地基于所述第二词典的词汇表中的记号的使用的统计测量来选择的。

示例9.根据示例1所述的装置,其中所述处理器为人工智能(ai)加速器。

示例10.一种非暂态计算机可读存储介质,包括指令,所述指令当由处理器执行时使得所述处理器执行以下操作:经由nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果生成输出并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

示例11.根据示例10所述的非暂态计算机可读存储介质,包括指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:确定所述置信度是否大于或等于所述阈值;和基于确定所述置信度大于或等于所述阈值,而基于所述中间结果生成所述输出并停止经由所述nlp推断模型的计算。

示例12.根据示例11所述的非暂态计算机可读存储介质,包括指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于确定所述置信度不大于或等于所述阈值,而经由所述nlp推断模型生成所述输出。

示例13.根据示例10所述的非暂态计算机可读存储介质,所述nlp模型包括多个编码器、与第一词典相关联的第一分类器和与第二词典相关联的第二分类器,其中所述第一词典为所述第二词典的子集,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于所述多个编码器的第一部分和所述第一分类器而得到所述中间结果和所述置信度。

示例14.根据示例13所述的非暂态计算机可读存储介质,包括指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:基于所述多个编码器和所述第二分类器而得到所述输出。

示例15.根据示例13所述的非暂态计算机可读存储介质,包括指令,所述指令当由所述处理器执行时使得所述处理器执行以下操作:不处理所述多个编码器的第二部分以停止经由所述nlp推断模型的计算,其中所述多个编码器的所述第二部分与所述多个编码器的所述第一部分是互相排斥的。

示例16.根据示例13所述的非暂态计算机可读存储介质,其中所述第二词典包括具有多个记号的词汇表,并且所述第一词典包括具有所述多个记号的子集的词汇表。

示例17.根据示例16所述的非暂态计算机可读存储介质,其中所述第一词典的词汇表是部分地基于所述第二词典的词汇表中的记号的使用的统计测量来选择的。

示例18.一种由计算机实现的方法,包括:经由nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;和基于所述比较执行以下操作之一:基于所述中间结果而生成输出并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

示例19.根据示例18所述的由计算机实现的方法,包括:确定所述置信度是否大于或等于所述阈值;和基于确定所述置信度大于或等于所述阈值,而基于所述中间结果生成所述输出并停止经由所述nlp推断模型的计算。

示例20.根据示例19所述的由计算机实现的方法,包括基于确定所述置信度不大于或等于所述阈值,而经由所述nlp推断模型生成所述输出。

示例21.根据示例18所述的由计算机实现的方法,所述nlp模型包括多个编码器、与第一词典相关联的第一分类器和与第二词典相关联的第二分类器,其中所述第一词典为所述第二词典的子集,所述方法包括:基于所述多个编码器的第一部分和所述第一分类器而得到所述中间结果和所述置信度。

示例22.根据示例21所述的由计算机实现的方法,包括基于所述多个编码器和所述第二分类器而得到所述输出。

示例23.根据示例20所述的由计算机实现的方法,包括不处理所述多个编码器的第二部分以停止经由所述nlp推断模型的计算,其中所述多个编码器的第二部分与所述多个编码器的第一部分是互相排斥的。

示例24.根据示例19所述的由计算机实现的方法,其中所述第二词典包括具有多个记号的词汇表,并且所述第一词典包括具有所述多个记号的子集的词汇表。

示例25.根据示例24所述的由计算机实现的方法,其中所述第一词典的词汇表是部分地基于所述第二词典的词汇表中的记号的使用的统计测量来选择的。

示例26.一种装置,包括被布置为实现根据示例18至25中任一项所述的功能的装置。

示例27.一种系统,包括:人工智能(ai)加速器;和耦合至所述ai加速器的存储器,所述存储器存储指令和自然语言处理(nlp)推断模型,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:经由所述nlp推断模型生成中间结果和与所述中间结果相关联的置信度;将所述置信度与阈值相比较;并且基于所述比较执行以下操作之一:基于所述中间结果生成输出并停止经由所述nlp推断模型的计算;或经由所述nlp推断模型生成所述输出。

示例28.根据示例27所述的系统,所述存储器存储指令,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:确定所述置信度是否大于或等于所述阈值;和基于确定所述置信度大于或等于所述阈值,而基于所述中间结果生成所述输出并停止经由所述nlp推断模型的计算。

示例29.根据示例28所述的装置,所述存储器存储指令,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:基于确定所述置信度不大于或等于所述阈值,而经由所述nlp推断模型生成所述输出。

示例30.根据示例27所述的装置,所述nlp模型包括多个编码器、与第一词典相关联的第一分类器和与第二词典相关联的第二分类器,其中所述第一词典为所述第二词典的子集,所述存储器存储指令,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:基于所述多个编码器的第一部分和所述第一分类器而得到所述中间结果和所述置信度。

示例31.根据示例30所述的装置,所述存储器存储指令,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:基于所述多个编码器和所述第二分类器而得到所述输出。

示例32.根据示例30所述的装置,所述存储器存储指令,所述指令当由所述ai加速器执行时使得所述ai加速器执行以下操作:不处理所述多个编码器的第二部分以停止经由所述nlp推断模型的计算,其中所述多个编码器的所述第二部分与所述多个编码器的所述第一部分是互相排斥的。

示例33.根据示例30所述的装置,其中所述第二词典包括具有多个记号的词汇表,并且所述第一词典包括具有所述多个记号的子集的词汇表。

示例34.根据示例33所述的装置,其中所述第一词典的词汇表是部分地基于所述第二词典的词汇表中的记号的使用的统计测量来选择的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1