callous-youth/BOAT

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

何を解決するか

BOATは、バイレベル最適化(BLO)の実装を簡素化します。理論的な数学モデルから実用的なコードに移行する際の複雑さを軽減します。固定された数個のソルバールーチンを提供するのではなく、研究者がコアモデルコードを再書き換えすることなく、膨大な種類のBLOソルバーを構築・実験できるモジュール式システムを提供します。

仕組み

BOATはBLOワークフローを原子的で再利用可能な勾配操作に分解します。これらを3つのモジュールライブラリに整理しています:

  1. 勾配マッピング(GM-OL):下位問題の反復的軌道を再構築します。
  2. 数値近似(NA-OL):自動微分や数値逆算などの手法を用いて、陰的勾配やハイパーグラジエントを計算するボトルネックを処理します。
  3. 一次近似(FO-OL):ネストされた問題を単一レベルの目的関数に再定式化し、高価なヘッシアン計算を回避します。

ユーザーはJSON設定ファイルを通じて最適化戦略と目的を定義します。BOATはそれらのプリミティブを自動的に組み合わせ、機能するソルバー(19個の原子的操作から85種類以上のバリエーションを生成)を作成し、PyTorchモデルおよびオプティマイザーと統合します。

対象ユーザー

メタラーニング、ハイパーパラメータ最適化、ニューラルアーキテクチャ探索など、ネストされた最適化を必要とするタスクに取り組むAI研究者および実務家向けに設計されています。

特徴

  • 組み合わせ設計:ソルバーをモジュール式の段階に分解し、柔軟な組み立てを可能にします。
  • 生成型ソルバー:設定ファイルを変更するだけで、新しいハイブリッドソルバーを簡単に作成できます。
  • 設定駆動:JSONを用いてアルゴリズム論理をモデル定義から分離します。
  • 広範な応用対応:データ中心(例:データクリーニング)、モデル中心(例:PEFT)、戦略中心(例:RLHF)のAIタスクに適用可能。
  • マルチバックエンド対応:主にPyTorchベースですが、JittorおよびMindSpore用のバージョンも提供しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト