ホームへ戻る

AI 程式設計/演化搜尋

EvoMem、タスク横断の最適化経験を永続メモリ化――進化的探索を平均5.93倍高速化

EvoMemは、成功したプログラム変異から出典記録付きの戦略カードを抽出し、後続タスクでは最大3枚を検索してLLMを誘導する。9種類のテストで目的指標が平均6.40%向上した一方、結果のばらつきは大きく、実験対象も依然として小規模な研究用ワークロードに限られている。

Arriva436 · CC BY-SA 3.0 · Image source
zh-Hant

LLM駆動の進化的プログラム探索では通常、実行が終わるたびに探索過程を破棄し、最良のプログラムだけを残す。そのため、次の類似タスクでは、同じキャッシュ、スパース化、カーネル融合といった戦略を再発見しなければならない。8月11日に公開されたEvoMemは、こうした中間成果を実行間で保持できるメモリ層へと変換する。

システムは1回の進化が完了した後、子プログラム、親、同じ親を持つ兄弟、および後続のエリート系統を比較し、改善の証拠を持つ「idea card」を抽出する。カードには戦略の説明、出典タスク、プログラムの系統、適用条件、使用統計が含まれる。意味的に近い抽象戦略は統合できる一方、具体的なプログラムは個別に保持される。新たな変異の前に、システムはまずLLMを使って関連する可能性のある出典タスクを絞り込み、その後、テキストとembeddingの類似度を組み合わせて最大3枚のカードを取得し、変異用promptに追加する。プログラム選択、正確性検証、fitnessの計算は変更されていないため、メモリは探索バイアスとしてのみ機能し、evaluatorを迂回することはない。

研究ではGemini 3 FlashでGigaEvoを駆動し、幾何学的配置、マルチホップ質問応答、AlgoTuneの科学計算プログラム、KernelBenchのGPU kernelをテストした。リークを抑えるため、各テストでは同一benchmarkから生成されたメモリを除外した。9種類の結果では目的指標が平均6.40%向上し、メモリなしのbaselineにおける最高スコアへ到達するまでに必要な候補数は平均で約6分の1に減少した。KernelBenchの平均改善率は16.89%だったが、個々の実行結果は0%から65.93%まで幅があり、一部ではかえって遅くなった。関連性検索で取得された戦略が実際に子プログラムへ採用された割合も4.05%にとどまったが、ランダムにカードを抽出した場合の0.25%は上回った。

エンジニアリング上の要点は単一の平均値ではなく、進化の軌跡を監査可能かつ検索可能な資産へ昇格させたことにある。今後は、大規模repository、言語横断の変更、長期的なメモリ汚染について検証する必要がある。現時点ではメモリバンクの規模が小さく、ablationも不完全であり、高temperature samplingによって再実行時の分散も顕著だ。そのため、5.93倍という数値を安定したデプロイ時の高速化と見なすことはできない。

出典

  1. EvoMem: Memory-Augmented Evolution for Code Optimization
  2. GigaEvo open-source framework
  3. KernelBench: Can LLMs Write Efficient GPU Kernels?