callous-youth/BOAT
A Compositional Operation Toolbox for Gradient-based Bi-Level Optimization
解决的问题
BOAT 简化了双层优化(BLO)的实现,该过程通常从理论数学模型到实际代码的转化非常复杂。它不提供少数固定的求解器例程,而是提供一个模块化系统,使研究人员无需重写核心模型代码,即可构建和实验各种 BLO 求解器。
工作原理
BOAT 将 BLO 工作流分解为原子的、可重用的梯度操作。这些操作被组织成三个模块化库:
- 梯度映射(GM-OL):重建下层问题的迭代轨迹。
- 数值近似(NA-OL):使用自动微分或数值反演等方法处理计算隐式或超梯度的瓶颈。
- 一阶近似(FO-OL):将嵌套问题重新表述为单层目标,以避免昂贵的海森矩阵计算。
用户通过 JSON 配置文件定义其优化策略和目标。BOAT 随后自动将这些基本操作组合成一个功能求解器(支持 85 种以上变体,源自 19 个原子操作),并将其与 PyTorch 模型和优化器集成。
适用人群
专为从事需要嵌套优化任务的 AI 研究人员和实践者设计,例如元学习、超参数优化和神经架构搜索。
主要亮点
- 组合式设计:将求解器分解为模块化阶段,支持灵活组装。
- 生成式求解器:只需更改配置文件即可创建新型混合求解器。
- 配置驱动:使用 JSON 将算法逻辑与模型定义解耦。
- 广泛的应用支持:适用于数据导向(如数据清洗)、模型导向(如 PEFT)和策略导向(如 RLHF)的 AI 任务。
- 多后端支持:虽然主要基于 PyTorch,但也提供 Jittor 和 MindSpore 版本。
相关
- 项目
- 项目
- 项目
- 项目
- 项目