分散式人工智能(AI)/机器学习训练系统技术方案

技术编号:34237083 阅读:15 留言:0更新日期:2022-07-24 08:25
描述了一个分散式训练平台,用于训练人工智能(AI)模型,其中训练数据(例如医学图像)分布在多个站点(节点)上,且由于保密、法律或其它原因,每个站点的数据不能被共享或离开站点,因此无法复制到中央位置进行训练。该方法包括:在每个节点处本地训练教师模型,然后将每个教师模型移动到中央节点,并使用它们以使用迁移数据集训练学生模型。通过使用节点之间的区域间对等连接来设置云服务以使这些节点以单个集群的方式出现,有利于实现这一点。在一个变体中,可以在每个节点处使用多个经过训练的教师模型训练学生模块。在另一个变体中,训练多个学生模型,其中由每个教师模型在其被训练的节点处训练每个学生模型,且一旦训练了多个学生模型,就从多个经过训练的学生模型生成系综模型。可以使用损失函数加权和节点下采样实现负载均衡,以提高准确度和时间/成本效率。率。率。

Decentralized artificial intelligence (AI) / machine learning training system

【技术实现步骤摘要】
【国外来华专利技术】分散式人工智能(AI)/机器学习训练系统
[0001]优先权文件
[0002]本申请要求2019年9月23日提交的专利技术名称为“分散式机器学习训练系统(DECENTRALISED MACHINE LEARNING TRAINING SYSTEM)”的澳大利亚临时专利申请第2019903539号的优先权,其全部内容通过引用合并于此。


[0003]本专利技术涉及一种人工智能和机器学习计算系统。在特定形式中,本专利技术涉及用于训练AI/机器学习计算系统的方法和系统。

技术介绍

[0004]传统的计算机视觉技术识别图像的关键特征并将其表示为固定长度的向量描述。这些特征通常是“低级”特征,例如对象边缘。这些特征提取方法(SIFT、SURF、HOG、ORB等)由研究人员针对每个关注领域(医学、科学、通用图像等)手工设计,具有一定程度的重叠和可重用性。通常,特征提取器由一个特征提取矩阵组成,该矩阵在N
×
N个图像块上进行卷积。块的大小取决于所使用的技术。但是,手工制作准确特征不可能考虑更微妙的线索如纹理和场景或背景上下文。
[0005]另一方面,包括深度学习和机器学习技术在内的人工智能(AI)提出了从大型数据集中“学习”好的特征和表示(即“描述”)的问题。计算机视觉中,当前的标准方法是使用卷积神经网络(CNN)来学习这些特征表示。类似地,对于特征提取方法,在N
×
N个图像块(大小取决于配置)上应用卷积。然而,并非是手工制作权重矩阵,而是对卷积的参数进行优化以实现某些目标,例如通过计算与任务相关的损失函数(分类、分割、对象检测等)。此外,CNN并不依赖于单个卷积(或特征提取),而是使用多层卷积,其中将一个层的被提取的特征传递到下一个要组合的卷积,提取下一个特征表示。确切的网络架构(各层如何连接在一起)取决于模型的任务和所期望的特征(准确度与速度、训练稳定性等)。这种分层方法允许模型学习将低级特征(如,类似于简单特征提取方法的对象边缘)组合成更复杂的表示,与传统方法相比,这些更复杂的表示通常更适合下游任务,例如图像分类、对象检测、图像分割等。用于训练人工智能/机器学习模型的一般处理包括:数据的清洗和预处理(其可能包括对数据集内的结果进行标记)、特征的提取(例如,使用计算机视觉库)、模型配置(例如,模型架构和机器学习超参数)的选择,将数据集拆分为训练数据集、验证数据集和测试数据集,在训练数据集上使用深度学习和/或机器学习算法训练模型,其中涉及在一组迭代(被称为epoch,即纪元)中,修改和优化模型参数或权重,然后根据验证数据集和/或测试数据集的性能选择或生成最佳模型。
[0006]通过对模型的参数或权重进行优化以将与任务相关的损失函数最小化,来训练神经网络。该损失函数对衡量神经网络在优化给定问题的参数方面成功的方法进行了编码。例如,如果我们考虑一个二值图像分类问题,即,将一组图像分成两个类别,首先输入图像通过模型运行,在该模型中计算二值输出标签例如0或1以表示被关注的两个类别。然后将
预测输出与真实标签比较,计算损失(或错误)。在二元分类示例中,二元交叉熵损失函数是最常用的损失函数。使用从该函数获得的损失值,我们可以计算网络中每一层的相对于输入的误差梯度。这个过程被称为反向传播。梯度是描述在优化过程中改变神经网络参数(或“权重”)以将损失函数最小化的方向的向量。直观地说,这些梯度告诉网络如何修改这些权重,以获得对每个图像的更准确的预测。然而,在实践中,不可能在单次迭代或训练的“纪元”中计算网络更新。通常,这是由于网络需要大量数据并包含大量可以修改的参数。为了解决这个问题,通常使用多个小批次数据而不是整个数据集。这些批次中的每个批次都是从数据集内随机抽取的,并选择足够大的批次大小来近似整个数据集的统计信息。然后将优化应用于各小批次,直到满足停止条件(即,直到收敛,或根据预定义的度量达到令人满意的结果)。这个过程被称为随机梯度下降(SGD),是优化神经网络的标准过程。通常,优化器会运行数十万到数百万次迭代。而且,神经网络优化是一个“非凸”问题,这意味着在损失函数定义的参数空间中通常存在许多局部最小值。直观地说,这意味着由于网络中的权重和数据之间的复杂相互作用,有许多几乎相等有效的权重组合会导致几乎相同的输出。
[0007]深度学习模型或包含多层CNN的神经网络架构通常使用图形处理单元(GPU)进行训练。与中央处理器(CPU)相比,GPU在计算线性代数方面非常高效。因此,它们在高性能计算(HPC)中得到了广泛应用,尤其是在训练神经网络中。
[0008]深度学习方法的一个限制是它们需要大量数据以从初始化(10万以上的样本)开始训练。这是由于模型包含大量参数,根据模型和任务的不同,参数在100万到10亿个左右。然后从随机初始化中调整或优化这些参数。使用的最佳随机化策略通常是特定于任务的和特定于网络的,且可以遵循许多最佳实践来设置初始化值。但是,当可访问的数据不足时,从头开始训练通常会导致数据“过度拟合”。这意味着该模型在进行训练的数据上表现良好,但无法泛化到新的未见过的数据。这通常是由于过度参数化,即,模型中有太多参数适合拟合问题,因此它已经记忆或过度拟合了训练示例。用于对抗过度拟合的技术通常称为“正则化”技术。
[0009]当数据不足(例如,少于10万示例)时,可以不从随机初始化开始,而从一个已经在另一个更大的数据集上进行了训练的模型开始;数据不足通常发生在医学图像或高数据完整性是优质资源的其它应用程序的情况下。这种方法称为“预训练”。其具有正则化效果,并允许模型在更少量的数据上进行训练,同时保持最佳性能(充分最小化的损失函数)。而且,从该数据集学习的特征是通用的,且通常可以很好地转化为来自新领域的数据。例如,模型可以在ImageNet(一个通用的、可公开地获取的图像数据集)上进行预训练,然后在医学数据集上微调模型。这个过程被称为“微调”或“迁移学习”,这些术语通常可以互换使用。
[0010]提高神经网络性能的一种简单方法是增加模型中的层数。许多最新的模型包含的参数超出了适合单个GPU的合理范围。而且,由于训练深度学习模型需要大量数据和大量迭代更新,因此有必要利用多个GPU和多台机器。这个过程被称为分布式训练。
[0011]在进行分布式训练时,需要选择一种分布策略。其定义了如何在不同的工作者节点(worker node)之间分配工作负载。用于它的两种方法是模型并行化和数据并行化。模型并行化通过将模型权重分割成N个分区来拆分工作负载,其中N是在其中分割工作的工作者数量。然后,每个段一个接一个地依次处理,中间值通过某种形式的网络连接进行通信。当模型的各个部分之间存在明显的异步性时,此方法会很有用。例如,考虑一个采用不同模式
(图像和音频)的两个输入的模型。这些输入中的每一个都可以独立处理,然后在模型的后期结合在一起。然而,这个过程不一定是更有效的标准训练,因为网络传输成本可能超过计算性能的提高。因此,模型并行化通常更适于扩展模型的大小,例如,通过使用包含比适合单个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在包括多个节点的分布式数据集上训练人工智能(AI)模型的方法,其中,每个节点包括一个节点数据集,且这些节点不能访问其它节点数据集,包括:生成多个经过训练的教师模型,其中每个教师模型是在一个节点处在所述节点数据集上本地训练的深度神经网络模型;将所述多个经过训练的教师模型移动到中央节点,其中移动教师模型包括将表示所述教师模型的一组权重发送到所述中央节点;使用知识蒸馏,并使用所述多个经过训练的教师模型和迁移数据集,训练学生模型。2.如权利要求1所述的方法,其中,在将所述多个经过训练的教师模型移动到中央节点之前,对每个经过训练的教师笔记执行合规性检查,以检查所述模型不包含来自其被训练的那个节点的私有数据。3.如权利要求1或2所述的方法,其中,所述迁移数据集是从所述多个节点数据集内提取的约定传输数据。4.如权利要求1或2所述的方法,其中,所述迁移数据集为包括多个节点迁移数据集的分布式数据集,其中节点迁移数据集是节点本地的。5.如权利要求1或2所述的方法,其中,所述迁移数据集是从所述多个节点数据集中提取的约定传输数据和多个节点迁移数据集的混合,其中,节点本地迁移数据集是节点本地的。6.如前述权利要求中任一项所述的方法,其中,所述节点存在于多个分离的、地理上孤立的地点。7.如前述权利要求中任一项所述的方法,其中,训练所述学生模型的步骤包括:在每个所述节点处使用所述节点数据集,并使用所述多个经过训练的教师模型,训练所述学生模型。8.如权利要求7所述的方法,其中,在使用所述多个经过训练的教师模型训练所述学生模型之前,该方法还包括:通过在每个所述节点之间建立多个区域间对等连接,形成用于训练所述学生模型的单个训练集群,且其中所述迁移数据集包括每个所述节点数据集。9.如权利要求7或8所述的方法,其中,在每个所述节点处训练所述学生模型后,将所述学生模型发送到主节点,将所述学生模型的副本发送到每个所述节点并分配为工作者节点,所述主节点在每个批次之后收集并平均所有工作者节点的权重,以更新所述学生模型。10.如权利要求9所述的方法,其中,在将所述学生模型发送到所述主节点之前,对所述学生模型执行合规性检查,以检查所述模型不包含来自其被训练的那个节点的私有数据。11.如前述权利要求中的任一项所述的方法,其中,所述训练所述学生模型的步骤包括:训练多个学生模型,其中每个学生模型在第一节点处为教师模型,其是通过将所述学生模型移动到另一个节点并在该节点处使用所述节点数据集并使用所述教师模型训练学生模型,而在其它节点处由多个教师模型训练的,且一旦多个学生模型都被训练了,就从所述多个经过训练的学生模型生成系综模型。12.如权利要求11所述的方法,其中,在训练多个学生模型之前,该方法还包括:通过在每个所述节点之间建立多个区域间对等连接,形成用于训练所述学生模型的单
个训练集群。13.如权利要求11或12所述的方法,其中,在将所述学生模型移动到另一个节点之前,对学生模型执行合规性检查,以检查所述模型不包含来自其被训练的那个节点的私有数据。14.如权利要求11所述的方法,其中,每个学生模型在其已经在预定阈值数量的节点处被训练之后被训练。15.如权利要求11所述的方法,其中,每个学生模型在其已经在至少阈值数量的节点处针对预定数量的数据进行训练之后被训练。16.如权利要求11所述的方法,其中,每个学生模型在其已经在所述多个节点中的每一个节点处被训练之后被训练。17.如权利要求11所述的方法,其中,所述系综模型是使用平均投票法获得的。18.如权利要求11所述的方法,其中,所述系综模型是使用加权平均获得的。19.如权利要求11所述的方法,其中,所述系综模型是使用专家层混合(学习加权)获得的。20.如权利要求11所述的方法,其中,所述系综模型是使用蒸馏法获得的,其中从所述多个学生模型中蒸馏出最终模型。21.如权利要求2、10或13所述的方法,其中,对模型执行合规检查包括:检查所述模型是否已经记住了数据的具体示例。22.如权利要求21所述的方法,其中,如果所述合规检查返回FALSE值,则在具有不同参数的数据上重新训练所述模型,直到得到满足所述合规检查的模型,或者如果尝试N次都没有得到模型,则要么丢弃所述模型,要么加密所述模型并共享所述模型,如果数据政策允许来自相应节点的数据的加密共享。23.如前述权利要求中任一项所述的方法,还包括:使用加权来调整蒸馏损失函数以补偿每个节点处的数据点数量的差异。24.如权利要求23所述的方法,其中,所述蒸馏损失函数具有以下形式:Loss(x,y)=CrossEntropyLoss(S(x),y)+D(S(x),T(x)其中CrossEntropyLoss是损失函数,x表示要最小化的一批训练数据,y是与所述批次x的每个元素相关联的目标(真实值),S(x)和T(x)是从所述学生模型和教师模型获得的分布,D是散度度量。25.如前述权利要求中任一项所述的方法,其中,一个纪元包括每个节点数据集的完整训练阶段(full training pass),且在每个纪元期间,每个工作者对可用样本数据集的子集进行采样,其中所述子集大小基于最小数据集的大小,且根据最大数据集的大小与最小数据集的大小的比值增加纪元的数量。26.如前述权利要求中任一项所述的方法,其中,将所述多个节点分成k个集群,其中k小于节点总数,且在每个集群中分别地执行如权利要求1至25中任一项所述的方法以生成k个集群模型,其中每个集群模型保存在集群代表节点上,在所述k个集群代表节点上执行如权利要求1至25中任一项所述的方法,其中所述多个节点包括所述k个集群代表节点。27.如权利要求26所述的方法,其中,创建一个或多个节点的附加层,且通过...

【专利技术属性】
技术研发人员:J
申请(专利权)人:普雷萨根私人有限公司
类型:发明
国别省市:

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

1