Cloud Resource Scheduling With Deep Reinforcement Learning and Imitation Learning
论文笔记 - 基于深度强化学习与模仿学习的云资源调度
这篇论文的核心目标,是在云资源调度场景下,用 模仿学习 + 深度强化学习 的两阶段方法提升在线调度性能。作者提出 DeepRM_Plus,在 DeepRM 基础上引入行为克隆初始化与更强的 CNN 状态编码,以缓解纯强化学习从零探索时训练慢、收敛慢的问题。论文实验表明,DeepRM_Plus 相比 DeepRM 收敛更快,并在平均加权周转时间与平均循环时间两个指标上取得更优结果。
基本信息
题目:Cloud Resource Scheduling With Deep Reinforcement Learning and Imitation Learning
期刊:IEEE Internet of Things Journal
年份:2021
作者:Wenxia Guo, Wenhong Tian, Yufei Ye, Lingxiao Xu, Kui Wu
核心方法:DeepRM_Plus = Behavior Cloning + Deep RL
关键词:云资源调度、深度强化学习、模仿学习、行为克隆、CNN、DeepRM
背景与问题
背景
云资源管理本质上属于组合优化问题,其中很多已被证明是 NP-hard。云平台需要在资源和 SLA 约束下,为不断到达的任务动态分配 CPU、内存等资源,并尽可能提升资源利用效率与服务质量。由于任务需求是动态的、异构的,而且未来到达情况未知,这使得在线调度非常困难。
传统启发式方法例如 FCFS、SJF、Best Fit 等,通常依赖特定场景下的经验规律。当任务分布、资源配置或负载模式发生变化时,原先效果较好的启发式可能迅速退化。论文因此将目光转向强化学习,希望让调度器通过与环境交互自动学习策略,而不是手工写死规则。
核心矛盾
这篇论文实际在解决一个典型的 在线多资源任务调度问题,其核心矛盾主要有三层:
- 任务侧:任务动态到达,资源需求多维且持续时间不同;
- 系统侧:决策必须在线做出,无法预知未来;
- 学习侧:纯强化学习从零探索虽然有潜力,但训练慢、样本效率低、初始阶段策略很差。
因此,作者试图回答的问题不是“强化学习能不能做调度”,而是:
怎样把已有启发式经验作为先验知识注入强化学习,使调度策略更快收敛、更早具备可用性。
论文的主要创新点
作者的贡献可以概括为三层。
提出 DeepRM_Plus
论文在 DeepRM 基础上提出 DeepRM_Plus,用深度强化学习解决云资源调度问题,但不再让 agent 完全从随机探索开始,而是先利用模仿学习获得较好的初始策略。
引入 imitation learning 加速 RL
作者将经典启发式算法视为“专家”,通过行为克隆生成专家决策数据,先训练一个初始网络,再将该网络参数作为后续强化学习训练的起点。作者强调,这里的目的不是机械复制专家,而是利用专家经验缩小搜索空间、减少盲目探索。
改进状态表示网络
DeepRM_Plus 相比原始 DeepRM 不仅加入了模仿学习,还调整了深度网络结构。作者使用更完整的 CNN 提取基于图像编码的资源状态特征,以更好建模数据中心中的复杂状态—动作关系。CNN 由两层卷积、两层平均池化和两层全连接组成。
论文整体技术路线
根据论文结构,其研究逻辑可以概括为:
- 将云资源调度问题建模为序贯决策问题;
- 用图像形式编码系统状态;
- 选取启发式调度器作为专家;
- 通过行为克隆生成初始策略网络;
- 以该初始网络作为深度强化学习的参数起点;
- 使用策略梯度方法继续在线优化;
- 在不同目标、不同负载与不同集群配置下评估性能。
从方法论上看,这篇论文最重要的不是 CNN 本身,而是:
先用 imitation learning 解决“从零开始太慢”的问题,再用 RL 继续超越启发式专家。
论文方法
问题建模
调度对象
论文考虑的是在线到达的云任务。每个任务需要若干类资源,例如 CPU 和内存,并具有一定执行时长。调度器需要在每个时刻从候选任务中选择动作,将任务分配到资源槽中执行。
优化目标
论文给出两个优化问题:
问题一:最小化平均加权周转时间
这是论文的主要实验目标。作者希望通过策略学习,使所有任务的加权周转时间尽量小。实验中 DeepRM_Plus 在该指标上优于所有基线,并相较 DeepRM 降低了 51.85%。
问题二:最小化平均循环时间
作者还设计了第二个目标,即最小化任务的平均循环时间。对应的奖励函数定义为:
其中 (J) 表示当前尚未完成的任务集合,包括执行中的任务、等待队列中的任务以及 backlog 中的任务。也就是说,系统通过惩罚“未完成任务数”来引导策略缩短整体循环时间。实验显示,DeepRM_Plus 在这一指标上比 DeepRM 再降低 11.51%。
状态、动作与策略表示
状态表示
作者将系统状态编码为图像,并输入 CNN。状态图像反映了当前资源占用情况、等待任务情况等调度相关信息。由于作者把状态看作具有明显布局结构的“二维图像”,因此采用 CNN 而非简单 MLP。
动作空间
动作本质上是“当前调度哪个任务”。给定当前状态,网络输出对各候选动作的概率分布,随后依据策略选择动作。
策略学习
论文采用基于 Monte Carlo policy gradient 的策略优化思路,并使用 baseline 降低策略梯度方差。整体训练分为两个阶段:
- 模仿学习阶段:行为克隆预训练;
- 深度强化学习阶段:以预训练参数初始化,再通过策略梯度继续优化。
imitation learning 设计
这是这篇论文最值得关注的部分。
为什么需要 imitation learning
作者指出,传统 RL 中常用的 ε-greedy 探索会引入大量随机动作,导致探索空间巨大,agent 往往需要很多步以后才能逐渐积累有意义的经验。对于资源调度这种组合决策问题,这种盲目探索非常低效。
专家怎么来
作者把启发式算法视为专家。对于不同目标,可以选择不同启发式。例如在最小化平均加权周转时间时,SJF 是一个非常自然的专家候选。作者先用专家调度器去调度随机生成的任务集合,记录状态—动作对,形成专家轨迹数据。
如何做行为克隆
在模仿学习阶段,作者将专家产生的状态—动作对作为监督数据集,通过行为克隆训练神经网络,使网络先学会“像专家一样做决策”。由于专家策略是确定性的,因此状态到动作的映射唯一,重复样本还可以去重后再训练。
模仿学习的真正作用
作者明确说明,模仿学习的目的 不是精确复刻专家,而是把专家行为作为搜索方向的参考,从而让 agent 在较小且更可能有效的动作空间中搜索。这个表述非常关键,它决定了 DeepRM_Plus 的本质是:
“专家引导的强化学习”,而不是“启发式替代强化学习”。
DeepRM_Plus 训练流程
论文中的整体训练流程可以理解为:
第一阶段:离线初始化
- 随机生成若干任务集;
- 用专家策略调度这些任务;
- 采集状态—动作轨迹;
- 用行为克隆训练神经网络,得到初始化参数。
第二阶段:在线强化优化
- 用模仿学习得到的参数初始化 RL 网络;
- 在环境中生成任务并执行调度;
- 根据轨迹计算回报与 baseline;
- 用策略梯度更新参数。
这个流程的价值在于,初始策略不再接近随机,而是已经具备基本调度能力,因此后续 RL 训练的起点更高。
实验设计与结果
实验设置
论文在 TensorFlow 和 Python 环境下实现算法,使用 CPU、内存双资源设置进行仿真。初始实验配置中,集群共有 10 单位 CPU 和 10 单位内存,并支持向前保留 20 个时间槽。作者还在不同 cluster configurations 与真实 Alibaba Cluster Trace 数据上做了扩展验证。
基线算法包括:
- Random
- FCFS
- SJF
- HRRN
- Tetris
- DeepRM
结果一:平均加权周转时间
在 cluster load 为 140% 的实验中,DeepRM_Plus 在平均加权周转时间指标上优于所有基线,相比 DeepRM 降低了 51.85%。
这说明加入 imitation learning 后,策略不仅训练更快,而且最终性能也更好。
结果二:收敛速度
作者比较了 DeepRM 与 DeepRM_Plus 的训练过程,发现 DeepRM_Plus 每个 epoch 的训练时间比 DeepRM 少 37.5%,收敛速度明显更快。
更进一步地,论文通过 cumulative reward 曲线与平均指标曲线说明:
- 前期虽然仍有一定振荡;
- 但在约 500 次迭代后,DeepRM_Plus 已逐渐稳定;
- 在学习饱和点之前和之后都优于各类基线。
结果三:专家选择的作用
论文发现,在若干启发式基线中,SJF 在平均加权周转时间指标上表现最好,因此它是最合适的模仿对象。作者后续实验均将 SJF 作为专家,用于引导 DeepRM_Plus 学习。
这说明 imitation learning 的效果高度依赖专家质量。专家选得好,可以显著加速收敛;专家若不合适,则可能把策略带偏。
结果四:不同负载下的表现
在不同 cluster load 下,所有算法的平均加权周转时间都会随负载上升而增加,但:
- FCFS 增长最快;
- DeepRM_Plus 曲线最平滑;
- 在负载高于 60% 时,DeepRM 和 DeepRM_Plus 都优于传统启发式;
- DeepRM_Plus 在高负载下优势更明显。
这意味着 DeepRM_Plus 对高负载场景更有价值,而高负载往往正是云调度与算网调度中最关键的应用区间。
结果五:平均循环时间
对于最小化平均循环时间的目标,作者使用相同网络结构,仅替换奖励函数。结果显示 DeepRM_Plus 相比 DeepRM 再降低 11.51% 的平均循环时间,并在所有基线中表现最好。
论文优点
1. 方法动机很清楚
作者非常准确地抓住了纯 RL 在调度问题中的短板:初始探索过于盲目,训练代价过高。而 imitation learning 恰好提供了一个现实可行的 warm start 方案。
2. 两阶段训练框架很实用
“先模仿、后强化”这一流程比单纯从零学策略更符合工程需求,尤其适合调度这类不能容忍长期随机试错的问题。
3. 实验结论有说服力
论文不只展示最终性能,还分析了:
- 收敛速度;
- 专家选择;
- 不同负载下表现;
- 不同目标下表现。
论文局限
1. 问题建模相对简化
论文主要关注抽象集群中的 CPU/内存资源调度,没有显式建模网络带宽、数据迁移、一致性开销、电价、碳排、电网调节约束等更复杂因素。对你现在的算网调度课题来说,它更像是一个“方法原型”,而不是直接可落地的最终模型。
2. 动作空间仍较简单
这里的动作主要是“选哪个任务调度”,属于较标准的离散决策。你的场景中可能还包括:
- 任务延期;
- 跨节点迁移;
- 限速;
- 任务拆分/重构;
- 电力响应等级选择。
这些动作比本文复杂得多。
3. RL 算法本身较经典
论文核心是 policy gradient + CNN + behavior cloning,属于较早期的深度强化学习路线。若从今天的角度看,可以进一步考虑 PPO、SAC、约束 RL、offline RL 等更现代的方案。
4. 专家依赖明显
论文效果很大程度上依赖专家启发式质量。若专家本身在目标指标上并不可靠,则行为克隆带来的提升可能有限,甚至可能形成偏置。
对电网指令驱动算网调度的启发
1. 为把问题正式定义为 imitation learning + RL 提供支持
“电网指令驱动算网调度”本质上也是一个在线序贯决策问题。电网侧发来调节指令后,调度器需要在满足任务 SLA、资源容量、迁移成本和网络约束的前提下,做出任务迁移、延迟、重排等决策。这个过程完全可以借鉴本文的两阶段结构:
- 第一阶段:用规则策略、优化器、启发式调度器生成专家轨迹;
- 第二阶段:用 RL 在动态环境中继续优化。
也就是说,这篇论文是一个非常清晰的 研究路线模板。
2. 在课题里,“专家”可以不是 SJF,而是规则或优化器
论文中 SJF 是专家,是因为其对平均加权周转时间有天然优势。 在我们的场景中,专家可以更丰富,例如:
- 电力优先规则;
- SLA 优先规则;
- 时延优先规则;
- 基于 MILP / MPC / Lyapunov 的近似优化解;
- 现有工程调度器产生的历史调度日志。
这意味着我们不必一开始就让 RL 从零学,完全可以先构造一个“还能用”的老师,再让模型在仿真环境中逐步超过老师。
3. 这篇论文适合当前的算力条件
目前只有有限 GPU 资源,如果直接做复杂 RL 或扩散 RL,训练成本会过高。本文给出的答案是非常实际的:
先做 imitation learning 初始化,再做少量强化学习微调,可以显著降低训练难度。
这比直接从零开始训练复杂 agent 更适合当前阶段。
4. 可将“电力指令—调度策略”映射为专家演示数据
结合你项目里的“电力调节指令—算力任务调度策略匹配”需求,可以进一步抽象为:
- 状态:电力指令、算力节点负载、网络资源状态、任务队列、SLA、历史响应误差;
- 动作:迁移、延期、重调度、限流、负载转移;
- 专家数据:由规则调度器或优化器在仿真环境中生成;
- 学习目标:在满足指令的同时最小化 SLA 违约、迁移代价、能耗与响应误差。
这和本文的“专家轨迹 + 行为克隆 + 强化学习”结构是高度同构的。
5. 这篇论文说明“RAG 或通用大模型”不能直接替代调度学习
这篇论文从侧面说明了为什么不适合直接替换:
- 这里的核心不是文本理解,而是 约束下的在线决策优化;
- 真正关键的是状态表示、动作设计、奖励构造和约束满足;
- imitation learning 与 RL 可以直接优化调度策略,而 RAG 更偏向知识检索和文本增强。
所以,对于“电网指令驱动算网调度”这种任务,模仿学习/强化学习 仍然比通用大模型检索范式更贴近问题本质。
6. 对你后续算法设计的具体建议
如果把本文思想迁移到我们的研究中,一个比较稳妥的路线可以是:
路线一:先做 imitation learning 调度基线
先不急着上扩散模型,先完成:
- 电力指令驱动的 MDP 建模;
- 一个规则/优化器专家;
- 状态—动作数据集;
- 行为克隆策略网络。
这样你可以尽快做出第一版可运行结果。
路线二:再做 RL 精修
在行为克隆网络基础上,再用 PPO / SAC / constrained RL 继续优化,使策略适应:
- 负荷波动;
- 光伏出力波动;
- 网络扰动;
- 任务到达分布漂移。
路线三:最后再考虑扩散模型
如果后续发现动作空间非常复杂、多模态很强,或候选调度方案需要“生成式建模”,再考虑扩散模型 actor 或 diffusion planner。这样路线会更稳,也更容易出阶段性成果。
我的评价
这篇论文不是特别新的方法论文,但它最值得吸收的思想是:
在调度问题中,不要让强化学习从零开始乱试。先用可解释、可获得的专家知识把策略扶上路,再用强化学习做进一步优化。
如果你现在的目标是尽快做出“电网指令驱动算网调度”的实质性研究成果,这篇论文对应的方法路线,比一开始直接做“扩散模型 + 强化学习”更稳、更现实,也更适合当前算力与研究阶段。