脸书开源机器学习超参数调校工具Ax与BoTorch

脸书在年度F8大会开源了多项工具,其中Ax以及BoTorch两项工具,与人工智能应用程序开发的实验阶段有关,Ax是一个通用平台,可用于自动管理适应性实验(Adaptive Experimentation),而BoTorch则是创建在开源深度学习框架PyTorch的函数库,能帮助贝式优化(Bayesian Optimization)研究,以API方式提供Ax优化算法,让开发人员简单地调整人工智能参数。

脸书提到,在机器学习领域要调校出最佳参数需要花费很多时间,尤其是在复杂的空间中,因此他们开发了Ax和BoTorch两种工具来解决这个问题,这两种工具都已经在脸书大量部署使用,是其内部适应性实验的一部分,在人类的指导下利用机器学习,依次决定配置测试的顺序,以完成一系列的试验目标。

脸书用适应性实验解决了许多问题,包括新闻馈给(News Feed)和Instagram的排名模型,也优化了视频播放算法、Facebook Live和媒体上传的算法,以提供更高品质的视频串流。在后端还会对基础设施诸如即时编译器、内存配置与数据检索系统进行优化,以提高执行效率,还被用于自动搜索脸书FBLearner机器学习的超参数,能以更少的计算资源实现更高的模型精准度。

这两项工具可以降低用户进入适应性实验的门槛,Ax让开发者以低资源以及原则的方式,探索参数配置,BoTorch则是使用了PyTorch的功能,像是自动微分、大规模平行化运算以及深度学习,推进贝式优化的研究。

BoTorch是贝式优化研究的现代化函数库,而贝式优化则是用来寻找有限资源的最佳系统参数配置。而之所以脸书会开发BoTorch,是因为过去他们使用现有贝式优化工具,进行超参数优化任务,逐渐不符合他们日渐增加的工作量,因此脸书自己发展了新方法,让BoTorch能够适应脸书多样化的使用案例。

BoTorch借助了PyTorch的运算能力,脸书重新设计了模型实例以及优化程序,使其具有模块化的优点,以及容易使用的接口。BoTorch能够支持GPU自动化微分、平行运算,并与PyTorch的深度学习模块紧密结合。脸书提到,BoTorch大大提高了贝式优化研究人员的工作效率,而且其模块化的设计,可以让研究人员更换或是重新排列组件,灵活地定制化算法的每一个部分。

而Ax让开发者使用API​​与BoTorch相连接,提供生产服务以及可重现研究结果需要的功能,这让开发者得以专注于解决实际应用的问题,像是环境配置以及实验目标的权衡。脸书提到,Ax被没有丰富机器学习经验的工程师与人工智能研究人员广泛使用。虽然Ax使用大量的BoTorch功能作为优化的算法,但是其提供NumPy和PyTorch通用接口,让开发人员可以使用在任何框架中。

Ax还提供了自动优化程序,会根据实验的特征选择优化算法,开发者可以简单地设置默认程序,以满足特定应用程序的需要,更重要的是,Ax还有交互可视化工具,让开发者审查代理模型,了解不同结果之间的权衡问题。而开发者也能用基准测试组件,比较不同算法在测试问题上的优化性能,开发者可以存储结果并进行反复比较。