掌桥专利:专业的专利平台
掌桥专利
首页

一种模型训练方法及相关设备

文献发布时间:2023-06-19 12:02:28


一种模型训练方法及相关设备

技术领域

本申请涉及人工智能领域,尤其涉及一种模型训练方法及相关设备。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

在现有的计算机视觉和自然语言处理任务中,首先利用大数据进行表征学习预训练(pre-train),再在迁移至特定数据集上进行训练(fine-tune)已经成为通行范式。利用自监督方法进行预训练可以解决表征学习对于人工标注的依赖;然而,目前的自监督学习方法仍然需要将所有的数据进行联合训练(joint training,JT),使得数据储存和算力成为限制自监督表征学习的突出因素。

增量学习的能力就是能够不断地处理现实世界中连续的信息流,在吸收新知识的同时保留甚至整合、优化旧知识的能力。具体来讲,增量学习(sequential training,ST)是指在连续的数据流中训练模型,随着时间的推移,更多的数据逐渐可用,同时旧数据可能由于存储限制或隐私保护等原因而逐渐不可用,并且学习任务的类型和数量没有预定义(例如分类任务中的类别数)。相比于联合训练,增量训练可显著节约计算和存储资源,但是可能由于灾难性遗忘而导致模型性能下降。

发明内容

第一方面,本申请提供了一种模型训练方法,所述方法包括:

获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;

其中,所述第一神经网络模型可以为预训练模型或者对所述预训练模型进行微调后得到的;

其中,M批batch训练样本中的每批batch训练样本用于作为对第一神经网络进行一批batch模型训练所需的训练样本,进而M批batch训练样本用于作为对第一神经网络进行M批batch模型训练所需的训练样本;

其中,M批batch训练样本可以为图像数据、文本数据或者音频数据,这里并不限定;

根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;

灾难性遗忘可以指模型学习了新的知识之后,会遗忘掉之前习得的知识。在一个已经训练好的模型中,训练新的任务,之后测试旧的任务,旧任务的准确率会比学习新任务前降低很多。随着任务数量的增加,旧任务的准确率会逐渐降低,即遗忘现象。所以,需要尽可能地在原有模型的基础上,以尽可能小的代价与成本解决灾难性遗忘问题;

其中,各批batch训练样本之间的样本分布特征可以包括样本增量、随机类别增量、语义差异类别增量和风格转变;

根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。

在一种可能的实现中,所述产生的灾难性遗忘的程度越大,所述目标增量训练方法在进行模型的增量训练时实现的抗灾难性遗忘的作用程度越大。

本申请实施例中,由于一些特征的训练样本在进行增量训练时,会使得模型出现灾难性遗忘,例如当各批batch样本之间的语义差异度过大或者是来源于不同的领域,在这种情况,为了能够保证模型的精度,需要采用一些抗灾难性遗忘方法来降低模型在进行增量学习时出现的灾难性遗忘的程度,且产生的灾难性遗忘的程度越大,所述目标增量训练方法在进行模型的增量训练时实现的抗灾难性遗忘的作用程度需要越大。

在一种可能的实现中,所述目标增量训练方法包括如下的至少一种:

基础增量训练、基于参数正则化的增量训练、基于训练样本回放的增量训练;

其中,所述基础增量训练表示依次采用所述M批batch训练样本中的各批batch训练样本,来进行自监督训练;基础增量训练考虑无标签数据

所述基于参数正则化的增量训练表示在进行所述自监督训练时,所述自监督训练的损失函数包括正则化约束;基于参数正则化的增量学习通过给新任务的损失函数施加约束的方法来保护旧知识不被新知识覆盖。具体来讲,以通过记忆感知突触(memory awaresynapses,MAS)来实现参数正则化为例,对于每个任务task,在训练完该任务之后,计算网络模型中每个参数θ

所述基于训练样本回放的增量训练表示在进行所述自监督训练时,各批batch模型训练所采用的训练样本包括相邻上一批batch模型训练所采用的训练样本中的部分训练样本。基于训练样本回放的增量训练在训练新任务时,一部分具有代表性的旧数据会被保留并用于模型复习曾经学到的旧知识。例如,在第b次训练中,第(b-1)个batch中10%的数据(这里的百分比仅仅为一个示例)会被添加到当前batch的训练中。

在一种可能的实现中,所述根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,包括:

根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第一预设条件,确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束;其中,所述第一预设条件包括:各批batch训练样本包括的训练样本的类别相同。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述样本增量的形式时(本申请实施例也可以称之为满足第一预设条件的训练样本),由于在基于样本增量类型的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较小,则可以确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束。

在一种可能的实现中,所述根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,包括:

根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第二预设条件,确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束,所述第二预设条件包括:各批batch训练样本包括的训练样本的语义相同且类别不同。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述随机类别增量时(本申请实施例也可以称之为满足第二预设条件的训练样本),由于在基于随机类别增量类型的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较小,则同样可以确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束。

在一种可能的实现中,所述根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,包括:

根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第三预设条件,确定所述目标增量训练方法为所述基础增量训练和所述基于参数正则化的增量训练,所述第三预设条件包括:各批batch训练样本包括的训练样本的语义不同。

在一种可能的实现中,所述根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,包括:

根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第四预设条件,确定所述目标增量训练方法为所述基础增量训练和所述基于训练样本回放的增量训练,所述第四预设条件包括:各批batch训练样本包括的训练样本所来自的领域不同。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述语义差异类别增量时(本申请实施例也可以称之为满足第三预设条件的训练样本),由于在基于语义差异类别增量的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较大,则可以确定所述目标增量训练方法为所述基础增量训练和所述基于参数正则化的增量训练。

在一种可能的实现中,所述第一神经网络模型为预训练模型或者对所述预训练模型进行微调后得到的。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述风格转变时(本申请实施例也可以称之为满足第四预设条件的训练样本),由于在基于风格转变的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较大,则可以确定所述目标增量训练方法为所述基础增量训练和所述基于训练样本回放的增量训练。

在一种可能的实现中,所述方法还包括:

获取待处理数据,通过所述第二神经网络模型,对所述待处理数据进行处理,以得到处理结果;其中,所述待处理数据为图像数据、文本数据或音频数据。

第二方面,本申请提供了一种模型训练装置,所述装置包括:

获取模块,用于获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;

确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;

模型训练模块,用于根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。

在一种可能的实现中,所述产生的灾难性遗忘的程度越大,所述目标增量训练装置在进行模型的增量训练时实现的抗灾难性遗忘的作用程度越大。

在一种可能的实现中,所述目标增量训练装置包括如下的至少一种:

基础增量训练、基于参数正则化的增量训练、基于训练样本回放的增量训练;

其中,所述基础增量训练表示依次采用所述M批batch训练样本中的各批batch训练样本,来进行自监督训练;

所述基于参数正则化的增量训练表示在进行所述自监督训练时,所述自监督训练的损失函数包括正则化约束;

所述基于训练样本回放的增量训练表示在进行所述自监督训练时,各批batch模型训练所采用的训练样本包括相邻上一批batch模型训练所采用的训练样本中的部分训练样本。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第一预设条件,确定所述目标增量训练装置为所述基础增量训练,且在通过所述目标增量训练装置,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束;其中,所述第一预设条件包括:各批batch训练样本包括的训练样本的类别相同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第二预设条件,确定所述目标增量训练装置为所述基础增量训练,且在通过所述目标增量训练装置,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束,所述第二预设条件包括:各批batch训练样本包括的训练样本的语义相同且类别不同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第三预设条件,确定所述目标增量训练装置为所述基础增量训练和所述基于参数正则化的增量训练,所述第三预设条件包括:各批batch训练样本包括的训练样本的语义不同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第四预设条件,确定所述目标增量训练装置为所述基础增量训练和所述基于训练样本回放的增量训练,所述第四预设条件包括:各批batch训练样本包括的训练样本所来自的领域不同。

在一种可能的实现中,所述第一神经网络模型为预训练模型或者对所述预训练模型进行微调后得到的。

在一种可能的实现中,所述装置还包括:

数据处理模块,用于获取待处理数据,通过所述第二神经网络模型,对所述待处理数据进行处理,以得到处理结果;其中,所述待处理数据为图像数据、文本数据或音频数据。

第三方面,本申请实施例提供了一种执行设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行上述第二神经网络模型。

第四方面,本申请实施例提供了一种训练设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及其任一可选的方法。

第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

第六方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

第七方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

本申请实施例提供了一种模型训练方法,所述方法包括:获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。本申请提出对自监督学习采取增量训练的范式,基于不同的样本分布特征,确定不同的目标增量训练方法,在降低训练时长并节约数据存储空间的前提下,实现了效率与性能之间的平衡。

附图说明

图1为人工智能主体框架的一种结构示意图;

图2为一种应用场景系统示意;

图3为一种系统示意;

图4为一种应用场景系统示意;

图5为一种应用场景系统示意;

图6为本申请实施例提供的一种模型训练方法的实施例示意;

图7为本申请实施例中的一种模型训练方法的实施例示意;

图8为一种训练样本的数据分布的示意;

图9为本申请实施例的效果示意;

图10为本申请实施例的效果示意;

图11为本申请实施例提供的模型训练装置的一种结构示意图;

图12为本申请实施例提供的执行设备的一种结构示意图;

图13为本申请实施例提供的训练设备一种结构示意图;

图14为本申请实施例提供的芯片的一种结构示意图。

具体实施方式

下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。

下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据

基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理

数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。

本申请可以应用于人工智能领域的自然语言处理领域、图像处理领域以及音视频处理领域中,下面以图像处理领域为例将对多个落地到产品的多个应用场景进行介绍。

为了更好地理解本申请实施例的方案,下面先结合图2至图3对本申请实施例可能的应用场景进行简单的介绍。

应用场景1:ADAS/ADS视觉感知系统

如图2所示,在ADAS和ADS中,需要实时进行多类型的2D目标检测,包括:动态障碍物(行人(Pedestrian)、骑行者(Cyclist)、三轮车(Tricycle)、轿车(Car)、卡车(Truck)、公交车(Bus)),静态障碍物(交通锥标(TrafficCone)、交通棍标(TrafficStick)、消防栓(FireHydrant)、摩托车(Motocycle)、自行车(Bicycle)),交通标志((TrafficSign)、导向标志(GuideSign)、广告牌(Billboard)、红色交通灯(TrafficLight_Red)/黄色交通灯(TrafficLight_Yellow)/绿色交通灯(TrafficLight_Green)/黑色交通灯(TrafficLight_Black)、路标(RoadSign))。另外,为了准确获取动态障碍物的在3维空间所占的区域,还需要对动态障碍物进行3D估计,输出3D框。为了与激光雷达的数据进行融合,需要获取动态障碍物的Mask,从而把打到动态障碍物上的激光点云筛选出来;为了进行精确的泊车位,需要同时检测出泊车位的4个关键点;为了进行构图定位,需要检测出静态目标的关键点。使用本申请实施例中训练得到的第二神经网络模型中完成上述的全部或一部分功能。

应用场景2:手机美颜功能

在手机中,通过本申请实施例提供的第二神经网络模型可以检测出人体的Mask和关键点,可以对人体相应的部位进行放大缩小,比如进行收腰和美臀操作,从而输出美颜的图像。

应用场景3:图像分类场景:

物体识别装置在获取待分类图像后,采用本申请的物体识别方法获取待分类图像中的物体的类别,然后可根据待分类图像中物体的类别对待分类图像进行分类。对于摄影师来说,每天会拍很多照片,有动物的,有人物,有植物的。采用第二神经网络模型可以快速地将照片按照照片中的内容进行分类,可分成包含动物的照片、包含人物的照片和包含植物的照片。

对于图像数量比较庞大的情况,人工分类的方式效率比较低下,并且人在长时间处理同一件事情时很容易产生疲劳感,此时分类的结果会有很大的误差;而采用第二神经网络模型可以快速地将图像进行分类,并且不会有误差。

应用场景4:商品分类:

物体识别装置获取商品的图像后,然后采用第二神经网络模型获取商品的图像中商品的类别,然后根据商品的类别对商品进行分类。对于大型商场或超市中种类繁多的商品,采用第二神经网络模型可以快速完成商品的分类,降低了时间开销和人工成本。

下面结合图3对本申请实施例提供的系统架构进行详细的介绍。图3为本申请一实施例提供的系统架构示意图。如图3所示,系统架构500包括执行设备510、训练设备520、数据库530、客户设备540、数据存储系统550以及数据采集系统560。

执行设备510包括计算模块511、I/O接口512、预处理模块513和预处理模块514。计算模块511中可以包括目标模型/规则501,预处理模块513和预处理模块514是可选的。

数据采集设备560用于采集训练数据。在采集到训练数据之后,数据采集设备560将这些训练数据存入数据库530,训练设备520基于数据库530中维护的训练数据(例如本申请实施例中的M批batch训练样本)训练得到目标模型/规则501(例如是对本申请实施例中的第一神经网络模型进行训练,得到第二神经网络模型)。

需要说明的是,在实际应用中,数据库530中维护的训练数据不一定都来自于数据采集设备560的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备520也不一定完全基于数据库530维护的训练数据进行目标模型/规则501的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

根据训练设备520训练得到的目标模型/规则501可以应用于不同的系统或设备中,如应用于图3所示的执行设备510,所述执行设备510可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备,车载终端等,还可以是服务器或者云端等。在图3中,执行设备510配置输入/输出(input/output,I/O)接口512,用于与外部设备进行数据交互,用户可以通过客户设备540向I/O接口512输入数据。

预处理模块513和预处理模块514用于根据I/O接口512接收到的输入数据进行预处理。应理解,可以没有预处理模块513和预处理模块514或者只有的一个预处理模块。当不存在预处理模块513和预处理模块514时,可以直接采用计算模块511对输入数据进行处理。

在执行设备510对输入数据进行预处理,或者在执行设备510的计算模块511执行计算等相关的处理过程中,执行设备510可以调用数据存储系统550中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统550中。

最后,I/O接口512将处理结果,如处理后得到的处理结果呈现给客户设备540,从而提供给用户。

在图3所示情况下,用户可以手动给定输入数据,该“手动给定输入数据”可以通过I/O接口512提供的界面进行操作。另一种情况下,客户设备540可以自动地向I/O接口512发送输入数据,如果要求客户设备540自动发送输入数据需要获得用户的授权,则用户可以在客户设备540中设置相应权限。用户可以在客户设备540查看执行设备510输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备540也可以作为数据采集端,采集如图所示输入I/O接口512的输入数据及输出I/O接口512的输出结果作为新的样本数据,并存入数据库530。当然,也可以不经过客户设备540进行采集,而是由I/O接口512直接将如图所示输入I/O接口512的输入数据及输出I/O接口512的输出结果,作为新的样本数据存入数据库530。

值得注意的是,图3仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图3中,数据存储系统550相对执行设备510是外部存储器,在其它情况下,也可以将数据存储系统550置于执行设备510中。

由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以xs(即输入数据)和截距1为输入的运算单元,该运算单元的输出可以为:

其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。

(2)深度神经网络

深度神经网络(Deep Neural Network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:

(3)自监督学习

机器学习作为AI领域的一个重要分支,在众多领域得到了广泛的应用。从学习方法的角度,机器学习可以分为监督式学习、自监督式学习(self-supervised learning)、半监督式学习、强化学习几大类。监督式学习,是指可以基于训练数据学习一个算法或建立一个模式,并以此算法或模式推测新的实例。训练数据,也称训练样本,是由输入数据和预期输出组成。机器学习的模型,也称机器学习模型,其预期输出,称为标签,其可以是一个预测的分类结果(称作分类标签)。自监督式学习与监督式学习的区别在于,自监督式学习的训练样本没有给定标签,机器学习模型通过分析训练样本,从而得到一定的成果。半监督学习,其训练样本一部分带有标签,另一部分没有标签,而无标签的数据远远多于有标签的数据。强化学习通过不断在环境中尝试,以取得最大化的预期利益,通过环境给予的奖励或惩罚,产生能获得最大利益的选择。

自监督学习可以被看作是机器学习的一种“理想状态”,模型直接从无标签数据中自行学习,无需标注数据。自监督学习的核心,在于如何自动为数据产生标签。

(4)增量训练

目前的机器学习算法的训练方式分为离线学习(online learning)方式和在线学习(online learning)方式。

在离线学习(也称离线训练)方式中,需要将训练样本集合中的样本批量输入机器学习模型来进行模型训练,训练所需数据量较大。离线学习,通常是用来训练大的或者复杂的模型,因此训练的过程往往比较耗时,处理数据量大。

在在线学习(也称在线训练)方式中,需要小批量或逐个采用训练样本集合中的样本来进行模型训练,训练所需数据量较小。在线学习往往应用于对即时性要求比较高的场景,增量学习(也称增量训练)方式是一种特殊的在线学习方式,不仅要求模型具备即时的对新模式的学习能力,更要求模型具备抗遗忘能力,也就是要求模型既能记住历史学习过的模式,又能对新的模式进行学习。

增量训练(sequential training)是指利用连续的数据流训练模型,随着时间的推移,更多的数据逐渐可用,同时旧数据可能由于存储限制或隐私保护等原因而逐渐不可用,并且学习任务的类型和数量没有预定义(例如分类任务中的类别数)。

(5)联合训练

联合训练(joint training)是指在所有已知数据上训练模型,效果最好,通常被认为是增量学习的性能上界,但训练时间长,所需数据存储空间大,成本高。

参照图6,图6为本申请实施例提供的一种模型训练方法的实施例示意,本申请实施例提供的一种模型训练方法可以应用在手机、平板、笔记本电脑、智能穿戴设备等终端设备上,或者应用在云侧的服务器上,如图6示出的那样,本申请实施例提供的一种模型训练方法,包括:

601、获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数。

本申请实施例中,可以获取到第一神经网络模型,其中所述第一神经网络模型可以为预训练模型或者对所述预训练模型进行微调后得到的。

其中,可以先对一个任务进行训练得到一套模型参数,该得到的模型参数可以作为预训练模型,然后利用该预训练模型进行初始化,再利用预训练模型对其他任务进行训练,得到其他任务适配的模型(该过程也可以称之为微调)。

在一些场景中,云侧的服务器可以将预训练模型或者对所述预训练模型进行微调后得到的模型部署在租户侧,在一些场景中,需要对租户侧部署的模型进行更新,例如需要针对于新任务相关的训练样本进行模型的增量训练,如图4所示,不同的云上租户可以利用各自的应用数据进行无监督的增量训练,来改善公共的预训练模型,增量训练所使用的的训练数据可以包括来自租户的应用数据反馈、租户的回访数据以及公开无标签训练数据,如图5所示,公有云维护了一个共有的预训练模型,增量训练所使用的的训练数据可以包括租户的回访数据、公开无标签训练数据等等。

本申请实施例中,第一神经网络模型可以为上述租户侧部署的预训练模型或者对所述预训练模型进行微调后得到的模型,M批batch训练样本为用于对第一神经网络模型进行模型训练时所采用的训练数据。

其中,M批batch训练样本中的每批batch训练样本用于作为对第一神经网络进行一批batch模型训练所需的训练样本,进而M批batch训练样本用于作为对第一神经网络进行M批batch模型训练所需的训练样本。

在一种可能的实现中,M批batch训练样本可以为图像数据、文本数据或者音频数据,这里并不限定。

602、根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘。

在进行增量训练时,会对模型造成灾难性遗忘的问题,其中,灾难性遗忘可以指模型学习了新的知识之后,会遗忘掉之前习得的知识。在一个已经训练好的模型中,训练新的任务,之后测试旧的任务,旧任务的准确率会比学习新任务前降低很多。随着任务数量的增加,旧任务的准确率会逐渐降低,即遗忘现象。所以,需要尽可能地在原有模型的基础上,以尽可能小的代价与成本解决灾难性遗忘问题。

本申请实施例中,可以基于各批batch训练样本之间的样本分布特征来确定基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度。

本申请实施例中,各批batch训练样本之间的样本分布特征可以包括样本增量、随机类别增量、语义差异类别增量和风格转变,接下来针对这四种样本分布特征分别进行说明:

参照图8,样本增量(instance incremental)是增量学习中一种经典数据流形式,在训练中,独立同分布的数据被分为多个batch,也就是各批batch训练样本包括的训练样本的类别相同,各批batch训练样本依次被用于模型训练,且在每次训练时,仅当前batch的数据是可见的。

参照图8,随机类别增量(random class incremental)也是增量训练中一种常见的数据流。在训练中,训练样本被分为多个batch依次用于模型训练。每个batch中的训练样本类别不重合,每次训练出现的类别均为新类别,也就是各批batch训练样本包括的训练样本的语义相同且类别不同,且每次训练时,仅当前batch的训练样本是可见的。

参照图8,语义差异类别增量(distant class incremental)是指每个batch中的训练样本其类别的语义尽可能不相关,也就是各批batch训练样本包括的训练样本的语义不同。如第一个batch为动物,第二个batch为植物,在语义树中没有相关的语义。

参照图8,风格转变(domain incremental)是指每个batch的训练样本来自不同的领域。以DomainNet数据为例,第一个batch的训练样本可以为自然图片,第二个batch的训练样本为简笔画,第三个batch的训练样本为卡通图片。

本申请实施例中,语义差异类别增量类训练数据和风格转变类训练数据在进行增量训练时对模型产生的灾难性遗忘的程度是远远大于样本增量类训练数据以及随机类别增量类训练数据。

在一种可能的实现中,基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度越大,所述目标增量训练方法在进行模型的增量训练时实现的抗灾难性遗忘的作用程度越大。

本申请实施例中,由于一些特征的训练样本在进行增量训练时,会使得模型出现灾难性遗忘,例如当各批batch样本之间的语义差异度过大或者是来源于不同的领域,在这种情况,为了能够保证模型的精度,需要采用一些抗灾难性遗忘方法来降低模型在进行增量学习时出现的灾难性遗忘的程度,且产生的灾难性遗忘的程度越大,所述目标增量训练方法在进行模型的增量训练时实现的抗灾难性遗忘的作用程度需要越大。

接下来描述本申请实施例中的目标增量训练方法的几种示例:

本申请实施例中,目标增量训练方法可以包括如下的至少一种:基础增量训练、基于参数正则化的增量训练、基于训练样本回放的增量训练;

其中,所述基础增量训练表示依次采用所述M批batch训练样本中的各批batch训练样本,来进行自监督训练。

具体的,可以参照图7,基础增量训练考虑无标签数据

其中,所述基于参数正则化的增量训练表示在进行所述自监督训练时,所述自监督训练的损失函数包括正则化约束。

具体的,基于参数正则化的增量学习通过给新任务的损失函数施加约束的方法来保护旧知识不被新知识覆盖。具体来讲,以通过记忆感知突触(memory aware synapses,MAS)来实现参数正则化为例,对于每个任务task,在训练完该任务之后,计算网络模型中每个参数θ

其中,所述基于训练样本回放的增量训练表示在进行所述自监督训练时,各批batch模型训练所采用的训练样本可以包括相邻上一批batch模型训练所采用的训练样本中的部分训练样本。

具体的,基于训练样本回放的增量训练在训练新任务时,一部分具有代表性的旧数据会被保留并用于模型复习曾经学到的旧知识。例如,在第b次训练中,第(b-1)个batch中10%的数据会被添加到当前batch的训练中。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述样本增量的形式时(本申请实施例也可以称之为满足第一预设条件的训练样本),由于在基于样本增量类型的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较小,则可以确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述随机类别增量时(本申请实施例也可以称之为满足第二预设条件的训练样本),由于在基于随机类别增量类型的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较小,则同样可以确定所述目标增量训练方法为所述基础增量训练,且在通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述语义差异类别增量时(本申请实施例也可以称之为满足第三预设条件的训练样本),由于在基于语义差异类别增量的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较大,则可以确定所述目标增量训练方法为所述基础增量训练和所述基于参数正则化的增量训练。

在一种可能的实现中,当M批batch训练样本的数据流分布为上述风格转变时(本申请实施例也可以称之为满足第四预设条件的训练样本),由于在基于风格转变的训练样本对模型进行增量学习时,对模型造成的灾难性遗忘的影响程度较大,则可以确定所述目标增量训练方法为所述基础增量训练和所述基于训练样本回放的增量训练。

603、根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。

本申请实施例中,在确定出目标增量训练方法之后,可以根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。

关于如何基于对所述第一神经网络模型进行自监督训练可以参照现有的自监督学习的实现,这里并不限定。

本申请实施例中,训练得到的第二神经网络模型可以用于进行推理,具体的,可以获取待处理数据,通过所述第二神经网络模型,对所述待处理数据进行处理,以得到处理结果;其中,所述待处理数据为图像数据、文本数据或音频数据。

示例性的,以基于公开数据集ImageNet进行自监督持续学习为例,为了模拟语义差异类别增量,根据WordNet树将ImageNet分为四个子集,同时最大化子集间的语义差异。在实验中,在第九级分类法下,不同子集中的数据标签没有公共的父节点。具体数据划分见下表:

采用自监督学习方法MoCo-v2来进行增量自监督预训练。MoCo-v2使用有两个编码器组成的孪生网络进行对比学习,并使用InfoNCE(一种对比损失函数)来最大化正样本相似度,最小化负样本的相似度。

针对于基础增量训练,采用MoCo-v2的训练范式,采用标准的Resnet-50主干网络。考虑无标签数据

针对于基于训练样本回放的增量训练。由于数据集为语义差别类别增量场景,需要在基础增量训练算法上加入训练样本回放。在训练新任务时,第(b-1)个batch中10%的数据可以被添加到当前batch的训练中。

针对于基于参数正则化的增量训练,在增量训练中,通过记忆感知突触(memoryaware synapses,MAS)来实现参数正则化,对于每个任务task,在训练完该任务之后,计算网络模型中每个参数θ

在三个不同的下游任务进行下游任务评估,即线性分类,小样本分类和检测,评估预训练模型的迁移性能。对于分类任务,考虑12个图像分类数据集,包括Food-101,CIFAR10,CIFAR100,Birdsnap,SUN397,Standard Cars,FGVC Aircraft,VOC2007,DTD,Oxford-IIIT Pets,Caltech-101和Oxford 102 Flowers。对于检测任务,在PASCAL VOC检测数据集上评估预训练模型性能。检测的训练数据来自VOC2007和VOC2012,测试数据来自VOC2007。

增量自监督预训练模型(ST)与联合训练(JT)的比较可以如图9所示。由图可见,增量自监督预训练的模型迁移性能与联合训练差距较小。在加入MAS和MAS+回放(MAS+)后,与联合训练的差距进一步缩小。

参照下表以及图10,下表以及图10比较了增量预训练(ST)与联合训练(JT)的训练效率与数据存储情况。由实验结果可知,自监督的增量预训练,在模型性能基本不变情况下,可以大幅度提升模型的训练效率,减少75%训练时间,节约75%数据存储空间。

本申请实施例提供了一种模型训练方法,所述方法包括:获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。本申请提出对自监督学习采取增量训练的范式,基于不同的样本分布特征,确定不同的目标增量训练方法,在降低训练时长并节约数据存储空间的前提下,实现了效率与性能之间的平衡。

参照图11,本申请实施例还提供了一种模型训练装置1100,如图11所示,本申请实施例提供的模型训练装置1100,包括:

获取模块1101,用于获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;

关于获取模块1101的具体描述可以参照上述实施例中步骤601的描述,这里不再赘述。

确定模块1102,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;

关于确定模块1102的具体描述可以参照上述实施例中步骤602的描述,这里不再赘述。

模型训练模块1103,用于根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。

关于模型训练模块1103的具体描述可以参照上述实施例中步骤603的描述,这里不再赘述。

在一种可能的实现中,所述产生的灾难性遗忘的程度越大,所述目标增量训练装置在进行模型的增量训练时实现的抗灾难性遗忘的作用程度越大。

在一种可能的实现中,所述目标增量训练装置包括如下的至少一种:

基础增量训练、基于参数正则化的增量训练、基于训练样本回放的增量训练;

其中,所述基础增量训练表示依次采用所述M批batch训练样本中的各批batch训练样本,来进行自监督训练;

所述基于参数正则化的增量训练表示在进行所述自监督训练时,所述自监督训练的损失函数包括正则化约束;

所述基于训练样本回放的增量训练表示在进行所述自监督训练时,各批batch模型训练所采用的训练样本包括相邻上一批batch模型训练所采用的训练样本中的部分训练样本。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第一预设条件,确定所述目标增量训练装置为所述基础增量训练,且在通过所述目标增量训练装置,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束;其中,所述第一预设条件包括:各批batch训练样本包括的训练样本的类别相同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第二预设条件,确定所述目标增量训练装置为所述基础增量训练,且在通过所述目标增量训练装置,对所述第一神经网络模型进行自监督训练时,所述自监督训练的损失函数不包括正则化约束,所述第二预设条件包括:各批batch训练样本包括的训练样本的语义相同且类别不同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第三预设条件,确定所述目标增量训练装置为所述基础增量训练和所述基于参数正则化的增量训练,所述第三预设条件包括:各批batch训练样本包括的训练样本的语义不同。

在一种可能的实现中,所述确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征满足第四预设条件,确定所述目标增量训练装置为所述基础增量训练和所述基于训练样本回放的增量训练,所述第四预设条件包括:各批batch训练样本包括的训练样本所来自的领域不同。

在一种可能的实现中,所述第一神经网络模型为预训练模型或者对所述预训练模型进行微调后得到的。

在一种可能的实现中,所述装置还包括:

数据处理模块,用于获取待处理数据,通过所述第二神经网络模型,对所述待处理数据进行处理,以得到处理结果;其中,所述待处理数据为图像数据、文本数据或音频数据。

本申请实施例提供了一种模型训练装置,所述装置包括:获取模块,用于获取第一神经网络模型以及M批batch训练样本,所述M为大于1的正整数;确定模块,用于根据所述M批batch训练样本中各批batch训练样本之间的样本分布特征,确定目标增量训练方法,其中,所述样本分布特征与基于所述各批batch训练样本进行增量训练时模型所产生的灾难性遗忘的程度有关,所述目标增量训练方法用于在对模型进行增量训练时实现抗灾难性遗忘;模型训练模块,用于根据所述M批batch训练样本,通过所述目标增量训练方法,对所述第一神经网络模型进行自监督训练,以得到第二神经网络模型。本申请提出对自监督学习采取增量训练的范式,基于不同的样本分布特征,确定不同的目标增量训练方法,在降低训练时长并节约数据存储空间的前提下,实现了效率与性能之间的平衡。

接下来介绍本申请实施例提供的一种执行设备,请参阅图12,图12为本申请实施例提供的执行设备的一种结构示意图,执行设备1200具体可以表现为虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或服务器等,此处不做限定。具体的,执行设备1200包括:接收器1201、发射器1202、处理器1203和存储器1204(其中执行设备1200中的处理器1203的数量可以一个或多个,图12中以一个处理器为例),其中,处理器1203可以包括应用处理器12031和通信处理器12032。在本申请的一些实施例中,接收器1201、发射器1202、处理器1203和存储器1204可通过总线或其它方式连接。

存储器1204可以包括只读存储器和随机存取存储器,并向处理器1203提供指令和数据。存储器1204的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1204存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。

处理器1203控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器1203中,或者由处理器1203实现。处理器1203可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1203可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1203可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1204,处理器1203读取存储器1204中的信息,结合其硬件完成上述方法的步骤。

接收器1201可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1202可用于通过第一接口输出数字或字符信息;发射器1202还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1202还可以包括显示屏等显示设备。

本申请实施例中,在一种情况下,处理器1203,用于执行通过图6对应实施例描述的模型训练方法训练得到的第二神经网络模型。

本申请实施例还提供了一种训练设备,请参阅图13,图13是本申请实施例提供的训练设备一种结构示意图,具体的,训练设备1300由一个或多个服务器实现,训练设备1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1324(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1324可以设置为与存储介质1330通信,在训练设备1300上执行存储介质1330中的一系列指令操作。

训练设备1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358;或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

本申请实施例中,中央处理器1324,用于执行图6对应实施例描述的模型训练方法。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。

本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体的,请参阅图14,图14为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 1400,NPU 1400作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1403,通过控制器1404控制运算电路1403提取存储器中的矩阵数据并进行乘法运算。

在一些实现中,运算电路1403内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1403是二维脉动阵列。运算电路1403还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1403是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1402中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1401中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1408中。

统一存储器1406用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1405,DMAC被搬运到权重存储器1402中。输入数据也通过DMAC被搬运到统一存储器1406中。

BIU为Bus Interface Unit即,总线接口单元1410,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1409的交互。

总线接口单元1410(Bus Interface Unit,简称BIU),用于取指存储器1409从外部存储器获取指令,还用于存储单元访问控制器1405从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1406或将权重数据搬运到权重存储器1402中或将输入数据数据搬运到输入存储器1401中。

向量计算单元1407包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元1407能将经处理的输出的向量存储到统一存储器1406。例如,向量计算单元1407可以将线性函数;或,非线性函数应用到运算电路1403的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1407生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1403的激活输入,例如用于在神经网络中的后续层中的使用。

控制器1404连接的取指存储器(instruction fetch buffer)1409,用于存储控制器1404使用的指令;

统一存储器1406,输入存储器1401,权重存储器1402以及取指存储器1409均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

相关技术
  • 图像检测方法及相关模型的训练方法、相关装置和设备
  • 图像优化方法及相关模型的训练方法和相关装置、设备
技术分类

06120113147916