本文件给出了面向机器学习的系统的框架,规定了系统的技术要求。本文件适用于各领域的机器学习系统及相关解决方案的规划、设计及开发,可作为评估、选型及验收的依据。
目的意义
随着各行业应用对人工智能系统功能完备性、机器学习算法、运算能力、平台稳定性等方面的要求不断提升,技术领先国家、主要厂商都在致力面向机器学习的人工智能系统的设计、发展和创新。 在国外,包括Google、微软、亚马逊等人工智能服务厂商,都在积极研制、商用以机器学习为核心的人工智能产品。机器学习、深度学习、各类模型的训练和部署、各类人工智能系统组件等成为各厂商投入的重点。多种多样的上层业务(自动驾驶、工业制造、媒体资讯、金融等),都基于机器学习迅速发展,取得了显著的成果。国内的人工智能相关产品也在不断引入新的特性和能力。国内外产业在面向机器学习的人工智能系统上有共性的需求,而上层应用的发展也亟待机器学习能力的支撑和发展。
机器学习技术是开源主导,如Tensorflow ,Apache MXNet, Caffe等对机器学习的发展和普及起到了重要作用。但开源技术距离商用尚有一定距离。在各类开源软件不断发展的同时,如何规范机器学习的基本能力,引导厂商根据应用需求设计、实现系统架构,提供基本技术能力,成为产业对标准迫切的需求。 综上所述,有必要制定基于机器学习的人工智能系统框架和基本功能要求,这对推动系统架构的发展,统一用户和厂商对系统基本功能的认识,帮助用户验证和选型有重要意义。同时能够促进产学研结合,推动机器学习在行业的普及和应用。
范围和主要技术内容
在《人工智能标准化白皮书(2021)版》中,对人工智能系统框架、智能运算平台架构有深入的解读:机器学习计算框架与算法管理、分布式计算平台、异构资源池化与调度、智能芯片等,是产业迫切的标准需求。国际上,人工智能标准刚刚起步。ISO/IEC JTC1/SC42 人工智能分委会2017年底正式成立。由美国代表团在SC42牵头立项“基于机器学习的人工智能框架”。从目前草案来看,机器学习平台能力,包含机器学习框架、算法、流程、生命周期管理、基础设施等是系统的最重要部分。国内人工智能标准也在逐步制定中。例如征求意见阶段的国家标准《信息技术 人工智能 平台计算资源技术要求》是人工智能系统平台资源层架构和能力的细化。在国际、国内标准都处于起步阶段的时期,编制本标准并推动在试点行业的验证实施,有利于增强标准对产业的指引,促进相关技术和成果的应用和推广。同时本标准领先于国际标准制定,有助于推动国内技术和标准成果贡献、影响国际标准。本标准也是后续面向机器学习的人工智能系统相关标准的依据。
产业化情况、推广应用论证和预期达到的经济效果
当前,国内外在机器学习技术和应用方面已取得显著的进展并开始规模商用。美国、德国、中国、日本等国家均有较先进的平台和系统,为用户提供机器学习能力。本标准旨在推动以机器学习为核心的人工智能系统发展,统一业界对系统功能要求的认知,促进机器学习的商用落地。
本标准描述的架构和功能要求已在多个行业探索、实践,包括城市交通大脑、运营商、金融等。在人工智能运算需求强烈的场景(如视频监控、违章分析、风险控制等)取得了明显的效果,识别准确度、运算速度和计算效率都显著提升,节省了人力和时间成本。可以预见本标准可为更多行业实践提供参考,促进面向机器学习的人工智能系统在更多领域的应用,推动业务数字化、智能化转型。
机器学习系统框架
机器学习系统主要包含机器学习服务(机器学习领域组件)、机器学习框架、机器学习运行时组件、工具、运维管理组件。提供机器学习应用的开发、训练、部署、运行和管理能力,机器学习系统的参考框架见图1。
图1 面向机器学习的系统架构图
机器学习运行时组件
机器学习运行时组件是为保障机器学习应用按照预期在特定机器学习系统上运行所必要的软件环境,包括设备驱动软件和算子库。
设备驱动软件负责机器学习各种类型任务的调度与执行,包括为机器学习任务分配提供资源管理通道,为应用提供存储管理、设备管理、执行流管理、事件管理、核函数执行功能。算子库提供机器学习算法在设备执行调度的最小计算单元,包括面向机器学习计算任务的通用算子和面向特定设备计算加速任务的优化算子。
机器学习框架
机器学习框架包含模型训练、模型推理及机器学习算法库三个模块,为机器学习应用开发、优化、验证和部署过程中提供工具支撑。 模型训练模块用于机器学习应用设计开发阶段,该模块提供自动微分、损失函数、优化器等调用接口,支持模型定义、自动分布式并行训练、多硬件后端适配等能力。 模型推理模块用于机器学习应的验证部署阶段,该模块提供模型加载、微调、性能评估、转换等接口,提供模型部署及推理加速等能力。 算法库面向机器学习训练、推理及模型性能优化任务,提供预先优化好的算法,以封装函数库的方式供用户调用,提升机器学习模型开发、优化、验证、部署的效率。 注:面向不同的机器学习任务,框架的模块可进行针对性取舍。
机器学习服务****组件
机器学习服务是人工智能行业应用访问、利用机器学习能力和资源的主要方式,支持工作流管理、通用算法模板和应用部署。机器学习系统通过服务组件,进行服务部署、运行环境准备、运行状态汇报、服务容错等,并提供服务调用接口,供各领域上层应用调用。为满足应用场景的需求,机器学习系统可提供视频、图像、音频、文本及其他类型智能化操作的算法服务。
工具
数据管理****工具
数据的全生存周期管理,包含采集、传输、存储、预处理、标注、分析、可视化、访问及销毁过程。数据管理包括各类数据源(结构化、半结构化、非结构化数据)的接入、标注质量控制,中间数据的管理、最终数据的管理、元数据的管理、数据质量管理、数据使用溯源管理,为各环节提供数据管理工具,支持对海量结构化,非结构化数据的探索与挖掘。
模型管理****工具
模型管理应提供常用的机器学习模型及其变形,应能按照一定的方式,如算法结构、应用范围,提供模型的分类检索;模型管理工具也可扩展支持模型导入、导出、更新、发布、迁移、版本控制等功能。在机器学习应用开发阶段,提供可视化辅助开发工具,支持多模型融合开发、多模型集成、超参数设置、模型二次训练等方式支持模型优化与应用开发。
开发环境
开发环境是机器学习全流程开发工具链,支持模型开发、算子开发以及应用开发三个主流程中的开发任务,提供模型可视化、算力测试、IDE本地仿真调试等功能。
模型编译器
模型编译器将计算过程的计算图和算子转换为环境兼容的中间表达或设备可执行的代码,支持编译优化,编译参数自动寻优、编译结果存储载入、自定义算子注册编译、模型格式转换等功能。
运维管理****组件
运维管理提供系统所需的基本运维(例如安装部署、扩展、监控、告警、健康检查、问题及故障定位、升级和补丁、备份恢复、操作审计等)及管理功能(例如资源管理、权限管理、用户管理、日志管理、配置管理、安全管理等)。
技术要求
机器学习系统应具备机器学习运行时组件、机器学习框架、工具及运维管理组件(架构见图1),各组件应满足机器学习模型算法的设计开发、部署、验证和优化过程所需的基本功能要求;在技术功能的设计上,应考虑保障机器学习任务运行时的可靠性和稳定性;应考虑兼容不同的机器学习任务和软硬件环境,宜能针对部分使用场景,如视频、图像等实施优化设计;应提供措施保障机器学习模型、数据的机密性、完整性和可用性;还应具备可扩展性,支持通过插件或其他方式接入系统或获取系统数据。