【华为云技术分享】网络场景AI模型训练效率实践
【摘要】 问题 KPI异常检测项目需要对设备内多模块、多类型数据,并根据波形以及异常表现进行分析,这样的数据量往往较大,对内存和性能要求较高。同时,在设计优化算法时,需要快速得到训练及测试结果并根据结果来调整算法,因此进一步要求计算内存和性能达到较高的水平。当前,本地安全PC性能难以满足调试要求,难点主要在于,时间序列数据以csv文件格式存储,需要根据时序关系以及五维关键字拆分成以五维关键字为主...
问题
KPI异常检测项目需要对设备内多模块、多类型数据,并根据波形以及异常表现进行分析,这样的数据量往往较大,对内存和性能要求较高。
同时,在设计优化算法时,需要快速得到训练及测试结果并根据结果来调整算法,因此进一步要求计算内存和性能达到较高的水平。
当前,本地安全PC性能难以满足调试要求,难点主要在于,时间序列数据以csv文件格式存储,需要根据时序关系以及五维关键字拆分成以五维关键字为主键的唯一时序数据,这一过程需要将同一台设备所有KPI文件同时读入内存,一星期KPI数据文件就达到GB级别,单单本机训练就需要41Min。同时,每台网管设备纳管几千台设备,训练花的时间将按设备数对应倍数增加,单进程执行网管设备局点数据分析的时间将到达Month级别。
KPI异常检测项目希望能够根据KPI数据特点,显著缩短训练时间,以满足快速测试算法调优的需求。
华为解决方案
1. 对华为NAIE训练平台现有任务机制进行拓展,任务可使用Master-Worker机制,即原来的任务变成Master控制消息分发,在其命名空间下创建N个子任务,循环处理数据
![](https://pic4.zhimg.com/v2-d3329a4837df7128e60b2922a301d5fb_b.png)
2. 设计一套简单易用的API,尽量对业务代码无侵入
-
导入依赖:
我们从naie sdk中导入两个装饰器
![](https://pic3.zhimg.com/v2-0bbc1e568b442372be9f8becffb3bdf2_b.png)
-
定义数据:
假设我们有四个数据集实例,我们将它定义为一个列表
![](https://pic2.zhimg.com/v2-8e8c1642fc9a75377e54a9738826c879_b.png)
![](https://pic3.zhimg.com/v2-b2070e6a2a5b1b7a96a4df9964d6de16_b.png)
如上面代码所示,主程序每次接受一个列表中的元素,其余代码和单机保持一致。
after装饰器下面的代码只会在主节点上运行一次,它执行的时机是所有的主程序运行完之后,请根据业务的需求决定是否添加。
改进效果
50个同等大小的文件夹如果在本地运行约需要34hour,扩大训练任务节点数后(现为30个),50个同等大小的文件夹在训练平台运行时间缩短为2hour。
![](https://pic4.zhimg.com/v2-8c46ad8f6578f828015a329d59bbd53f_b.png)