2020-05-17 21:09:13

作者 | 未来论坛

编辑 | 蒋宝尚

AI技术,特别是机器学习和强化学习方法,基于实验或者计算产生的数据对所求解的问题进行可计算建模,从而得到复杂问题的有效解决方式,这对当今科学计算领域的研究范式已经产生了巨大影响。

与此同时,以深度学习为代表的AI在内部机理、数学理论、基础算法等方面尚不清楚、不完善,AI方法的稳健性、精确度等尚缺乏严格的数学论证,这正对其进一步发展造成严重阻碍。然而,结合机理的思维方式将有可能对面向数据的AI技术,提供新的洞见与研究途径。

2020年5月9日,在未来论坛青创联盟YOSIA Webinar中,开展了AI+科学计算的主题讨论,共有五位嘉宾发表演讲,从AI for Scientific Computing和Scientific Computing for AI两个不同的视角进行前沿讨论。

其中来自北京大学的杨超教授做了题目为“浅论超级计算、人工智能与科学计算的融合发展”的报告。在报告中杨老师介绍到:科学计算和超级计算之间相互促进、共同发展的闭环已经形成了几十年了,人工智能近年巨大的成功为科学计算带来了新思路、新方法、新工具,而科学计算的严谨体系则有助于提升现有人工智能技术的可解释性。

另外,杨老师还以求解偏微分方程举例说明了神经网络这一工具为科学计算带来的帮助,并阐述了超级计算、科学计算、人工智能从模型、算法、软件、硬件多方位融合发展的观点。

编者:感谢杨超教授对本文的审核与校对。

从主流的科研范式来看,认识世界发现世界的三种最主要的科研手段是实验、理论和计算,最近十来年随着数据科学的兴起,基于数据的科学发现被认为是第四种重要的科研范式。而围绕计算和数据有三个非常独立但又相互关联很大的方向,超级计算、科学计算和人工智能。

从计算科学诞生之初,超级计算和科学计算的关系已经建立起来。它们之间的关系可以概括为:超级计算是支撑科学计算发展的重要工具,为了支撑科学计算的发展,科学计算作为需求牵引、拉动超级计算机性能不断提升。

早在电子计算机诞生之前,超级计算的思想萌芽就已产生,其中一个代表性的工作是英国数学家理查德森1922年提出来“预报工厂”的概念,这个概念被称为“理查德森之梦”。

为什么说是一个梦?因为1922年当时没有电子计算机,他提出的“预报工厂”主要用于预报天气。众所周知,天气预报是科学计算领域最有代表性一类应用。预报工厂包括64000台Human Computers,每台“计算机”由一个人完成相关计算。预报工厂中还有专人用信号灯指挥不同的“计算机”进行数据交换。

“预报工厂”的计算目标是大气,把计算区域分成64000个部分,每个人负责一块,大家分别计算,并有人去协调指挥,这其实体现了早期人们畅想超级计算的一种朴素思想。

随着世界第一台电子计算机ENIAC的问世,理查德森之梦终于得以实现,ENIAC重达几十吨,占地面积非常大,并且耗电惊人。据说每当ENIAC开机的时候,整个费城的灯都暗了。1950年,冯诺伊曼和他的助手改造了ENIAC的可编程性,并在这个基础上编写了世界上第一个天气预报程序,成功完成了24小时预报,实现了理查德森之梦,也成为了科学计算的蓬勃发展的一个重要开端。

如今,历经几十年的发展,超算已经在科学计算的方方面面,例如航空、航天、气候、能源、材料、安全、天文等领域中发挥了不可取代的支撑作用。2013年美国能源部曾经统计过一些典型的科学计算应用中的计算需求,这些计算需求即便放在今天来看仍然是很大。

在科学计算巨大需求的牵引之下,超级计算机的计算性能按照“十年千倍”的速度迅猛攀升。我们都知道摩尔定律,摩尔定律的是说个人计算机的性能提升速度是每18到24个月性能翻一番,而超级计算机可以达到每年性能翻一番,“十年千倍”的发展速度。

现在超算发展的一个重要趋势是:异构众核,即同一个系统有不同类型的计算核心,而且每个芯片上要集成大量的计算核心。为什么会沿着异构众核趋势发展?

其实这与计算需求关系不大,更多的是超级计算发展本身的技术条件限制造成的。现在所有的超级计算机都是基于冯诺伊曼体系结构,冯诺伊曼体系结构的“算”-“存“分离特性会导致现有工艺下,为了满足计算需求,能够选择的设计方案十分有限。这样的系统现在越来越多,同一个系统有很多计算核心,而且计算核心还不一样,从设计算法和研究软件角度来说面临很大挑战。

例如求解偏微分方程的经典并行算法——区域分解算法,该算法一般假定每个子区域应该是大致相同,而且满足一些数学上的条件,例如子区域应具有凸性和的单连通性等。在异构系统上,这些前提假定已经难以成立,需要从思想上突破传统算法的约束。

对此,我们提出了一套异构区域分解算法,在传统的区域分解思想基础上,对每个子区域进行第二次切分,切分时排除掉之前理论上的假定,包括凸区域、单联通区域之类的约束,目标就是要与现有的异构系统硬件配置相适配。

虽然理论上很难分析这种异构区域分解算法的收敛性,但是在实际应用中,这种算法达到很好的应用效果。HPCG是基于偏微分方程求解的高性能计算机的排名标准,我们把这个算法应用于HPCG优化里,取得了很好的效果,收敛性非常好,帮助天河2号拿到2016年的HPCG世界排名第一。

如前所述,科学计算和超级计算之间相互促进、共同发展的闭环已经形成了几十年了。最近十来年随着大数据兴起,人工智能技术得到复兴并呈爆发式发展。此时,人工智能作为一个“新”角色进来之后又起什么作用呢?

至少两个方面的作用,首先从超算角度来看,超算原本主要用来支撑科学计算,现在有了人工智能这种新需求,超算必然也要为人工智能提供强大算力支撑。反过来由于人工智能的本身特性又会改变超算的发展趋势。

第二,人工智能和科学计算的关系。人工智能有一些好的数学工具和思想方法可以作为新思路、新方法、新工具提供给科学计算,科学计算又有多年发展的基础和较为完善的理论框架,可能帮助我们实现可解释性的人工智能。

AlphaGo和AlphaGo Zero作为人工智能最近几年非常著名的突破,先后打败了人类的围棋冠军。像AlphaGo Zero这种大型的AI应用,如果想一天之内完成它的训练,我们所需要的计算能力已经超过1E ops,事实上过去6年训练神经网络的算力需求已经增长了30万倍,这远远超出超级计算机“十年千倍”的计算性能提升速度。所以现在有观点认为计算能力是人工智能发展的非常重要的基础,甚至有人认为算力常胜。

与此同时,人工智能的发展深刻改变了超算发展趋势,尤其是在2017年前后,随着大规模AI应用的涌现,新型超级计算机设计也逐渐开始考虑人工智能这类应用,最有代表性的机器就是美国的Summit,计算性能世界排名第一的系统,这台机器科学计算的双精度浮点计算性能是148Pflops/s,但是它还通过配备特殊的Tensor Core计算单元,可以实现3.4 Eops/s的AI计算性能。与此同时国际上谷歌、IBM、寒武纪、华为等大厂也都先研发了各种AI处理器。最近,谷歌Jeff Dean等人发展了采用AI设计芯片的新技术,大幅度提升芯片数据效率。毫不夸张地说,AI已经对硬件设计产生方方面面的深刻影响。

在超级计算机系统设计方面,举个例子,牛津大学2018年出版了一个白皮书《解码中国的AI梦》,其中有一个观点:“中国建设超级计算机方面的成功表明,它有可能赶上AI硬件领域世界领先的企业……如果其他国家专门开发针对AI新型超级计算机,中国在制造传统超级计算机方面的卓越表现可能并不重要“。顺着这个思路我们去思考,也许有一天,可能很快我们会看到专门用于AI计算的大型超级计算机。

现在让我们回到偏微分方程求解。借助神经网络这类数学工具,我们是不是可以解一些之前难以求解的问题呢?

在这里,我列出了三个比较有特色的方程,它们都有强烈的非线性,并且计算区域具有不规则和高维的特点。比如第一个方程的计算区域虽然是二维,但是区域边界非常复杂。中间是三维的例子,其计算区域是一个扭曲的torus形成,采用经典方法很难准确的刻划。第三个是100维的超立方体,它高维的性质决定了经典的方法很难去求解。

通过神经网络的方法可以很好地求解这类问题,我们提出了一套新方法——PFNN,这一方法的最大特点是只需要求解无约束优化问题,不需要引入任何惩罚项。

传统的神经网络求解方法或多或少会引入惩罚项,但是通过采用一些手段去重新构造解空间,可以设法避免这个事情。把一个约束优化问题变成完全没有约束的优化问题,数值计算结果表明,PFNN方法可以很好的改善问题的求解精度和计算效率。

下面考虑如何实现并行求解。一个很自然的思路是直接做分布式训练,但这样的处理没有很好的利用问题本身的性质。偏微分方程的求解,在经典的科学计算领域,有一个非常好的并行算法——区域分解。

我们将区域分解的思想用在神经网络求解偏微分方程中。比如可把一个方形的区域一分为四之后,增加一点重叠度,就可以把单个神经网络训练问题分成子区域网络的训练。通过实测发现,这样的手段不但能够提供很好的并行加速,同时问题的计算精度也同时得到改善,实现了计算精度和计算速度的双重收益。

从未来的发展趋势来看,人工智能、超级计算、科学计算会怎样发展?三个方向共同目的是通过某种手段连接真实世界和数字世界。真实世界就是人类在不断设法了解、改造的客观世界。数字世界是我们能够操作、能够任意实验的基于计算机的数字化虚拟世界。从真实世界到数字世界,至少存在四个角度,人工智能可以与科学计算和超级计算结合,发挥作用。

第一,模型角度。经典的科学计算方面,很多问题是建模方面很困难,或者模型很准确但是不可计算或者很难计算,或者是模型可以计算但不够准确。这时候基于人工智能的手段也许可以构造更好的模型,比如现在湍流模型,分子力场模型,天气预报领域的物理过程参数化等都有成功案例。

第二,算法角度。刚才举的PFNN的例子就是算法角度,人工智能的发展有很多的很好的数学工具,思考问题的视角。借鉴里面好的数学工具,比如神经网络,可以应用在一些科学计算领域的经典问题,比如线性方程求解、微分方程组求解、最优化问题求解等。

第三,软件角度。光有算法和模型是不够的,还需要在计算机上实现,写成软件,实现出来。这个过程涉及到大量的编程工作,而且很容易出错。这时候如果借助机器学习等手段,可以在编译优化,自适应调优,自动代码生成等方面把人们从繁重的体力劳动中释放出来。

最后就是硬件角度。AI事实上已经深刻改变了超算硬件的发展,而且未来还会有更多改变,比如计算单元的设计、芯片的设计、处理器的设计、超算系统的设计等。

北大杨超:以偏微分方程求解为例,AI如何助力科学计算?相关推荐

  1. 省首例AI犯罪案:归咎技术是欲加之罪?

    智能音箱.智能翻译.智能客服--人工智能大热的当下,智能语音技术在很多领域得到应用. 当语音搭上了AI快车,衍生了不少黑灰产业链,升级的网络犯罪亟待治理. 近日,湖南岳阳破获了一起AI语音机器人帮助网 ...

  2. 赛桨PaddleScience v1.0 Beta:基于飞桨核心框架的科学计算通用求解器

    近年来,关于AI for Science的主题被广泛讨论,重点领域包含使用AI方法加速设计并发现新材料,助力高能物理及天文领域的新问题探索,以及加速智慧工业实时设备数据与模型的"数字孪生&q ...

  3. AI科学计算领域的再突破,昇思MindSpore做“基石”的决心有多强?

    过去的十多年,人工智能技术越来越深刻地影响了人类社会,越来越多成熟的人工智能产品逐渐渗透到每一个人的生活.就在大家享受着人工智能带来各种便利的同时,AI也不断影响着最前沿的科学研究领域.过去的数百年来 ...

  4. 技术干货 | MindSpore AI科学计算系列(五):AI框架加速海洋数值模拟

    01  背景介绍 GOMO模型是一个区域海洋模式,最早由清华大学黄小猛老师基于OpenArray框架开发.海洋模式是指通过一组物理方程来描述海洋的气候变化,不仅可以很好地表征海面温度和高度分布,还能够 ...

  5. AI与基因科学的对话:从“人工智能”到“动物智能”

    来源:亿欧网 有人的地方就有江湖,巨头们一次次的"技术战役"就是现代江湖的样子.各家企业牢牢把握住科技就是第一生产力的关键,不断的较量平台.技术.场景.生态等多方面的综合实力,你方 ...

  6. matlab求解helmholtz,MATLAB与科学计算(第2版)

    第1章  安装及使用前的准备1.1  MATLAB 6.x简介1.1.1  21世纪的科学计算语言1.1.2  MATLAB的发展历史1.1.3  MATLAB 6.x的新特点1.1.4  MATLA ...

  7. AI解决方案:边缘计算和GPU加速平台

    AI解决方案:边缘计算和GPU加速平台 一.适用于边缘 AI 的解决方案 AI 在边缘蓬勃发展.AI 和云原生应用程序.物联网及其数十亿的传感器以及 5G 网络现已使得在边缘大规模部署 AI 成为可能 ...

  8. 【深度学习看手相】台湾学生获奖 AI 项目是科学还是伪科学? 搜狐科技 08-06 12:44 1新智元报道 来源: medium,facebook 编译:胡祥杰 张易 【新智元导读】本周日带来一个有

    [深度学习看手相]台湾学生获奖 AI 项目是科学还是伪科学? 搜狐科技 08-06 12:44 1新智元报道 来源: medium,facebook 编译:胡祥杰 张易 [新智元导读]本周日带来一个有 ...

  9. 报名开启!AI+科学计算专场直播:大咖齐聚×独家礼物,限量200份

    AI和Science是两个最近很有热度的词. AI+Science的系统性机会是用AI连接各个物理尺度,解放科学研究与工业设计的生产力.AlphaFold2以深度学习技术在预测蛋白质结构上做出突破,这 ...

最新文章

  1. 有关机器人的会议和论文投稿时间
  2. oracle 12c 新特性之不可见字段
  3. 一次性上传多个文件到服务器端(一)
  4. Spark入门(七)Spark SQL thriftserver/beeline启动方式
  5. confluent connect写出到ES及ClickHouse
  6. koa2 mysql增删改查_koa2对mongodb的增删改查
  7. Android进阶——Crash异常捕获并发送到服务器
  8. python是面向对象还是面向过程的语言_关于python是面向对象还是面向过程的分析...
  9. 淘淘商城第107讲——添加购物车
  10. 折合分数的公式计算机,高考分数换算公式(高考分数折合怎么算)
  11. 奥的斯维修服务器无响应,奥的斯GEN-2电梯故障现象:不定层的平层停梯,外呼无用断电或打检修会恢复还有运行至某层不开门自动去找平...
  12. java实现复制粘贴功能代码,附源代码
  13. Nginx 负载均衡演示之 upstream 参数、 location 参数等示例说明
  14. python批量修改照片的大小
  15. Pandas DataFrame切片器的基本操作及应用
  16. 如何将ppt改为无法修改的pdf
  17. vue3 创建vue3模板
  18. ASP.NET图书管理系统简单实现步骤
  19. 基于HTTP的简单网络爬虫
  20. 高通平台之TP代码分析

热门文章

  1. JDBC--代码实现增删改查、及SQL注入问题解决
  2. 2021年3月12日 北京格灵深瞳Java开发实习面试(一面)
  3. eclipse run on server
  4. self attentin Q K V心得
  5. 搞定了数学,拿下了代码,没想到在这件事上栽了跟头……
  6. 03-VTK基础概念(2)
  7. 使用容器的概念理解多维数组和多维空间
  8. You're AllSet! 以多重集函数角度重新检视超图GNN
  9. 网络国际治理系列 | WTO电子商务谈判合并文本数据跨境流动部分
  10. 直播预告 | 对话杨立昆:人,机器与未来