検索スペースと決定変数を定義する

AlphaEvolve のユースケースの検索スペースと決定変数を定義するには、問題をコードとして適切に定式化し、進化型ヒューリスティックが反復して改善できる、機能するベースライン ソリューションを提供する必要があります。

このプロセスには次のものが含まれます。

  • ターゲット コンテキストの提供: 最適化ユースケースの背景、ドメインルール、パフォーマンスの境界を確立します。

  • クリーンなベースラインの提供: ターゲットの問題のベースライン ソリューションを正しく実装する、明確で構造化されたコードを提供します。

  • 自由度のタグ付け: 明示的な EVOLVE-BLOCK コメントでコードベースにアノテーションを付け、エージェントが変更して探索し、より高性能なソリューションを特定できる特定の決定変数、ロジック構造、ルーチンをマークします。

初期プログラムの構造

初期プログラムは、進化検索の境界を決定する 2 つの主要なブロックタイプで構成されています。

  1. 不変のコードブロック: 検索スペースを制約する、またはソリューションのパフォーマンスに影響しないタスク(標準の前処理ステップやデータ処理ルーチンなど)を実行する、ボイラープレート コード、ヘルパー関数、依存関係。

  2. 可変コードブロック(EVOLVE-BLOCK): エージェントが探索して変更できる特定の決定変数、ロジック構造、分析式を含むターゲット領域。

    import numpy as np
    # Code to constrain the search space (Immutable)
    def def_preprocessing():
        """Feature engineering and preprocessing."""
        pass
    
    # EVOLVE-BLOCK-START
    # Mutable block: Provides degrees of freedom for AlphaEvolve to optimize
    def model_tuning():
        """Model tuning function: parametrized to take features."""
        pass
    # EVOLVE-BLOCK-END
    
    # Boilerplate code that does not impact solution performance (Immutable)
    def batch_predictions():
        """Inference function: batch predictions to test performance."""
        pass
    

検索スペースを制約するためのベスト プラクティス

不変のインポートを配置し、進化ブロックを配置する方法は、AlphaEvolve の運用上の境界を明確に示しています。

ライブラリのインポートと依存関係を管理する

AlphaEvolve は、本質的に、本番環境で有効な外部ライブラリを判断できません。

オープンな探索を許可するには: 指標を最大化するために機械学習パッケージまたは数学パッケージが許容される場合は、可変の EVOLVE-BLOCK 内にインポートを配置します。これにより、AlphaEvolve は代替フレームワーク(sklearn を TensorFlow や xgboost に置き換えるなど)を自由に置き換えることができます。

厳格なツールチェーンを適用するには: すべてのモデルが特定のパッケージから取得される必要がある場合は、そのパッケージを進化ブロックの外側の不変のインポートとして宣言します。AlphaEvolve が検索中にそのパッケージから追加の内部モジュールを必要とする場合でも、グローバル制約に違反することなく、可変スペース内でローカルにインポートできます。

検索スペースの制約が過剰にならないようにする

可能な限り多くのハード制約を、初期プログラムまたはユーザーが提供する追加のテキスト コンテキスト内の不変のコードブロックとして定式化します。これにより、エージェントが構造的に実行不可能なソリューションを探索する可能性を最小限に抑えることができます。

ただし、進化型アプローチが冗長になるほど検索スペースを絞り込まないでください。たとえば、AlphaEvolve で単一パラメータの線形回帰のみを使用するように強制すると、標準のグリッド検索ユーティリティで解析できる狭い構成スペースに問題が縮小されます。 代わりに、評価基準でソフト制約を負のペナルティとして使用して、探索を妨げることなくガイドします。

ターゲット目標に向けた戦略的なブロック配置

EVOLVE-BLOCK のスコープを変更すると、パイプラインの最適化目標全体がシフトします。

サンプル外(OOS)キャリブレーションの最適化: 目標が広範なアルゴリズムの発見である場合は、ブロックをモデルのチューニングと初期化ルーチン全体にラップします。

構造適合の最適化: 線形フレームワークを維持しながら、複雑な分析式やカスタムの数学的変換を検出する場合は、可変ブロックを特徴変換ロジックの周囲に厳密に分離し、ダウンストリーム モデル アーキテクチャを固定して不変に保ちます。

モジュール階層の維持(HDL/Verilog の例): 構造コードブロック構成を最適化する場合は、EVOLVE-BLOCK-START タグと EVOLVE-BLOCK-END タグをモジュール定義の境界内に厳密に保持します。これにより、検索ヒューリスティックが構造的に無効な移動を行うことを防ぎます。たとえば、単一のクリーンなモジュールを複数のマッピングされていないフローティング サブモジュールに置き換えようとするなどです。