摘要: 中国计算机学会大数据与计算智能大赛(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工作负载预测亚军相关推荐

  1. 2022 CCF BDCI 返乡发展人群预测 微弱提升(特征离散化)

    0 序言 本文是基于2022 CCF BDCI 返乡发展人群预测 [0.9117+]做的进一步优化提升,虽然没有什么很大的提升空间,但是还是共享给大家,希望能给大家一些思路. 这次特征工程提交后的A榜 ...

  2. 2022 CCF BDCI 返乡发展人群预测 [0.9117+]

    一.赛题介绍 比赛地址:返乡发展人群预测 1.1 任务介绍 基于中国联通的大数据能力,通过使用对联通的信令数据.通话数据.互联网行为等数据进行建模,对个人是否会返乡工作进行判断 1.2 数据简介 tr ...

  3. 墙裂推荐!顶级赛事CCF BDCI即将开赛!

    近年来,随着大数据与人工智能技术的发展,数据竞赛以迅猛之势进入大众视野.国外的kaggle平台率先以竞赛开启数据科学进阶之路,而国内DataFountain等数据竞赛平台也应势而起,推出的数据科学竞赛 ...

  4. 【数据竞赛】一文看懂CCF BDCI 2020赛题任务与解析

    赛事介绍 CCF BDCI大赛已成功举办七届,参赛规模与影响力逐年提升,累计吸引到来自全球25个国家.1500余所高校.1800家企事业单位及80余所科研机构的9万余人参与,有100多所高校将赛题作为 ...

  5. CCF BDCI 技术需求与技术成果关联度冠军分享

    "技术需求"与"技术成果"关联度比赛 CCF BDCI "技术需求"与"技术成果"项目之间关联度计算比赛由中国计算机学会 ...

  6. 百度工程师亲授CCF BDCI解题思路,15万大奖等你来拿

    在人工智能和大数据竞赛领域,由中国计算机学会举办的CCF大数据与计算智能大赛(CCF BDCI)一直是众多开发者追逐的顶级赛事. 本届大赛值得关注的是,百度和清华大学在算法赛道贡献了"千言: ...

  7. 华为云获CCF BDCI 2019金融实体级情感分析大赛冠军

    近日,在2019 CCF大数据与计算智能大赛(CCF Big Data & Computing Intelligence Contest,简称CCF BDCI)决赛中,华为云语音语义创新Lab ...

  8. CCF BDCI大赛急速报名,OneFlow四大训练赛题等你来战

    CCF大数据与计算智能大赛(CCF Big Data & Computing Intelligence Contest,简称CCF BDCI)由国家自然科学基金委员会指导,是大数据与人工智能领 ...

  9. 2022 CCF BDCI数字经济创新应用案例大赛决赛晋级名单

    自4月26日开赛以来,2022 CCF BDCI·数字经济创新应用案例大赛共吸引了381名选手报名并组成262支队伍参赛.经过近2个月的激烈角逐,大赛完成了初赛比拼. 依据大赛规则,秉持公平公正的原则 ...

最新文章

  1. [NHibernate]代码生成器的使用
  2. Linux下rz命令和sz命令使用方法
  3. 初识Maven POM
  4. ROS中catkin_make编译输出的可执行文件在哪?
  5. vs最好的版本_Win10 环境下,LightGBM GPU 版本的安装
  6. flask接收前台的form数据
  7. 纯CSS菜单样式,及其Shadow DOM,Json接口 实现
  8. Android Studio 使用socks代理
  9. 再来过-docker
  10. 人员梯度培养_人员管理 | 生产班组员工队伍管理及制度建立
  11. 南航计算机科学与技术学院老师,南航计算机科学与技术学院导师介绍:孙涵
  12. Excel - 数组类型及数组公式
  13. NS和DNS的区别有哪些?
  14. 如何提高技术团队的工作效率
  15. 杨辉三角php程序,PHP写杨辉三角实例代码
  16. 秋姑娘_我爱秋天作文300字
  17. Origin画图技巧之3D锥形图
  18. python 数据分析 电信_基于Python的电信客户流失分析和预测
  19. ajax nginx 转发 sessionid_百度、京东、网易、腾讯、淘宝等大厂都在用的Web服务器Nginx详解
  20. Linux下往github上传项目

热门文章

  1. shell中source的作用
  2. 卡尔曼滤波原理理解(1)
  3. 为什么不能把CSS放到html中,为什么我的CSS代码不能在我的HTML文件中工作?
  4. c语言一元二次方程代码,一元二次方程求解程序完整代码
  5. JustOJ1500: 蛇行矩阵
  6. Arc076_E Connected?
  7. JAVA 异常 throw 与 throws
  8. Netty中的Future
  9. oopc——0.概念及为何要学习oopc
  10. SQL必知必会-索引