ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军
摘要: 中国计算机学会大数据与计算智能大赛(CCF BDCI)华为Severless工作负载预测亚军方案和ModelArts使用体验分享
本文分享自华为云社区《免费薅ModelArts算力资源-拿下CCF BDCI华为Severless工作负载预测亚军》,原文作者:wyhhyw 。
赛题简介
基于历史数据和历史趋势,对Severless软件架构的工作负载进行精准预测,便于优化资源调整和提升用户服务质量。
数据提供了43个队列数天中的使用情况,其中包涵CPU使用率、磁盘使用率、提交作业数量,作业是否提交成功等信息。要求根据历史信息,预测测试集未来25分钟内,每间隔五分钟的CPU使用率和提交作业数量。赛题链接https://www.datafountain.cn/competitions/468.
赛题分析
这是一道非常典型的时间序列回归问题,目标时对未来五个时间点的CPU使用率和提交作业进行预测。可以从以下几个角度对目标进行建模。
- 趋势拟合:根据待预测时间点之前的使用率和作业数拟合曲线,并给出预测,参考arima等模型。
- 单标签回归:以5为时间间隔,对目标进行预测,例如,x1 -> x6, x2 -> x7。具体如下图所示:

- 多标签回归:参考pandas.shift函数,构造历史信息的平滑特征,每次预测一个时间点的目标。示意图如下:

方案介绍
笔者有幸获得该比赛的第二名(二等奖),建模方法为融合lightgbm和lstm预测结果,其中lightgbm线上第二,lstm线上第10左右。由于本方案采用的lstm结构比较简单且成绩不是特别理想,而第三名的lstm是决赛答辩队伍中线上成绩最高的神经网络模型,因此本文还介绍了第三名(同二等奖)的lstm架构。
数据分析
在特征工程和建模之前,首先来一波EDA~
下图展示了不同队列下的CPU使用率分布情况,可以发现,不同队列下的数据分布存在较大差别,因此队列号对于预测CPU使用率也是一个非常强力的特征。
下图展示了某队列号下CPU使用率随小时的变化趋势,可以发现下午至凌晨3点使用率均较高,因此小时和分钟也是一个非常强力的特征。需要注意的是,赛题方对时间戳的年月日进行了脱敏,因此仅能使用小时和分钟两个特征。
特征工程
必不可少的部分,特征为王
- 滑动特征:对CPU使用率等特征使用pandas.shift函数构建其平滑特征。
- 差分特征:在平滑特征的基础上构造各阶差分特征。
- 基于滑窗的统计特征:在平滑特征的基础上开一个窗口,然后滑动,每次取窗口内特征的均值、方差、最大值等统计特征。
- 聚合统计特征:例如历史数据中不同小时下CPU使用率的均值和方差等特征。
- 伪穿越特征:穿越特征一般是不被允许的。那么对于时序问题,可以构建伪穿越特征,其实也就是聚合统计特征。例如,待预测的时间点是上午9点,可以根据历史数据构造上午10点的均值等统计特征,并且衍生出差值比值等特征。

模型
- 建模策略:见赛题分析中的多标签回归。一般来说,这种建模方式都会取得较好的效果。
- lightgbm:对每一个标签都进行五折交叉验证,CPU使用率和提交作业数各五个时间点,则一共进行了十次五折交叉验证。
- lstm:CPU使用率是0-100的整数,连续五个时间点的数据如"10-21-41-31-34"可以看做是nlp中的字符索引,因此可以直接用于索引embedding lookup table中的字向量,那么建模就很自然的过度到了lstm。
下图展示了本文所用的lstm架构,效果并不是十分理想,线上大约在第十左右。在赛后和队友分析讨论之后,认为我们的框架存在几个问题。首先是将每个CPU使用率当做字向量,那么lstm中的input_dim为1,效果肯定不好。其次是我们的框架很简单,并没有引入卷积或者注意力机制等。
下面给出二等奖中另一支队伍的lstm框架,该框架包括两部分:
(1)LSTM提取CPU使用率、硬盘使用率的时序信息,引入注意力机制
(2)全连接提取其他手工特征的信息,进行高阶交叉,并且设置跨层连接,构成“不同尺度的集成模型”。

训练
- 损失:由于数据波动较大,因此可以认为存在一定的离群点,所以采用smooth l1作为损失函数。
- 算力:lightgbm建模对算力的要求较小,16G内存足以。但使用上述神经网络训练时,由于是多标签回归(10个标签),对每个标签都需要训练一个模型,如果再结合五折交叉验证,那么将训练50个模型,这对算力就有一定的需求。
笔者在赛程接近尾声时才开始训练nn模型,然而本人只有一张玩具显卡gtx1650,对于该多标签任务训练数十个模型实在太过耗费时间,迫不得已去寻找算力资源。经过师兄的推荐,最后选定了华为云的ModelArts,每天两小时的免费算力,而且是V100,感觉很不错。最后让实验室兄弟多开几个号,一边训练一边保存模型,时间快到了就换号继续训练,两三天就把模型跑好了。虽然因为时限需要切换账号,但总体的使用体验还是不错的,下面就给大家简单介绍一下ModelArts的使用体验。
ModelArts使用体验
使用感受
(1)虽然是在云端训练,但是ModelArts提供了jupyter lab/notebook,就像平时在本地PC上上传数据到notebook中然后写代码一样,完全感知不到训练流程的变化。lab中集成了不同的引擎,常规的如pytorch, tf, xgboost这些都有。


(2)安装依赖包很方便,直接在cell中’!pip install xxx’就可以,原生的notebook中好像没有这个功能。比如我新建的notebook是pytorch引擎,但又需要xgboost,那么就可直接安装,见下图。

(3)目前上传数据有限制,一次只能上传大约是几百MB,可以先将数据上传至notebook中后再进行特征工程,对于比较大的数据,可以本地切分以后分批上传,所以这也是一个无关紧要的问题,毕竟免费V100太香了。
还有一些其他的细节,各位小伙伴们可以自行探索呀!
划重点-如何申请
还愣着干什么,猛点链接,抢算力呀!!! https://bbs.huaweicloud.com/forum/thread-51080-1-1.html
获取更多 AI 相关数据、算法、模型等 AI 资产,请点击“了解更多”,AI Gallery等您!
ModelArts的雪中送炭,让我拿下CCF BDCI华为Severless工作负载预测亚军的更多相关文章
- 从大数据到快数据 数据智创未来——2019 CCF大数据与计算智能大赛正式开赛!
8月17日,以“数据驱动,智创未来”为主题的2019 CCF大数据与计算智能大赛(CCF Computing Intelligence Contest,简称CCF BDCI)全球启动仪式,在北京大学正 ...
- 人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验
摘要:想了解时下流行的自动驾驶相关AI模型吗?接下来就用华为云的ModelArts和百度的Easy DL带你体验一下AI平台是怎么进行模型训练的. 华为ModelArts自动学习 VS 百度Easy ...
- 稳过!华为微认证ModelArts实现智能花卉识别稳过!
华为微认证ModelArts实现智能花卉识别稳过! 目录 华为微认证ModelArts实现智能花卉识别稳过! ModelArts实现智能花卉识别的概述 ModelArts实现智能花卉识别的解决方案 M ...
- ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享
1. 引言 10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计 ...
- 基于 PyTorch 和神经网络给 GirlFriend 制作漫画风头像
摘要:本文中我们介绍的 AnimeGAN 就是 GitHub 上一款爆火的二次元漫画风格迁移工具,可以实现快速的动画风格迁移. 本文分享自华为云社区<AnimeGANv2 照片动漫化:如何基于 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- CCF考试
第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...
- CCF关于NOIP2014复赛报名的通知
CCF关于NOIP2014复赛报名的通知 CCF NOIP2014复赛全部实行网上注册.报名.未通过网上报名的选手将不具备参赛和申诉资格. 系统注册须知: NOIP2014复赛注册时间:2014年 ...
- [CCF] Z字形扫描
CCF Z字形扫描 感觉和LeetCode中的ZigZag还是有一些不一样的. 题目描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z ...
- [CCF] ISBN号码检测
CCF ISBN号码检测 题目概述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其 ...
随机推荐
- Super Apps 超级应用们背后的道家哲学
众所周知,Elon Musk 想将 Twitter 重新设计定位成一款"超级应用 - X"的野心已经不再是秘密.伴随着应用商店中 Twitter 标志性的蓝鸟 Logo 被 X 取 ...
- Fiddler安装,使用及汉化教程
Fiddler安装及汉化教程 一.下载安装 1.下载 官网链接:https://www.telerik.com/download/fiddler 左侧填写用途,邮箱及城市,然后下载就可以 左侧下载即D ...
- RLChina2022公开课-博弈搜索算法
序列决策 序列决策问题一般用马尔可夫决策模型进行描述 搜索算法的优化
- Leetcode.402单调栈
给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小.请你以字符串形式返回这个最小的数字. 示例 1 : 输入:num = "143221 ...
- 在 windows 借助 git 修改文件权限
起因: 创建新仓库的时候,仓库都没有脚本,然后就需要把运维同事的脚本复制过来,可执行脚本都是在 scripts 文件夹下面的 过了几天,来活了 刚开始还不知道咋回事,想到的文件权限是在linux系统下 ...
- git 创建本地分支并关联远程分支
1.查看远程分支 git branch 可以看到,我本地只有dev和master分支.现在同事创建了一个远程分支dev-glq,里面是他的代码.我应该再我本地创建一个分支,并且他的关联远程分支. 2. ...
- 容器Cgroup和Namespace特性简介
一般来说,容器技术主要包括Cgroup和Namespace这两个内核特性.Cgroup Cgroup是control group,又称为控制组,它主要是做资源控制.原理是将一组进程放在放在一个控制组里 ...
- 一篇文章让你理解:什么是Spring???
背景 市场上,随便一个Java工程师的招牌要求上,都可以看到SSM.Spring.SpringMVC...类似字样.这玩意到底是个啥? 这是中邮消费招聘的岗位要求,可以看到第3点: 3.熟悉Strut ...
- 0x01.web请求、web环境、抓包技巧
网站搭建 DNS解析 域名选择 http/https 证书 服务器 web应用环境架构 操作系统 linux windows 开发语言 php java ASP/ASPX python等 程序源码 C ...
- [ABC261A] Intersection
Problem Statement We have a number line. Takahashi painted some parts of this line, as follows: Firs ...