algorithmicsuperintelligence/openevolve
Open-source implementation of AlphaEvolve
OpenEvolve – 進化的コード生成エンジン
概要 – OpenEvolveは、大規模言語モデル(LLM)を品質多様性進化アルゴリズム(島並列を備えたMAP-Elites)内の突然変異/再結合エンジンとして使用するPythonライブラリです。多言語(Python、Rust、R、Metalシェーダーなど)でコードを自動的に書き換え、最適化、または発明し、ユーザー提供のテストハーネスで候補を評価します。このシステムは研究レベルの再現性を目的に構築されており、コマンドライン、Dockerコンテナとして実行したり、Pythonモジュールとしてインポートしたりできます。
主な機能
- LLM駆動の進化 – LLMが新しいプログラム変異体を提案し、フレームワークがプロンプト、フォールバックアンサンブル、成果物フィードバックを処理します。
- MAP-Elites + 島 – ユーザー定義の特徴次元(速度、コードサイズ、複雑さなど)にわたって多様な個体群を維持し、早期収束を防ぐために複数の島を並列実行します。
- 決定論的な実行 – 固定シード(デフォルト42)により、すべての進化がマシン間で再現可能です。
- 多目的/パレート最適化 – パフォーマンス、メモリ、その他のメトリクス間のトレードオフを自動的に発見します。
- プラグアンドプレイのLLMバックエンド – 統合された
OPENAI_API_KEYスタイルの設定を介して、OpenAI、Google Gemini、Claude Code CLI、ローカルのOllama/vLLMサーバー、OptiLLMプロキシ、Copilot CLI、Codexアプリサーバーで動作します。 - 拡張可能なフック – ユーザーはカスタムの島セレクター、個体群戦略コールバック(受理、置換、アーカイブ、移住など)を提供して、進化ダイナミクスを調整できます。
典型的なワークフロー
- 初期プログラム(ファイルまたは文字列)と、数値スコアまたはメトリクスの辞書を返す評価器を提供します。
config.yamlで設定します(個体群サイズ、島の数、特徴次元など)。LLMプロバイダーと進化パラメータを設定します。openevolve-run.py(CLI)を実行するか、Pythonからrun_evolution/evolve_functionを呼び出します。- 結果の
result.best_codeと、パレート最適解のための完全なMAP-Elitesアーカイブ全体を検査します。
例(Python API)
from openevolve import run_evolution
result = run_evolution(
initial_program="""
def bubble_sort(arr):
for i in range(len(arr)):
for j in range(len(arr)-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
""",
evaluator=lambda path: {"score": benchmark_sort(path)},
iterations=50,
llm_config={"primary_model": "gemini-2.5-flash"},
)
print("進化したアルゴリズム:\n", result.best_code)
この呼び出しは小さな進化ループを実行し、LLMにソートルーチンを書き換えさせます。50回の反復後、出力されるコードは多くの場合、挿入ソートとクイックソートのハイブリッドであり、元のバブルソートよりも優れたパフォーマンスを発揮します。
インストール
- PyPI(推奨):
pip install openevolve - 開発: リポジトリをクローンし、
pip install -e "[dev]"を実行します。 - Docker:
ghcr.io/algorithmicsuperintelligence/openevolve:latestをプルし、マウントしたサンプルファイルでコンテナを実行します。
対応プラットフォーム – Python 3.10以上、macOS、Linux、Windowsで動作します(spawnマルチプロセッシング要件に注意)。GPU固有の例(Metalシェーダー)にはAppleシリコンハードウェアが必要です。
ユースケースのハイライト
| ドメイン | OpenEvolveの機能 |
|---|---|
| パフォーマンスチューニング | ハードウェアを意識したカーネル最適化を発見(例:Metalアテンションカーネルが2.8倍高速化)。 |
| アルゴリズム発見 | 公開されたベンチマークに一致またはそれを超える新しいソート、円充填、記号回帰ソリューションを見つけます。 |
| 科学計算 | フィルター設計、方程式発見、その他のパラメータ集約的なタスクを自動化します。 |
| 競技プログラミング | 古典的なコンテスト問題に対する複数の解決戦略を生成します。 |
| 多目的最適化 | 速度、メモリ、コード複雑さの間でパレート最適なセットを返します。 |
コストモデル – ライブラリ自体は無料です。各進化反復はLLMプロバイダーのトークンコストが発生します。READMEには、Gemini、OpenAI o3/o3-mini、ローカルモデルの典型的な反復ごとの価格と、支出を削減するためのヒント(反復回数の削減、より安価なモデル、カスケード評価)が記載されています。
ライセンス – このプロジェクトは、リポジトリのLICENSEファイル(READMEからリンク)に基づいてリリースされています。これは無料での使用と変更を許可するオープンソースライセンスです。
OpenEvolveは、進化アルゴリズムと最新のLLMを組み合わせて最適化とアルゴリズム発明を自動化する、自律コード発見のための研究グレードのプラットフォームとして位置付けられています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト