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 版本。
相關
- 專案
- 專案
- 專案
- 專案
- 專案