中国网/中国发展门户网有消息称,2007 年的图灵奖得主吉姆·格雷发表了著名演讲《科学方法的革命》。他把科学研究划分成 4 类范式,分别是实验归纳、模型推演、仿真模拟以及数据密集型科学发现。通过这样的划分,他提出了被广泛称作“第四范式”的“科学大数据”新视角。10 年的技术发展过后,深度学习等先进技术在图像、语音、自然语言等人工智能领域都取得了突破进展。在自然科学领域,近年来科学家们紧紧跟随趋势,以科学大数据驱动的新模式为基础,运用深度学习等新技术,获得了一批重大科学发现成果,这些成果发表在 Science、Nature 等权威学术刊物上。然而,大数据驱动的科学研究工作严重依赖先进的信息技术。所以,对于大多数科学家团队来说,这种研究工作仍具有一定门槛。
在多学科和跨领域交叉的背景下,进行科学大数据的挖掘分析与知识发现,需要构建一套软件系统。这套系统要具备高效、易用、可扩展的特点,能够为复杂数据的处理、分析、模式提取以及知识发现提供学习模型、算法和开发工具方面的支持。我们分析该领域的发展现状后发现,有一些分析软件是运行在单机环境中的,所以它们无法处理大规模数据;还有一些分析软件,由于需要较高的编程开发技能,这使得科学家团队对它们望而却步。随着云计算、大数据和人工智能技术的不断发展,利用云计算平台来承载人工智能技术,进而进行大数据智能分析,已经成为一种趋势。同时,开放共享以及个性化定制也成为了软件发展的主流方向。其五,具备可定制性。
笔者对众多科学家展开需求调研,接着结合大数据智能分析技术以及软件的发展走向,提出了一个针对科学大数据的、一体化且可定制的智能分析框架,这个框架能够支持科学家进行交互式地构建智能分析模型,并且依托云平台分布式计算引擎来实现分析模型的高效执行,从而为快速开展科学发现研究提供了系统和工具方面的支撑。期望通过研发和应用该智能分析框架,能够为下一代科学大数据智能分析软件提供参考方案。
发展现状
数据密集型科学发现需要软件系统给予支撑。本文的研究对象主要集中在近 10 年里针对科学大数据智能分析的典型软件系统上。从适用范围方面来讲,科学大数据智能分析软件能够大致分为通用型以及领域专用型这两类。通用型智能分析软件属于大数据、人工智能等领域的通用分析软件,科学家团队将其应用于特定领域的研究工作,像 Matlab 那样。领域专用型智能分析软件指的是针对特定科学领域的专有分析软件,例如在地学、资源环境科学领域流行的 Google Earth Engine。
通用型科学大数据智能分析软件
大数据和人工智能技术发展得很迅速,出现了很多软件系统。本文挑选了科学家团队比较常用且具有代表性的智能分析软件。依据软件系统的部署模式,这些软件被分为 3 类,分别是单机环境、分布式环境和云计算环境。同时,这 3 种环境也是智能分析软件发展的 3 个阶段。
单机环境下的智能分析软件。商业数据分析软件方面,Matlab 具备用于算法开发、数据可视化、数据分析以及数值计算的高级编程语言和交互式环境,且在众多科学领域广泛应用。众多开源免费数据分析软件中,R 语言、Scikit-Learn、Weka 是典型的代表。R 语言可用于统计分析与绘图,它具备丰富的统计分析功能,并且用户能够通过开发和安装扩展包来增强其功能。Python 语言拥有众多科学数据分析的算法库,其中包含广泛应用于机器学习和数据挖掘的 Scikit-Learn。Weka 数据挖掘平台是基于 Java 语言来进行开发的。它提供了一种可视化且可以拖拽的分析流程设计界面。同时,它还集成了众多的数据预处理和机器学习算法。这些软件系统在刚开始设计的时候,是以单机模式来运行的。并且数据分析与r软件,它们无法对基于分布式存储的大数据进行处理。在大数据的场景下,它们存在着先天的不足。另外,这些软件系统还缺少对深度学习技术的有效支持。
分布式环境中的智能分析软件。在分布式环境里,开源社区所提供的大数据分析软件成为了主流。Hadoop Mahout 和 Spark MLlib 是其中具有代表性的。研究人员借助 Hadoop 框架和 Spark 框架,把分布式并行挖掘问题给解决了,并且还提供了典型的机器学习算法和模型。近年来,有一批开源深度学习框架涌现出来。其中包括 Tensor Flow、Caffe、CNTK、MXNet 等。这些框架可用于深度神经网络模型的构建以及训练,还能支持分布式计算和异构计算。虽然这些开源软件提供了丰富的算法库以及高效的分布式计算平台,然而,仍然需要专业的编程开发和系统配置技能,并且学习曲线较为陡峭,这对科学家团队的使用是不利的。
云计算环境有智能分析软件。大型公有云平台通常将通过云平台提供大数据智能分析服务作为标配服务。“机器学习即服务”(machine learning as a service,MlaaS)这一趋势在多家领先云平台厂商中也有所体现。Azure Machine Learning(Azure ML)是由微软 Azure 云平台所提供的机器学习分析服务。它在提供众多通用机器学习分析算法的基础上,还为数据科学家用户提供了交互式的图形化开发界面。类似的 MLaaS 当中,还包含 Aliyun PAI 等。这些系统一般只支持某一种特定的开发语言以及应用程序编程接口(API)。用户不能够自行去扩充算法库,存在着平台锁定(lock-in)的状况。除了前面所说的那些公有云厂商所提供的大数据智能分析服务之外,有一些科学家团队把具有“浏览器/服务器”架构模式的交互式分析软件部署在了公有云或者私有云当中,从而实现了“简化版”的 MLaaS。Jupyter Notebook 是一种交互式分析软件,它支持“浏览器/服务器”架构。它能够让用户通过浏览器来编辑和运行多种编程语言,并且在服务器端进行数据处理、数值模拟、统计建模、机器学习以及可视化等操作。
领域专用型科学大数据智能分析软件
自然科学包含众多细分领域,每个领域都有专用的科学数据分析软件。本文选取了其中一些具有代表性的软件进行分析,并且把这些软件分成两类来介绍,一类是经典的领域专用科学数据分析软件,另一类是新兴的领域专用科学数据分析软件。
经典的是领域专用的科学数据分析软件。这类软件由特定领域的科学家专门研发,适合对该领域的科学数据进行专门的处理、计算与分析。ROOT 是由欧洲核子研究中心(CERN)研发的开源软件。它主要被用于粒子物理实验的数据处理方面。同时,也用于科学计算以及可视化分析。它还提供了数学及统计工具,具备并行处理的功能,包含神经网络及多变量分析的软件包。目前,它是高能物理领域进行数据分析的典型工具。AstroML 是一个面向天文领域的包,主要涉及机器学习和数据挖掘算法。它是以 NumPy、SciPy、Scikit-Learn 等 Python 算法库为基础构建的。这个包提供了多个用于加载开放天文数据集的加载器,同时还包含了大量在天文领域的分析与可视化数据集案例。目前,这类领域专用软件采用的是单机部署方式。它无法进行分布式并行的大数据处理分析。同时,它也尚未对深度学习技术提供集成与支持。
有新兴的领域专用科学数据分析软件。这类软件采用了大数据、机器学习和云计算等新技术。目前,SDAP 是 Apache 软件基金会的孵化项目,且是面向地球物理海洋学领域的科学大数据分析平台。SDAP 依靠 NEXUS 系统来进行大数据处理。NEXUS 是一个软件项目,由美国国家航空航天局喷气推进实验室(NASA/JPL)开发。它采用 Map/Reduce 分布式并行计算技术,目的是对 NASA 各种任务收集的大型数据集进行科学分析。美国国家能源研究科学计算中心(NERSC)拥有美国能源部科学局的主要科学计算设备。近期,NERSC 对将深度学习应用于气候研究、中微子实验以及神经科学研究提供了支持,并且获得了一批具有突破性的科学发现。Verily Life Sciences(原谷歌生命科学公司)的研究人员研发出了一种名为 DeepVariant 的深度学习软件工具。这种工具能够把基因组信息转化为图像来进行分析,并且能够显著提高基因变异的识别准确率。目前,已经获得了一批具有显示度的研究成果。这些特点正代表了新兴科学大数据智能分析软件的发展趋势。
发展趋势
科学大数据智能分析软件的发展趋势呈现出以下重要特征:AI 为其赋能;呈现出一体化的态势;依托云服务;强调开放共享;具备可定制的特性。
AI 具有赋能作用。科学家在其研究领域有着尝试使用人工智能新技术来进行科学发现的需求,且这一需求日益高涨。所以,智能分析软件一方面要提供领域相关的基础运算操作以及传统算法,另一方面还需要对深度学习、自然语言理解、知识图谱等新型人工智能技术的集成应用予以支持,从而为人工智能模型的训练、测试、部署和运行提供全生命周期的工具化支持。
科学大数据智能分析包含复杂的数据处理、分析等过程,也包含模式提取和知识发现过程,这些过程是一体化的。现有的大数据框架和平台存在学习曲线高以及开发代价大等问题。在传统“编程式”开发模式的基础上,需要为领域科学家提供一种环境,这种环境简单易用且是“拼装式”的可视化挖掘分析环境。同时,要利用高质量、可复用的模型与算法库,进行科学大数据分析模型的创新设计,从而实现涵盖数据源集成、代码编辑、流程设计、模型算法复用以及执行与可视化等方面的一体化支撑。
云服务。科学大数据智能分析软件实现云服务化后,无需在本地进行软件安装和维护。其一,浏览器成为挖掘分析全流程操作和管理的统一门户界面;其二,模型、算法以及数据源以在线 API 的形式进行共享和复用,这种形式被称作“功能即服务”(function as a service)。
开放共享。交叉科学的重大发现需综合运用多领域的分析模型与算法。汇聚跨领域的共性模型,从而形成类型丰富且性能优异的模型和算法库,这会成为降低领域交叉综合分析模型开发难度、提升开发效率的基础。同时,各领域科学家团队将通过共享高质量的模型和算法,促进软件系统持续演化,让软件系统更具生命力。R 语言的算法库 CRAN 是在交叉领域中进行算法共享的典范。此算法库现今收录了各领域科学家所贡献的 4000 多种算法,并且吸引了数量众多的用户。
可定制。不同科学领域的数据分析模式各不相同,通用的、固化的大数据分析软件无法适应特定领域科学家团队的个性化分析需求,这种需求在分析流程、数据源、算法模型、可视化等方面都存在。一个理想的科学大数据智能分析软件需具备多方面能力。它要支持数据方面的定制与扩展,还要支持模型算法方面的定制与扩展,同时也要支持可视化视图方面的定制与扩展。并且,它要支持领域科学家以及领域内的软件工程师进行特有组件的开发。
科学大数据智能分析软件参考方案
笔者所在团队近些年完成了诸多科学领域以及行业领域的大数据系统研发工作。当下,正承担着中国科学院战略性先导科技专项“地球大数据科学工程”当中的地球大数据挖掘分析系统(Big Earth Data Miner)的研发任务。对多个领域科学家团队的大数据分析需求进行调研,同时结合现状及趋势分析,笔者提出了下一代科学大数据智能分析软件的参考方案,此方案如图 1 所示。
该软件系统是以云平台为基础进行部署的。它运用通用大数据系统以及机器学习系统,将其当作底层的计算支撑。在此之上,它还提供了能够满足领域特性需求的科学大数据分布式计算处理引擎和机器学习引擎,并且这些引擎可以支持科学大数据分析处理的特殊过程。同时,挖掘分析任务兼具数据密集型和资源密集型的特点,并且存在即时分析、在线分析以及离线分析等差异显著的服务响应需求。所以需要去探寻提供高效的资源管理和任务调度机制数据分析与r软件,从而满足大规模并发用户的差异化支撑需求。
数据资源库可提供公共数据资源以及对个人数据资源进行管理,还能支持用户在数据资源库中方便且快捷地查找个人数据资源并将其导入,同时可进行数据共享。算法与模型库能够提供通用算法及模型,也能提供领域算法及模型并进行管理,还支持对算法和模型进行二次开发、共享以及性能优化。在其中,对于基于大数据训练而得到的模型,可以探索运用迁移学习等技术来实现跨领域共享。
智能分析环境提供多种智能分析模式。其一,工作流模式主要针对领域内相对固定的分析场景;其二,代码开发模式主要针对具备研发能力且有灵活分析需求的科学家团队;其三,可视交互式分析模式主要针对依赖可视化观察分析的应用场景。未来还能够扩展到虚拟现实、增强现实等更多的分析模式。
该软件系统借助浏览器来提供在线的挖掘分析服务。用户只要注册一个账户,就能开展一站式的分析工作。在这个过程中,云服务必须要确保科学家的数据安全,并且要实现用户分析工作的隔离。另外,还需要去探索如何利用微服务架构,以实现面向不同科学领域需求的领域化定制。
科学技术是第一生产力,科学大数据的智能分析软件是科学研究的重要支撑工具。国内科学家团队在诸多细分领域取得了举世瞩目的成果,然而却未发布具有世界影响力的开放型智能分析软件。因此,国内科学家团队需要与信息技术研究团队联合起来。要瞄准交叉领域的科学探索与知识发现。需充分考虑不同领域科学家团队的大数据分析需求。进而设计研发出更适用于科学大数据的智能分析软件系统。为人类科技进步贡献力量。