计图开源:双层优化库JBOAT
近期,大连理工大学软件学院刘日升教授团队提出最新成果——通用双层优化工具库JBOAT。JBOAT基于统一的“约束重构”视角,将双层优化工作流解构为可组合框架,支持Jittor深度学习框架。通过模块化组合,JBOAT 能够自动构建超过80种求解器变体,为元学习、超参数优化及神经架构搜索等领域提供了高效、灵活的算法底座。
Part1
随着深度学习向自动化与自适应方向演进,双层优化已成为现代机器学习系统的核心数学范式[1]。无论是元学习中的快速适应机制、超参数优化中的自动调参,还是神经架构搜索中的结构搜索,其本质均可建模为一个嵌套的层级优化问题:


其中,x为上层变量(如超参数、元知识),y 为下层变量(如网络权重),S(x)是下层问题在给定上层变量时的最优解集。现有BLO方法主要包括显式[2]、隐式、值函数、一阶[3]求解方法。尽管BLO很常见,但把它落地到深度学习训练中仍然麻烦:一方面,计算上层的超梯度往往需要二阶信息或隐式微分、数值近似,工程实现复杂;另一方面,现有库多以“算法/求解器”为中心进行封装,导致复用性弱、组合空间小,很难在不同任务中快速迁移或构造新的混合求解器。
针对上述问题,研究团队在国产深度学习框架计图上整合了系列算法,开源了计图双层优化库JBOAT,一个组合式、操作级的双层优化工具箱。JBOAT的核心思想是:不把BLO求解过程写死为若干固定算法,而是把求解过程拆解成可复用的“操作”,并通过配置驱动将这些操作进行组合,从而自动构建多样的BLO求解器变体。
Part2
JBOAT的核心设计思想在于建立了一种以“约束为中心的重构”为基础的统一工作流,将显式、隐式和值函数等主流BLO思路纳入同一框架。

图1 JBOAT整体架构与工作流图
这种模块化设计使得使用者能够通过组合算子的方式构建求解器。使用者无需关心底层的微分细节,只需关注算法逻辑的顶层设计。
2.1 梯度映射运算库(Gradient Mapping Operation Library, GM-OL)
面向下层更新过程的结构化建模。其核心职责是重构下层迭代轨迹,通过定制动态映射规则来塑造优化路径,并显式刻画上下层变量之间的耦合方式。JBOAT将这类“轨迹级”的设计抽象为可复用原语,典型操作包括 NGD、GDA、DI、DM。
2.2 数值逼近运算库 (Numerical Approximation Operation Library, NA-OL)
聚焦双层优化中的关键难点——辅助梯度/超梯度计算的瓶颈。该库通过自动微分展开、数值反演或截断等策略,对隐式梯度或超梯度进行近似,从而在计算开销与估计精度之间提供可配置的权衡。JBOAT在该库中组织了RAD、RGT、PTT、FD、IGA、IAD、FOA、CG、NS操作,以覆盖不同类型的超梯度近似路线。
2.3 一阶重构运算库(First-Order Operation Library, FO-OL)
提供面向工程可用性的“一阶化”求解路径:其目标是构造单层替代目标,将原本的嵌套问题通过值函数或罚项进行重构,从而在实现上尽量避免 Hessian等二阶量的显式计算。该库包含VSO、VFO、MESO、PGDO四种一阶重构操作,使双层优化能够以更接近常规一阶训练的方式落地。
2.4 组合式设计
在组合式设计上,JBOAT采用“注册表+配置驱动+Problem统一调度”的架构:所有算子以全局注册表方式管理,通过@register_class注册、get_registered_operation在运行时按名字取回,实现“算子可用性”与“求解器序列化方式”的解耦,便于即插即用扩展且保持可复现。

图2 操作注册逻辑
具体实验由两份JSON配置驱动:boat_config.json负责求解器骨架(算子选择、迭代步数、设备与算子超参等),loss_config.json负责上下层目标(以函数路径 + 参数形式指定)。

图3 boat_config.json配置

图4 loss_config.json配置
核心入口是Problem类:它解析配置、按优先级规则实例化操作序列,并在三阶段工作流中管理数据流,提供build_ll_solver / build_ul_solver / run_iter 等接口完成一次双层迭代。

图5 Problem类UML图
2.5 面向Jittor的支持
JBOAT面向Jittor深度学习框架进行了原生适配,把双层优化所需的内循环展开、快速权重更新和超梯度计算统一接入Jittor的动态图与JIT执行机制中。在实现上,JBOAT以Problem类作为统一调度入口,接收Jittor模型、优化器和变量参数,并通过build_ll_solver、build_ul_solver和run_iter组织一次完整的双层优化迭代。为了支持下层优化轨迹对上层目标可微,JBOAT实现了Jittor版higher_jit模块,将普通 Jittor Module转换为可维护fast_params的函数式模型,并封装可微优化器,使SGD、Adam 等更新过程能够被自动微分追踪。借助这一适配,JBOAT保留了Jittor的JIT编译和国产框架生态优势,也为RAD、IAD、PTT、RGT等依赖展开轨迹的双层优化算法提供了统一、可复用的工程基础。
Part 3
为了验证该工具库的有效性,本文在数据超清洗(data hyper-cleaning)与元学习(meta-learning)两类任务上进行了系统评估,实验结果如表1所示。
表1 数据超清洗和元学习实验结果

从整体结果来看,不同算子组合在两类任务上表现出稳定的性能,说明所提出的组合式双层优化框架具有较好的通用性。尤其是在基于NGD的梯度映射类方法中,各种变体在ACC、F1以及few-shot任务上均取得了较为稳健的表现,表明梯度映射结构对于提升下层优化质量具有重要作用。在数值逼近类方法中,不同超梯度估计策略对最终性能产生显著影响。引入RAD、GDA以及DI等改进策略的组合方法通常能够在多个指标上取得更优或相当的结果,说明在双层优化过程中,超梯度估计精度与稳定性对整体收敛性能具有直接影响。
此外,一阶重构类方法(VSO、MESO、VFO、PGDO)在元学习任务中整体表现较好,其中PGDO在5-way 5-shot设置下取得最优结果。结果表明,这类方法在该任务上具有较稳定的性能表现,并在一定程度上能够取得较好的泛化效果。
总体而言,实验结果验证了所提出框架在不同算子组合下的有效性,同时也表明梯度映射设计与超梯度近似策略在双层优化性能中起到了关键作用。
目前,计图双层优化库已在GitHub上开源:
https://github.com/vis-opt-group/JBOAT
项目的主页为:
https://jboat.readthedocs.io/en/latest/
参考文献
Risheng Liu, Jiaxin Gao, Jin Zhang, Deyu Meng, Zhouchen Lin, Investigating bi-level optimization for learning and vision from a unified perspective: A survey and beyond. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, Vol. 44, No. 12, 10045-10067.
Luca Franceschi, Michele Donini, Paolo Frasconi, Massimiliano Pontil, Forward and reverse gradient-based hyperparameter optimization, ICML 2017, Vol. 70, 1165-1173.
Risheng Liu, Zhu Liu, Wei Yao, Shangzhi Zeng, Jin Zhang, Moreau envelope for nonconvex bi-Level optimization: A single-loop and hessian-free solution strategy, ICML, 2024, article No. 1275, 31566 - 31596.
计图开源:基于交互距离感知的文本驱动双人动作生成方法 CVMJ最新影响因子8.3,列计算机学科软件工程类第4 超级智能体Agivar开放下载|会学习、会操作的桌面 AI 助手来了! Scopus发布2025年度影响因子, CVMJ以28.6 排名1/131 第六届“计图”人工智能算法挑战赛启动
可通过下方二维码,关注清华大学图形学实验室,了解图形学、人工智能、深度学习框架、CVMJ期刊和CVM会议的相关资讯。
