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

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

ユーザー コンテキスト

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

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

追加すべき要素

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

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

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

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

  • 具体的な禁止事項を明記した明確な指示。

追加すべきでない要素

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

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

  • 未加工の任意のデータ、スプレッドシート、大量のデータダンプ。データはプロンプト コンテキストではなく、評価ハーネスに含める必要があります。

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

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

評価フィードバック(インサイト)

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

  • 品質のベースライン: 強力なフィードバックは具体的で、実行可能で、簡潔です。 不適切なフィードバックは一般的(「評価に失敗しました」など)または冗長です。

  • 運用上の目的: これらのインサイトは、後続の生成で LLM に表示され、実行エラーから明示的に学習し、繰り返しのバグを回避できます。

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

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

システムは、連続する生成でコア命令を変更して、多様なミューテーションを促し、LLM が繰り返しのコーディング パターンに陥るのを防ぎます。この動作は、AlphaEvolve が狭い局所最適に陥るのではなく、広い範囲を探索するのに役立つ主要なメカニズムの 1 つです。

コードの読みやすさ

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

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