阅读笔记|DeepConfig: Automating Data Center Network Topologies Management with Machine Learning
warning: 这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
info: C. Streiffer, H. Chen, T. Benson, and A. Kadav, “DeepConfig: Automating Data Center Network Topologies Management with Machine Learning.” arXiv, Dec. 11, 2017. Accessed: Aug. 06, 2023. [Online]. Available: http://arxiv.org/abs/1712.03890
1.1 背景
数据中心网络面临许多挑战,如拓扑设计、路由算法、VM放置以及节能技术等。针对这些问题的方法存在以下问题:
- 现有方法都是针对具体场景设计的启发式方法,不够通用
- 现有的整数线性规划不具可扩展性
- 现有的深度学习应用较少,主要集中在集群调度和路由上
1.2 待解决问题
需要一个更通用的基于机器学习的模型,可以快速学习不同的数据中心网络问题的最优解,并能适应流量模式、网络动态等变化。
1.3 本文主要贡献
- 提出了一种强化学习框架DeepConf,用于自动学习和实现各种数据中心网络技术
- 设计了一种针对数据中心的通用的输入特征提取
- 实现了一个DeepConf代理(含状态空间、动作间和奖励函数)以解决拓扑增强问题,经过模拟器测试评估后其结果与最优解接近
1.4 本文主要方法
- 使用深度强化学习,通过奖励机制引导模型学习最优解,不需要真实数据
- 提出了三个组件:网络模拟器、抽象层、深度强化学习代理
- 对状态空间、动作空间、学习模型和奖励函数进行定义,配置深度神经网络模型
- 使用网络模拟器进行离线训练
1.5 结论
初步结果表明,该框架可以学习各种数据中心网络问题的接近最优解。这种从启发式方法向机器学习方法的转变,可以实现对网络变化的自适应。
1.6 个人思考
- 本文提出的深度强化学习框架,可以对学习模型进行改进以适应配置生成任务。例如使用Transformer代替CNN来做特征提取。文章也指出了强化学习在模型训练中的作用,我认为文章所设计框架很好解决了网络参数的输入问题,因为文章将网络环境参数(网络拓扑和网络流量等)视作状态空间,因此我认为这一设计可以尝试用于我的网络配置优化工作。
由于网络配置存在的人为错误导致的网络故障问题,我想可以从自动化的方向进行解决,分别是以下三个方向:
- 自动化配置生成:使用某种形式将高层任务输入与相关参数,自动化生成执行高层任务的配置文本。但一个重要问题就是如何对高层任务进行表示(例如需要进行子网划分,如何进行表示),目前最直白的想法就是使用自然语言来表示。
- 自动化配置检查:将人工编写的配置文本及相关参数输入,自动化进行检查,发现配置问题或错误。个人认为这个方向更偏向于NLP,类似与写作语法检查,不同的地方在于这里需要考虑到输入的网络环境(相当于输入信息更丰富了)。
- 自动化配置测试:将人工编写的配置文本及相关参数输入,自动运行离线模拟网络环境/孪生网络环境对配置进行测试,并生成测试报告(分析可达性、网络性能变化等)
- 从先前阅读的论文中了解到,配置文件的行数越来越多。此外,配置文件具有分布式特性,不同设备上的配置文件可能内容不同。因此,如果要将一个网络中的所有配置文件内容一次性输入到模型似乎存在困难。且Transformer中一次可处理的token是有限的,其越大意味着越大的开销,无论是在训练时还是在推理时。因此Transformer的输入大小限制与配置文件到分布式特性可能会成为一个有待解决的问题。
- 配置文件内容各个部分可能存在不同的高层功能抽象,这里可能存在模型通用性问题,也就是说模型能否满足不同高层功能的配置生成任务,能否同时生成访问控制、layer 1到3的setting、VLAN等不同高层功能的内容。如果难以实现,可以退而求其次,只实现针对某一种高层功能,或是学本文章设计一个训练框架,用于训练解决配置生成问题的模型。