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 由两层卷积、两层平均池化和两层全连接组成。

论文整体技术路线

根据论文结构,其研究逻辑可以概括为:

  1. 将云资源调度问题建模为序贯决策问题;
  2. 用图像形式编码系统状态;
  3. 选取启发式调度器作为专家;
  4. 通过行为克隆生成初始策略网络;
  5. 以该初始网络作为深度强化学习的参数起点;
  6. 使用策略梯度方法继续在线优化;
  7. 在不同目标、不同负载与不同集群配置下评估性能。

从方法论上看,这篇论文最重要的不是 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 降低策略梯度方差。整体训练分为两个阶段:

  1. 模仿学习阶段:行为克隆预训练;
  2. 深度强化学习阶段:以预训练参数初始化,再通过策略梯度继续优化。

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。这样路线会更稳,也更容易出阶段性成果。

我的评价

这篇论文不是特别新的方法论文,但它最值得吸收的思想是:

在调度问题中,不要让强化学习从零开始乱试。先用可解释、可获得的专家知识把策略扶上路,再用强化学习做进一步优化。

如果你现在的目标是尽快做出“电网指令驱动算网调度”的实质性研究成果,这篇论文对应的方法路线,比一开始直接做“扩散模型 + 强化学习”更稳、更现实,也更适合当前算力与研究阶段。

评论