本文基于海洋领域人工智能研究对数据、软件、算法和定制工作流的实际需求,提出一种大数据驱动的海洋人工智能服务平台框架设计,阐述平台总体架构以及构建大数据驱动的海洋人工智能服务平台关键技术方法,并给出平台支撑实现的海洋人工智能模型研究案例。
1 海洋人工智能服务平台架构
平台依托中国科学院海洋科学数据中心硬件平台,采用超融合基础架构整合计算、存储和网络等基础设施资源,通过构建Kubernetes集群对GPU和CPU等计算资源进行统一调度和分配,海洋数据处理软件和深度学习框架以容器镜像的形式为用户提供易用的人工智能模型开发服务。平台按照分层架构进行设计,主要包括硬件资源层、平台服务层和应用层。平台架构如图1所示。
1.1
硬件资源层
平台基于中国科学院海洋科学数据中心数据与计算集群进行设计实现。集群资源包括CPU计算资源、GPU计算资源以及集中存储和分布式存储。CPU计算资源配置512个物理CPU核心和4TB内存。GPU计算资源包含10台GPU服务器,每台服务器配置4块NVIDIATeslaA100GPU加速卡,双精度浮点计算能力(理论峰值)为400TFlops,理论峰值深度学习计算能力(理论峰值)3.5PFlops。存储系统支持集中存储和分布式文件存储,实际存储能力3.5PB。
1.2
平台服务层
平台服务层负责将海洋人工智能模型开发过程中需要用到的数据预处理软件、数据标记软件、数据ETL工具、模型开发工作流引擎、深度学习框架等软件固化到Docker容器,通过Kubernetes统一管理调度容器应用,动态分配GPU资源,提升GPU 的使用效率,做到用即申请,用完即释放,盘活GPU资源池,实现GPU资源的分时复用和海洋人工智能开发环境的快速部署。用户只需关注如何使用开发环境,无需把时间浪费在开发环境准备的环节上。
1.3
应用层
应用层部署海洋人工智能数据和模型门户、人工智能模型开发环境、海洋人工智能研究工作流管理系统和模型评估及可视化软件等应用产品,为用户提供简单易用的交互式系统界面,支持通过标准接口调用标记数据集、在线进行模型训练代码编写和调试、拖拽式的模型开发工作流定制、模型性能评估及可视化等功能。
2海洋人工智能服务平台关键技术方法
本文提出一种基于容器云技术的海洋人工智能服务平台框架并进行系统实现,主要目标是简化并加速海洋人工智能数据整理以及模型开发、部署和推理服务等流程,解决人工智能开发环境计算资源难以统一调度分配、查找数据困难和人工智能开发环境部署安装繁琐等问题。
2.1
海洋人工智能数据资源管理
机器学习是通过算法使得机器能从大量数据中学习规律并对新的样本做决策,需要足够多的数据来构建映射关系。机器学习模型是通用数学方程的组合,理论上它们可以用于任何类型的数据集,并适用于大多数科学场景。一个成功的人工智能模型的先决条件是一个大规模的、存在较少偏差的、准确完整的训练数据集,在地球科学领域使用人工智能机器学习方法开展科学研究尤其需要大量的训练数据集。因此,构建机器学习模型重要的工作之一是进行数据收集、预处理、整理等数据准备流程。
海洋科学数据的特点之一是多源异构,来源包括科考船调查、浮潜标观测、水下移动观测、卫星遥感观测、同化再分析产品等,并且具有多种数据格式。因此,多源异构海洋数据的预处理、质量控制、清洗、加工,进行数据标注并形成训练样本数据集对海洋领域人工智能研究尤为重要。
本文设计一种海洋数据标准化处理引擎,按照统一的分级分类标准对元数据和实体数据进行规范处理、汇聚和发布,为海洋人工智能模型开发环境提供统一访问接口的高质量数据资源。用户可基于该数据进行数据标记、数据ETL、特征工程等操作。该引擎设计流程如图2所示。
该引擎根据海洋数据不同来源和类型,分别对元数据和实体数据进行规范化处理。针对元数据,按照ISO19115-2标准,设计元数据编辑器,通过表单、模板、配置文件、链接等形式,将海洋数据的时间范围、空间区域、水深、参数要素、分辨率、实体文件访问接口协议等信息存储到元数据管理系统,实现数据资源目录发布。针对不同格式类型的实体数据,设计相应的数据解析转换模块,支持数据读取、质量控制、格式转换和存储等自动化处理,数据转换后存储为关系型数据库、NetCDF、GeoTIFF、对象存储等格式,然后通过数据汇聚管理系统进行数据聚合并按照通用科学数据协议进行数据发布。科研人员可以在海洋人工智能模型开发环境中通过协议接口快速调用数据资源开展模型开发前的数据准备工作。
针对以NetCDF文件格式存储的海洋网格化数据,平台设计转换为适配云计算环境的对象存储格式来存储,这种格式保持了NetCDF的数据组织格式,提供分块、压缩和多维数组功能,支持处理大规模的数据集的快速检索访问。元数据以JSON格式存储,数据块以独立的存储对象存储,通常数据块大小为10-100MB,应用程序可以快速高效地读取数据。平台存储的NetCDF格式的海洋数据可以使用数据处理软件快速转换为对象存储格式。
针对海洋卫星遥感影像数据,通常以GeoTIFF 文件格式存储,缺点是每次对文件进行处理都需要将其全部下载到本地,处理完成后再上传到云端,这会耗费大量下载和上传的时间、占用存储空间。平台采用COG(CloudOptimizedGeoTIFF)格式存储,这种格式是在普通GeoTIFF文件基础上增加了概览等元数据信息,使得可以通过HTTP进行局部数据的读取,即按需获取数据。平台采用STAC(SpatioTemporalAssetCatalog:时空数据资产目录)规范为采用COG文件格式的遥感影像提供目录服务和元数据的描述,使得计算机可以根据描述(GeoJSON格式)信息,快速定位到存储与云平台的数据块,加快数据发掘和应用的效率。平台采用的COG和STAC技术,为地理空间数据分析提供了一个灵活和可访问的解决方案。STAC提供了一个描述存储在云对象存储中的大型地理空间数据集的系统,而COG则提供了对这些数据集的便捷访问,不需要下载数据到本地计算机。
通过以上过程将数据转换为适配云计算对象存储格式,并实时存储于对象存储系统中,使数据与计算资源靠近在一起,提供存算用于一体的数据计算分析环境。用户使用基于Web浏览器的在线数据分析环境或者其它数据处理分析客户端软件,编写或定制数据处理分析任务,系统调用云平台分布式计算节点执行数据计算和分析任务,分析结果在客户端呈现。数据管理和处理分析流程框架如图3所示。
依托数据资源管理系统,汇聚中国科学院近海海洋观测研究网络黄东海站浮标观测数据、西太平洋科学观测网潜标观测数据、西太平洋三维温盐流再分析数据、西太平洋深海生物影像、全球海洋内波发生历史数据、西太平洋中尺度涡旋监测识别数据、西太平洋海洋锋监测识别数据等资源,经过数据标注后形成样本数据资源库。研究人员可以直接在模型开发环境中通过标准化数据接口调用标记数据,进行模型训练和调试。
2.2
海洋人工智能算法资源库
海洋人工智能算法资源库汇聚海洋领域常用的有监督学习、无监督学习以及图像分割、目标检测、时间序列预测等人工智能算法,通过软件编码形成可调用的应用程序接口(API),然后按照算法的使用目的封装成多个算法容器。
平台整合人工智能海洋学研究过程的常用算法如主成分分析法、梯度下降法、随机森林、支持向量机,图像分割算法如U-Net、SegNet、FCN、DeepLab,目标检测算法如YOLO、SSD、R-CNN,时间序列预测算法ConvLSTM等,通过软件编码封装成可调用的算法资源库。
基于算法模型资源库,将单个独立的算法打包成Docker容器镜像,支持多语言算法实现类库、算法适配、特征数据适配和修正等功能,以“算法类型+算法版本”为最小粒度启动算法。
算法引擎包括算法版本管理、运行状态监控和异常回滚以及容器间通讯等功能。算法版本管理用于管理运行的算法类型以及相应的版本。算法运行状态监控和异常回滚是基于算法版本管理启动(即启动子进程)对应版本的算法。在运行过程中会实时监控算法运行情况,若发生异常则回滚到上一稳定的版本。容器间通讯采用UnixDomain方式实现算法运行的子进程进行通讯,达到调用算法的目的。基于算法引擎的算法容器管理功能通过http协议对外提供算法接口服务。
2.3
海洋人工智能预训练模型库
本文通过构建海洋人工智能预训练模型库,来解决海洋人工智能模型研发过程中存在的观测数据稀疏、数据的时间和空间分布不均匀、样本数据量少等问题。在目标范围内数据较少的情况下,研究人员可以使用迁移学习、自监督学习、强化学习等方法,对相似研究方向的预训练模型的结构和权重进行微调和改进,形成新的模型,从而更好地解决目标任务。
本文设计的海洋人工智能预训练模型库收集汇聚的预训练模型主要包括深海生物识别模型、船舶识别模型、海洋中尺度涡旋识别模型和海洋次表层温盐场重构模型。上述模型均基于开源深度学习框架PyTorch开发,模型文件格式为pt和pth。平台汇聚的预训练模型如表1所示。平台将持续增加模型。
2.4
海洋人工智能模型开发环境
海洋人工智能模型开发环境基于Web浏览器的图形化界面、基于SSH的命令行方式和基于浏览器的在线编辑调试工作流创建方式,实现大量计算作业在海量异构计算资源上的高效运行,支持数据准备、算法选取、模型训练、超参数调优、模型验证和模型部署等流程的在线实施,提供机器学习模型设计、训练和推理基础环境。
为了形成AI模型算法的在线开发能力,采用Ext3增量镜像的方式增加用户的独立开发环境存储容量。用户通过WEB浏览器触发启动任务,任务将根据用户的启动条件(内存大小、GPU数量等)分配资源。如果资源不足,将进入队列等待。当节点分配成功后,V-Slurm初始化当前节点的网卡和系统环境,并获取节点IP。为了获得当前可用跳板机器的可用端口,需要使用位图结构检索内存数据库。准备好上述参数后,启动容器,应用程序或服务的启动脚本将自动触发。随后,启动与端口转发相关的服务,并打开使用HTTP和SSH协议的完整链端口隧道。至此,人工智能开发环境服务启动过程已完成。用户通过Web浏览器登录账号后,系统自动从镜像仓库拉取软件镜像,并提供基于Jupyterlab的在线IDE编辑环境。
2.5
海洋人工智能研发工作流框架
采用大数据驱动的机器学习或深度学习等人工智能智能方法进行海洋科学研究通常包括5个步骤:
(1)确定科学问题并提出潜在的机器学习解决方案;(2)进行可行性分析,分析失败的风险和瓶颈问题;(3)模型设计、数据准备、模型训练、模型评估;(4)模型部署和性能监控;(5)模型优化和共享。
涉及模型研发的部分是由软件、脚本、工具库和命令行组成的,这些方法通常是难以复用的。因此,梳理并简化这些研究流程并支持交互式编辑、定制和组织,减少重复性的一种可管理的、可定制、清晰的方式来协助科学家开展科学研究。
本文提出一种基于ApacheAirflflow工作流引擎的海洋人工智能研究工作流管理框架来简化并自动化研究过程中重复性的任务。该框架系统可以协助海洋人工智能科研人员梳理模型研究实验中重复性的、可固化的任务,并编辑定制成标准化的工作流程,通过工作流引擎进行自动化执行。系统支持将数据加载、数据预处理、特征工程、模型训练、超参数调整、模型评估和模型部署等脚本代码以工作流程子模块的形式,通过交互式界面进行拖拽组合成一个流水线工作流程。
图6为工作流管理与定制编辑系统界面。界面左侧将该任务划分成了独立的4个独立的子任务,包括数据加载、数据清洗、数据分析和时间序列预测。每个子任务的实现代码保存成JupyterNotebook文件格式。用户可以通过右侧工作流编辑器将所有子任务拖拽至界面中,然后根据任务逻辑顺序将各子任务连接起来,形成一个流水线,然后启动该流水线,子任务模块就可以按照顺序执行,最终输出结果,实现了工作流的可视化定制和执行,提高了科研工作效率。
3 海洋人工智能服务平台示范应用
面向海洋大数据与人工智能应用场景需求,联合海洋领域科学家基于平台环境以及平台集成的数据、软件工具、算法和模型等资源,采用人工智能技术构建了深海生物识别与统计分析模型和基于神经网络的西太平洋海洋次表层温盐场重构模型,并进行了模型部署应用。
3.1 深海生物识别与统计分析
随着深海生物影像数据不断的获取和积累,针对需要专家分类的复杂场景和生物体的数据,迫切需要研究深海生物影像的自动化标记和分类识别新方法。包括随机森林在内的统计方法已成功用于浮游生物成像领域,实现了微观植物和动物的自动分类,准确率超过90%。无监督学习算法可以被用于数据量不足的场景,但这些算法在自动检测和分类水下图像中的生物方面的应用有限,其颗粒度不足以构建准确的分类识别模型。有监督学习方法,比如基于标记数据训练的神经网络模型(CNN),已将自动标记和分类识别任务的性能提高到属和种的水平,这种方法要求有大量的、高质量的水下标记训练数据集。因此,迫切需要构建一个跨空间尺度的海洋生物影像训练样本集,可以在统一的、公开的、在线的资源库中获取,并应用神经网络深度学习方法,研发海洋生物自动化分类识别模型,实现深海生物影像数据的自动化标记、分类和识别,为海洋生物分类研究提供数据和软件支撑。
本文针对海洋科考调查船水下机器人获取的视频和图片中的深海生物识别和统计分析工作需求,设计开发了一套生物类别标记、图像处理和统计分析软件。软件界面如图7所示。
软件包括C/S和B/S两个版本,并集成了深海生物目标检测、物体动态追踪、图像增强、影像融合等计算机视觉相关算法工具,在海洋人工智能服务平台云计算环境中进行了容器化部署,面向用户提供易用的操作界面,支持深海生物标记、分类、识别、统计分析等功能。分类专家使用该软件进行生物类别标记,形成了海洋生物标记样本数据集为生物识别模型提供了训练和测试样本。
基于平台实现的海洋人工智能研究工作流框架原型系统,形成了AI辅助的深海生物标记、分类、统计、分析的工作流。基于集成的深海生物分类标记软件形成的标记数据集,包括标记图片80,456张,175,873个标记点,涉及2,243个生物类别。将数据集的80%设为训练数据集,10%设为验证数据集,10%设为测试数据集。分别采用目标检测算法RetinaNet和YOLOv5构建了支持深海生物分类识别和统计分析的AI模型,经过测试验证,识别准确率分别为95.2%和92.8%。基于服务平台环境以微服务的形式进行了模型部署,提供基于Web浏览器的深海生物在线识别推理,用户通过系统界面上传生物图片或视频,选择预训练模型即可快速得到模型识别结果。深海生物在线识别推理服务系统界面如图8所示。
3.2 基于神经网络的西太平洋海洋次表层三维温盐场重构
海洋次表层格点化数据产品对了解海洋内部异常及其动力过程有重要意义。目前虽然已经有了ARGO、GOOS等全球海洋观测计划,但对广阔的大洋来说,现场观测数据还是稀疏并且在近海和大洋的时空分布是不均匀的,次表层的格点化数据产品目前主要依赖于数据模式在高性能计算机上的计算得来,随着模式分辨率的提高,计算时间较长。另一方面,基于卫星遥感的海洋表层数据产品较容易获取。因此,我们基于海洋人工智能服务平台集成的国际国内多源卫星遥感和历史再分析产品,采用ANN神经网络和卷积长短期记忆网络构建了西太平洋次表层温盐场重构与预报模型,以海表面温度、海表面盐度、海表面风、海表面高度等遥感产品为输入,输出次表层温盐场重构和预报结果。通过使用现场观测数据进行测试验证,模型在500m以浅深度,温度平均均方根误差小于0.5℃,盐度平均均方根误差小于0.03psu。模型构建流程如图9所示。
基于平台的容器化服务功能,对模型进行了部署,形成了模型自动化重构服务系统。系统每天定时下载所需的卫星遥感数据产品,然后自动化输入到模型进行次表层三维温盐场的重构。用户可以通过基于Web浏览器的模型重构结果查询与可视化系统,按照时间、空间查询模型重构的三维温盐场结果数据。模型重构结果查询可视化系统界面如图10所示。
4 结论与展望
本文基于海洋领域人工智能研究现状、存在的问题及实际需求,提出了一种大数据驱动的海洋人工智能服务框架并进行了系统实现,并基于中国科学院海洋科学数据中心的云计算平台环境实现了海洋人工智能服务平台系统V1.0。该平台支持海洋人工智能数据预处理、特征提取、模型训练、超参数调整、模型评估与部署推理和工作流定制编辑等功能。海洋人工智能研究人员基于该平台搭建了定制化的科研工作流,研发了深海生物识别分析模型和海洋次表层温盐场重构模型,并进行了模型部署以及在线推理应用服务,为科研用户提供“一站式”机器学习即服务。该平台的定位是集成海洋人工智能算法、工具和数据资源,为科研人员提供全面支持的科研信息化平台。因此,下一步将依托该平台构建形成由海洋领域科学家、人工智能专家、开发人员、平台运维人员组成的海洋人工智能研究社区,开展项目合作研究,开发海洋领域新的人工智能算法和模型,促进海洋科学和人工智能的交叉融合,助推研究所人工智能海洋学学科建设,推动海洋大数据与人工智能科研范式变革。
来源 | 原刊于《数据与计算发展前沿》 作者 | 王凡1 ,冯立强1*,曹荣强2 1.中国科学院海洋研究所,山东 青岛266071 2. 中国科学院计算机网络信息中心,北京100083 排版 | 数智海洋公众号
该文章来源网络,如有侵权请联系删除