Betty:一个用于多层优化的自动微分库
机器学习
2023-03-16 v2 人工智能
最优化与控制
摘要
基于梯度的多层优化(MLO)作为一个研究众多问题的框架而受到关注,其范围从超参数优化和元学习到神经架构搜索和强化学习。然而,MLO中的梯度是通过链式法则组合最佳响应雅可比矩阵获得的,其实现难度大且内存/计算密集。我们通过引入Betty,一个用于大规模MLO的软件库,朝着缩小这一差距迈出了第一步。在其核心,我们为MLO设计了一种新颖的数据流图,这使我们能够:(1)为MLO开发高效的自动微分,将计算复杂度从O(d^3)降低到O(d^2);(2)整合系统支持,如混合精度和数据并行训练以实现可扩展性;(3)促进任意复杂度的MLO程序的实现,同时为多样化的算法和系统设计选择提供模块化接口。我们通过实验证明,Betty可用于实现一系列MLO程序,同时在多个基准测试上,与现有实现相比,观察到测试准确率提高高达11%,GPU内存使用减少14%,训练墙钟时间减少20%。我们还展示了Betty能够将MLO扩展到具有数亿参数的模型。我们在https://github.com/leopard-ai/betty开源了代码。
引用
@article{arxiv.2207.02849,
title = {Betty: An Automatic Differentiation Library for Multilevel Optimization},
author = {Sang Keun Choe and Willie Neiswanger and Pengtao Xie and Eric Xing},
journal= {arXiv preprint arXiv:2207.02849},
year = {2023}
}