コンテキストとプロンプトの構成

AlphaEvolve は、提供されたコードベースラインとユーザーが提供した特定のコンテキストを利用して、オペレーションをガイドします。

ユーザー コンテキスト

ユーザーが指定したコンテキストは、すべての生成プロンプトに挿入されます。LLM にドメイン知識、数式、システム制約を提供することで、検索空間のバランスを取ります。

  • トークン予算: 最大 200,000 トークンでパフォーマンスが向上します。20 万トークンのしきい値を超えると、コンテキスト ウィンドウが読み込まれ、LLM の注意力が低下し、ミューテーションの品質が低下します。結合されたコンテキスト(問題の説明、コード、以前のプログラム)が 200,000 トークンを超える場合は、減らす必要があります。

追加すべき要素

  • 最適化問題の正確な数式化。

  • 主な制約とその明確な根拠。

  • ドメイン固有の用語と定義。

  • LLM の検索方向をガイドする既知の優れたアプローチまたは先行技術。

  • 具体的な指示。何をすべきでないかを詳しく説明します。

含めてはならないもの

  • 一般的なプログラミングのチュートリアル。

  • 標準ライブラリのドキュメント(LLM は numpysklearn などをすでに認識しています)。ただし、LLM がよく知らない可能性のあるニッチなライブラリやドメイン固有のライブラリ(カスタム カーネル API、独自の SDK、特殊な DSL)のドキュメントは含めてください。

  • 未加工の任意のデータ、スプレッドシート、大規模なデータダンプ。データはプロンプト コンテキストではなく、評価ハーネスに属します。

  • 検索シグナルを追加せずにトークンを消費する無関係なコンテキスト。

含めるコンテキストはすべて、LLM がより優れた構造的に健全なミューテーションを生成するのを積極的に支援することで、明確な価値を提供する必要があります。

評価に関するフィードバック(分析情報)

各実行ループの後、評価ツールは数値スコアとともに診断フィードバック テキストを返すことができます。このフィードバックは、今後のプロンプト構造に自動的に追加されます。

  • 品質の基準: 強いフィードバックは具体的で、実行可能で、簡潔です。不適切なフィードバックは、一般的すぎる(「評価に失敗しました」など)か、冗長すぎるものです。

  • 運用目的: これらの分析情報は後続の世代で LLM に表示され、実行エラーから明示的に学習して、繰り返し発生するバグを回避できます。

組み込みのプロンプトの多様化

AlphaEvolve は、バックエンドの LLM アンサンブルに送信するプロンプトを自動的に多様化します。このオペレーションは内部で処理されるため、ユーザーが手動で構成する必要はありません。

システムは、多様な突然変異を促し、LLM が反復的なコーディング パターンに陥るのを防ぐために、連続する世代間でコア命令を変化させます。この動作は、AlphaEvolve が狭い局所最適解に陥るのではなく、広い範囲を探索するのに役立つ主要なメカニズムの 1 つです。

コードの可読性

コードの複雑さは、効果的な補助指標として機能します。最終的なコードの可読性が本番環境のユースケースの要因である場合は、コードの長さまたは認知複雑性をセカンダリ ターゲット指標として追加することを検討してください。

AlphaEvolve は、機能のパフォーマンスを低下させることなく、最大 50% のファイル圧縮を実現できます。ただし、LLM は単純な簡潔性指標(すべてのインライン コメントを削除して文字数を減らすなど)を利用します。これを防ぐには、生の文字列の長さを評価するのではなく、循環的複雑度や抽象構文木(AST)ノード数など、意味のある構造的複雑さを捉える指標を実装します。