callous-youth/BOAT

A Compositional Operation Toolbox for Gradient-based Bi-Level Optimization

解決的問題

BOAT 簡化了雙層最佳化(BLO)的實作,該過程通常從理論數學模型轉換為實際程式碼時極為複雜。它不提供少數固定的求解器例程,而是提供一個模組化系統,讓研究人員無需重寫核心模型程式碼,即可建構並實驗各種 BLO 求解器。

工作原理

BOAT 將 BLO 工作流程分解為原子的、可重用的梯度運算。這些運算被組織成三個模組化圖書館:

  1. 梯度映射(GM-OL):重建下層問題的迭代軌跡。
  2. 數值近似(NA-OL):使用自動微分或數值反演等方法處理計算隱式或超梯度的瓶頸。
  3. 一階近似(FO-OL):將嵌套問題重新表述為單層目標,以避免昂貴的海森矩陣計算。

使用者透過 JSON 設定檔定義其最佳化策略與目標。BOAT 隨後自動將這些基本運算組合為功能求解器(支援超過 85 種變體,源自 19 個原子運算),並與 PyTorch 模型和最佳化器整合。

適用對象

專為從事需要嵌套最佳化任務的 AI 研究人員與實務者設計,例如元學習、超參數最佳化與神經架構搜尋。

主要亮點

  • 組合式設計:將求解器分解為模組化階段,支援靈活組裝。
  • 生成式求解器:僅需變更設定檔即可建立新型混合求解器。
  • 設定驅動:使用 JSON 將演算法邏輯與模型定義解耦。
  • 廣泛的應用支援:適用於資料導向(如資料清洗)、模型導向(如 PEFT)與策略導向(如 RLHF)的 AI 任務。
  • 多後端支援:雖主要基於 PyTorch,但也提供 Jittor 與 MindSpore 版本。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案