构建预训练模型的方法、装置、终端设备和存储介质与流程

文档序号:28970371发布日期:2022-02-19 15:37阅读:131来源:国知局
构建预训练模型的方法、装置、终端设备和存储介质与流程

1.本技术涉及人工智能技术领域,提供一种构建预训练模型的方法、装置、终端设备和存储介质。


背景技术:

2.目前,在构建预训练模型时,通常由开发者利用tensorflow等深度学习框架从零开始地去实现模型中每个计算的步骤,也即构建各个算子。采用这种方式的优点是模型构建灵活,开发者有任何想法都可以着手实现。然而,开发者需要花费大量的时间从零开始编写模型代码,导致构建预训练模型的效率较低。


技术实现要素:

3.有鉴于此,本技术提出一种构建预训练模型的方法、装置、终端设备和存储介质,能够提高构建预训练模型的效率。
4.第一方面,本技术实施例提供了一种构建预训练模型的方法,包括:
5.获取输入的模型参数,所述模型参数包含待构建的预训练模型的模型层数、准确率指标以及算子序列参数,所述算子序列参数用于指示所述预训练模型的一个网络层包含的各个目标算子以及所述各个目标算子的排列顺序;
6.从预设的模型库中查找与所述准确率指标匹配的原始模型;
7.对所述原始模型进行拆解,得到所述原始模型的一个网络层包含的各个原始算子;
8.根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,所述其它算子为所述各个目标算子中除所述各个原始算子之外的算子;
9.根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型。
10.本技术实施例采用的是一种模型算子拆解和组装的标准化方法。首先,获取用户输入的预训练模型的模型参数,该模型参数包含预训练模型的模型层数、准确率指标以及算子序列参数;然后,根据准确率指标从预设的模型库中查找与该准确率指标匹配的原始模型,并对该原始模型进行拆解,得到该原始模型的一个网络层包含的各个原始算子;接着,根据算子序列参数对各个原始算子以及算子序列参数中指示的其它算子进行组装,从而得到该预训练模型的一个目标网络层;最后,根据模型层数对该目标网络层进行复制并依次连接,从而构建出该预训练模型。在这个过程中,用户只需输入所要构建的预训练模型的模型参数即可,无需从零开始编写模型代码,因此能够有效提高预训练模型的构建效率。
11.在本技术的一个实施例中,所述从预设的模型库中查找与所述准确率指标匹配的原始模型,可以包括:
12.确定所述准确率指标所处的准确率范围区间;
13.从所述模型库中查找准确率落入所述准确率范围区间的一个模型,作为所述原始模型。
14.在本技术的一个实施例中,所述各个目标算子和所述各个原始算子相同,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
15.根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述各个原始算子进行组装,得到所述预训练模型的一个目标网络层。
16.在本技术的一个实施例中,所述各个目标算子包含所述各个原始算子以及一部分其它算子,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
17.通过实例化的方式构建出所述其它算子;
18.根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述各个原始算子和所述其它算子进行组装,得到所述预训练模型的一个目标网络层。
19.进一步的,所述模型参数还包含输入尺寸和注意力机制类型,所述通过实例化的方式构建出所述其它算子,可以包括:
20.获取所述输入尺寸和所述注意力机制类型;
21.从预先使用cuda语言封装完成的各个注意力机制算子中,选取与所述输入尺寸和所述注意力机制类型匹配的注意力机制算子,作为所述其它算子。
22.在本技术的一个实施例中,所述各个目标算子包含所述各个原始算子的一部分以及一部分其它算子,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
23.通过实例化的方式构建出所述其它算子;
24.将所述各个原始算子划分为第一原始算子和第二原始算子,其中所述第一原始算子为所述各个目标算子中包含的算子,所述第二原始算子为所述各个目标算子中不包含的算子;
25.针对每个所述第二原始算子,检测所述其它算子中是否具有与该第二原始算子功能相同的算子;若所述其它算子中具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为可替代算子;若所述其它算子中不具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为不可替代算子;
26.根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述第一原始算子、所述其它算子以及所述第二原始算子中的不可替代算子进行组装,得到所述预训练模型的一个目标网络层。
27.在本技术的一个实施例中,所述模型层数为n,所述根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型,可以包括:
28.对所述目标网络层进行复制n-1次,得到n个网络层;
29.依次连接所述n各网络层,从而构建出所述预训练模型。
30.第二方面,本技术实施例提供了一种构建预训练模型的装置,包括:
31.模型参数获取模块,用于获取输入的模型参数,所述模型参数包含待构建的预训
练模型的模型层数、准确率指标以及算子序列参数,所述算子序列参数用于指示所述预训练模型的一个网络层包含的各个目标算子以及所述各个目标算子的排列顺序;
32.模型查找模块,用于从预设的模型库中查找与所述准确率指标匹配的原始模型;
33.模型拆解模块,用于对所述原始模型进行拆解,得到所述原始模型的一个网络层包含的各个原始算子;
34.算子组装模块,用于根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,所述其它算子为所述各个目标算子中除所述各个原始算子之外的算子;
35.模型构建模块,用于根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型。
36.第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例第一方面提出的构建预训练模型的方法。
37.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本技术实施例第一方面提出的构建预训练模型的方法。
38.第五方面,本技术实施例提供了一种计算机程序产品,当该计算机程序产品在终端设备上运行时,使得该终端设备执行如本技术实施例第一方面提出的构建预训练模型的方法。
39.上述第二方面至第五方面所能实现的有益效果,可以参照上述第一方面的相关说明。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
41.图1是本技术实施例提供的一种构建预训练模型的方法的一个实施例的流程图;
42.图2是本技术实施例提供的一个算子序列参数所指示的网络层的结构图;
43.图3是注意力机制算子的类型划分示意图;
44.图4是本技术实施例提供的一种构建预训练模型的装置的一个实施例的结构图;
45.图5是本技术实施例提供的一种终端设备的示意图。
具体实施方式
46.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指
示或暗示相对重要性。
47.传统的预训练模型构建方法,一般需要开发者使用tensorflow等深度学习框架从零开始地去实现每个计算的步骤,构造出模型中的每个算子,这种方法虽然可以灵活构建出任何形式的模型,但是需要开发者花费很长的时间用于编写模型代码,导致构建模型的效率较低。有鉴于此,本技术提出一种构建预训练模型的方法、装置、终端设备和存储介质,能够提高构建预训练模型的效率。
48.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
49.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
50.应当理解,本技术实施例提供的构建预训练模型的方法的执行主体可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、大屏电视等终端设备或者服务器,本技术实施例对该终端设备和服务器的具体类型不作任何限制。这里的服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
51.请参阅图1,本技术实施例中一种构建预训练模型的方法的一个实施例包括:
52.101、获取输入的模型参数,所述模型参数包含待构建的预训练模型的模型层数、准确率指标以及算子序列参数,所述算子序列参数用于指示所述预训练模型的一个网络层包含的各个目标算子以及所述各个目标算子的排列顺序;
53.首先,获取用户输入的模型参数。该模型参数用于指示待构建的预训练模型的要求,一般可以包含预训练模型的模型层数、准确率指标以及算子序列参数,等等。其中,算子序列参数用于指示该预训练模型的一个网络层包含的各个目标算子以及它们之间的排列顺序。
54.例如,用户输入的模型参数可以包含{layers,accuracy,sequence},其中layers表示预训练模型的层数,accuracy表示预训练模型的准确率指标,sequence表示算子序列参数。
55.示例性的,某个算子序列参数可以为sequence=[“library”、“attention”、“normalization”、“feedforward”、“normalization”]。其中,“library”表示库函数算子,“attention”表示注意力机制算子,“normalization”表示归一化算子,“feedforward”表示前馈网络算子。该算子序列参数表示预训练模型的一个网络层依次包含库函数算子、注意力机制算子、归一化算子、前馈网络算子以及归一化算子等目标算子,如图2所示。
[0056]
102、从预设的模型库中查找与所述准确率指标匹配的原始模型;
[0057]
在获取到输入的模型参数之后,可以根据模型参数中的准确率指标从预先构建的模型库中查找与该准确率指标匹配的一个原始模型。在实际操作中,可以预先构建出各个不同类型,不同准确率的原始模型,然后将这些原始模型存储到一个模型库中。在步骤102中,可以从该模型库中查找与该准确率指标匹配的任意一个原始模型。
[0058]
在本技术实施例的一种实现方式中,所述从预设的模型库中查找与所述准确率指标匹配的原始模型,可以包括:
[0059]
(1)确定所述准确率指标所处的准确率范围区间;
[0060]
(2)从所述模型库中查找准确率落入所述准确率范围区间的一个模型,作为所述原始模型。
[0061]
例如,若输入的模型参数中的准确率指标是85%,则可以确定其所处的准确率范围区间是80%-90%。该模型库中存储的每个原始模型都具有一个对应的准确率(可以在原始模型构建之后通过测试获得),此时可以从该模型库中查找准确率属于80%-90%范围区间的一个原始模型,具体可以查找准确率与85%最接近的一个原始模型。在后续步骤中,采用该原始模型的算子进行组装所获得的预训练模型,一般可以满足准确率指标的需求。
[0062]
103、对所述原始模型进行拆解,得到所述原始模型的一个网络层包含的各个原始算子;
[0063]
该原始模型是构建好的一个基准模型,其包含多个网络层,且每个网络层都包含多个算子(原始算子)。在步骤103中,可以对该原始模型进行拆解,得到该原始模型的一个网络层包含的各个原始算子。例如,原始模型的一个网络层包含原始算子a、原始算子b、原始算子c、原始算子b和原始算子d总共5个原始算子(a、b、c和d表示4种不同类型的算子),则在对该网络层进行拆解后,能够得到该5个原始算子以及它们之间的级联关系。
[0064]
104、根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,所述其它算子为所述各个目标算子中除所述各个原始算子之外的算子;
[0065]
在拆解出各个原始算子之后,可以根据该算子序列参数对各个原始算子进行组装,组装的顺序可以根据步骤103拆解时获得的各个原始算子的级联关系确定。在某些情况下,算子序列参数指示的目标算子可能不仅包含步骤103中拆解得到的原始算子,还包含一部分其它算子。在步骤104中,可以先实例化出该部分其它算子,然后针对各个原始算子和其它算子,按照该算子序列参数指示的顺序依次组装连接,最终得到该待构建模型的一个网络层(目标网络层)。
[0066]
在本技术实施例的一种实现方式中,所述各个目标算子和所述各个原始算子相同,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
[0067]
根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述各个原始算子进行组装,得到所述预训练模型的一个目标网络层。
[0068]
在一种情况下,用户输入的算子序列参数中包含的各个目标算子恰好和步骤s3中拆解得到的各个原始算子相同,此时的处理方式最简单,只需将各个原始算子按照算子序列参数指示的排列顺序进行组装即可,最终得到该待构建模型的一个目标网络层。例如,算子序列参数指示的各个目标算子依次为“算子a、算子b、算子c、算子b和算子d”,在步骤s3中
拆解到的各个原始算子也为“算子a、算子b、算子c、算子b和算子d”,此时只需要按顺序将“算子a、算子b、算子c、算子b和算子d”组装连接起来,即可得到待构建模型的一个目标网络层。
[0069]
在本技术实施例的一种实现方式中,所述各个目标算子包含所述各个原始算子以及一部分其它算子,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
[0070]
(1)通过实例化的方式构建出所述其它算子;
[0071]
(2)根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述各个原始算子和所述其它算子进行组装,得到所述预训练模型的一个目标网络层。
[0072]
在另一种情况下,用户输入的算子序列参数中包含的各个目标算子包括所有的原始算子以及一部分其它算子,此时需要先实例化出其它算子,然后再按照算子序列参数指示的排列顺序对各个原始算子和其它算子进行组装。例如,算子序列参数指示的各个目标算子依次为“算子a、算子b、算子c、算子b、算子d、算子e和算子f”,在步骤s3中拆解到的各个原始算子为“算子a、算子b、算子c、算子b和算子d”,此时首先需要实例化出算子e和算子f,然后按顺序将“算子a、算子b、算子c、算子b、算子d、算子e和算子f”组装连接起来,即可得到待构建模型的一个目标网络层。
[0073]
进一步的,所述模型参数还包含输入尺寸和注意力机制类型,所述通过实例化的方式构建出所述其它算子,可以包括:
[0074]
从预先使用cuda语言封装完成的各个注意力机制算子中,选取与所述输入尺寸和所述注意力机制类型匹配的注意力机制算子,作为所述其它算子。
[0075]
例如,用户输入的模型参数为{input_shape,layers,accuracy,attention_type,sequence},其中input_shape表示模型的输入尺寸,attention_type表示模型所需的注意力机制算子的类型,layers表示预训练模型的层数,accuracy表示预训练模型的准确率指标,sequence表示算子序列参数。根据模型参数input_shape和attention_type,便可以实例化出对应的注意力机制算子。另外,在封装注意力机制算子时,在底层根据算子的计算步骤去编写cuda代码,编译好之后,再使用python语言去调用它。至于传统的封装注意力机制算子的方法,一般是由开发者们使用tensorflow等框架去实现,这个过程大都是用cpu来计算的,即使可以调用gpu计算,仍然不够定制化,在底层会涉及到设备间的多次存取操作,处理效率较低。而本技术实施例采用cuda代码层面的封装,利用cuda的并行编程来实现,处理更为高效。
[0076]
在分类上,根据计算方式的不同,注意力机制算子可以划分为加性注意力、点乘注意力、通用注意力以及放缩点乘注意力等类型,如图3所示。示例性的,bert模型使用的注意力机制为放缩点乘注意力。
[0077]
在本技术实施例的一种实现方式中,所述各个目标算子包含所述各个原始算子的一部分以及一部分其它算子,所述根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,可以包括:
[0078]
(1)通过实例化的方式构建出所述其它算子;
[0079]
(2)将所述各个原始算子划分为第一原始算子和第二原始算子,其中所述第一原始算子为所述各个目标算子中包含的算子,所述第二原始算子为所述各个目标算子中不包
含的算子;
[0080]
(3)针对每个所述第二原始算子,检测所述其它算子中是否具有与该第二原始算子功能相同的算子;若所述其它算子中具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为可替代算子;若所述其它算子中不具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为不可替代算子;
[0081]
(4)根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述第一原始算子、所述其它算子以及所述第二原始算子中的不可替代算子进行组装,得到所述预训练模型的一个目标网络层。
[0082]
在另一种情况下,用户输入的算子序列参数中包含的各个目标算子包括一部分的原始算子以及一部分其它算子。例如,算子序列参数指示的各个目标算子依次为“算子a、算子b、算子c、算子d、算子e和算子f”,在步骤s3中拆解到的各个原始算子为“算子a、算子b、算子c、算子x和算子y”,此时首先需要实例化出算子d、算子e和算子f作为其它算子;然后,将原始算子划分为第一原始算子“算子a、算子b、算子c”以及第二原始算子“算子x和算子y”,针对其中的第二原始算子“算子x和算子y”,分别检测其它算子“算子d、算子e和算子f”中是否具有和该第二原始算子的功能相同的算子,若有则将该第二原始算子确定为可替代算子,否则将该第二原始算子确定为不可替代算子。假设算子x可由算子e替代,而算子y均不可由“算子d、算子e或者算子f”代替,则算子x为可替代算子,算子y为不可替代算子。最后,按照算子序列参数指示的所述各个目标算子的排列顺序,依次对第一原始算子、其它算子以及第二原始算子中的不可替代算子进行组装。具体的,第一原始算子和其它算子都属于算子序列参数包含的目标算子,在组装时可直接按照算子序列参数指示的排序,而第二原始算子中的不可替代算子不是算子序列参数包含的目标算子,此时可以根据该不可替代算子的功能确定其排列顺序。比如,根据算子y的功能确定其一般排列于网络层的最后,则可以按照“算子a、算子b、算子c、算子d、算子e、算子f和算子y”的方式组装排列,得到待构建模型的一个目标网络层。对于原始算子中的可替代算子,由于已经实例化出具有相同功能的其它算子,故在组装时可以忽略这部分原始算子。而对于原始算子中的不可替代算子,由于实例化出的其它算子中不含有相同功能的算子,此时可能是由于用户疏忽或者不了解模型构建需求导致输入的算子序列参数中遗漏了实现重要功能的算子,因此在组装时不可忽略这部分原始算子。
[0083]
105、根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型。
[0084]
在组装出一个目标网络层之后,接下来可以根据输入的模型层数对该目标网络层进行复制,最后依次连接复制得到的各个网络层,从而构建出该预训练模型。
[0085]
在本技术实施例的一种实现方式中,所述模型层数为n(n为大于1的整数),所述根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型,可以包括:
[0086]
(1)对所述目标网络层进行复制n-1次,得到n个网络层;
[0087]
(2)依次连接所述n个网络层,从而构建出所述预训练模型。
[0088]
例如,若输入的模型层数为12,则可以复制11次该目标网络层,得到12个网络层,然后依次级联这12个网络层,从而构建出最终的预训练模型。
[0089]
本技术实施例采用的是一种模型算子拆解和组装的标准化方法。首先,获取用户输入的预训练模型的模型参数,该模型参数包含预训练模型的模型层数、准确率指标以及算子序列参数;然后,根据准确率指标从预设的模型库中查找与该准确率指标匹配的原始模型,并对该原始模型进行拆解,得到该原始模型的一个网络层包含的各个原始算子;接着,根据算子序列参数对各个原始算子以及算子序列参数中指示的其它算子进行组装,从而得到该预训练模型的一个目标网络层;最后,根据模型层数对该目标网络层进行复制并依次连接,从而构建出该预训练模型。在这个过程中,用户只需输入所要构建的预训练模型的模型参数即可,无需从零开始编写模型代码,因此能够有效提高预训练模型的构建效率。
[0090]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0091]
对应于上文实施例所述的构建预训练模型的方法,图4示出了本技术实施例提供的一种构建预训练模型的装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0092]
参照图4,该装置包括:
[0093]
模型参数获取模块401,用于获取输入的模型参数,所述模型参数包含待构建的预训练模型的模型层数、准确率指标以及算子序列参数,所述算子序列参数用于指示所述预训练模型的一个网络层包含的各个目标算子以及所述各个目标算子的排列顺序;
[0094]
模型查找模块402,用于从预设的模型库中查找与所述准确率指标匹配的原始模型;
[0095]
模型拆解模块403,用于对所述原始模型进行拆解,得到所述原始模型的一个网络层包含的各个原始算子;
[0096]
算子组装模块404,用于根据所述算子序列参数对所述各个原始算子以及实例化获得的其它算子进行组装,得到所述预训练模型的一个目标网络层,所述其它算子为所述各个目标算子中除所述各个原始算子之外的算子;
[0097]
模型构建模块405,用于根据所述模型层数对所述目标网络层进行复制,并依次连接复制得到的各个网络层,从而构建出所述预训练模型。
[0098]
在本技术实施例的一种实现方式中,所述模型查找模块可以包括:
[0099]
范围区间确定单元,用于确定所述准确率指标所处的准确率范围区间;
[0100]
模型查找单元,用于从所述模型库中查找准确率落入所述准确率范围区间的一个模型,作为所述原始模型。
[0101]
在本技术实施例的一种实现方式中,所述各个目标算子和所述各个原始算子相同,所述算子组装模块可以包括:
[0102]
第一算子组装单元,用于根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述各个原始算子进行组装,得到所述预训练模型的一个目标网络层。
[0103]
在本技术实施例的一种实现方式中,所述各个目标算子包含所述各个原始算子以及一部分其它算子,所述算子组装模块可以包括:
[0104]
第一实例化单元,用于通过实例化的方式构建出所述其它算子;
[0105]
第二算子组装单元,用于根据所述算子序列参数指示的所述各个目标算子的排列
顺序,依次对所述各个原始算子和所述其它算子进行组装,得到所述预训练模型的一个目标网络层。
[0106]
进一步的,所述模型参数还包含输入尺寸和注意力机制类型,所述第一实例化单元可以包括:
[0107]
算子选取子单元,用于从预先使用cuda语言封装完成的各个注意力机制算子中,选取与所述输入尺寸和所述注意力机制类型匹配的注意力机制算子,作为所述其它算子。
[0108]
在本技术实施例的一种实现方式中,所述各个目标算子包含所述各个原始算子的一部分以及一部分其它算子,所述算子组装模块可以包括:
[0109]
第二实例化单元,用于通过实例化的方式构建出所述其它算子;
[0110]
第一算子划分单元,用于将所述各个原始算子划分为第一原始算子和第二原始算子,其中所述第一原始算子为所述各个目标算子中包含的算子,所述第二原始算子为所述各个目标算子中不包含的算子;
[0111]
第二算子划分单元,用于针对每个所述第二原始算子,检测所述其它算子中是否具有与该第二原始算子功能相同的算子;若所述其它算子中具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为可替代算子;若所述其它算子中不具有与该第二原始算子功能相同的算子,则将该第二原始算子确定为不可替代算子;
[0112]
第三算子组装单元,用于根据所述算子序列参数指示的所述各个目标算子的排列顺序,依次对所述第一原始算子、所述其它算子以及所述第二原始算子中的不可替代算子进行组装,得到所述预训练模型的一个目标网络层。
[0113]
在本技术实施例的一种实现方式中,所述模型构建模块可以包括:
[0114]
网络层复制单元,用于对对所述目标网络层进行复制n-1次,得到n个网络层;
[0115]
网络层连接单元,用于依次连接所述n个网络层,从而构建出所述预训练模型。
[0116]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1表示的任意一种构建预训练模型的方法。
[0117]
本技术实施例还提供一种计算机程序产品,当该计算机程序产品在服务器上运行时,使得服务器执行实现如图1表示的任意一种构建预训练模型的方法。
[0118]
图5是本技术一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52。所述处理器50执行所述计算机可读指令52时实现上述各个构建预训练模型的方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至405的功能。
[0119]
示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述终端设备5中的执行过程。
[0120]
所述终端设备5可以是智能手机、笔记本、掌上电脑及云端终端设备等计算设备。所述终端设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅
仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。
[0121]
所述处理器50可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0122]
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0123]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0124]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0125]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。
[0126]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0127]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1