【消化】
启发式算法是逼近最优算法并实现更快、更高效决策的工具。这些在生产场景中特别有用,例如将虚拟机分配到哪个服务器,或者从内容交付网络的缓存中删除数据。然而,评估这些启发式方法何时表现不佳对于云运营商来说是一个挑战。此问题可能导致网络过度配置和可用资源的低效使用,这可能会导致成本高昂并导致无法满足客户需求。
为了解决这个问题,微软研究院开发了一种名为 MetaOpt 的启发式分析器。 MetaOpt 旨在评估启发式的性能,了解原因并改进它们。 MetaOpt 的独特之处在于它不仅比较算法性能,还提供对性能差异的洞察。这使得操作员和研究人员能够执行“假设”分析,战略性地思考如何在生产中组合启发式方法,并理解为什么某些启发式方法在给定的输入空间中表现更好。
为了演示 MetaOpt 的功能,我们分析了三个领域的启发式方法:流量工程、向量装箱和数据包调度。 MetaOpt 能够识别巨大的性能差距并证明这些启发式的属性,从而实现改进。
在MetaOpt框架中,用户输入他们想要分析的启发式方法并指定最佳算法或其他启发式方法。 MetaOpt 有效地将这些输入转换为求解器格式,并找到性能差距以及导致这些差距的输入。我们在 MetaOpt 中设计了更高级别的抽象,以便不熟悉优化理论的用户可以使用它。这允许用户使用一些简单的构建块输入启发式,并实际限制相关的输入空间。因此,MetaOpt 可以分析启发法表现不佳的决策,或识别导致做出次优选择的输入特征。
MetaOpt 基于 Stackelberg 博弈,这是博弈论中的一种领导者-追随者博弈。在此框架中,领导者决定输入以最大化算法(追随者)之间的性能差异,而追随者根据这些输入选择最佳结果。这会影响领导者的结果。
MetaOpt 作为一种可扩展且用户友好的分析工具代表了一项重大进步,用于调查、理解和解释竞争算法之间的性能差异。它还有助于在将这些算法部署到关键环境之前对其进行改进。开发将于 2022 年初开始,以满足特定的启发式分析需求,重点是增强 MetaOpt,使没有优化理论背景的用户更容易使用它。我们目前正在提高 MetaOpt 的可扩展性和易用性,并扩大其支持的启发式范围。它将在定于 2024 年 4 月 16 日至 18 日举行的 USENIX 网络系统设计与实现 (NSDI) 研讨会上作为开源工具发布。MetaOpt 预计将作为风险分析引擎、可解释的人工智能和主动学习工具,显着提高研究或设计启发式方法的生产力。在不久的将来,我们的目标是发表一篇关于新 MetaOpt 应用程序的论文,并分享用于编写启发式方法的语言。欲了解更多信息,请访问 MetaOpt 的网页并查看我们的出版物页面以了解最新进展。
【新闻评论】
启发式算法是快速逼近最佳解决方案的技术,在现实操作场景中非常有用,例如将虚拟机分配到哪些服务器或在内容交付网络中取消缓存数据。然而,如果这些算法没有按预期执行,云运营商可能会面临导致网络过度配置和资源浪费的问题。这可能会导致成本增加和客户需求得不到满足。
为了解决这些问题,微软研究院开发了一种名为 MetaOpt 的新工具。 MetaOpt 旨在分析启发式算法的性能,找出原因并改进它们。该工具不仅提供算法之间的性能比较,还可以深入了解性能差异的根本原因。这使得操作员和研究人员能够假设各种场景进行分析,并战略性地思考如何在实际操作中结合启发式方法。
MetaOpt 分析了流量工程、向量仓打包和数据包调度等不同领域的启发式方法,并确定了它们之间存在的性能差距。我们还证明了启发式的属性并提供了改进它们的指南。
在MetaOpt框架中,用户输入他们想要分析的启发式,并将其与最佳算法或其他启发式进行比较。 MetaOpt 有效地将这些输入转换为求解器格式,并识别性能差距以及导致这些差距的输入。为了使不熟悉优化理论的用户也能使用,MetaOpt 提供了高级别的抽象,允许用户使用简单的构建块输入启发式方法。
MetaOpt 基于博弈论中的 Stackelberg 博弈,其中领导者决定算法之间的输入,追随者根据这些输入选择最佳结果。因此,领导者的目标是最大化算法之间的性能差异。
MetaOpt 作为一种分析工具,在理解、解释和改进算法之间的性能差异方面取得了长足的进步。开发将于 2022 年初开始,旨在即使对于不熟悉优化理论的用户也易于使用。我们目前正在提高 MetaOpt 的可扩展性和易用性,扩大其支持的启发式范围,并计划在 2024 年 USENIX 网络系统设计和实现 (NSDI) 会议上将其作为开源工具发布。 MetaOpt 预计将显着提高那些研究或设计启发式方法作为风险分析、可解释的人工智能和主动学习工具的人员的生产力。
