Approcci di assegnazione del punteggio

Applica i seguenti principi di architettura quando determini come assegnare un punteggio, normalizzare e penalizzare le voci di codice candidate all'interno del tuo harness di valutazione.

Massimizzare direttamente gli obiettivi

AlphaEvolve esegue esclusivamente ricerche di massimizzazione, trattando ogni target di ottimizzazione come un'attività di hill climbing. Per ridurre al minimo una metrica come la latenza o le percentuali di errore, devi negare il valore finale calcolato: score = -latency_ms # AE maximizes -> minimizes latency.

Mantenere una rigorosa monotonicità delle funzioni

Assicurati di implementare solo funzioni di punteggio monotone. Il punteggio numerico restituito deve aumentare costantemente man mano che le soluzioni candidate migliorano. L'incorporazione di punteggi non monotoni peggiora il rendimento della ricerca e introduce incoerenze logiche nel percorso di ottimizzazione.

Fornire metriche dettagliate e granulari

I punteggi dettagliati migliorano direttamente la qualità complessiva della ricerca. Anche quando ottimizzi per un singolo obiettivo aziendale principale, l'incorporazione di metriche secondarie o proxy aiuta AlphaEvolve a navigare in uno spazio di ricerca complesso in modo più efficace. Restituisci i singoli sottopunteggi al sistema come approfondimenti strutturati in modo che l'LLM possa ragionare esplicitamente sui compromessi di rendimento tra le generazioni.

Premiare il successo parziale rispetto ai risultati sparsi

Ricompensa il successo parziale anziché affidarti interamente a risultati terminali o binari. Preferisci sempre un indicatore di punteggio denso a uno sparso.

Un obiettivo binario o a bassa risoluzione (ad esempio, il monitoraggio delle partite vinte in un problema di gioco basato su tornei) crea enormi plateau di rendimento in cui più candidati sono a pari merito. Questo comportamento impedisce ad AlphaEvolve di distinguere una soluzione quasi perfetta da una scadente, il che blocca i loop di selezione dei genitori.

Per mantenere la direzione del gradiente di ricerca:

  • Aggiungi un sottoindicatore granulare: misura i progressi incrementali verso l'obiettivo finale (ad esempio, i singoli punti segnati in una partita) in modo che AlphaEvolve possa classificare i candidati altrimenti a pari merito e procedere con l'hill climbing verso spazi di soluzione promettenti.

  • Allinea attentamente l'allineamento e le ponderazioni: assicurati che il sottoindicatore sia allineato in modo monotono con l'obiettivo reale e ponderato in modo sicuro al di sotto di esso. Se non è ponderato correttamente, AlphaEvolve ottimizzerà la metrica proxy a scapito dell'obiettivo effettivo (causando un hack di ricompensa).

Ad esempio, crea una funzione obiettivo scalare utilizzando i punti come tie-breaker logico: use score = matches_won + w * (points_scored / points_possible).

Configura il vincolo di ponderazione su w < 1 in modo che una vittoria terminale aggiuntiva superi sempre qualsiasi accumulo di punti all'interno della partita, trattando il sottoindicatore rigorosamente come tie-breaker.

Inizia con un singolo obiettivo

Valuta la possibilità di iniziare l'implementazione con una singola funzione obiettivo. Sebbene l'ottimizzazione multi-obiettivo con il monitoraggio completo della frontiera di Pareto sia completamente supportata in modo nativo nel database, dove MAP-Elites monitora il programma migliore per metrica e il sistema mantiene una frontiera di Pareto in esecuzione su tutte le metriche, un singolo obiettivo scalare è notevolmente più semplice da ragionare e debug durante il deployment iniziale. Se il tuo problema richiede più obiettivi, puoi combinarli in un singolo scalare ponderato o utilizzare fin da subito strumenti di monitoraggio multi-metrica.

Ridimensionare e normalizzare prima di combinare

Applica un bilanciamento rigoroso della scala alle metriche per evitare distorsioni di ottimizzazione:

  • Ridimensiona gli intervalli: normalizza le metriche a intervalli comparabili prima di combinarle. La combinazione di punteggi limitati (da 0 a 1) e punteggi illimitati (da 0 a infinity) senza un ridimensionamento esplicito fa sì che la metrica illimitata domini il panorama di idoneità.

  • Preferisci le strutture additive alle combinazioni moltiplicative: gli obiettivi moltiplicativi possono diventare ipersensibili alle variazioni minime del denominatore, compromettendo l'accuratezza e la stabilità della ricerca. Implementa invece somme ponderate additive: w1*A - w2*L - w3*M. Questo formato consente di regolare facilmente la ponderazione per parametro di rendimento.

  • Normalizza rispetto ai valori iniziali: per evitare che le differenze di scala distorcano il percorso di ricerca, dividi ogni metrica per il rispettivo valore di riferimento iniziale in modo che tutte le metriche inizino con un valore di riferimento di 1.0 prima di applicare le ponderazioni e combinarle.

Amplificare le differenze numeriche minime

Le piccole differenze numeriche di punteggio potrebbero non fornire un indicatore di ottimizzazione utile all'LLM sottostante. Se un candidato forte ottiene un punteggio di 1e-7 e un candidato più debole ottiene un punteggio di 1e-8, l'LLM potrebbe non distinguerli in modo significativo durante la revisione del contesto. Ridimensiona i punteggi finali a un intervallo ovvio, leggibile (ad esempio, da 0 a100) in modo che i miglioramenti incrementali del codice diventino numericamente evidenti nel prompt di generazione.