EvoX v2.0.0a1 は、EvoX Compiler(evoxc) を基盤に全面的に書き直した最初のアルファ版です。
実験的なプレリリース: 新 API は 1.x と互換性がなく、そのまま置き換えることはできません。本番環境には引き続き安定版 1.x を推奨します。アルファ版は別の環境でお試しください。
明示的なコンパイルパイプライン
EvoX Compiler はテンソルグラフを検査・変換可能にし、トレース、グラフ変換、低水準表現への変換、コンパイル、実行を分離します。vectorize/vmap、grad、jvp、vjp、batch_functions を組み合わせて利用でき、NumPy、IREE、TVM、XLA/PJRT バックエンドに対応します。StableHLO がコンパイル用バックエンドの共通の中間表現となります。
EvoX 2.0 は PyTorch や JAX に依存しません。EvoX Compiler の必須実行時依存は NumPy のみで、コンパイル用バックエンドは任意です。
新しい関数型 API
- アルゴリズムは
init(config, key)とstep(config, state, evaluate)を使用します。 - 問題は
evaluate(config, state, candidates)を使用します。 - 設定は不変で、テンソル状態は明示的に扱い、再現可能な PRNG キーで乱数を管理します。
StdWorkflowは進化の1ステップをトレースし、選択したバックエンドでコンパイルして最適化ループを実行します。
アルファ版に含まれる機能
- 32 のアルゴリズムクラスと 15 の進化演算子。
- 基本数値ベンチマーク、DTLZ、CEC2022、仮想神経進化。
- GD、IGD、ハイパーボリューム指標、Plotly 可視化、
.exvトレース。 - ホスト側のハイパーパラメーター最適化と
evox_extによる拡張検出。
上流のリリースでは NumPy バックエンドで 552 件のテストに合格したと報告されています。コンパイル用バックエンドや GPU の同等のテスト範囲を保証するものではありません。
インストール
Python 3.11+ が必要です。別の環境でインストール方法を1つ選んでください。
pip install --pre "evox==2.0.0a1"
任意のコンパイラーサポートを追加する場合:
pip install --pre "evox[iree]==2.0.0a1"
pip install --pre "evox[compilers]==2.0.0a1"
現在の制限
分散ワークフロー、Brax/MuJoCo、PyTorch ニューラルネットワーク統合、Triton カーネルは未移植です。コンパイル用バックエンドと GPU 実行は実験段階で、一部の演算子や制御フローはすべてのバックエンドでは利用できません。監視、可視化、指標、HPO は現在コンパイル済みグラフの外で実行されます。プレリリース期間中は API が変更される可能性があります。
不具合、ベンチマーク結果、API へのご意見は GitHub Issues にお寄せください。
リリース: v2.0.0a1