CN114860405A - 多任务模型的参数更新方法、装置和存储介质 - Google Patents

多任务模型的参数更新方法、装置和存储介质 Download PDF

Info

Publication number
CN114860405A
CN114860405A CN202210536778.9A CN202210536778A CN114860405A CN 114860405 A CN114860405 A CN 114860405A CN 202210536778 A CN202210536778 A CN 202210536778A CN 114860405 A CN114860405 A CN 114860405A
Authority
CN
China
Prior art keywords
network
layer
parameter
calculation
processor
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.)
Granted
Application number
CN202210536778.9A
Other languages
English (en)
Other versions
CN114860405B (zh
Inventor
白扬帆
沈亮
巩伟宝
吴鑫烜
吴志华
于佃海
姚雪峰
冯丹蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210536778.9A priority Critical patent/CN114860405B/zh
Publication of CN114860405A publication Critical patent/CN114860405A/zh
Application granted granted Critical
Publication of CN114860405B publication Critical patent/CN114860405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种多任务模型的参数更新方法、装置和存储介质,涉及人工智能技术领域,具体涉及深度学习等技术领域。具体实现方案为:从多任务模型中获取训练数据所属目标任务所对应的私有网络层,根据训练数据对从第一图形处理器中读取到的共享网络层的第一网络参数和从处理器中读取到的私有网络层的第二网络参数进行计算,以得到第一网络参数和私有网络层的网络参数的计算结果,并控制第一图形处理器根据第一网络参数的计算结果第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。由此,将多个任务所共享的网络层的网络参数和目标任务所的网络层的网络参数分开存储的同时,实现多任务模型的局部参数更新。

Description

多任务模型的参数更新方法、装置和存储介质
技术领域
本公开涉及计算机技术领域,具体涉及人工智能技术领域,具体涉及深度学习等技术领域,尤其涉及多任务模型的参数更新方法、装置和存储介质。
背景技术
所谓多任务模型,是指能够针对对象同时实现多个分类任务的模型。例如,在图像分类时,通过多任务模型,可以针对一张图像同时实现多种图像分类。
相关技术中,如何对具有很多模型参数的多任务模型进行训练,对于多任务模型的应用是十分重要的。
发明内容
本公开提供了一种用于多任务模型的参数更新方法、装置和存储介质。
根据本公开的一方面,提供了一种多任务模型的参数更新方法,所述方法包括:获取训练数据,其中,所述多任务模型包括:多个任务所共享的多层共享网络层,以及每个所述任务各自对应的多层私有网络层,所述多层共享网络层和所述多层私有网络层均是依次连接的;确定所述训练数据所属的目标任务,其中,所述目标任务为所述多个任务中的一个;针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据所述训练数据和所述第一网络参数进行计算,其中,i为不大于N的正整数,所述N的取值为所述共享网络层的总数;在处理器中存在所述目标任务的各私有网络层的网络参数情况下,针对所述目标任务的第j层私有网络层,从所述处理器中读取第j层私有网络层的第二网络参数,并根据所述训练数据和所述第二网络参数进行计算,其中,j为不大于M的正整数,所述M的取值为所述私有网络层的总数;控制所述第一图形处理器根据所述第一网络参数的计算结果对所述第一网络参数进行更新,并控制所述处理器根据所述第二网络参数的计算结果对所述第二网络参数进行更新。
根据本公开的另一方面,提供了一种多任务模型的参数更新装置,所述装置包括:第一获取模块,用于获取训练数据,其中,所述多任务模型包括:多个任务所共享的多层共享网络层,以及每个所述任务各自对应的多层私有网络层,所述多层共享网络层和所述多层私有网络层均是依次连接的;确定模块,用于确定所述训练数据所属的目标任务,其中,所述目标任务为所述多个任务中的一个;第一处理模块,用于针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据所述训练数据和所述第一网络参数进行计算,其中,i为不大于N的正整数,所述N的取值为所述共享网络层的总数;第二处理模块,用于在处理器中存在所述目标任务的各私有网络层的网络参数情况下,针对所述目标任务的第j层私有网络层,从所述处理器中读取第j层私有网络层的第二网络参数,并根据所述训练数据和所述第二网络参数进行计算,其中,j为不大于M的正整数,所述M的取值为所述私有网络层的总数;控制模块,用于控制所述第一图形处理器根据所述第一网络参数的计算结果对所述第一网络参数进行更新,并控制所述处理器根据所述第二网络参数的计算结果对所述第二网络参数进行更新。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的多任务模型的参数更新方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的多任务模型的参数更新方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本公开的多任务模型的参数更新方法。
上述申请中的一个实施例具有如下优点或有益效果:
在结合训练数据对多任务模型进行训练的过程中,从多任务模型中,获取训练数据所属目标任务所对应的私有网络层,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数;在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数,并控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。由此,在将多任务模型中的多个任务所共享的网络层的网络参数和目标任务所对应的网络层的网络参数进行分开存储的同时,实现了多任务模型的局部参数更新,提高了多任务模型的参数更新效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开第三实施例的示意图;
图4是根据本公开第四实施例的示意图;
图5是根据本公开第五实施例的示意图;
图6是根据本公开第六实施例的示意图;
图7是根据本公开第七实施例的示意图
图8是用来实现本公开实施例的多任务模型的参数更新方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关技术中,通常将多任务模型所涉及到的所有网络参数均保存在图形处理器(graphics processing unit,GPU)上,并在基于训练数据,对多任务模型中相应网络层的网络参数进行计算(例如前向计算或者反向计算的情况下)的情况下,均需要从图形处理器上读取相应网络层的网络参数,这种将所有网络参数均保存在图形处理器上的方式,容易使得训练过程中的数据读取时间较长,继而影响多任务模型的模型训练效率,并且,随着参数量增加将突破GPU存储限制,成为更大模型训练的瓶颈。
为此,本公开在结合训练数据对多任务模型进行训练的过程中,从多任务模型中,获取训练数据所属于的目标任务所对应的私有网络层,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数;在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数,并控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。由此,在将多任务模型中的多个任务所共享的网络层的网络参数和目标任务所对应的网络层的网络参数进行分开存储的同时,实现了多任务模型的局部参数更新,提高了多任务模型的参数更新效率。
下面参考附图描述本公开实施例的多任务模型的参数更新方法、装置和存储介质。
图1是根据本公开第一实施例的示意图,该实施例提供一种多任务模型的参数更新方法。
如图1所示,该多任务模型的参数更新方法可以包括:
步骤101,获取训练数据。
其中,多任务模型包括:多个任务所共享的多层共享网络层,以及每个任务各自对应的多层私有网络层。
其中,需要说明的是,多层共享网络层和多层私有网络层均是依次连接的。
其中,多层共享网络层,用于对多个任务均需要的公共特征部分进行提取。
其中,本实施的多任务模型的参数更新方法的执行主体为多任务模型的参数更新装置,该多任务模型的参数更新装置可以由软件和/或硬件实现,该多任务模型的参数更新装置可以为计算单元中,或者,可以配置在计算单元,以执行本公开实施例所公开的多任务模型的参数更新方法。
其中,计算单元可以为任意电子设备中的图形处理器。
需要说明的是,在本公开的实施例中,以计算单元为电子设备中的图形处理器为例进行示例性描述。
其中,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
在本公开的一个实施例中,本实施例中的多任务模型可以为任意应用场景中的多任务模型,例如,多任务模型可以为广告推荐场景中具体具有多个任务的广告推荐模型。比如,广告推荐模型可以用于预测广告的点击率和转化率,即广告推荐模型包含两个任务:广告的点击率和转化率。又例如,在图像分析场景中,通过一模型可以同时输出图像的第一类特征信息和第二类特征信息,此时,该模型属于多任务模型,该多任务模型所针对的多任务包括关于第一类特征信息的识别任务和关于第二类特征信息的识别任务。
其中,可以理解的是,在不同应用场景中,上述训练数据是不同的。例如,在广告推荐场景中,训练数据可以为将应用程序中一个广告的广告类型、时长、标签等特征数据。又例如,在广告推荐场景中,在采用有监督的方式对广告推荐模型进行训练时,训练数据可以包括样本以及对应的标注数据,其中,样本可以为将应用程序中一个广告的广告类型、时长、标签等特征数据作为样本,并将用户对该广告的点击率、观看时长、点赞数、转发数、分享数、转化率等用户操作数据等作为该样本的标注数据。
步骤102,确定训练数据所属的目标任务。
其中,目标任务为多个任务中的一个。
其中,可以理解的是,由于多任务模型中的多个任务的训练目标不同,因此,训练各个任务所使用的训练数据也可以是不同的。因此,在获取用于对多任务模型进行训练的训练数据后,可根据预先保存的训练数据和任务两者之间的对应关系,确定出该训练数据所属的目标任务。
步骤103,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数。
其中,根据训练数据和第一网络参数进行计算的计算方式有多种,例如,前向计算和反向计算。
在本公开的一个实施例中,在根据训练数据和第一网络参数进行计算的计算方式为前向计算,且i大于1的情况下,从第一图形处理器中读取第i层共享网络层的第一网络参数的过程与第i-1层共享网络层的计算过程同步。由此,实现了对第i层共享网络层的网络参数地预取,使得无需等待参数地读取,即可快速对第i层共享网络层的网络参数进行前向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令i的初始值为1,并从第一图形处理器中读取第i层共享网络层的第一网络参数,并执行步骤A,其中,步骤A为:根据训练数据和第i层共享网络层的第一网络参数进行前向计算;与根据训练数据和第i层共享网络层的第一网络参数进行前向计算同步,从第一图形处理器中读取第k层共享网络层的第一网络参数,其中,k等于i+1。然后,对i进行加1处理,并判断k的取值是否不大于N,如果不大于N,则跳转至步骤A。如果k的取值等于N,则执行步骤B,其中,步骤B为:根据训练数据和第i层共享网络层的第一网络参数进行前向计算。
例如,依次连接的共享网络层包括三层,分别为第一层共享网络层,第二层共享网络层和第三层共享网络层。依次对多层共享网络层进行前向计算的示例性过程为:从第一图形处理器中读取第一层共享网络层的网络参数,并根据训练数据和第一层共享网络层的网络参数进行前向计算,在与前向计算过程同步,可从第一图形处理器中读取第二层共享网络层的网络参数。然后,在第一层共享网络层完成前向计算后,可基于预取出的第二层共享网络层的网络参数和训练数据进行前向计算,并与对第二层共享网络层的网络参数进行前向计算同步,继续从第一图形处理器中读取第三层共享网络层的网络参数。然后,在第二层共享网络层完成前向计算后,可直接基于预取出的第三层共享网络层的网络参数进行前向计算。
在本公开的一个实施例中,在根据训练数据和第一网络参数进行计算的计算方式为反向计算,且i大于1的情况下,从第一图形处理器中读取第i-1层共享网络层的第一网络参数的过程与第i层共享网络层的计算过程同步。由此,在对第i层共享网络层进行反向计算的同时,实现了对第i-1层共享网络层的网络参数地预取,使得无需等待,即可对第i-1层共享网络层的网络参数进行反向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令i的初始值为N,并从第一图形处理器中读取第i层共享网络层的第一网络参数,然后,执行步骤A,其中,步骤A为:根据训练数据和第i层共享网络层的第一网络参数进行反向计算;与根据训练数据和第i层共享网络层的第一网络参数进行反向计算同步,从第一图形处理器中读取第k层共享网络层的第一网络参数,其中,k等于i-1。然后,对i进行减1处理,并判断k的取值是否大于或者等于1,如果大于或者等于1,则跳转至步骤A。如果k的取值等于1,则执行步骤B,步骤B为:根据训练数据和第i层共享网络层的第一网络参数进行反向计算。
例如,依次连接的共享网络层包括三层,分别为第一层共享网络层,第二层共享网络层和第三层共享网络层。依次对多层共享网络层进行反向计算的示例性过程为:从第一图形处理器中读取第三层共享网络层的网络参数,并根据训练数据和第三层共享网络层的网络参数进行反向计算,在与反向计算过程同步,可从第一图形处理器中读取第二层共享网络层的网络参数。然后,在第三层共享网络层完成反向计算后,可基于预取出的第二层共享网络层的网络参数进行反向计算,并与对第二层共享网络层的网络参数进行反向计算同步,继续从第一图形处理器中读取第一层共享网络层的网络参数。然后,在第二层共享网络层完成反向计算后,可基于预取出的第一层共享网络层的网络参数进行反向计算。
步骤104,在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数。
其中,根据训练数据和第二网络参数进行计算的计算方式可以包括前向计算和反向计算。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为前向计算,且j大于1的情况下,从处理器中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。由此,在实现了对第j层私有网络层的网络参数地预取,使得无需等待参数地读取,即可对第j层私有网络层的网络参数进行前向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令j的初始值为1,并从处理器中读取第j层私有网络层的第二网络参数,并执行步骤A,其中,步骤A为:根据训练数据和第j层私有网络层的第二网络参数进行前向计算;与根据训练数据和第j层私有网络层的第二网络参数进行前向计算同步,从处理器中读取第k层私有网络层的第一网络参数,其中,k等于j+1。然后,对j进行加1处理,并判断k的取值是否不大于N,如果不大于N,则跳转至步骤A。如果k的取值等于N,则执行步骤B,步骤B为:根据训练数据和第j层私有网络层的第二网络参数进行前向计算。
在本公开的另一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为反向计算,且j大于1的情况下,从处理器中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。由此,在对第j层私有网络层进行前向计算的同时,实现了对第j-1层私有网络层的网络参数地预取,使得无需等待,即可在对第j-1层私有网络层的网络参数进行反向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令j的初始值为N,并从处理器中读取第j层私有网络层的第二网络参数,然后执行步骤A,其中,步骤A为:根据训练数据和第j层私有网络层的第二网络参数进行反向计算;与根据训练数据和第二网络参数进行反向计算同步,从处理器中读取第k层私有网络层的第二网络参数,其中,k等于j-1。然后,对j进行减1处理,并判断k的取值是否大于或者等于1,如果大于或者等于1,则跳转至步骤A。如果k的取值等于1,则执行步骤B,步骤B为:根据训练数据和第j层私有网络层的第二网络参数进行反向计算。
在一些示例性的实施方式,为了减少对计算单元的存储空间的占用,在根据训练数据对第j层私有网络层的第二网络参数进行计算后,可将计算单元上的第二网络参数删除。
其中,处理器中的目标任务的各私有网络层的网络参数的方式为:从固态硬盘中获取目标任务的各私有网络层的第二网络参数;将第二网络参数缓存到处理器上。由此,根据训练需要,将训练数据所对应的任务的私有网络层的网络参数从固态硬盘中缓存到CPU的存储空间(例CPU的内存)中,可以在减少在训练的过程中,对固态硬盘(Solid StateDisk,SSD)进行读写的次数,在满足对多任务模型进行训练的同时,可提高SSD的使用寿命,减少训练过程中,对硬件资源的消耗。
另外,需要说明的是,在对多任务模型进行训练的过程中,从处理器中读取目标任务所对应的私有网络层的网络参数,相对于从固态硬盘中读取目标任务所对应的私有网络层的网络参数而言,处理器的读取效率要高于固体硬盘的读取效率,进而从处理器中读取目标任务所对应的私有网络层的网络参数,可以提高多任务模型的参数更新效率。
其中,需要说明的是,本公开实施例中多任务模型中的所有任务各自对应的私有网络层的网络参数均保存在固态硬盘中。
步骤105,控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。
在本公开的一个实施例中,在第一网络参数的计算结果中包括第一网络参数的梯度信息情况下,可控制第一图形处理器可根据第一网络参数的梯度信息,对第一网络参数进行更新。由此,实现在第一图形处理器对第一网络参数进行更新,减少了对计算单元的占用。
在本公开的一个实施例中,在第二网络参数的计算结果中包括第二网络参数的梯度信息的情况下,控制处理器根据第二网络参数的梯度信息,对第二网络参数进行更新。由此,在处理器上实现了对第二网络参数地更新,减少了对计算单元的占用。
另外,需要说明的是,通过在处理器上对第二网络参数更新,并在第一图形处理器上对第一网络参数更新,可以使得参数更新更快,进而可提高多任务模型的训练效率。
其中,需要说明的是,本实施例中的第一图形处理器与计算单元可在同一个电子设备中,也可以在不同的电子设备中,该实施例对此不作具体限定。
本公开实施例的多任务模型的参数更新方法,在结合训练数据对多任务模型进行训练的过程中,从多任务模型中,获取训练数据所属于的目标任务所对应的私有网络层,并利用训练数据,对从图形处理器中读取到的各共享网络层的第一网络参数和从处理器上独读取到的各私有网络层的第二网络参数进行训练,以得到第一网络参数和第二网络参数各自对应的梯度信息,控制图形处理器基于第一网络参数的计算结果,对第一网络参数进行更新,并控制处理器基于第二网络参数的计算结果,对第二网络参数进行更新。由此,在将多任务模型中的多个任务所共享的网络层的网络参数和目标任务所对应的网络层的网络参数进行分开存储的同时,实现了多任务模型的局部参数更新。
下面结合图2对该实施例的方法进行进一步描述。
如图2所示,该方法可以包括:
步骤201,获取训练数据。
其中,多任务模型包括:多个任务所共享的多层共享网络层,以及每个任务各自对应的多层私有网络层。
其中,多层共享网络层和多层私有网络层均是依次连接的。
步骤202,确定训练数据所属的目标任务。
其中,目标任务为多个任务中的一个。
其中,需要说明的是,关于步骤201和步骤202的解释说明,可参见上述实施例的相关描述,此处不再赘述。
步骤203,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数。
其中,需要说明的是,关于步骤203的解释说明,可参见上述实施例的相关描述,此处不再赘述。
步骤204,在处理器中不存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从固态硬盘中读取目标任务的第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数。
在一些实施例中,在多任务模型训练时由于第二网络参数(其中,第二网络参数也可以称为稀疏参数)存在一定选取概率,可在处理器中缓存高使用率的第二网络参数。因此,可能会出现在处理器不存在目标任务的各第二私有网络层的网络参数的情况,此时,可从固态硬盘中读取该目标任务的第二层私有网络层的第二网络参数(即,稀疏参数)。
其中,需要说明的是,固态硬盘中存储有所有任务各自对应的私有网络层的网络参数。
在一些示例性的实施方式中,为了方便后续可在处理器上对目标任务所对应的私有网络层的第二网络参数进行更新,在固态硬盘中读取目标任务的各私有网络层的第二网络参数的情况下,还可以将固体硬盘中目标任务的各私有网络层的第二网络参数缓存到处理器的缓存空间中。
在一些示例性的实施方式中,在将目标任务的各私有网络层的第二网络参数缓存到处理器的缓存空间中之前,还可判断处理器的缓存空间的使用量是否达到预设阈值;在缓存空间的使用量达到预设阈值的情况下,可将从缓存空间中获取使用频率最低的第二网络参数,并将第二网络参数同步到固体硬盘上,并将缓存空间中的使用频率最低的第二网络参数删除,然后,从固态硬盘中将目标任务所需要的各私有网络层的第二网络参数缓存到处理器的缓存中。
在一些示例性的实施方式中,上述预设阈值是根据实际需求预先设置的,例如,上述预设阈值可以为缓存空间的最大值。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为前向计算,且j大于1的情况下,从固体硬盘中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。由此,在实现了对第j层私有网络层的网络参数地预取,使得无需等待参数地读取,即可对第j层私有网络层的网络参数进行前向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令j的初始值为1,并从固体硬盘中读取第j层私有网络层的第二网络参数,并执行步骤A,其中,步骤A为:根据训练数据和第j层私有网络层的第二网络参数进行前向计算;与根据训练数据和第j层私有网络层的第二网络参数进行前向计算同步,从固体硬盘中读取第k层私有网络层的第二网络参数,其中,k等于j+1。然后,对j进行加1处理,并判断k的取值是否不大于N,如果不大于N,则跳转至步骤A。如果k的取值等于N,则执行步骤B,步骤B为:根据训练数据和第j层私有网络层的第二网络参数进行前向计算。
在本公开的另一些实施例中,在根据训练数据和第二网络参数进行计算的计算方式为反向计算,且j大于1的情况下,从固体硬盘中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。由此,在对第j层私有网络层进行前向计算的同时,实现了对第j-1层私有网络层的网络参数地预取,使得无需等待,即可对第j-1层私有网络层的网络参数进行反向计算,继而可提高多任务模型的训练效率。
作为一种示例性的实施方式,可令j的初始值为N,并从固体硬盘中读取第j层共享网络层的第二网络参数,然后执行步骤A,其中,步骤A为:根据训练数据和第j层共享网络层的第二网络参数进行反向计算;与根据训练数据和第j层共享网络层的第二网络参数进行反向计算的同步,从固体硬盘中读取第k层共享网络层的第二网络参数,其中,k等于j-1。然后,对j进行减1处理,并判断k的取值是否大于或者等于1,如果大于或者等于1,则跳转至步骤A。如果k的取值等于1,则执行步骤B,步骤B为:根据训练数据和第j层共享网络层的第二网络参数进行反向计算。
步骤205,控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。
本公开实施例的多任务模型的参数更新方法,在结合训练数据对多任务模型进行训练的过程中,从多任务模型中,获取训练数据所属于的目标任务所对应的私有网络层,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,在处理器中不存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从固体硬盘中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数,并控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。由此,在将多任务模型中的多个任务所共享的网络层的网络参数和目标任务所对应的网络层的网络参数进行分开存储的同时,实现了多任务模型的局部参数更新,提高了多任务模型的参数更新效率。
下面结合图3对该实施例的方法进行进一步描述。
如图3所示,该方法可以包括:
步骤301,获取与第i层共享网络层对应的多个第二图形处理器,从多个第二图形处理器中并行获取第i层共享网络层的参数切片。
步骤302,对参数切片进行聚合,以得到第i层共享网络层的第一网络参数。
其中,参数切片,是指对第一网络参数进行切片所得到的参数。
步骤303,将第一网络参数缓存到第一图形处理器上。
在本实施例中,为了使得在基于训练数据对多任务模型进行训练时,可及时获取到共享网络层的网络参数,通过通信操作将保存到其他图形处理器上的参数切片进行聚合,以得到共享网络层的完整网络参数。
基于上述任意一个实施例的基础上,为了减少对处理器存储空间的占用,在一些实施例中,还可以将将处理器中的更新后的第二网络参数同步保存到固体硬盘中。
作为一种示例性的实施方式,在检测到基于训练数据对多任务模型进行训练的时长达到预设训练时长的情况下,可将处理器中的更新后的第二网络参数同步保存到固体硬盘中
基于上述任意一个实施例的基础上,通常处理器可基于优化器,根据第二网络参数的计算结果,对第二网络参数进行更新,并在处理器中保存优化器的参数信息和更新后的第二网络参数。
在一些示例的实施例中,在训练时间达到预设训练时长的情况下,可将处理器中保存的优化器的参数信息同步保存到固体硬盘上,并将处理器中的优化器的参数信息删除,以减少优化器的参数信息对处理器的存储空间的占用,使得处理器可有充足的存储空间对训练所需要的第二网络参数进行保存。
为了可以清楚了解本公开的技术方案,下面结合图4和图5对该实施例的方法进行进一步描述。在该示例性的实施方式中,本实施例中的该多任务模型的参数更新方法的执行主体为计算单元。
如图4所示,该计算单元用于执行以下步骤:
步骤401,获取训练数据。
步骤402,确定训练数据所属的目标任务。
其中,目标任务为多个任务中的一个。
其中,需要说明的是,关于步骤401和步骤402的解释说明,可参见上述实施例的相关描述,此处不再赘述。
步骤403,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行前向计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数。
在一些示例性的实施方式中,在根据训练数据和第一网络参数进行计算的计算方式为前向计算,且i大于1的情况下,从第一图形处理器中读取第i层共享网络层的第一网络参数的过程与第i-1层共享网络层的计算过程同步。
在一些示例性的实施方式中,在对多层共享网络层进行前向计算时,按照i从小到大的顺序,依次对多层共享网络层进行前向计算,其中,在该情况下,i的初始值为1。
步骤404,针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练和数据和该第一网络参数进行反向计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数。
在一些示例性的实施方式,在对多层共享网络层进行反向计算时,按照i从大到小的顺序,依次对多层共享网络层进行反向计算,其中,在该情况下,i的初始值为N。
在另一些示例性的实施方式中,在根据训练数据和第一网络参数进行计算的计算方式为反向计算,且i大于1的情况下,从第一图形处理器中读取第i-1层共享网络层的第一网络参数的过程与第i层共享网络层的计算过程同步。
步骤405,在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行前向计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数。
在一些示例性的实施方式中,在对多层私有网络层进行前向计算时,按照j从小到大的顺序,依次对多层私有网络层进行前向计算,其中,在该情况下,j的初始值为1。
在一些示例性的实施方式中,在根据训练数据和第二网络参数进行计算的计算方式为前向计算,且j大于1的情况下,从处理器中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
步骤406,在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行反向计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数。
在一些示例性的实施方式,在对多层私有网络层进行反向计算时,按照j从大到小的顺序,依次对多层私有网络层进行反向计算,其中,在该情况下,j的初始值为N。
在另一些示例性的实施方式中,在根据训练数据和第二网络参数进行计算的计算方式为反向计算,且j大于1的情况下,从处理器中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
其中,图5中示意出处理器、计算单元、第一图形处理器和固体硬盘四者之间的交互示例图。通过图5可以看出,固体硬盘中保存有所有任务对应的私有网络层的网络参数,并预先将目标任务所对应的私有网络层的网络参数缓存到了处理器中(步骤501),然后,将处理器中的该目标任务的私有网络层的网络参数调度到计算单元中(步骤502),并将第一图形处理器中的共享网络层的网络参数调度到计算单元(步骤503),并在计算单元中进行前向计算和反向计算。其中,需要说明的是,图5中还示意出了第一图形处理器与其他第二图形处理器之间的关系,具体而言,可从其他第二图形处理器中获取共享网络层的网络参数的切片,并对切片进行聚合,以得到共享网络层的完整网络参数。
步骤407,控制第一图形处理器根据第一优化器和第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二优化器和第二网络参数的计算结果对第二网络参数进行更新。
其中,第一网络参数的计算结果中包括第一网络参数的梯度信息。
其中,第二网络参数的计算结果中包括第二网络参数的梯度信息。
在一些示例性的实施方式中,获取对第一网络参数进行更新时所采用的第一优化器,并将该第一优化器的参数信息和更新后的第一网络参数同时保存到第一图形处理器。
在另一些示例性的实施方式中,获取对第二网络参数进行更新时所采用的第二优化器,并将该第二优化器的参数信息和更新后的第二网络参数保存在处理器上。
步骤408,在监测到训练时间达到预设训练时长的情况下,将处理器中的更新后的第二网络参数和第二优化器的参数信息同步到固体硬盘中。
在一些示例性的实施方式中,为了减少上述信息对处理器的存储空间的占用,在将处理器中的更新后的第二网络参数和优化器的参数信息同步到固体硬盘后,还可以控制处理器将其上的更新后的第二网络参数和优化器的参数删除。
为了实现上述实施例,本公开实施例还提供一种多任务模型的参数更新装置。
图6是根据本公开第六实施例的示意图,该实施例提供一种多任务模型的参数更新装置。
如图6所示,该多任务模型的参数更新装置600可以包括第一获取模块601、确定模块602、第一处理模块603、第二处理模块604和控制模块605,其中:
第一获取模块601,用于获取训练数据,其中,多任务模型包括:多个任务所共享的多层共享网络层,以及每个任务各自对应的多层私有网络层,多层共享网络层和多层私有网络层均是依次连接的。
确定模块602,用于确定训练数据所属的目标任务,其中,目标任务为多个任务中的一个。
第一处理模块603,用于针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据训练数据和第一网络参数进行计算,其中,i为不大于N的正整数,N的取值为共享网络层的总数。
第二处理模块604,用于在处理器中存在目标任务的各私有网络层的网络参数情况下,针对目标任务的第j层私有网络层,从处理器中读取第j层私有网络层的第二网络参数,并根据训练数据和第二网络参数进行计算,其中,j为不大于M的正整数,M的取值为私有网络层的总数。
控制模块605,用于控制第一图形处理器根据第一网络参数的计算结果对第一网络参数进行更新,并控制处理器根据第二网络参数的计算结果对第二网络参数进行更新。
其中,需要说明的是,前述对方法实施例的解释说明也适用于本实施例,该实施例对此不再赘述。
本公开实施例的多任务模型的参数更新装置,在结合训练数据对多任务模型进行训练的过程中,从多任务模型中,获取训练数据所属于的目标任务所对应的私有网络层,并利用训练数据,对从图形处理器中读取到的各共享网络层的第一网络参数和从处理器上独读取到的各私有网络层的第二网络参数进行训练,以得到第一网络参数和第二网络参数各自对应的梯度信息,控制图形处理器基于第一网络参数的计算结果,对第一网络参数进行更新,并控制处理器基于第二网络参数的计算结果,对第二网络参数进行更新。由此,在将多任务模型中的多个任务所共享的网络层的网络参数和目标任务所对应的网络层的网络参数进行分开存储的同时,实现了多任务模型的局部参数更新。
如图7所示,该多任务模型的参数更新装置700可以包括:第一获取模块701、确定模块702、第一处理模块703、第二处理模块704、控制模块705、读取模块706、第二获取模块707、参数聚合模708、保存模块709、第三获取模块710、缓存模块711和同步模块712。
其中,需要说明的是,关于第一获取模块701、确定模块702、第一处理模块703、第二处理模块704、控制模块705的详细描述可参见上述图6中的第一获取模块601、确定模块602、第一处理模块603、第二处理模块604、控制模块605的说明,此处不再进行描述。
在本公开的一个实施例中,读取模块706,用于在处理器中不存在目标任务的各私有网络层的网络参数的情况下,从固态硬盘中读取目标任务的第j层私有网络层的第二网络参数。
在本公开的一个实施例中,在根据训练数据和第一网络参数进行计算的计算方式为前向计算,且i大于1的情况下,从第一图形处理器中读取第i层共享网络层的第一网络参数的过程与第i-1层共享网络层的计算过程同步。
在本公开的一个实施例中,在根据训练数据和第一网络参数进行计算的计算方式为反向计算,且i大于1的情况下,从第一图形处理器中读取第i-1层共享网络层的第一网络参数的过程与第i层共享网络层的计算过程同步。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为前向计算,且j大于1的情况下,从处理器中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为反向计算,且j大于1的情况下,从处理器中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为前向计算,且j大于1的情况下,从固体硬盘中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
在本公开的一个实施例中,在根据训练数据和第二网络参数进行计算的计算方式为反向计算,且j大于1的情况下,从固体硬盘中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
在本公开的一个实施例中,第二获取模块707,用于获取与第i层共享网络层对应的多个第二图形处理器,从多个第二图形处理器中并行获取第i层共享网络层的参数切片。
参数聚合模708,用于对参数切片进行聚合,以得到第i层共享网络层的第一网络参数。
保存模块709,用于将第一网络参数缓存到第一图形处理器上。
在本公开的一个实施例中,第三获取模块710,用于从固态硬盘中获取目标任务的各私有网络层的第二网络参数。
缓存模块711,用于将第二网络参数缓存到处理器上。
在本公开的一个实施例中,同步模块712,用于将处理器中的更新后的第二网络参数同步保存到固体硬盘中。
在本公开的一个实施例中,采用优化器对第二网络参数进行更新时,同步模块712,还用于:将处理器中的优化器的参数信息同步保存到固体硬盘上。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,该电子设备800可以包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如多任务模型的参数更新方法。例如,在一些实施例中,多任务模型的参数更新方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的多任务模型的参数更新方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行多任务模型的参数更新方法。
本文中以上描述的装置和技术的各种实施方式可以在数字电子电路装置、集成电路装置、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上装置的装置(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程装置上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储装置、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储装置、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行装置、装置或设备使用或与指令执行装置、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体装置、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的装置和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的装置和技术实施在包括后台部件的计算装置(例如,作为数据服务器)、或者包括中间件部件的计算装置(例如,应用服务器)、或者包括前端部件的计算装置(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的装置和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算装置中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将装置的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机装置可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器可以是云服务器,也可以为分布式装置的服务器,或者是结合了区块链的服务器。
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (27)

1.一种多任务模型的参数更新方法,包括:
获取训练数据,其中,所述多任务模型包括:多个任务所共享的多层共享网络层,以及每个所述任务各自对应的多层私有网络层,所述多层共享网络层和所述多层私有网络层均是依次连接的;
确定所述训练数据所属的目标任务,其中,所述目标任务为所述多个任务中的一个;
针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据所述训练数据和所述第一网络参数进行计算,其中,i为不大于N的正整数,所述N的取值为所述共享网络层的总数;
在处理器中存在所述目标任务的各私有网络层的网络参数情况下,针对所述目标任务的第j层私有网络层,从所述处理器中读取第j层私有网络层的第二网络参数,并根据所述训练数据和所述第二网络参数进行计算,其中,j为不大于M的正整数,所述M的取值为所述私有网络层的总数;
控制所述第一图形处理器根据所述第一网络参数的计算结果对所述第一网络参数进行更新,并控制所述处理器根据所述第二网络参数的计算结果对所述第二网络参数进行更新。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在所述处理器中不存在所述目标任务的各私有网络层的网络参数的情况下,从固态硬盘中读取所述目标任务的第j层私有网络层的第二网络参数。
3.根据权利要求1所述的方法,其中,在根据所述训练数据和所述第一网络参数进行计算的计算方式为前向计算且i大于1的情况下,从所述第一图形处理器中读取第i层共享网络层的第一网络参数的过程与第i-1层共享网络层的计算过程同步。
4.根据权利要求1所述的方法,其中,在根据所述训练数据和所述第一网络参数进行计算的计算方式为反向计算且i大于1的情况下,从所述第一图形处理器中读取第i-1层共享网络层的第一网络参数的过程与第i层共享网络层的计算过程同步。
5.根据权利要求1所述的方法,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为前向计算且j大于1的情况下,从所述处理器中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
6.根据权利要求1所述的方法,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为反向计算且j大于1的情况下,从所述处理器中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
7.根据权利要求2所述的方法,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为前向计算且j大于1的情况下,从所述固体硬盘中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
8.根据权利要求2所述的方法,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为反向计算且j大于1的情况下,从所述固体硬盘中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
9.根据权利要求2-8任一项所述的方法,其中,在所述从第一图形处理器中读取第i层共享网络层的第一网络参数之前,所述方法还包括:
获取与所述第i层共享网络层对应的多个第二图形处理器,从多个所述第二图形处理器中并行获取所述第i层共享网络层的参数切片;
对所述参数切片进行聚合,以得到所述第i层共享网络层的第一网络参数;
将所述第一网络参数缓存到所述第一图形处理器上。
10.根据权利要求1或2所述的方法,其中,所述方法还包括:
从固态硬盘中获取所述目标任务的各私有网络层的第二网络参数;
将所述第二网络参数缓存到所述处理器上。
11.根据权利要求2所述的方法,其中,所述方法还包括:
将所述处理器中的更新后的第二网络参数同步保存到所述固体硬盘中。
12.根据权利要求11所述的方法,其中,采用优化器对所述第二网络参数进行更新时,所述方法还包括:
将所述处理器中的所述优化器的参数信息同步保存到所述固体硬盘上。
13.一种多任务模型的参数更新装置,包括:
第一获取模块,用于获取训练数据,其中,所述多任务模型包括:多个任务所共享的多层共享网络层,以及每个所述任务各自对应的多层私有网络层,所述多层共享网络层和所述多层私有网络层均是依次连接的;
确定模块,用于确定所述训练数据所属的目标任务,其中,所述目标任务为所述多个任务中的一个;
第一处理模块,用于针对第i层共享网络层,从第一图形处理器中读取第i层共享网络层的第一网络参数,并根据所述训练数据和所述第一网络参数进行计算,其中,i为不大于N的正整数,所述N的取值为所述共享网络层的总数;
第二处理模块,用于在处理器中存在所述目标任务的各私有网络层的网络参数情况下,针对所述目标任务的第j层私有网络层,从所述处理器中读取第j层私有网络层的第二网络参数,并根据所述训练数据和所述第二网络参数进行计算,其中,j为不大于M的正整数,所述M的取值为所述私有网络层的总数;
控制模块,用于控制所述第一图形处理器根据所述第一网络参数的计算结果对所述第一网络参数进行更新,并控制所述处理器根据所述第二网络参数的计算结果对所述第二网络参数进行更新。
14.根据权利要求13所述的装置,其中,所述装置还包括:
读取模块,用于在所述处理器中不存在所述目标任务的各私有网络层的网络参数的情况下,从固态硬盘中读取所述目标任务的第j层私有网络层的第二网络参数。
15.根据权利要求13所述的装置,其中,在根据所述训练数据和所述第一网络参数进行计算的计算方式为前向计算且i大于1的情况下,从所述第一图形处理器中读取第i层共享网络层的第一网络参数的过程与第i-1层共享网络层的计算过程同步。
16.根据权利要求13所述的装置,其中,在根据所述训练数据和所述第一网络参数进行计算的计算方式为反向计算且i大于1的情况下,从所述第一图形处理器中读取第i-1层共享网络层的第一网络参数的过程与第i层共享网络层的计算过程同步。
17.根据权利要求13所述的装置,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为前向计算且j大于1的情况下,从所述处理器中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
18.根据权利要求13所述的装置,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为反向计算且j大于1的情况下,从所述处理器中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
19.根据权利要求14所述的装置,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为前向计算且j大于1的情况下,从所述固体硬盘中读取第j层私有网络层的第二网络参数的过程与第j-1层私有网络层的计算过程同步。
20.根据权利要求14所述的装置,其中,在根据所述训练数据和所述第二网络参数进行计算的计算方式为反向计算且j大于1的情况下,从所述固体硬盘中读取第j-1层私有网络层的第二网络参数的过程与第j层私有网络层的计算过程同步。
21.根据权利要求14-20中任一项所述的装置,其中,所述装置还包括:
第二获取模块,用于获取与所述第i层共享网络层对应的多个第二图形处理器,从多个所述第二图形处理器中并行获取所述第i层共享网络层的参数切片;
参数聚合模块,用于对所述参数切片进行聚合,以得到所述第i层共享网络层的第一网络参数;
保存模块,用于将所述第一网络参数缓存到所述第一图形处理器上。
22.根据权利要求13或14所述的装置,其中,所述装置还包括:
第三获取模块,用于从固态硬盘中获取所述目标任务的各私有网络层的第二网络参数;
缓存模块,用于将所述第二网络参数缓存到所述处理器上。
23.根据权利要求14所述的装置,其中,所述装置还包括:
同步模块,用于将所述处理器中的更新后的第二网络参数同步保存到所述固体硬盘中。
24.根据权利要求23所述的装置,其中,采用优化器对所述第二网络参数进行更新时,所述同步模块,还用于:
将所述处理器中的所述优化器的参数信息同步保存到所述固体硬盘上。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-12中任一项所述的方法的步骤。
CN202210536778.9A 2022-05-17 2022-05-17 多任务模型的参数更新方法、装置和存储介质 Active CN114860405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210536778.9A CN114860405B (zh) 2022-05-17 2022-05-17 多任务模型的参数更新方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210536778.9A CN114860405B (zh) 2022-05-17 2022-05-17 多任务模型的参数更新方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN114860405A true CN114860405A (zh) 2022-08-05
CN114860405B CN114860405B (zh) 2023-01-31

Family

ID=82636776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210536778.9A Active CN114860405B (zh) 2022-05-17 2022-05-17 多任务模型的参数更新方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN114860405B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561056A (zh) * 2020-12-07 2021-03-26 北京百度网讯科技有限公司 神经网络模型的训练方法、装置、电子设备和存储介质
CN112561077A (zh) * 2020-12-14 2021-03-26 北京百度网讯科技有限公司 多任务模型的训练方法、装置及电子设备
CN112559007A (zh) * 2020-12-14 2021-03-26 北京百度网讯科技有限公司 多任务模型的参数更新方法、装置及电子设备
CN112766493A (zh) * 2021-01-19 2021-05-07 北京市商汤科技开发有限公司 多任务神经网络的训练方法、装置、电子设备及存储介质
CN113610150A (zh) * 2021-08-05 2021-11-05 北京百度网讯科技有限公司 模型训练的方法、对象分类方法、装置及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561056A (zh) * 2020-12-07 2021-03-26 北京百度网讯科技有限公司 神经网络模型的训练方法、装置、电子设备和存储介质
CN112561077A (zh) * 2020-12-14 2021-03-26 北京百度网讯科技有限公司 多任务模型的训练方法、装置及电子设备
CN112559007A (zh) * 2020-12-14 2021-03-26 北京百度网讯科技有限公司 多任务模型的参数更新方法、装置及电子设备
CN112766493A (zh) * 2021-01-19 2021-05-07 北京市商汤科技开发有限公司 多任务神经网络的训练方法、装置、电子设备及存储介质
CN113610150A (zh) * 2021-08-05 2021-11-05 北京百度网讯科技有限公司 模型训练的方法、对象分类方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BO WANG 等: "Regional Distributed Photovoltaic Ultra-Short-Term Prediction Method Based on Multi-task Learning", 《2021 IEEE 4TH INTERNATIONAL ELECTRICAL AND ENERGY CONFERENCE (CIEEC)》 *
张一珂 等: "基于多任务学习的神经网络语言模型建模方法", 《第十四届全国人机语音通讯学术会议(NCMMSC’2017)论文集》 *

Also Published As

Publication number Publication date
CN114860405B (zh) 2023-01-31

Similar Documents

Publication Publication Date Title
CN112559007B (zh) 多任务模型的参数更新方法、装置及电子设备
CN112561077B (zh) 多任务模型的训练方法、装置及电子设备
CN112560996B (zh) 用户画像识别模型训练方法、设备、可读存储介质及产品
CN114881129A (zh) 一种模型训练方法、装置、电子设备及存储介质
CN112560985A (zh) 神经网络的搜索方法、装置及电子设备
CN113705628B (zh) 预训练模型的确定方法、装置、电子设备以及存储介质
CN114648676A (zh) 点云处理模型的训练和点云实例分割方法及装置
CN114968520B (zh) 任务搜索方法及装置、服务器和存储介质
US20240070454A1 (en) Lightweight model training method, image processing method, electronic device, and storage medium
CN114065864A (zh) 联邦学习方法、联邦学习装置、电子设备以及存储介质
CN115631381A (zh) 分类模型训练方法、图像分类方法、装置及电子设备
CN113361574A (zh) 数据处理模型的训练方法、装置、电子设备及存储介质
CN113591709A (zh) 动作识别方法、装置、设备、介质和产品
CN117632431A (zh) 云计算任务的调度方法、装置、设备及存储介质
CN114860405B (zh) 多任务模型的参数更新方法、装置和存储介质
CN115186738B (zh) 模型训练方法、装置和存储介质
CN113408641B (zh) 资源生成模型的训练与服务资源的生成方法、装置
CN113361575B (zh) 模型训练方法、装置和电子设备
CN112966723B (zh) 视频数据增广方法、装置、电子设备及可读存储介质
CN114998649A (zh) 图像分类模型的训练方法、图像分类方法及装置
CN112560987A (zh) 图像样本处理方法、装置、设备、存储介质和程序产品
CN113408632A (zh) 提高图像分类准确性的方法、装置、电子设备及存储介质
KR102613227B1 (ko) 빅데이터 및 머신 러닝에 기반한 농업용 저수지 이수 안전도 평가를 위한 전자 장치 및 전자 장치의 제어 방법
CN116416500B (zh) 图像识别模型训练方法、图像识别方法、装置及电子设备
CN114331379B (zh) 用于输出待办任务的方法、模型训练方法和装置

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
GR01 Patent grant
GR01 Patent grant