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) 節點數量,而不是評估原始字串長度。