摘要: 中国计算机学会大数据与计算智能大赛(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. 从大数据到快数据 数据智创未来——2019 CCF大数据与计算智能大赛正式开赛!

    8月17日,以“数据驱动,智创未来”为主题的2019 CCF大数据与计算智能大赛(CCF Computing Intelligence Contest,简称CCF BDCI)全球启动仪式,在北京大学正 ...

  2. 人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验

    摘要:想了解时下流行的自动驾驶相关AI模型吗?接下来就用华为云的ModelArts和百度的Easy DL带你体验一下AI平台是怎么进行模型训练的. 华为ModelArts自动学习 VS 百度Easy ...

  3. 稳过!华为微认证ModelArts实现智能花卉识别稳过!

    华为微认证ModelArts实现智能花卉识别稳过! 目录 华为微认证ModelArts实现智能花卉识别稳过! ModelArts实现智能花卉识别的概述 ModelArts实现智能花卉识别的解决方案 M ...

  4. ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享

    1. 引言 10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计 ...

  5. 基于 PyTorch 和神经网络给 GirlFriend 制作漫画风头像

    摘要:本文中我们介绍的 AnimeGAN 就是 GitHub 上一款爆火的二次元漫画风格迁移工具,可以实现快速的动画风格迁移. 本文分享自华为云社区<AnimeGANv2 照片动漫化:如何基于 ...

  6. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  7. CCF考试

    第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...

  8. CCF关于NOIP2014复赛报名的通知

    CCF关于NOIP2014复赛报名的通知   CCF NOIP2014复赛全部实行网上注册.报名.未通过网上报名的选手将不具备参赛和申诉资格. 系统注册须知: NOIP2014复赛注册时间:2014年 ...

  9. [CCF] Z字形扫描

    CCF Z字形扫描 感觉和LeetCode中的ZigZag还是有一些不一样的. 题目描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z ...

  10. [CCF] ISBN号码检测

    CCF ISBN号码检测 题目概述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其 ...

随机推荐

  1. CF1190C Tokitsukaze and Duel

    搬运一下本喵的 lg 博客 qwq 详细讲一下如何判定后手能否获胜,对其他题解做个补充.(蒟蒻的我想了好久来着 此题的关键点在于可以重复上一个人的操作使局面保持不变. 考虑先手的获胜条件,由上一段可知 ...

  2. 传纸条(lgP1006)

    终于有一道一遍过的题了/kk/kk 发现前几道都很难(总之暂时没想出来)就先把这个写了. 其实这题四维 dp 好像能过,但既然写了就写正解吧... 因为路径正着走和反着走都是一样的,所以问题就是求从左 ...

  3. PTA乙级1099

    #include"bits/stdc++.h" using namespace std; int prime(int x) { if(x<2) return 0; for(i ...

  4. 小白也能看懂的 AUC 曲线详解

    小白也能看懂的 AUC 曲线详解 简介 上篇文章 小白也能看懂的 ROC 曲线详解 介绍了 ROC 曲线.本文介绍 AUC.AUC 的全名为Area Under the ROC Curve,即 ROC ...

  5. 可怕!.Net 8正式发布了,.Net野心确实不小!

    随着三天.NET Conf 2023的会议结束了,.Net 8正式发布了. .Net 8是官方号称有史以来性能最快的一个版本了. .Net 8 增加了数以千计的性能.稳定性和安全性改进,以及平台和工具 ...

  6. 【死亡小学期第二章:没头脑和不高兴】数据库jdbc系统

    自己做一个JDBC的数据库系统,因为这个一直做嘛,所以很简单啦,并没有想提高技术拔拔高啥的,就想做一个简单的,然后自己感兴趣的内容.让自己快乐快乐那才叫做意义~~~~~~~kkkk 学到的东西: 展示 ...

  7. GitHub、Google等镜像加速地址收集

    摘要 本文用于收集GitHub.Google等镜像/加速地址. GitHub GitHub加速地址一览 fastgithub Https://www.fastgithub.com/(推荐) 站源 地址 ...

  8. [ABC328D] Take ABC 题解

    题目翻译 题目描述 给你一个字符串 \(S\) 包含 A.B 和 C 三个不用的字符. 只要字符串 \(S\) 中包含连续的 ABC 就将 ABC 删除掉 再字符串 \(S\) 不能操作之后输出这个字 ...

  9. C# 基础编程题集锦

    简单字符串加密 编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下: 'a→d' 'b'→'e' 'w'→z' ...... x'→'a' 'y'→b' 'z→c' 'A'→'D' ...

  10. JUC——让步与优先级

    Thread.yield():方法作用是:暂停当前正在执行的线程对象(及放弃当前拥有的cup资源),并执行其他线程 yield():做的是让当前运行线程回到可运行的状态,以允许具有相同优先级的其他线程 ...