一 术语和定义
1.1机器学习系统 machinelearningsystem
能运行或用于开发机器学习模型、算法和相关应用的软件系统。
1.2机器学习框架 machinelearningframework
利用预先构建和优化好的组件集合定义模型,实现对机器学习算法封装、数据调用处理和计算资源使用的软件库。
1.3机器学习服务 machinelearning service
利用机器学习模型算法及其系统作为工具为组织或个人提供一种其期望的便利的方式价值的IT服务。
注:机器学习算法服务是机器学习服务的一种,用于接受用户的应用请求,对输入数据进行处理,返回处理结果。
1.4模型编译器 model compiler
将机器学习模型定义的计算过程转换为能在特定人工智能计算资源上执行的代码序列的计算机程序。
注:本文件中定义的模型编译器仅用于机器学习领域。
1.5资源池 resource pool
各类系统资源的集合体。
1.6作业 job
机器学习训练或推理任务的逻辑组合。
注:一个作业属于且仅属于某一个资源池,一个作业包括一个或多个任务。
1.7任务 task
实现特定目标所需要的活动。
注:任务用于完成一个相对独立的业务功能,一个任务属于且仅属于一个作业。
二 系统框架
机器学习系统包含机器学习运行时组件,机器学习框架,机器学习服务组件,工具和运维管理。提供机器学习应用的开发,训练,部署,运行和管理能力,机器学习系统框架图如下图
2.1机器学习运行组件
机器学习运行时组件是为保障机器学习应用按照预期在特定机器学习系统上运行所必需的软件环境,包括设备驱动软件和算子库。
设备驱动软件负责机器学习各种类型任务的调度与执行,包括为机器学习任务分配提供资源管理通道,为应用提供存储管理、设备管理、执行流管理、事件管理和核函数执行功能。算子库提供机器学习算法在设备执行调度的最小计算单元,包括面向机器学习计算任务的通用算子和面向特定设备计算加速任务的优化算子。
2.2 机器学习框架
机器学习框架包含模型训练,模型推理及算法库三个模块,为机器学习应用开发、优化、验证和部署过程提供工具支撑。
模型训练用于机器学习应用设计开发阶段,该模块提供自动微分、损失函数和优化器等调用接口,提供模型定义、自动分布式并行训练和多硬件后端适配等能力。
模型推理用于机器学习应用的验证部署阶段,该模块提供模型加载、微调、性能评估和转换等接口,提供模型部署及推理加速等能力。
算法库面向机器学习训练、推理和模型性能优化任务,提供预先优化好的算法,以封装函数库的方式供用户调用,提升机器学习模型开发、优化、验证和部署的效率。
2.3 机器学习服务组件
机器学习服务是人工智能行业应用访问、利用机器学习能力和资源的主要方式,机器学习服务组件支持工作流管理、通用算法模板和应用部署。机器学习系统通过服务组件,进行服务部署、运行环境准备、运行状态汇报和服务容错等,并提供服务调用接口,供各领域上层应用调用。为满足应用场景的需求,机器学习系统可提供文本、图像、音频和视频及其他类型智能化操作的算法服务。
2.4 工具
2.4.1 数据管理工具
数据管理工具提供人工智能数据的生存周期,包含定义、采集、预处理、模型构建、系统部署、系统维护,数据退出和系统退出的管理能力。提供各类数据源,包括结构化,半结构化和非结构化数据的接入、标注和质量控制,中间数据的管理、最终数据的管理、元数据的管理和数据使用溯源等能力,支持对海量结构化、非结构化数据的预处理与特征挖掘。
2.4.2 模型管理工具
模型管理工具提供常用的机器学习模型及其变形,能按照一定的方式,如算法结构、应用范围,提供模型的分类检索:模型管理工具也可扩展支持模型导入、导出、更新、发布、迁移和版本控制等功能。在机器学习应用开发阶段,通过多模型组合开发、多模型集成、超参数设置和模型二次训练等方式支持模型优化与应用开发。
2.4.3 开发环境
开发环境是机器学习全流程开发工具链,支持模型开发、算子开发和应用开发三个主流程中的开发任务,提供模型可视化、算力测试和IDE单机仿真调试等功能。
2.4.4 模型编译器
模型编译器将计算过程的计算图和算子转换为环境兼容的中间表达或设备可执行的代码,支持编译优化、编译参数自动寻优、编译结果存储载入、自定义算子注册编译、模型格式转换等功能
2.5 运维管理
运维管理提供系统所需的基本运维(例如安装部署、扩展、监控、报警、健康检查、问题及故障定位升级和补丁、备份恢复和操作审计等)及管理功能(例如计算资源管理、权限管理、用户管理、日志管理,配置管理,安全管理等)
三 可靠性要求
可靠性要求包括:
-
应具备跟踪任务的执行状态,并对异常任务进行提示的能力;
-
应具备资源受限或系统失效后持续提供或恢复服务的能力,如具备历史版本回滚、框架提供参数的保存能力等;
-
应具备容错机制,具备系统在检测出异常输入或危险操作时的错误提示功能;
-
应具备对误操作的抵御能力,确保误操作后系统的正常运行;
-
应具备不同容量场景过载控制机制;
-
应具备系统故障诊断能力,如机器学习框架可保存关键运行数据以用于故障定位和恢复;
-
应具备系统故障隔离能力,如集群训练中,单一节点出现故障时可快速隔离;
-
宜具备系统状态文件的几余备份功能和容灾能力。
四 维护性要求
维护性要求包括:
a) 应具备数据集规模、均衡性、标注质量和污染情况对算法结果的影响分析功能;
b) 应具备在设计、实现和运行各阶段对应的性能度量指标和验证方法;
c) 应具备代码实现算法功能的正确性分析能力,包括代码规范性和代码漏洞检查;
d) 应具备系统实际运行中环境干扰的影响分析能力,包括噪声干扰和数据分布迁移等;
e) 宜具备异常数据的存储和导出能力。
五 兼容性要求
5.1 软件兼容性要求
软件兼容性要求包括:
a. 应具备软件服务兼容性,相互关联的软件服务能够正常运行,且在数据、信息和交互三个方面具有相互兼容的性质;
b. 不应依赖特定的软件运行环境;
c. 应具备系统运行的可移植性;
d. 应兼容主流操作系统,兼容多种编程语言;
e. 应兼容开源的通用接口,根据系统要求在最新版本中增强或优化;
f. 应具备模块间及模块内接口信息传递和互操作功能;
g. 应具备异源数据、异构数据库和新旧数据接口的转换功能;
h. 应兼容不同场景应用,兼容特定应用系统下的优化和扩展。
5.2 硬件兼容性要求
硬件兼容性要求包括:
a. 应兼容多种计算单元,例如CPU、GPU、FPGA和ASIC等;
b. 应兼容多种存储系统,例如分布式云存储和本地存储等;
c. 应兼容多种网络连接方式,例如以太网和InfiniBand网络;
d. 宜兼容多种计算平台,例如服务器、移动通信终端、平板式计算机和可穿戴设备等。
六 安全性要求
安全性要求包括:
a. 应提供对训练数据、部署模型、算法程序和服务接口的访问权限管理能力;
b. 应提供抵御对抗样本攻击和噪声污染的能力;
c. 应具备对访问用户的访问历史查询能力;
d. 应具备对权重文件的防篡改能力以及保护能力;
e. 应具备将任务详细状态输出到日志的能力;
f. 应具备对分布式任务的鉴别和加密通信能力;
g. 应具备部分模型的可解释能力;
h. 应具备部分模型的差分隐私训练能力;
i. 应具备部分模型和任务的稳健性评估能力;
j. 应屏蔽非法输人。
七 可扩展性要求
可扩展性要求包括:
a. 应具有标准格式的接口,降低维护和运行机器学习模型的成本;
b. 应具有模型部署到生产环境的标准流程,降低系统整合风险;
c. 应提供机器学习生存周期管理工具。