AISynergy
众智AI协同计算平台介绍
众智AI协同计算平台是基于智算网络基础设施及服务,由多个智算网络用户按照应用场景抽象的任务角色利用数据、算力、模型、网络等资源协同完成一个智能计算任务的计算模式。众智AI协同计算平台是一个分布式智能协同计算平台,智能协同计算通过智算网络基础设施使能数据、算力、模型、网络和服务,完成在市场上安全、合规、自由的资源流通共享,进而实现全新计算范式和业务场景,如大模型跨域协同计算、多方模型聚合、联邦学习等。这种智能协同计算范式成为充分发挥智算网络整体效能、赋能人工智能产业规模化应用的关键。
AISynergy包括两大部分,第一大部分是协同计算平台部分即AISynergy-Platform,实现协同任务协调,另一部分是协同训练部分AISynergy-core,属于系统的一部分,由智算网络用户自行建设和部署。协同计算平台包括多个组件:协同计算WEB平台、协同计算代理服务器、以及grpc服务等。 (其中AISynergy-core也可以单独安装和使用)
协同计算平台功能框架图
其中:
业务平面的功能如下:
受理外部请求,实现身份管理、权限管理、算法管理和模型管理等
负责收集存储、CPU、GPU、NPU等资源,控制参数融合事件、效果评估等分布学习过程的各类事件,以及各类请求操作
控制平面的功能如下:
训练策略:对同步周期进行动态调整、对超时或失效的本地训练进行重置等
训练效果评估:对中间结果进行验证,对最终结果进行分析等
融合策略:支持多种不同的融合策略
资源平面包括:
计算资源:CPU、GPU、NPU
网络资源:带宽、网络延迟等
存储资源:分布式文件存储、状态数据库等
各个模块关系图
其中:
[WEB]:前端展示页面
[WEB API Server]:后台的管理、数据库的管理、命令的转发等
[Proxy grpc server]: 实现命令的转发,采集机器信息等
[Proxy]: 实现机器信息采集、运行状态采集、任务执行。任务执行包括任务启动、任务停止等操作,主要是对容器进行启动和停止
AI agent:协同训练服务器,运行在任务组机器上面,实现协调多机构的AI Client的训练过程
AI Client: 协同训练客户端,运行在任务所在机构机器上面,实现对训练数据进行训练,并上传训练过程数据到融合节点
部署
平台部署请见
[部署]
用户使用手册
用户使用手册请见
[平台使用手册]
使用流程
系统主要由算法、算力、数据集、任务组、任务、模型组成,首先用户需要编写特定需求的算法,并满足协同训练的融合训练的基础架构,通过docker打包并部署到相应的Docker hub服务器完成算法的部署。算力是支撑协同训练的物理基础,可以支持物理机和鹏城云脑部署。数据集是训练的输入,需要部署在算力之上,在不同用户或相同用户均可开展协同学习。一个任务组和一个训练任务等价,任务组需要制定算法和参与用户最小数量。任务是用户加入协同训练的一个实例。
以鹏城云脑环境介绍平台使用流程如下:
协同训练启动过程
其中:
- 平台为现有智算网络用户创建账户,并通过调度器或指定的智算网络用户准备融合机器,添加到平台中
- 登入系统,添加机器信息
- 安装proxy代理软件后,平台就可以管理用户机器,代理提交机器基础细腻,并给予命令,执行启动或关闭容器功能
示例 (using AISynergy)
这里提供两个demo供大家参考
resnet50分类模型
数据集&模型:cifar10 resnet50
算力:5方智算网络用户中心参与的图像分类协同训练,数据平均划分为5份
训练超参:训练epoch=15,采用平均融合策略
如图所示,显示的协同训练场景,是联合5个智算中心,分别是位于深圳的鹏城云脑I、鹏城云脑II、位于北京的北大智算中心、位于合肥的类脑智算中心、位于武汉的武汉智算中心,每个分中心都有部分私有数据,要求数据不出本地, 其中鹏城云脑II、武汉智算中心都是通过对接modelarts进行资源的管理与调度。
- 从展示的曲线可以看到:协同训练模型的精度较各方中心仅用本地数据训练得到的精度,有提升4个百分点,而对比用全量数据训练的精度,只下降了1个百分点,而且从耗时上分析来看,通信时间在整个训练耗时中占的比例较少,不到20%。
- 充分验证了通过跨域的异构算力资源,利用多方数据协同训练多的模型相比各中心仅用本地数据训练的模型,性能有较大的提升。
盘古-350M异构框架协同训练模型
数据集:600M(baike)
算力:4方智算网络用户中心参与的盘古模型协同训练,数据平均划分为4份,各方数据占150M
训练超参:训练epoch=9,采用平均融合策略
实验结果数据如下图:
结论:
- 验证了协同计算在nlp自然语言处理上的有效性,协同训练模型检测准确率高于参与方单独训练时模型准确率
- 通信时间在整个耗时中占比较小,最慢的参与方通讯时间占整个耗时的百分之20左右
- 目前用600M数据,数据量偏小,继续往后训练,训练loss不断降低,但是验证集的Loss不下降,会出现过拟合