建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想

华为云大赛技术圈

话题 : 467 成员 : 405

加入HCSD

华为诺亚AI系统工程实验室主任刘文志解读如何使用AutoML预测基站流量

华为云大赛... 2021/5/6 725

讲师介绍

刘文志(花名风辰)华为诺亚AI系统工程实验室主任,异构并行计算专家,毕业于中国科学院研究生院,闻名于并行计算江湖,尤善异构并行计算、AI系统工程和大规模集群计算,涉及图像处理、计算机视觉、自然语言处理、推荐系统、科学计算和石油勘探。现华为诺亚AI系统工程实验室主任,前商汤集团hpc和汽车业务创建人,曾任英伟达并行计算工程师、百度在线高级研发工程师。著有《并行算法设计与性能优化》、《并行编程方法与优化实践》、《科学计算与企业级应用并行优化》和《OpenCL异构并行计算》四本并行计算领域的专著。创建了ppl、parrots、bolt和vega等AI著名项目。

业务背景

随着5G时代的到来,电信流量呈爆发式的增长,基站流量的预测对站点的扩容和站点的规划至关重要。根据基站流量的精准预测结果,对于超负荷流量的基站可以及时发现并进行扩容,对于某一段时间段流量使用较小的基站,可以智能关站来降低资源的损耗。
但是基站流量预测是一个老大难的问题,针对这一挑战,我们近期尝试深度学习的方法来解决。传统的流量预测模型使用时间序列分析的模型如ARIMA,没有考虑流量的空间相关性信息(见图1)。Vega 提供一种多信息融合的电信网络流量预测的算法,将基站网络建模为图结构,图的节点表示基站,边刻画基站之间的关联,每个基站的流量作为节点属性特征输入给网络模型进行训练。此外我们可以通过架构搜索的方式动态设计网络结构,使得网络结构能够完美匹配当前的业务场景,使用超参优化对训练参数进行自动调优,从而减少人工的干预和成本。本文将介绍如何使用vega自动机器学习(AutoML)系统解决电信领域的基站流量预测问题。

Vega介绍

Vega是由华为诺亚方舟实验室开发的面向于深度学习的AutoML工具链(框架流程图见图2),有如下主要特点:

●完备的AutoML能力:涵盖HPO(超参优化, Hyperparameter Optimization)、Data-Augmentation、NAS(网络架构搜索, Network Architecture Search)、Model Compression、Fully Train等关键功能,同时这些功能自身都是高度解耦的,可以根据需要进行配置,构造完整的pipeline。

●业界标杆的自研算法:提供了诺亚方舟实验室自研的 业界标杆(Benchmark) 算法,并提供 Model Zoo 下载SOTA(State-of-the-art)模型。

●高并发模型训练能力:提供高性能Trainer,加速模型训练和评估。

●细粒度SearchSpace:可以自由定义网络搜索空间,提供了丰富的网络架构参数供搜索空间使用,可同时搜索网络架构参数和模型训练超参,并且该搜索空间可以同时适用于Pytorch、TensorFlow和MindSpore。

●多Backend支持:支持PyTorch(GPU), TensorFlow(GPU, Ascend 910), MindSpore(Ascend 910).。

●支持昇腾平台:支持在Ascend 910搜索和训练,支持在Ascend 310上模型评估。

使用Vega解决基站流量预测问题


我们先介绍下Vega中时空预测算法STGCN算法。该算法使用GRU对时间前后的依赖关系进行建模,同时通过GCN网络从三个视角捕获对象之间的关系:空间相似性、功能相似性和最近趋势相似性,网络结构见图3。
更详细的STGCN算法说明,参考论文 Spatio-Temporal Hybrid Graph Convolutional Network for Traffic Forecasting in Telecommunication Networks,链接为 https://arxiv.org/abs/2009.09849
下面我们将基于Vega采用5种不同使用方式来介绍基站流量预测建模。


3.1使用方式1:Fine Tune

Vega提供ModelZoo供用户使用。用户可以根据自己的需求(数据集、网络结构、参数量、性能指标等)选择ModelZoo中相应的模型文件,在此基础上进行Fine Tune训练。下面是基于Abilene数据集进行Fine Tune训练的流程图,见图4.
可以看到在Ablilene数据集上,我们已经训练过很多模型,从中选取一个性能较好的给vega进行Fine Tune,能够大大减少需要训练的时间,仅仅一分钟的训练时长,10个epochs就能达到30.32的RMSE。

3.2使用方式2:超参优化

在网络训练中,为了提高网络的性能,我们往往需要进行大量的调测工作,如采用何种优化器,batch_size为多少比较合适,学习率设置为多少才能取得最优的性能效果。如果让专家手动调参就太耗费人力和财力,Vega提供了自动超参优化的能力,通过大量的超参优化算法来自动调参,有效的利用算力资源来找到一组满足目标的超参。Vega HPO 流程图见图5.
我们选取ASHA算法来对使用方式1中的训练过程进行优化,定义可调的超参有:
  • 每轮训练的批次大小batch_size
  • opt优化器
  • 学习率LR

在训练了15分钟以后,采样出25组不同的超参组合,最终选择了最优的超参组合,精度为29.37,相对于使用方式1中的30.32,提升了3%,其超参组合的详细数据如下:

optimizer:

    type: RMSProp

    lr: 0.0058

batch_size: 16

epochs: 81

3.3使用方式3: Vega NAS自动优化时序网络结构

AutoML另一个主要的作用是可以用于动态调整网络架构,使得所生成的网络能够更好的适用于当前的数据和应用场景。比如网络中采用何种的blocks较为合适,应该堆叠几层,堆叠的少了可能无法获取到相关的特征,堆叠层数过多不容易收敛,而且有可能会导致过拟合。这需要研究者花费大量的专家经验和时间反复试验。我们希望能够通过Vega的能力来简化网络的设计流程,用户只需要定义搜索空间,选择一个搜索算法,然后指定一个优化目标比如RMSE,Vega就能够自动寻找出一个较为合适的网络给用户使用。Vega NAS 流程如见图6。
我们定义如下的搜索空间,搜索算法选用ASHA,优化目标为RMSE:
  • graph类型:temporal、spatial、spatial-temporal
  • gcn_layers: gcn堆叠层数(1,2,3,4)
  • gru_layers: gru堆叠层数(1,2,3,4)

训练时长为15分钟,采样出25组候选网络,最佳的RMSE为29.87,相对于基础模型性能提升了1.5%,最终得到的网络结构如下:

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 4 

    gru_layers: 1

    kernel_size: 4

3.4使用方式4: 先NAS后HPO

在上述的实验中,我们发现不管是超参优化还是架构搜索都能够对最终的性能有所提升,那么我们如何才能够将HPO和NAS一起使用构成一个端到端的流程实现性能更优。Vega提供了Pipeline的能力,用于将多个不同的PipeStep算法无缝的串联起来,用户只需要进行简单的配置而不需要关心具体的实现细节。由于我们一般先优化网络,得到一个最优的网络后继续优化其训练超参。这里我们可以定义两个PipeStep:NAS用于搜索网络架构,输出一个新的网络,HPO获取NAS输出的网络后进行训练超参的优化,最终得到一个最佳网络和最佳超参的组合。先NAS后HPO流程图见图7.
我们将搜索空间的定义分为2个不同的PipeStep中:

Nas网络结构空间定义:
  • graph类型:temporal、spatial、spatial-temporal
  • gcn_layers: gcn堆叠层数
  • gru_layers: gru堆叠层数

Hpo可调参数定义:
  • 每轮训练的批次大小batch_size
  • Opt函数:Adam,SDG,RMSProp
  • 学习率LR

NAS的训练时长为10分钟,HPO为15分钟,产生候选网络25组,候选超参25组,最终的RMSE只为29.23,相比于基线模型性能提升了3.5%,相比于单独使用HPO或者单独使用NAS都有一定的提升效果。

最佳的参数配置如下:

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 4 

gru_layers: 1

kernel_size: 4


trainer:

    epochs: 9

    optimizer:

        type: Adam

        lr: 0.00094

dataset:

    batch_size: 8


3.5使用方式5: HPO+NAS联合优化

通过上述的先NAS后HPO的优化,我们在模型性能上面得到的一定的提升,于是我们想到一个问题,就是网络结构与训练超参之间是否存在一定的关联性,另外对于搜索算法来讲,更高维度的采样能够提高搜索算法的采样效率,从而减少训练时长。

所以我们考虑将HPO和NAS合并在同一个PipeStep中做联合优化。区别于其他的AutoML框架,Vega提供了统一的SearchSpace的定义,使得训练超参和架构参数能够在同一个搜索算法中联合优化,用户只需要指定key来表示需要优化何种超参,type表示采用何种采样类型,range表示采样的范围。最终的采样结果即包含了网络架构参数也包含了训练超参。NAS和HPO联合优化流程图,见图8.
我们将搜索空间定义如下:
  • Graph类型:temporal、sparial、sparial-temporal
  • Gcn_layers: 网络层数
  • gru_layers: gru堆叠层数
  • 每轮训练的批次大小batch_size
  • Opt函数:Adam,SDG,RMSProp
  • 学习率LR

训练时长为30分钟,采样出25组候选网络,最终RMSE结果为26.75,相对于基线的性能提升了12%,在同等的训练时间内比先NAS后HPO要提升近8%。

最佳的参数配置如下:

trainer:

    epochs: 9

    optimizer:

        type: RMSProp

        lr: 0.0009

dataset:

    batch_size: 32

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 3 

    gru_layers: 2

kernel_size: 4

总结

在基站流量预测场景,Vega提供了基于时空序列的STGCN算法来解决时序预测问题,相对于基线的性能提升了12%。用户可以通过使用yaml配置,修改几行配置文件,然后使用算力资源进行自动优化就能够得到专家级别的网络,大大减少了网络交付的时间。详细对比见下表:
此外,Vega实现了统一的AutoML框架, 不仅支持了基站流量预测场景,而且在深度学习的其他领域和场景也取得了极大的成效。更具体地,Vega提供了丰富的AutoML算法,覆盖了架构搜索(NAS)、 超参优化(HPO)、 数据增强(Data Augmentation)、 模型压缩(Model Compression)多种领域,支持了分类、超分、目标检测、自动驾驶等多种业务场景。

欢迎大家试用并贡献自己的开源代码:https://github.com/huawei-noah/vega。

同时华为NAIE平台提供了基于Vega的AutoML服务,大家可以访问如下网站进行使用:https://www.hwtelcloud.com/products/mts
本文来源:https://mp.weixin.qq.com/s/w6gS6bhrg70vBsKfm2QV5A

回复 (0)

没有评论
上划加载中
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

华为云大赛小助手

角色:成员

话题:136

发消息
发表于2021年05月06日 11:40:01 7250
直达本楼层的链接
楼主
正序浏览 只看该作者
[技术干货] 华为诺亚AI系统工程实验室主任刘文志解读如何使用AutoML预测基站流量

讲师介绍

刘文志(花名风辰)华为诺亚AI系统工程实验室主任,异构并行计算专家,毕业于中国科学院研究生院,闻名于并行计算江湖,尤善异构并行计算、AI系统工程和大规模集群计算,涉及图像处理、计算机视觉、自然语言处理、推荐系统、科学计算和石油勘探。现华为诺亚AI系统工程实验室主任,前商汤集团hpc和汽车业务创建人,曾任英伟达并行计算工程师、百度在线高级研发工程师。著有《并行算法设计与性能优化》、《并行编程方法与优化实践》、《科学计算与企业级应用并行优化》和《OpenCL异构并行计算》四本并行计算领域的专著。创建了ppl、parrots、bolt和vega等AI著名项目。

业务背景

随着5G时代的到来,电信流量呈爆发式的增长,基站流量的预测对站点的扩容和站点的规划至关重要。根据基站流量的精准预测结果,对于超负荷流量的基站可以及时发现并进行扩容,对于某一段时间段流量使用较小的基站,可以智能关站来降低资源的损耗。
但是基站流量预测是一个老大难的问题,针对这一挑战,我们近期尝试深度学习的方法来解决。传统的流量预测模型使用时间序列分析的模型如ARIMA,没有考虑流量的空间相关性信息(见图1)。Vega 提供一种多信息融合的电信网络流量预测的算法,将基站网络建模为图结构,图的节点表示基站,边刻画基站之间的关联,每个基站的流量作为节点属性特征输入给网络模型进行训练。此外我们可以通过架构搜索的方式动态设计网络结构,使得网络结构能够完美匹配当前的业务场景,使用超参优化对训练参数进行自动调优,从而减少人工的干预和成本。本文将介绍如何使用vega自动机器学习(AutoML)系统解决电信领域的基站流量预测问题。

Vega介绍

Vega是由华为诺亚方舟实验室开发的面向于深度学习的AutoML工具链(框架流程图见图2),有如下主要特点:

●完备的AutoML能力:涵盖HPO(超参优化, Hyperparameter Optimization)、Data-Augmentation、NAS(网络架构搜索, Network Architecture Search)、Model Compression、Fully Train等关键功能,同时这些功能自身都是高度解耦的,可以根据需要进行配置,构造完整的pipeline。

●业界标杆的自研算法:提供了诺亚方舟实验室自研的 业界标杆(Benchmark) 算法,并提供 Model Zoo 下载SOTA(State-of-the-art)模型。

●高并发模型训练能力:提供高性能Trainer,加速模型训练和评估。

●细粒度SearchSpace:可以自由定义网络搜索空间,提供了丰富的网络架构参数供搜索空间使用,可同时搜索网络架构参数和模型训练超参,并且该搜索空间可以同时适用于Pytorch、TensorFlow和MindSpore。

●多Backend支持:支持PyTorch(GPU), TensorFlow(GPU, Ascend 910), MindSpore(Ascend 910).。

●支持昇腾平台:支持在Ascend 910搜索和训练,支持在Ascend 310上模型评估。

使用Vega解决基站流量预测问题


我们先介绍下Vega中时空预测算法STGCN算法。该算法使用GRU对时间前后的依赖关系进行建模,同时通过GCN网络从三个视角捕获对象之间的关系:空间相似性、功能相似性和最近趋势相似性,网络结构见图3。
更详细的STGCN算法说明,参考论文 Spatio-Temporal Hybrid Graph Convolutional Network for Traffic Forecasting in Telecommunication Networks,链接为 https://arxiv.org/abs/2009.09849
下面我们将基于Vega采用5种不同使用方式来介绍基站流量预测建模。


3.1使用方式1:Fine Tune

Vega提供ModelZoo供用户使用。用户可以根据自己的需求(数据集、网络结构、参数量、性能指标等)选择ModelZoo中相应的模型文件,在此基础上进行Fine Tune训练。下面是基于Abilene数据集进行Fine Tune训练的流程图,见图4.
可以看到在Ablilene数据集上,我们已经训练过很多模型,从中选取一个性能较好的给vega进行Fine Tune,能够大大减少需要训练的时间,仅仅一分钟的训练时长,10个epochs就能达到30.32的RMSE。

3.2使用方式2:超参优化

在网络训练中,为了提高网络的性能,我们往往需要进行大量的调测工作,如采用何种优化器,batch_size为多少比较合适,学习率设置为多少才能取得最优的性能效果。如果让专家手动调参就太耗费人力和财力,Vega提供了自动超参优化的能力,通过大量的超参优化算法来自动调参,有效的利用算力资源来找到一组满足目标的超参。Vega HPO 流程图见图5.
我们选取ASHA算法来对使用方式1中的训练过程进行优化,定义可调的超参有:
  • 每轮训练的批次大小batch_size
  • opt优化器
  • 学习率LR

在训练了15分钟以后,采样出25组不同的超参组合,最终选择了最优的超参组合,精度为29.37,相对于使用方式1中的30.32,提升了3%,其超参组合的详细数据如下:

optimizer:

    type: RMSProp

    lr: 0.0058

batch_size: 16

epochs: 81

3.3使用方式3: Vega NAS自动优化时序网络结构

AutoML另一个主要的作用是可以用于动态调整网络架构,使得所生成的网络能够更好的适用于当前的数据和应用场景。比如网络中采用何种的blocks较为合适,应该堆叠几层,堆叠的少了可能无法获取到相关的特征,堆叠层数过多不容易收敛,而且有可能会导致过拟合。这需要研究者花费大量的专家经验和时间反复试验。我们希望能够通过Vega的能力来简化网络的设计流程,用户只需要定义搜索空间,选择一个搜索算法,然后指定一个优化目标比如RMSE,Vega就能够自动寻找出一个较为合适的网络给用户使用。Vega NAS 流程如见图6。
我们定义如下的搜索空间,搜索算法选用ASHA,优化目标为RMSE:
  • graph类型:temporal、spatial、spatial-temporal
  • gcn_layers: gcn堆叠层数(1,2,3,4)
  • gru_layers: gru堆叠层数(1,2,3,4)

训练时长为15分钟,采样出25组候选网络,最佳的RMSE为29.87,相对于基础模型性能提升了1.5%,最终得到的网络结构如下:

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 4 

    gru_layers: 1

    kernel_size: 4

3.4使用方式4: 先NAS后HPO

在上述的实验中,我们发现不管是超参优化还是架构搜索都能够对最终的性能有所提升,那么我们如何才能够将HPO和NAS一起使用构成一个端到端的流程实现性能更优。Vega提供了Pipeline的能力,用于将多个不同的PipeStep算法无缝的串联起来,用户只需要进行简单的配置而不需要关心具体的实现细节。由于我们一般先优化网络,得到一个最优的网络后继续优化其训练超参。这里我们可以定义两个PipeStep:NAS用于搜索网络架构,输出一个新的网络,HPO获取NAS输出的网络后进行训练超参的优化,最终得到一个最佳网络和最佳超参的组合。先NAS后HPO流程图见图7.
我们将搜索空间的定义分为2个不同的PipeStep中:

Nas网络结构空间定义:
  • graph类型:temporal、spatial、spatial-temporal
  • gcn_layers: gcn堆叠层数
  • gru_layers: gru堆叠层数

Hpo可调参数定义:
  • 每轮训练的批次大小batch_size
  • Opt函数:Adam,SDG,RMSProp
  • 学习率LR

NAS的训练时长为10分钟,HPO为15分钟,产生候选网络25组,候选超参25组,最终的RMSE只为29.23,相比于基线模型性能提升了3.5%,相比于单独使用HPO或者单独使用NAS都有一定的提升效果。

最佳的参数配置如下:

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 4 

gru_layers: 1

kernel_size: 4


trainer:

    epochs: 9

    optimizer:

        type: Adam

        lr: 0.00094

dataset:

    batch_size: 8


3.5使用方式5: HPO+NAS联合优化

通过上述的先NAS后HPO的优化,我们在模型性能上面得到的一定的提升,于是我们想到一个问题,就是网络结构与训练超参之间是否存在一定的关联性,另外对于搜索算法来讲,更高维度的采样能够提高搜索算法的采样效率,从而减少训练时长。

所以我们考虑将HPO和NAS合并在同一个PipeStep中做联合优化。区别于其他的AutoML框架,Vega提供了统一的SearchSpace的定义,使得训练超参和架构参数能够在同一个搜索算法中联合优化,用户只需要指定key来表示需要优化何种超参,type表示采用何种采样类型,range表示采样的范围。最终的采样结果即包含了网络架构参数也包含了训练超参。NAS和HPO联合优化流程图,见图8.
我们将搜索空间定义如下:
  • Graph类型:temporal、sparial、sparial-temporal
  • Gcn_layers: 网络层数
  • gru_layers: gru堆叠层数
  • 每轮训练的批次大小batch_size
  • Opt函数:Adam,SDG,RMSProp
  • 学习率LR

训练时长为30分钟,采样出25组候选网络,最终RMSE结果为26.75,相对于基线的性能提升了12%,在同等的训练时间内比先NAS后HPO要提升近8%。

最佳的参数配置如下:

trainer:

    epochs: 9

    optimizer:

        type: RMSProp

        lr: 0.0009

dataset:

    batch_size: 32

model_desc:

    type: GCN

    graph: spatial-temporal

    gcn_layers: 3 

    gru_layers: 2

kernel_size: 4

总结

在基站流量预测场景,Vega提供了基于时空序列的STGCN算法来解决时序预测问题,相对于基线的性能提升了12%。用户可以通过使用yaml配置,修改几行配置文件,然后使用算力资源进行自动优化就能够得到专家级别的网络,大大减少了网络交付的时间。详细对比见下表:
此外,Vega实现了统一的AutoML框架, 不仅支持了基站流量预测场景,而且在深度学习的其他领域和场景也取得了极大的成效。更具体地,Vega提供了丰富的AutoML算法,覆盖了架构搜索(NAS)、 超参优化(HPO)、 数据增强(Data Augmentation)、 模型压缩(Model Compression)多种领域,支持了分类、超分、目标检测、自动驾驶等多种业务场景。

欢迎大家试用并贡献自己的开源代码:https://github.com/huawei-noah/vega。

同时华为NAIE平台提供了基于Vega的AutoML服务,大家可以访问如下网站进行使用:https://www.hwtelcloud.com/products/mts
本文来源:https://mp.weixin.qq.com/s/w6gS6bhrg70vBsKfm2QV5A
点赞 举报
分享

分享文章到朋友圈

分享文章到微博

游客

您需要登录后才可以回帖 登录 | 立即注册