一种物理基础模型的训练方法与流程
未命名
08-29
阅读:88
评论:0

1.本发明涉及ai在科学计算的应用领域,具体涉及一种基于物理内嵌神经网络模型(pinns)的物理基础模型的训练方法,及计算机可读存储介质。
背景技术:
2.目前求解偏微分方程的科学计算数值方法主要有限差分法、有限元法、有限体积法等。这些方法通常都需要对计算区域或者计算空间进行离散化处理。离散化实质是用另外一个类似的表达式来近似连续封闭的数学表达式(如偏微分方程,微分方程)。
3.对于有限差分法:偏微分方程的离散化(在cfd(计算流体学)中是指对控制方程的偏导数用一组近似的代数差分代替,即把偏微分形式的控制方程组转化为代数方程组,求解这个方程组就能得到流场变量在离散网格点处的值)结合计算区域的数值离散化,结合边界上的已知函数值求解定义区域内部的网格上的函数值。
4.有限差分法的解题基础是用差商来代替微商(有限元法、有限体积法也类似),这样就将热传导微分方程转换为以节点温度为未知量的线性代数方程组,得到各节点的数值解。有限差分法是把原来求解物体内随空间、时间连续分布的温度问题,转化为求在时间领域和空间领域内有限个离散点的温度值问题,再用这些离散点上的温度值去逼近连续的温度分布。用不同方法定义差商可得到不同的差分格式:向前差分、向后差分、平均差分、中心差分、加列金格式等。不同的差分格式其误差和稳定性各不相同。如向前差分计算过程简便,但是属于有条件稳定的(向后差分则是无条件稳定的);而平均差分虽然精度较高,但容易发生振荡。
5.传统的科学计算数值方法求解偏微分方程上普遍存在几个问题:
6.1、维度灾难:如上图1a、1b所示,采用有限差分方法进行科学计算时,需要在计算域中的空间域和时间域上画网格、迭代计算网格节点处的差分方程的数值(图1a的计算域为二维空间,图1b的计算域为三维空间),网格的粗细决定了解的精度。对于d维n个网格的计算量是o(n^d),网格数目n根据计算域的不同可能是上百万、上千万、上亿个数大小,显然对于维度高,计算区域划分的网格量大的情况有限差分方法的计算量是庞大的。像n-s(纳维-斯托克斯)方程有多个变量的情况,对于高维求解计算量将是指数级爆炸增长,当前传统数值计算对于d=4的情况计算都是困难的,量子力学的多体问题就是个例子。
7.2、对于某些边界构型复杂的场景,网格生成较为复杂,而且每次一旦边界条件改变就需要重新计算。
8.3、求解反问题、反设计问题成本较高。
9.随着人工智能的发展,在科学计算领域的应用出现了物理内嵌神经网络(pinns:physics-informed neural networks)。pinns提出一种新的复合型的损失函数,由偏微分方程组部分、边界条件部分、初始条件部分三部分组成。由于加入了物理信息约束,pinns在没有任何输入数据的情况下(只指定边界条件和初始条件)就可以训练出目标神经网络。也有学者在原始pinns的基础上加入一些数据,形成偏微分方程部分、边界条件部分、初始条
件部分、数据部分四部分组成的损失函数以提高神经网络的模拟精度。为了能够得到一个对各种物理规律都适用的通用物理计算模型,训练过程所需要的算力大、且耗时长。
技术实现要素:
10.为了得到一个通用的物理基础模型,本发明提供一种物理基础模型的训练方法。该训练方法结合科学类多源数据以及分布式训练的思想,在降低对gpu芯片的算力要求的前提下,快速地训练出适应从微观到宏观尺度的多个物理数学微分方程、以及各种不同的初始条件/约束条件/工况参数的物理基础大模型。
11.本发明的第一方面提供一种物理基础模型的训练方法。该方法包括以下步骤:
12.s1、在保证每条训练样本完整性的前提下,划分训练样本数据得到若干份训练样本集,所述训练样本数据包括任一种物理方程在具体物理条件下的解或控制方程的残差;
13.s2、规定并记录训练样本中每个参数对应物理内嵌神经网络模型的输入参数;并行地将所述划分得到的训练样本集输入到若干gpu中,以并行地训练装在所述若干gpu中运行的各物理内嵌神经网络模型,每份训练样本集仅直接输入到一个gpu;
14.s3、将所述各物理内嵌神经网络模型训练后得到梯度进行梯度合并,以得到所述物理基础模型;所述梯度合并指:取各物理内嵌神经网络模型相同梯度参数取值的交集。
15.进一步地,所述步骤s1中在保留每条训练样本完整性的前提下,划分训练样本数据;包括以下一种或多种情形的组合:将训练样本数据按量划分为若干训练样本集;基于时间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的时间域不同;基于空间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的空间域不同;基于训练样本数据的物理控制方程将训练样本数据划分为若干训练样本集;根据训练样本数据对应物理控制方程类型,划分所述训练样本数据得到若干训练样本集,任意两份训练样本集对应的物理控制方程的数学方程类型不同。
16.在实施例1中,所述步骤s2实现为:设置若干gpu,每个gpu上均设置有完整的物理内嵌神经网络模型;并行地将所述步骤s1得到的训练样本集输入到所述若干gpu中,以并行地训练每个gpu运行的pinns模型;每份训练样本集仅输入一个gpu,任意两个gpu对应输入的训练样本集不同。对应上述实施例1,所述步骤s3实现为:对训练后的每个gpu运行的pinns模型进行梯度合并,所述梯度合并指取每个pinns对应的梯度取值的交集。
17.在实施例2中,所述步骤s2实现为:将所述若干gpu划分成若干gpu族,每个gpu族包括相同数量的gpu。按层拆分物理内嵌神经网络模型(pinns模型)以得到包括输入层在内的若干处理层。设置不同gpu族运行拆分pinns模型得到的不同处理层,同一个gpu族中所有的gpu都设置相同的一个或多个所述处理层。基于各所述处理层在所述物理内嵌神经网络模型中的处理次序,每个gpu族的gpu运行的处理层处理完数据后一对一地将结果输出到运行下一处理层的gpu族的gpu上进行下一步处理。并行地将划分好的训练样本集输入到运行所述输入层的gpu族中的gpu,以并行地训练装在所述若干gpu族中的各个物理内嵌神经网络模型;每份训练样本集仅输入到运行所述输入层gpu族中的一个gpu。
18.对应于实施例2,所述步骤s3实现为:分别对每个gpu族中相同的物理内嵌神经网络模型处理层进行合并(即取同一物理内嵌神经网络模型处理层对应的梯度参数的取值交集)以得到所述物理基础模型;或者、组合gpu族中属于同一个物理内嵌神经网络模型的处
理层得到训练后的各物理内嵌神经网络模型,对所述训练后的各物理内嵌神经网络模型进行梯度合并以得到所述物理基础模型。
19.在实施例3中,所述步骤s2实现为:按数组运算(如矩阵乘法)拆分物理内嵌神经网络模型,以得到输入层以及一套局部张量乘法模块;输入层加张量乘法子模块的数量为n。设置n个gpu族、每个gpu族包括m个gpu,n为大于3的整数,m为大于1的整数。为所述输入层和所述一套局部张量乘法模块的每一个的执行分别设置一个gpu族,不同gpu族中gpu运行的局部张量乘法模块不同。将所述n个gpu族的gpu划分成m个具有n个gpu的gpu组,每个所述gpu组中任一个gpu所属的gpu族与同一组中其它gpu所属的gpu族不同。每个所述gpu组中的n个gpu基于所述输入层和所述一套局部张量乘法模块在该物理内嵌神经网络模型中的数据处理次序进行数据传输,构成一个具有所述物理内嵌神经网络模型完整逻辑处理功能gpu网络。并行地将划分好的训练样本集输入运行所述输入层的gpu族中每个gpu,以并行地训练运行每个所述gpu组的物理内嵌神经网络模型,每份训练样本集仅输入到所述输入层的gpu族中的一个gpu。
20.对应于上述实施例3,所述步骤s3实现为:对所述m个gpu组对应的m个物理内嵌神经网络模型进行梯度合并以得到所述物理基础模型。
21.与上述方法相对应,本发明还提供一种计算机可读存储介质。该计算机可读存储介质存储有程序代码;其特征在于,所述程序代码在被计算机执行时,实现上述物理基础模型的训练方法。
22.本发明提供的技术方案不仅能够快速地基于大量的科学类多源数据产生,适用于对不同物理数学微分方程在不同条件下进行求解的物理基础模型;且对训练过程中所采用的gpu算力/性能没有特别要求。通过本发明提供的训练方法产生的物理基础模型精度高(加入了物理约束以及物理增强的方法,比纯数据驱动增加了可解释性以及更符合物理规律)、泛化性强。
附图说明
23.图1a、图1b分别为二维定义域离散化、三维定义域离散化的示意图。
24.图2为本发明提供的物理基础模型的训练方法的流程图。
25.图3为本发明中物理基础模型的训练过程示意图。
具体实施方式
26.为了使本发明所解决的技术问题、技术方案以及有益效果更加清楚明白,以下结合附图对本发明进行进一步详细说明。应该理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
27.如图2所示中,本发明提供的物理基础模型的训练方法,包括以下步骤:
28.s1、在保证每条训练样本完整性的前提下,划分训练样本数据得到若干份训练样本集,所述训练样本数据包括任一种物理方程在具体物理条件下的解或控制方程的残差;
29.s2、规定并记录训练样本中每个参数对应物理内嵌神经网络模型的输入参数;并行地将所述划分得到的训练样本集输入到若干gpu中,以并行地训练装在所述若干gpu中运行的各物理内嵌神经网络模型,每份训练样本集仅直接输入到一个gpu;
30.s3、将所述各物理内嵌神经网络模型训练后得到梯度进行梯度合并,以得到所述物理基础模型;所述梯度合并指:取各物理内嵌神经网络模型相同梯度参数取值的交集。
31.本发明中的物理基础模型的训练过程如图3所示,该训练方法的执行需要预先设置若干个gpu(gpu集群)作为硬件基础。训练时,只需要将划分好的训练样本集并行地输入到若干gpu中以并行地训练装在所述若干gpu中运行的各物理内嵌神经网络模型,每份训练样本仅直接输入其中一个gpu中。所述若干gpu在训练迭代过程中输出相应的解(速度场、温度场、压力场、电场、磁场等),并基于相应的解计算损失函数(loss)。
32.进一步地,所述步骤s1中在保留每条训练样本完整性的前提下划分训练样本数据,包括以下一种或多种情形的组合:
33.1.将训练样本数据按量划分为若干训练样本集。例如,规定每份训练样本集的数据量(样本量),将所有的训练样本数据进行划分若干份训练样本集;也可以根据数据并行输入的通道数来平均划分所述训练样本数据。
34.2.基于时间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的时间域不同。对于变量包含时间参数的物理控制方程,可以将时间划成不同时间域,将所述训练样本数据中跟时间有关的训练样本划分到相应的时间域。
35.3.基于空间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的空间域不同;对于变量包含空间参数的物理控制方程,可将所述训练样本数据中跟空间/位置有关的训练样本划分到不同的空间域中。
36.4.基于训练样本数据的物理控制方程将训练样本数据划分为若干训练样本集。这一划分可以实现为直接将训练样本数据划分到不同的控制方程,此时、划分得到的任意两份训练样本集对应的物理控制方程不同。也可以进一步做以下划分:基于同一物理控制方程不同的初始条件/边界条件将训练样本数据划分为若干份训练样本集,任意两份训练样本集之间包含的训练样本数据对应的初始条件/边界条件不同;和/或基于同一物理控制方程对应的工况(即控制方程的参数)将训练样本数据划分为若干份训练样本集,任意两份训练样本集之间对应的工况不同;对同一物理控制方程的训练样本数据根据控制变量进行划分若干训练样本集以达到训练样本降维,任意两份训练样本集对应的物理控制方程的控制变量不同。
37.5.根据训练样本数据对应物理控制方程类型,划分所述训练样本数据得到若干训练样本集,任意两份训练样本集对应的物理控制方程的数学方程类型不同。例如n-s方程(纳维-斯托克斯方程)的vlasov方程形式是一个非线性方程,其和麦克斯韦方程的数学形式不同。不考虑物理方程的物理含义,仅根据物理方程的数学形式划分训练样本数据,得到相应的训练样本集。
38.进一步地,所述步骤s2之所以要规定并记录训练样本中每个参数对应物理内嵌神经网络模型的输入参数,是因为物理控制方程的变量有限,可以规定pinns模型中每个输入参数具体对应的物理控制方程的变量。后续对于训练得到物理基础模型在用于进行科学演算时,要需要对号入座地将相应的物理变量对应地作为物理基础模型输入参数进行输入。
39.所述步骤s2中并行地将划分好的训练样本集输入到若干gpu中以并行地训练装在所述若干gpu中运行的各物理内嵌神经网络模型,具有多种实现方式。以下就以几个实施例对此进行说明。
40.在第一个实施例,所述步骤s2实现为:设置若干gpu,每个gpu上均设置有完整的物理内嵌神经网络模型;并行地将所述步骤s1得到的训练样本集输入到所述若干gpu中,以并行地训练每个gpu运行的pinns模型;每份训练样本集仅输入一个gpu,任意两个gpu对应输入的训练样本集不同。在第二实施例中,所述步骤s2实现为:将所述若干gpu划分成若干gpu族,每个gpu族包括相同数量的gpu。按层拆分物理内嵌神经网络模型(pinns模型)以得到包括输入层在内的若干处理层。设置不同gpu族运行拆分pinns模型得到的不同处理层,同一个gpu族中所有的gpu都设置相同的一个或多个所述处理层。基于各所述处理层在所述物理内嵌神经网络模型中的处理次序,每个gpu族的gpu运行的处理层处理完数据后一对一地将结果输出到运行下一处理层的gpu族的gpu上进行下一步处理。并行地将划分好的训练样本集输入到运行所述输入层的gpu族中的gpu,以并行地训练装在所述若干gpu族中的各个物理内嵌神经网络模型;每份训练样本集仅输入到运行所述输入层gpu族中的一个gpu。
41.在第三个实施例中,所述步骤s2实现为:按数组运算(如矩阵乘法)拆分物理内嵌神经网络模型,以得到输入层以及一套局部张量乘法模块;输入层加张量乘法子模块的数量为n。
42.设置n个gpu族、每个gpu族包括m个gpu,n为大于3的整数,m为大于1的整数。为所述输入层和所述一套局部张量乘法模块的每一个的执行分别设置一个gpu族,不同gpu族中gpu运行的局部张量乘法模块不同。将所述n个gpu族的gpu划分成m个具有n个gpu的gpu组,每个所述gpu组中任一个gpu所属的gpu族与同一组中其它gpu所属的gpu族不同。每个所述gpu组中的n个gpu基于所述输入层和所述一套局部张量乘法模块在该物理内嵌神经网络模型中的数据处理次序进行数据传输,构成一个具有所述物理内嵌神经网络模型完整逻辑处理功能gpu网络。并行地将划分好的训练样本集输入运行所述输入层的gpu族中每个gpu,以并行地训练运行每个所述gpu组的物理内嵌神经网络模型,每份训练样本集仅输入到所述输入层的gpu族中的一个gpu。
43.对应上述第一实施例,所述步骤s3实现为:对训练后的每个gpu运行的pinns模型进行梯度合并,所述梯度合并指取每个pinns对应的梯度取值的交集。
44.对应上述第二实施例,所述步骤s3实现为:分别对每个gpu族中gpu运行的物理内嵌神经网络模型处理层进行合并(即取同一物理内嵌神经网络模型处理层对应的梯度参数的取值交集)以得到所述物理基础模型;或者、组合gpu族中属于同一个物理内嵌神经网络模型的处理层得到训练后的各物理内嵌神经网络模型,对所述训练后的各物理内嵌神经网络模型进行梯度合并以得到所述物理基础模型。
45.对应上述第三实施例,所述步骤s3实现为:对所述m个gpu组训练得到的m个物理内嵌神经网络模型进行梯度合并,以得到所述物理基础模型。
46.与上述方法相对应,本发明还提供一种计算机可读存储介质。该计算机可读存储介质存储有程序代码;其特征在于,所述程序代码在被计算机执行时,实现上述物理基础模型的训练方法。
47.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭
露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种物理基础模型的训练方法,其特征在于,该方法包括:s1、在保证每条训练样本完整性的前提下,划分训练样本数据得到若干份训练样本集,所述训练样本数据包括任一种物理方程在具体物理条件下的解或控制方程的残差;s2、规定并记录训练样本中每个参数对应物理内嵌神经网络模型的输入参数;并行地将所述划分得到的训练样本集输入到若干gpu中,以并行地训练装在所述若干gpu中运行的各物理内嵌神经网络模型,每份训练样本集仅直接输入到一个gpu;s3、将所述各物理内嵌神经网络模型训练后得到梯度进行梯度合并,以得到所述物理基础模型;所述梯度合并指:取各物理内嵌神经网络模型相同梯度参数取值的交集。2.如权利要求1所述的训练方法,其特征在于,所述步骤s1中在保留每条训练样本完整性的前提下划分训练样本数据,包括以下一种或多种情形的组合:将训练样本数据按量划分为若干训练样本集;基于时间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的时间域不同;基于空间域将训练样本数据划分为若干训练样本集,任意两份训练样本集对应的空间域不同;基于训练样本数据的物理控制方程将训练样本数据划分为若干训练样本集;根据训练样本数据对应物理控制方程类型,划分所述训练样本数据得到若干训练样本集,任意两份训练样本集对应的物理控制方程的数学方程类型不同。3.如权利要求1或2所述的训练方法,其特征在于,所述步骤s2,实现为:设置若干gpu,每个gpu上均设置有完整的物理内嵌神经网络模型;并行地将所述步骤s1得到的训练样本集输入到所述若干gpu中,以并行地训练每个gpu运行的物理内嵌神经网络模型;每份训练样本集仅输入一个gpu,任意两个gpu对应输入的训练样本集不同。4.如权利要求1或2所述的训练方法,其特征在于,所述步骤s2,实现为:将所述若干gpu划分成若干gpu族,每个gpu族包括相同数量的gpu。按层拆分物理内嵌神经网络模型以得到包括输入层在内的若干处理层;设置不同gpu族运行拆分物理内嵌神经网络模型得到的不同处理层,同一个gpu族中所有的gpu都设置相同的一个或多个所述处理层;基于各所述处理层在所述物理内嵌神经网络模型中的处理次序,每个gpu族的gpu运行的处理层处理完数据后一对一地将结果输出到运行下一处理层的gpu族的gpu上进行下一步处理;并行地将划分好的训练样本集输入到运行所述输入层的gpu族中的gpu,以并行地训练装在所述若干gpu族中的各个物理内嵌神经网络模型;每份训练样本集仅输入到运行所述输入层gpu族中的一个gpu。5.如权利要求1或2所述的训练方法,其特征在于,所述步骤s2,实现为:按数组运算(如矩阵乘法)拆分物理内嵌神经网络模型,以得到输入层以及一套局部张量乘法模块;输入层加张量乘法子模块的数量为n;设置n个gpu族、每个gpu族包括m个gpu,n为大于3的整数,m为大于1的整数;为所述输入层和所述一套局部张量乘法模块的每一个的执行分别设置一个gpu族,不同gpu族中gpu运行的局部张量乘法模块不同;将所述n个gpu族的gpu划分成m个具有n个gpu的gpu组,每个所述gpu组中任一个gpu所属的gpu族与同一组中其它gpu所属的gpu族不同;每个所述gpu组中的n个gpu基于所述输入层和所述一套局部张量乘法模块在该物理内嵌神经网络模型中的数据处理次序进行数据传输,构成一个具有所述物理内嵌神经网络模型完整逻辑处理功能gpu网络;并行地将划分好的训练样本集输入运行所述输入层的gpu族中每个gpu,以并行地训练
运行每个所述gpu组的物理内嵌神经网络模型,每份训练样本集仅输入到所述输入层的gpu族中的一个gpu。6.如权利要求3所述的方法,其特征在于,所述步骤s3实现为:对训练后的每个gpu运行的物理内嵌神经网络模型进行梯度合并,所述梯度合并指取每个物理内嵌神经网络模型对应的梯度取值的交集。7.如权利要求4所述的方法,其特征在于,所述步骤s3实现为:分别对每个gpu族中相同的物理内嵌神经网络模型处理层进行合并(即取同一物理内嵌神经网络模型处理层对应的梯度参数的取值交集)以得到所述物理基础模型;或者、组合gpu族中属于同一个物理内嵌神经网络模型的处理层得到训练后的各物理内嵌神经网络模型,对所述训练后的各物理内嵌神经网络模型进行梯度合并以得到所述物理基础模型。8.如权利要求5所述的方法,其特征在于,所述步骤s3实现为:对所述m个gpu组对应的m个物理内嵌神经网络模型进行梯度合并以得到所述物理基础模型。9.一种计算机可读存储介质,该计算机可读存储介质存储有程序代码;其特征在于,所述程序代码在被计算机执行时,实现如权利要求1-8中任一项所述的物理基础模型的训练方法。
技术总结
本发明提供一种物理基础模型的训练方法及计算机可读存储介质。该方法包括:将物理内嵌神经网络模型(PINNs:Physics-informed neural networks)的训练样本数据按照相应的标准划分为若干份,和/或按层拆分物理内嵌神经网络模型/按数组运算(即矩阵乘法)拆分物理内嵌神经网络模型;基于所述训练数据样本的拆分结果和物理内嵌神经网络模型的拆分结果,结合一定数量GPU构成的硬件基础并行训练所述物理内嵌神经网络模型。相对于现有的PINNs训练方案,本发明提供的技术方案不仅能够提高PINNs的训练速度,而且能够放宽训练过程对相应GPU的算力要求。应GPU的算力要求。应GPU的算力要求。
技术研发人员:向辉 张百一
受保护的技术使用者:硒钼科技(北京)有限公司
技术研发日:2023.05.05
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/