打通科学智能任督二脉 | AI4Science高频模型套件:MindSpore SciAI 0.1发布

2023年9月21日下午,在以“加速行业智能化”为主题的华为全联接大会2023(Huawei Connect2023)昇思MindSpore专题论坛上,昇思MindSpore开源社区正式发布MindSpore AI4Science高频模型套件。

昇思MindSpore长期布局AI4Science(科学智能)领域,不断瞄准行业热点与痛点问题,以其卓越的性能和创新的能力为科学智能领域带来了巨大的助力。MindSpore SciAI 0.1版本内置了60+高频SOTA模型,覆盖物理感知(如PINNs、DeepRitz以及PFNN)和神经算子(如FNO、DeepONet、PDENet)等主流模型,模型覆盖度全球第一;提供了高阶API(一键环境配置、自动模型加载、极简训练微调等),开发者和用户开箱即用。MindSpore SciAI为广大开发者和用户提供了高效、易用的AI4Science科学智能套件。点击阅读原文可前往代码仓下载。

image.png

图1 MindSpore SciAI套件架构图

1、 SOTA模型

1.1、物理感知

物理感知模型是指将物理学中的先验知识(如方程/初边界条件等)融入到神经网络中的一类模型,较为典型的有PINNs(如图2所示)、Deep Ritz以及PFNN等。该类模型的优势:无需生成离散网格;可基于AI框架的自动微分能力进行导数计算,避免数值微分离散误差;天然适用于反问题及数据同化问题;相比数据驱动具有更强的外插能力和更少的样本量。劣势:缺乏网络结构设计指引,奇异性问题学习困难;损失函数包含多项约束,训练难以收敛;物理约束变化时需要重新训练,缺乏泛化性;计算精度和收敛缺乏理论保证。

针对上述问题,学术界和昇思MindSpore提出了一系列改进方案,如自适应激活函数、时间&空间分解、多尺度优化以及自适应加权等。MindSpore SciAI内置了SOTA物理感知模型,应用领域也涵盖了流体、电磁、声、热、固体等众多领域。

image.png

图2 物理感知模型之PINNs

1.2、神经算子

PINNs等物理感知模型主要求解特定方程,神经算子模型则能够学习无限维函数空间的映射,一次求解整个PDEs族。较为典型的有FNO(如图3所示)、DeepONet以及PDENet等。FNO主要利用傅里叶变换的性质,在傅里叶空间中学习函数之间的映射,然后再将结果转回至物理空间。DeepONet通过“branch net”和“trunk net”两个子网络学习函数之间的映射。神经算子模型在流体、气象等领域有较好的表现,MindSpore SciAI因此也内置了SOTA神经算子模型。

image.png

图3神经算子模型之FNO

2、总结与展望

昇思MindSpore SciAI 0.1版本正式发布,希望有更多的企业、科研院所携手昇思,共同打造自主创新的AI4Science科学智能套件,加速助力人工智能产业生态繁荣发展。

代码仓地址为:

https://gitee.com/mindspore/mindscience/tree/master/SciAI

附录

附录1、模块及功能

本节主要介绍MindSpore SciAI高阶和基础API。MindSpore SciAI目录结构如下:

├── SciAI
│   ├── cmake               # 编译脚本
│   ├── docs                # 文档
│   │   ├── FAQ        # 常见问题解答
│   ├── sciai               # MindSpore SciAI主目录
│   │   ├── architecture   # 神经网络基础模块
│   │   ├── common          # 通用模块
│   │   ├── context         # 上下文设置
│   │   ├── model           # **AI4Science高频模型**
│   │   ├── operators       # 高阶微分
│   │   └── utils           # 其他辅助功能
│   └── tutorial            # 教学模型

1.1高阶API

image.png

1.2、基础API

1.2.1、基础API

image.png

1.2.2、通用模块

image.png

1.2.3、上下文设置

image.png

1.2.4、高阶求导函数

image.png

1.2.5、辅助功能

image.png

附录2、网络模型库

MindSpore SciAI提供了丰富的AI4Science高频模型,下图汇总了当前已实现的网络模型及其对应领域。

image.png

附录3、使用方式

MindSpore SciAI提供两种模型训练和评估方式,为开发者提供灵活且简洁的使用方式和开发接口。

3.1、高阶API启动(推荐)

3.1.1、使用AutoModel训练、微调模型

根据AutoModel.from_pretrained接口获取已支持的网络模型。使用AutoModel.train实现模型的训练,并且在训练前,可使用AutoModel.update_config调整训练参数或加载.ckpt文件实现模型微调。AutoModel.update_config可选参数依赖于模型类型,具体可参考网络模型库中“MindSpore实现与网络参数链接”。

from sciai.model import AutoModel

# 获取`cpinns`网络模型
model = AutoModel.from_pretrained("cpinns")
# 使用默认参数训练网络,生成的图片、数据与日志将保存至用户的执行目录中
model.train()
# 或者加载`.ckpt`文件
model.update_config(load_ckpt=True, load_ckpt_path="./checkpoints/your_file.ckpt", epochs=500)
# 基于新加载的参数,继续训练模型,实现微调
model.train()

3.1.2、使用AutoModel评估模型

用户可以使用AutoModel.evaluate评估训练结果。该接口将默认加载SciAI模型库中提供的.ckpt文件用于评估,用户也可以调用model.update_config接口自定义加载的文件。

from sciai.model import AutoModel

# 获取`cpinns`网络模型
model = AutoModel.from_pretrained("cpinns")
# 加载网络默认的ckpt文件,评估网络模型
model.evaluate()
# 自定义加载ckpt文件
model.update_config(load_ckpt=True, load_ckpt_path="./checkpoints/your_file.ckpt")
# 评估网络模型
model.evaluate()

3.1.3、恢复参数文件与数据集

用户可能会遇到自动下载的模型参数.ckpt文件或数据集被误删的情况,可以通过如下方式更新参数,强制重新下载。

model.update_config(force_download=True)

3.2、脚本接口

3.2.1、环境准备

首先使用如下命令直接克隆整个仓库并准备环境变量,运行文件.env会将SciAI项目目录添加至环境变量PYTHONPATH中。

git clone https://gitee.com/mindspore/mindscience
source ./mindscience/SciAI/.env

完成后,可以参考网络模型库中各个模型README_CN.md 的快速开始章节,使用源码进行训练与推理。

3.2.2、网络模型训练

使用训练脚本train.py进行网络模型训练。

cd ./mindscience/SciAI/sciai/model/cpinns/
python ./train.py [--parameters]

3.2.3、网络模型加载.ckpt文件微调

python ./train.py --load_ckpt true --load_ckpt_path {your_ckpt_file.ckpt} 
[--parameters]

3.2.4、网络模型评估

使用脚本eval.py对已完成训练的网络模型进行评估。

python ./eval.py [--parameters]

可配置参数[--parameters]包括学习率、训练周期、数据读取保存路径、checkpoints文件加载路径等,具体请参考网络模型库中“昇思MindSpore实现与网络参数链接”。

3.2.5、cpinns计算结果如下

image.png

参考文献

[1] https://gitee.com/mindspore/mindscience/tree/master.

[2] https://gitee.com/mindspore/mindscience/tree/master/SciAI

[3] Raissi M, Perdikaris P, Karniadakis G E. Physics informed deep learning (part i): Data-driven solutions of nonlinear partial differential equations[J]. arXiv preprint arXiv:1711.10561, 2017.

[4] Yu B. The deep Ritz method: a deep learning-based numerical algorithm for solving variational problems[J]. Communications in Mathematics and Statistics, 2018, 6(1): 1-12.

[5] Sheng H, Yang C. PFNN: A penalty-free neural network method for solving a class of second-order boundary-value problems on complex geometries[J]. Journal of Computational Physics, 2021, 428: 110085.

[6] Li Z, Kovachki N, Azizzadenesheli K, et al. Fourier neural operator for parametric partial differential equations[J]. arXiv preprint arXiv:2010.08895, 2020.

[7] Lu L, Jin P, Karniadakis G E. Deeponet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operators[J]. arXiv preprint arXiv:1910.03193, 2019.

[8] Long Z, Lu Y, Ma X, et al. Pde-net: Learning pdes from data[C]//International conference on machine learning. PMLR, 2018: 3208-3216.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值