背景資訊和提示設定

AlphaEvolve 會根據提供的程式碼基準和使用者提供的特定背景資訊,引導作業進行。

使用者情境

使用者提供的背景資訊會插入每個生成提示詞。這項技術會為 LLM 提供領域知識、數學公式和系統限制,藉此平衡搜尋空間。

  • 詞元預算:最多 200,000 個詞元,成效良好。超過 20 萬個詞元的門檻後,脈絡窗口就會載入,LLM 的注意力會降低,變異品質也會降低。如果合併的內容 (問題說明、程式碼和先前的程式) 超過 20 萬個詞元,就必須減少。

應包含的內容

  • 最佳化問題的精確數學公式。

  • 主要限制和明確理由。

  • 特定領域的術語和定義。

  • 已知有效的方法或既有技術,可引導 LLM 的搜尋方向。

  • 具體明確的指示,詳細說明不得執行的事項。

不應加入的內容

  • 一般程式設計教學課程。

  • 標準程式庫說明文件 (LLM 已知道 numpy、sklearn 等)。不過,請務必提供 LLM 可能不熟悉的利基或特定領域程式庫 (自訂核心 API、專屬 SDK 或專用 DSL) 說明文件。

  • 原始任意資料、試算表或大型資料轉儲。資料應放在評估工具中,而非提示詞內容。

  • 不相關的背景資訊,會消耗權杖,但不會新增搜尋信號。

您提供的每項背景資訊都必須發揮明確價值,積極協助 LLM 產生更優質、結構更健全的變異。

評估意見回饋 (洞察)

每次執行迴圈後,評估器可以傳回診斷意見回饋文字和數值分數。這項意見回饋會自動附加至日後的提示結構。

  • 品質基準:優質意見回饋應具體、可行且簡潔。 不佳的回饋意見通常過於籠統 (例如「評估失敗」) 或過於冗長。

  • 作業用途:這些洞察資訊會顯示在 LLM 後續生成的內容中,讓 LLM 明確從執行失敗中學習,避免重複發生錯誤。

內建提示詞多樣化

AlphaEvolve 會自動將傳送至後端 LLM 組合的提示多元化。這項作業會在內部處理,使用者不需手動設定。

系統會在後續世代中調整核心指令,鼓勵多樣化的變異,並防止 LLM 陷入重複的程式碼模式。這種行為是 AlphaEvolve 探索廣泛領域的主要機制之一,可避免受限於狹隘的局部最佳解。

程式碼可讀性

程式碼複雜度是有效的輔助指標。如果最終程式碼的可讀性是正式環境用途的考量因素,請考慮將程式碼長度或認知複雜度新增為次要目標指標。

AlphaEvolve 可將檔案壓縮高達 50%,且不會降低功能效能。不過,LLM 會利用簡單的簡化指標 (例如移除所有內嵌註解,減少原始字元數)。為避免這種情況,請導入可擷取有意義結構複雜度的指標,例如圈複雜度或抽象語法樹 (AST) 節點數量,而不是評估原始字串長度。