Pattern di implementazione del valutatore

Quando progetti le metriche di valutazione per un harness di valutazione AlphaEvolve, stabilisci i seguenti tre livelli di test distinti.

Livello 1: test di convalida della soluzione

Questi test verificano la sicurezza di base dell'esecuzione del codice e la conformità alle norme prima dell'esecuzione completa.

  • Sicurezza dell'esecuzione: verifica se il codice viene eseguito. Ciò include la revisione della sintassi, il controllo del tempo di compilazione, l'esecuzione dell'analisi statica e la verifica della compatibilità dell'infrastruttura.

  • Execution policy (Criterio di esecuzione): determina se il codice deve essere eseguito anche se è funzionale. Ciò include linting, controlli generali della qualità del codice, revisioni InfoSec, convalida di rischi e conformità e controlli della catena di fornitura API.

Considerazioni:

  • Se la convalida non va a buon fine, restituisci un punteggio negativo elevato, ad esempio -10000 o -100000. AlphaEvolve ignora questi programmi.

  • Includi il tipo di errore e i log per il debug. Anche se AlphaEvolve non utilizza questi metadati come indicatore di ricerca, sono utili per l'analisi a posteriori delle modalità di errore.

Livello 2: test di verifica della soluzione

Questi test verificano la correttezza algoritmica e il rispetto dei vincoli utilizzando test funzionali e delle unità.

  • Accuratezza funzionale: verifica se il codice si comporta correttamente utilizzando test funzionali e delle unità.

  • Rispetto dei vincoli: verifica la fattibilità della soluzione o la soddisfazione dei vincoli.

  • Mitigazione dell'hacking delle ricompense: applica i punteggi di verifica come penalità negative alla funzione di idoneità per impedire l'hacking delle ricompense. L'assegnazione di un punteggio di -10000 o -100000 funge da penalità efficace.

Considerazioni:

  • Restituisce il numero o la percentuale di test superati. Questo approccio fornisce un indicatore di gradiente: un programma che supera 4 test su 5 viene riconosciuto come più vicino alla correttezza rispetto a uno che ne supera 0 su 5.

  • Considera la verifica come soddisfacimento di un vincolo non rigido. Anche per i vincoli rigidi del sistema, esprimerli come penalità soft in base alla prossimità allo spazio fattibile fornisce ad AlphaEvolve un indicatore di ricerca più pratico rispetto a un risultato binario (superato o non superato).

Livello 3: test di valutazione della soluzione (test delle prestazioni)

Questi test misurano le metriche di rendimento oggettive a seconda del tipo di obiettivo di ottimizzazione.

  • Misurazione diretta: monitora gli obiettivi direttamente dove lo strumento lo consente.

  • Stime deterministiche: calcola gli obiettivi in modo analitico per gli stili classici di ricerca operativa.

  • Convalida out-of-sample: esegui test sui set di dati di convalida per i casi d'uso che prevedono l'ottimizzazione della pipeline di machine learning o la regolazione dell'agente.

  • Stime basate sulla simulazione: utilizza simulazioni Markov Chain Monte Carlo (MCMC), funzioni proxy di tipo ottimizzazione bayesiana o altri approcci basati su modelli.

Considerazioni:

  • Restituisce sia i punteggi granulari che quelli aggregati.

  • Non scaricare il calcolo del punteggio sull'LLM; calcolalo in modo deterministico all'interno dell'ambiente di test del valutatore. AlphaEvolve esegue le salite in collina in base a questi punteggi di rendimento aggregati precalcolati.

  • Il credito parziale fornisce un segnale di gradiente che accelera la convergenza della ricerca. Ad esempio, un programma che supera 4 test su 5 dovrebbe ricevere un punteggio di 0.8 anziché None. La restituzione di None fa sì che AlphaEvolve ignori completamente il programma, eliminando feedback utili. Un punteggio di 0.8 indica che il candidato è quasi corretto e ha un potenziale valido per l'ottimizzazione.