写点什么

微软亚研院开源多智能体资源优化平台 MARO,解决业务资源配置和优化难题

2020 年 12 月 02 日

微软亚研院开源多智能体资源优化平台MARO,解决业务资源配置和优化难题

过去三年,在与微软亚洲研究院“创新汇”成员企业探讨 AI 如何在各行业落地的过程中,微软亚洲研究院的研究员们发现,资源调度优化是很多领域都存在的通用问题,这也是为什么经久不衰的“运筹学”广泛应用于各行各业的原因。


因此,基于三年来与成员企业的合作研究,微软亚洲研究院发布了多智能体资源优化平台“群策 MARO”,并将其开源。


MARO 适用于由资源供需不平衡导致的资源利用率低的问题,而这样的问题广泛存在于多个行业的不同场景。如何更好地在不同参与者间以合理的成本提高资源利用率,为行业创造更大的利润空间,且为社会节省不必要的资源浪费,是 MARO 的目标。这其中,利用创新技术助力企业和组织在关键场景中高效配置资源、节能减排,也是微软可持续发展战略中的重要一环。


资源分配如何优化?


刚刚过去的双 11 其实就是一个典型的仓储物流行业资源匹配的场景,由于大家的“爆发式”采购,三五年前我们经常听到出现“爆仓”的问题,但近两年这个问题相对得到了缓解,其主要原因就是仓储物流调度水平的大幅提升。


其他常见的、需要资源调度优化的场景还有共享单车中自行车与站点、人的匹配,物流运输中集装箱与港口、船只、货物的匹配,电信领域无线基站带宽与用户流量的匹配,数据中心计算资源与运行任务之间的匹配,制造企业的生产与排程等等。


微软亚洲研究院的研究员们将资源调度优化这个场景高度抽象,搭建出了一个可以让 AI 技术更好赋能这一场景的、通用的技术平台 MARO。


MARO 是一个面向多行业横截面上的全链条资源优化 AI 解决方案,对于 MARO 已经涵盖的场景,用户只需提供合规的数据,MARO 就可以构建仿真环境并支持分布式并行训练,进而给出最终的解决方案;而对于尚未支持的场景(如不同的资源实体,不同的资源产生和消耗逻辑等),MARO 则可以在限定的成本下帮助构建可行的方案。



从技术角度来看,智能资源调度优化可以分为三个层面:


最底层,可以理解为信息感知层,在这里需要通过一些智能感知技术把整个过程真正数字化,比如共享单车场景里的每个停车点、每辆单车,或是航运物流里的每个集装箱、船只、港口等;


第二层是信息的推理层,它建立在信息感知层之上,通过预测模型刻画未来的资源供需情况,然后基于这些情况来设计算法去优化资源调度;


最高层则是智能决策层,该层无需额外的算法模型,因为智能模型可以直接利用第一层和第二层的信息给出最终的优化方案,实现完全的、端到端的决策。


目前,业界的优化应用大多处于第二层,而 MARO 在兼顾第二层需求的前提下,可助力资源优化实现第三层中的智能决策。


打开 MARO 的正确姿势


考虑到不同行业用户对 AI 技术的掌握程度会有所不同,MARO 平台提供了三种面向不同用户的构建方式,以帮助相关人员由浅入深地应用 AI 技术,创建自己的资源调度优化模型,同时,也降低了科研成果在真实场景中应用的门槛,让 AI 可以助力解决业界更多的实际问题。


MARO 平台的三层架构

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


2020 年 12 月 02 日 08:00700
用户头像
刘燕 InfoQ记者

发布了 568 篇内容, 共 178.6 次阅读, 收获喜欢 1082 次。

关注

评论

发布
暂无评论
发现更多内容

蘑菇街Java大牛熬夜纯手写肛出的Spring AOP/IOC思维导图及源码笔记,赶紧收藏学习!

Java成神之路

Java 编程 程序员 架构 面试

阿里P8Java大牛总结的MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

Java成神之路

Java 程序员 架构 面试 编程语言

牛批!阿里P8Java架构师总结整理了一份Spring MVC详细教程。真香系列!

Java成神之路

Java 程序员 架构 面试 编程语言

区块链系统面临哪些风险以及有哪些防范措施

CECBC区块链专委会

区块链

基于区块链的区域股权市场创新试点

CECBC区块链专委会

区块链

anyRTC 11月SDK更新

anyRTC开发者

flutter uni-app WebRTC RTC sdk

完了!这57道面试题(美团、BAT、携程),我咋一个都不会?

比伯

Java 程序员 架构 面试 计算机

架构师训练营 - 第 10 周课后作业(1 期)

Pudding

架构训练营 - 第10周课后作业 - 学习总结

Pudding

京东成立探索研究院,打造产业数智化首个源头性科技高地; AI 论文:让机器像人类一样感知三维真实世界

京东科技开发者

人工智能 云计算

一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?

华为云开发者社区

sql jdk OOM

划重点!DWS开发的五大要点

华为云开发者社区

数据库 sql DWS

金融科技带来套利?专家认为监管应关注平台垄断、权力滥用等问题

CECBC区块链专委会

金融科技

【Linux开发】编写属于你的第一个Linux内核模块

程序员小灰

c++ Linux 后台开发 架构师 服务器开发

云上看警博会黑科技,得益于华为云打造的“云之盾”

脑极体

【经验分享】打破CMDB认知误区,掌握建设关键!

嘉为蓝鲸

运维 运维自动化 数据可视化 CMDB 配置信息

软件架构指南

信码由缰

软件架构

优秀商业可视化大屏(BI)设计演示

Marilyn

UI 商业智能

架构师训练营 - 第 11 周课后作业(1 期)

Pudding

面试大厂被MyBatis源码问到“哑口无言”?这份《MyBatis源码学习笔记+面试真题》助你吊打面试官!

Java成神之路

Java 程序员 架构 面试 编程语言

盘点c++几种常见的设计模式及具体实现

linux大本营

c++ Linux 后台开发

写在日更之前,持续书写,见证文字的力量

boshi

随笔 随笔杂谈

1. 揭秘Spring类型转换 - 框架设计的基石

YourBatman

Spring Framework 类型转换 Converter

SpringBoot有多重要?面试用SpringBoot把面试官唬住了要30k都行!

Java成神之路

Java 程序员 架构 面试 编程语言

阿里技术专家熬夜一个月肛出内部“微服务学习笔记”,太完美了

小Q

Java 学习 编程 面试 微服务

京东11.11大促背后,那些系统架构经历了些什么?

京东科技开发者

数据库 云计算 云服务

LeetCode题解:455. 分发饼干,贪心for循环,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

面试官问我:Object o = new Object() 占用了多少个字节?

moon聊技术

JVM Java虚拟机 JVM虚拟机原理

消防物联网,为逆行英雄守住第一道生命线

华为云开发者社区

物联网 控制 消防

小白也能看懂!教你如何快速搭建实用的爬虫管理平台

华为云开发者社区

Python Docker jenkins

Jenkins使用ansible时出现!unreachable错误

Griffenliu

微软亚研院开源多智能体资源优化平台MARO,解决业务资源配置和优化难题-InfoQ