用于基于转换器的生成任务的推理系统的选择性分批技术方案

技术编号:37846189 阅读:14 留言:0更新日期:2023-06-14 22:31
提供用于基于转换器的生成任务的推理系统的选择性分批。推理系统通过对转换器模型中的操作的子集进行选择性分批但针对转换器模型中的操作的子集单独地处理批中的请求,来将机器学习转换器模型应用于具有可变输入长度或可变目标长度或可变内部状态长度的一批请求。在一个实施方式中,要单独处理的操作是转换器模型的编码器或解码器的注意力操作。通过选择性分批,推理系统可以使得能够针对具有可变的输入长度或目标长度或内部状态长度的一批请求执行批操作,以利用硬件加速器的并行计算能力,同时防止针对将一批请求的数据约束到相同长度的变通方案而发生的不必要的计算。相同长度的变通方案而发生的不必要的计算。相同长度的变通方案而发生的不必要的计算。

【技术实现步骤摘要】
用于基于转换器的生成任务的推理系统的选择性分批

技术介绍

[0001]本专利技术总体上涉及机器学习转换器(transformer)神经网络模型,并且更具体地涉及针对转换器模型进行选择性分批。
[0002]转换器神经网络模型是用于各种应用例如包括顺序数据的自然语言处理(NLP)、图像处理或音频处理应用的机器学习模型。例如,转换器模型可以接收表示查询的输入令牌序列,并且生成表示对查询的响应的输出令牌序列。作为另一示例,转换器模型可以接收表示德语段落的输入令牌序列,并且生成表示英语段落的翻译的输出令牌序列。作为又一示例,转换器模型可以接收表示文本段落的输入令牌序列,并且生成表示文本的概括版本的输出令牌序列。
[0003]通常,客户端设备的用户向推理系统提交请求。推理系统针对请求的输入(例如,输入令牌序列)执行机器学习转换器模型,以生成针对这些请求的输出(例如,输出令牌序列)。推理系统可以将输出作为响应返回给请求的客户端设备。在一个实例中,推理系统在专用硬件加速器例如图形处理单元(GPU)或张量处理单元(TPU)上执行请求,以改善等待时间和吞吐量,尤其是在转换器模型的参数的数量相当大的情况下。
[0004]在一个实例中,推理系统分批地处理请求以实现对加速器的高处理器利用率。具体地,推理系统可以一起处理批中的多个请求,以利用硬件加速器中的并行计算单元的量。在许多情况下,批中的请求的输入在长度上是可变的。例如,批中的每个请求的输入令牌的数量可能在长度上是可变的。然而,针对转换器模型进行分批的方法通常要求批中的多个请求的数据的长度相同以进行处理。因此,处理具有可变长度的一批请求可能是不可行的,或者解决该问题的变通方案可能导致与单独处理每个请求相比使用更多资源。

技术实现思路

[0005]一种推理系统,其通过对转换器模型中的操作的子集进行选择性分批但是针对转换器模型中的操作的子集单独地处理批中的请求,来将机器学习转换器模型应用于具有可变输入长度或可变目标长度或可变内部状态长度的一批请求。在一个实施方式中,要单独处理的操作是转换器模型的编码器或解码器的注意力(attention)操作。通过选择性分批,推理系统可以使得能够针对具有可变的输入长度或目标长度或内部状态长度的一批请求执行批操作,以利用硬件加速器的并行计算能力,同时防止针对将一批请求的数据约束到相同长度的变通方案而发生的不必要的计算。
[0006]具体地,在一个实施方式中,推理系统接收包括一个或更多个输入令牌序列的一批请求。针对该批中的第一请求的第一输入令牌序列的长度可以不同于针对第二请求的第二输入令牌序列的长度。推理系统访问包括彼此耦接的至少一组解码器的转换器模型。针对一次或更多次迭代,推理系统重复执行通过将该组解码器应用于针对请求的一个或更多个输入来生成针对该请求的一个或更多个输出令牌的步骤。
[0007]针对组中的至少一个解码器,推理系统通过将QKV权重张量应用于一个或更多个输入表示来生成针对请求的一个或更多个查询、一个或更多个关键字以及一个或更多个
值。在一个实例中,查询、关键字和值通过批操作生成。推理系统至少从一个或更多个查询中拆分针对第一请求的第一查询、从一个或更多个关键字中拆分针对第一请求的第一关键字以及从一个或更多个值中拆分针对第一请求的第一值。推理系统还至少从一个或更多个查询中拆分针对第二请求的第二查询、从一个或更多个关键字中拆分针对第二请求的第二关键字以及从一个或更多个值中拆分针对第二请求的第二值。
[0008]推理系统通过至少组合针对第一请求的第一查询、第一关键字和第一值来生成针对第一请求的第一注意力输出。推理系统还通过至少组合针对第二请求的第二查询、第二关键字和第二值来单独生成针对第二请求的第二注意力输出。推理系统至少将第一注意力输出和第二注意力输出连结成连结张量,并且通过将权重张量应用于连结张量来生成一个或更多个输出表示。在一个实例中,一个或更多个输出表示通过批操作生成。推理系统将一个或更多个输出令牌设置为该组解码器的一个或更多个输入,以用于接下来的迭代,并且将针对至少一个请求生成的输出令牌作为对该至少一个请求的响应提供给客户端设备。
[0009]在一个实施方式中,推理系统针对转换器模型执行迭代级动态分批,这使得推理系统能够动态地修改正在执行引擎上执行的一批请求。具体地,在现有的针对转换器模型的分批方法中,一旦开始在执行引擎上对一批请求进行处理,就难以对该批请求进行修改。这是因为某些分批方法要求在批中的所有请求之间输入的长度或内部状态的长度是相同的。因此,除非新传入的请求与正在执行引擎上执行的一批请求具有相同长度的输入,否则推理系统可能难以对该批进行修改以例如向该批添加新请求或移除新请求。
[0010]通过执行选择性分批,推理系统可以在迭代级上监视和修改正在执行引擎上处理的批,并且当请求完成且接收到新请求时,在迭代之间对该批进行更新。具体地,在一次或更多次迭代处,推理系统可以通过将新传入的请求添加至批或从批中移除已完成的请求来修改正在执行引擎上执行的批。这是因为选择性分批使得能够对具有可变长度的请求进行处理,而无需将转换器模型的一个或更多个输入或内部状态限制为相同长度。这使得推理系统能够将批中相比于其他请求较早完成的请求移除,从而使得可以更快地向用户提供响应,并且使得推理系统能够在执行引擎未被充分利用的情况下向一批请求添加新请求。
[0011]在一个实施方式中,推理系统的服务系统接收一个或更多个请求以用于执行。服务系统可以包括请求处理器和调度器,请求处理器和调度器各自耦接至用于执行包括至少一组解码器的机器学习转换器模型的一个或更多个执行引擎。调度器调度包括一个或更多个请求的一批请求以用于在执行引擎上执行。执行引擎通过迭代地将转换器模型应用于针对该批请求的第一组输入来生成第一组输出令牌。在一个实例中,应用转换器模型包括将至少一个批操作应用于与该批请求相关联的一个或更多个输入张量。
[0012]服务系统可以从客户端设备接收包括输入令牌序列的新请求。调度器响应于确定执行引擎具有可用于执行包括一个或更多个请求和新请求的第二批请求的存储器来调度该第二批请求以用于在执行引擎上执行。执行引擎通过迭代地将转换器模型应用于针对该第二批请求的第二组输入来生成第二组输出令牌。第二组输入可以包括针对新请求的输入令牌序列。
附图说明
[0013]图1是根据实施方式的用于推理系统的系统环境的高级框图。
[0014]图2A至图2B示出了根据实施方式的使用机器学习转换器模型进行分批的方法。
[0015]图3A至图3B示出了根据实施方式的使用机器学习转换器模型进行选择性分批的方法。
[0016]图4是根据实施方式的推理系统的框图。
[0017]图5A至图5D示出了根据实施方式的用于使用机器学习转换器模型来处理请求的动态分批的方法。
[0018]图6A至图6B是示出根据实施方式的使用转换器模型进行选择性分批的方法的流程图。
[0019]图7是示出根据实施方式的用于使用转换器模型来处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过应用机器学习转换器模型来执行一批请求的方法,包括:接收包括两个或更多个令牌序列的一批请求,其中,针对所述批中的第一请求的第一令牌序列的长度不同于针对所述批中的第二请求的第二令牌序列的长度;访问包括至少一组解码器的机器学习转换器模型;针对一次或更多次迭代,执行以下步骤:通过将所述组解码器应用于针对所述请求的一个或更多个输入来生成针对所述请求的一个或更多个输出令牌,所述生成进一步包括,针对所述组中的至少一个解码器:通过将QKV权重张量应用于一个或更多个输入表示来生成针对所述请求的一个或更多个查询、一个或更多个关键字以及一个或更多个值,所述一个或更多个查询、所述一个或更多个关键字以及所述一个或更多个值通过批操作生成,从所述一个或更多个查询中拆分针对所述第一请求的第一查询、从所述一个或更多个关键字中拆分针对所述第一请求的第一关键字以及从所述一个或更多个值中拆分针对所述第一请求的第一值,并且从所述一个或更多个查询中拆分针对所述第二请求的第二查询、从所述一个或更多个关键字中拆分针对所述第二请求的第二关键字以及从所述一个或更多个值中拆分针对所述第二请求的第二值,通过至少组合所述第一查询、所述第一关键字和所述第一值来生成针对所述第一请求的第一注意力输出,通过至少组合针对所述第二请求的第二查询、第二关键字和第二值来单独地生成针对所述第二请求的第二注意力输出,将至少所述第一注意力输出和所述第二注意力输出连结成连结张量,以及通过至少将一个或更多个权重张量应用于所述连结张量来生成一个或更多个输出表示,所述一个或更多个输出表示通过批操作生成;将所述一个或更多个输出令牌设置为所述组解码器的一个或更多个输入,以用于接下来的迭代;以及将针对至少一个请求生成的输出令牌作为对所述至少一个请求的响应提供给客户端设备。2.根据权利要求1所述的方法,还包括:沿单个维度将针对所述批请求的所述一个或更多个令牌序列中包括的令牌连结,以生成经连结的输入张量,并且其中,针对所述一次或更多次迭代中的第一迭代,将所述组解码器应用于针对所述请求的一个或更多个输入包括:将所述组解码器应用于所述经连结的输入张量。3.根据权利要求1所述的方法,其中,将至少所述第一注意力输出和所述第二注意力输出连结成所述连结张量进一步包括:沿单个维度将所述第一注意力输出的元素和所述第二注意力输出的元素连结,以生成所述连结张量。4.根据权利要求1所述的方法,其中,所述第一请求的第一令牌序列是针对所述第一请求的输入令牌序列,并且其中,所述第二请求的第二令牌序列是在先前迭代处生成的输出令牌。5.根据权利要求1所述的方法,其中,生成针对所述第一请求的第一注意力输出包括:
将所述第一关键字添加至第一关键字缓存,所述第一关键字缓存另外包括在先前迭代处针对所述第一请求生成的关键字,以及将所述第一值添加至第一值缓存,所述第一值缓存另外包括在先前迭代处针对所述第一请求生成的值,以及将所述第一查询与所述第一关键字缓存相乘以生成第一相乘张量,并且将所述第一相乘张量与所述第一值缓存相乘,并且其中,生成针对所述第二请求的第二注意力输出包括:将所述第二关键字添加至第二关键字缓存,所述第二关键字缓存另外包括在先前迭代处针对所述第二请求生成的关键字,以及将所述第二值添加至第二值缓存,所述第二值缓存另外包括在先前迭代处针对所述第二请求生成的值,以及将所述第二查询与所述第二关键字缓存相乘以生成第二相乘张量,并且将所述第二相乘张量与所述第二值缓存相乘。6.根据权利要求1所述的方法,其中,所述第一注意力输出是通过对至少所述第一查询、所述第一关键字和所述第一值执行一组操作来生成的,并且其中,所述第二注意力输出是通过在与所述第一组操作分开的步骤中对至少所述第二查询、所述第二关键字和所述第二值执行第二组操作来生成的。7.根据权利要求6所述的方法,其中,所述第一注意力输出是通过在执行引擎的第一内核上执行所述一组操作来生成的,并且其中,所述第二注意力输出是通过在所述执行引擎的第二内核上或在第二执行引擎上执行所述第二组操作来生成的。8.根据权利要求1所述的方法,其中,将所述转换器模型的所述组解码器应用于所述请求的一个或更多个输入包括:在包括图形处理单元(GPU)或张量处理单元(TPU)的执行引擎上执行所述转换器模型的操作。9.根据权利要求1所述的方法,其中,输入令牌序列中的每个令牌表示文本单元。10.一种存储计算机程序指令的非暂态计算机可读存储介质,所述计算机程序指令能够执行以执行用于通过应用机器学习转换器模型来执行一批请求的操作,所述操作包括:接收包...

【专利技术属性】
技术研发人员:刘暻仁金建宇郑主成金守情田炳坤
申请(专利权)人:友好人工智能公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1