开源平台MARO:资源调度优化的任意门
过去三年,在与微软亚洲研究院“创新汇”成员企业探讨 AI 如何在各行业落地的过程中,微软亚洲研究院的研究员们发现,资源调度优化是很多领域都存在的通用问题,这也是为什么经久不衰的“运筹学”广泛应用于各行各业的原因。因此,基于三年来与成员企业的合作研究,微软亚洲研究院发布了多智能体资源优化平台“群策 MARO”,并将其开源。
MARO 适用于由资源供需不平衡导致的资源利用率低的问题,而这样的问题广泛存在于多个行业的不同场景。如何更好地在不同参与者间以合理的成本提高资源利用率,为行业创造更大的利润空间,且为社会节省不必要的资源浪费,是 MARO 的使命。这其中,利用创新技术助力企业和组织在关键场景中高效配置资源、节能减排,也是微软可持续发展战略中的重要一环。
刚刚过去的双11其实就是一个典型的仓储物流行业资源匹配的场景,由于大家的“爆发式”采购,三五年前我们经常听到出现“爆仓”的问题,但近两年这个问题相对得到了缓解,其主要原因就是仓储物流调度水平的大幅提升。其他常见的、需要资源调度优化的场景还有共享单车中自行车与站点、人的匹配,物流运输中集装箱与港口、船只、货物的匹配,电信领域无线基站带宽与用户流量的匹配,数据中心计算资源与运行任务之间的匹配,制造企业的生产与排程等等。
微软亚洲研究院的研究员们将资源调度优化这个场景高度抽象,搭建出了一个可以让 AI 技术更好赋能这一场景的、通用的技术平台 MARO。MARO是一个面向多行业横截面上的全链条资源优化 AI 解决方案,对于 MARO 已经涵盖的场景,用户只需提供合规的数据,MARO 就可以构建仿真环境并支持分布式并行训练,进而给出最终的解决方案;而对于尚未支持的场景(如不同的资源实体,不同的资源产生和消耗逻辑等),MARO 则可以在限定的成本下帮助构建可行的方案。
从技术角度来看,智能资源调度优化可以分为三个层面:最底层,可以理解为信息感知层,在这里需要通过一些智能感知技术把整个过程真正数字化,比如共享单车场景里的每个停车点、每辆单车,或是航运物流里的每个集装箱、船只、港口等;第二层是信息的推理层,它建立在信息感知层之上,通过预测模型刻画未来的资源供需情况,然后基于这些情况来设计算法去优化资源调度;最高层则是智能决策层,该层无需额外的算法模型,因为智能模型可以直接利用第一层和第二层的信息给出最终的优化方案,实现完全的、端到端的决策。目前,业界的优化应用大多处于第二层,而 MARO 在兼顾第二层需求的前提下,可助力资源优化实现第三层中的智能决策。
考虑到不同行业用户对 AI 技术的掌握程度会有所不同,MARO 平台提供了三种面向不同用户的构建方式,以帮助相关人员由浅入深地应用 AI 技术,创建自己的资源调度优化模型,同时,也降低了科研成果在真实场景中应用的门槛,让 AI 可以助力解决业界更多的实际问题。
MARO 平台的三层架构
MARO Service:服务层,开箱即用
对于拥有行业领域知识,但没有机器学习开发经验的人员来说,MARO Service 提供了一些现成的资源调度场景的优化模型,如已经上线的空集装箱调配和共享单车场景等。如果用户面临与这三个模型高度匹配的业务场景,那么导入自己的业务数据,即可使用相应的模型直接连接上下游业务系统。MARO 团队还在不断改进该层服务,未来将会选取更多领域的典型资源优化场景加入到平台中,让更多行业用户受益。
MARO Platform:构建和训练自己的资源调度模型,并可直接用于生产
对于需要构建自有模型的用户来说,如今无需太高的 AI 技术要求,就可以在 MARO Platform 灵活创建新场景、训练新模型,不断测试新算法的优劣,通过反馈持续调整优化模型。例如,有一定规模的物流企业,本身已具有相应的技术积累,也有自己的传统解决方案,如果希望利用 AI 寻找创新的优化方案,那么此时就可以通过 MARO 提供的工具快速构建模拟场景,并基于实际的数据和业务逻辑进行优化,从而迭代出自己的模型,且可以将该模型集成到自有的生成环境中使用。
在技术实现方面,MARO Platform 中所提供的高性能仿真器是其精髓所在。首先,用户需要在仿真器环境中构建一张初始的静态图,根据实际场景可以包含异构的点和边。比如在共享单车场景中,单车站点对应静态图中的“点”,而站点的位置远近对应“边”,再加上站点容量等其他信息,就可以构建出一张静态图,也是机器认知的初始环境。
搭建包含业务逻辑的动态环境
然后,导入用户的骑行数据(资源需求流),这对系统而言相当于一个个事件(Event)流,它们不断触发、更改图上节点以及边的各种属性,从而形成了一个包含业务逻辑的动态环境。通过环境与事件的不停交互,MARO 可提供基于 AI 算法的几近实时的优化策略,传统方法需要几小时才能生成的策略,MARO 几秒钟就可以提供。而且环境增强的方法使得 MARO 的仿真环境可以在一定程度上模仿现实的异常环境,进而提高模型的鲁棒性,比如资源网络中任意一个节点出现问题,只需把该节点停掉即可,并不会影响整体算法。
这其中,资源需求的时序信息、资源持有者的空间信息等,都可以通过图神经网络有机地整合在一起,以辅助做出更好的决策。同时,MARO 还会考虑资源持有者相互之间的竞争,包容每个资源持有者可能会着眼于局部优化,而给出相对“自私”一点的策略,来完成竞合策略学习,但其最终目的还是希望全局网络能够实现更好的优化。
如果将共享单车的场景延伸到数据中心虚拟机的分配中,那么关键资源则由自行车变成了计算机集群上的计算资源,如 CPU、存储,而事件流变成了客户对资源的实时需求,如需要10 个 CPU、100GB 内存这样的事件。尽管使用场景变了,但调度优化的本质并没有改变。因此,MARO 可以最大程度地适用于多个行业需要资源优化的各种场景,同时它还可以与基于运筹学和组合优化的传统方法相互融合。
MARO Framework:基础设施快速搭建,SDK调用所需资源
对于有着较深开发积累的用户来说,MARO Framework 提供了一个可扩展的工具包,可以基于现有的高性能模块以及通用接口实现“更加原创的”仿真环境构建和问题建模。开发人员可以通过 SDK 调用任何所需的计算、存储、网络等资源,也可以根据自己已有的计算机集群搭建 MARO 的平台,进而获得在分布式环境下进行并行训练的支持。此外,对于现有问题 MARO 还提供了一批基准算法实现,包括基于经典规则的方法、基于运筹学的组合优化方法、以及基于经典的强化学习的方法,方便用户进行算法比较并快速上手。
由于资源优化是个独有却普遍存在于各个行业的应用场景,所以 MARO 为不同行业、不同需求的用户分层提供了相应的框架和工具,用户可以更好地专注于自己业务逻辑场景的开发和目标模型的优化,其他诸如训练和管理模型、基础设施提供甚至可视化分析等“杂事”都可以放心地交给 MARO 来处理。
欢迎大家关注并使用 MARO 开源平台:https://github.com/microsoft/maro,高效实现各自业务中的资源配置和优化!
你也许还想看: