Aplica los siguientes principios de arquitectura cuando determines cómo puntuar, normalizar y penalizar las entradas de código de los candidatos dentro de tu entorno de evaluación.
Maximiza los objetivos directamente
AlphaEvolve realiza exclusivamente búsquedas de maximización, tratando cada
objetivo de optimización como una tarea de ascenso de colinas. Para minimizar una métrica, como la latencia
o las tasas de error, debes negar el valor calculado final:
score = -latency_ms # AE maximizes -> minimizes latency.
Mantener una estricta monotonicidad de la función
Asegúrate de implementar solo funciones de puntuación monótonas. La puntuación numérica que se muestra debe aumentar de forma constante a medida que mejoran las soluciones candidatas. La incorporación de puntuaciones no monótonas degrada el rendimiento de la búsqueda y, además, introduce incoherencias lógicas en la ruta de optimización.
Proporcionar métricas detalladas y detalladas
Las puntuaciones detalladas mejoran directamente la calidad general de la búsqueda. Incluso cuando se optimiza para un solo objetivo comercial principal, incorporar métricas secundarias o de proxy ayuda a AlphaEvolve a navegar por un espacio de búsqueda complejo de manera más eficaz. Pasa las puntuaciones secundarias individuales al sistema como estadísticas estructuradas para que el LLM pueda razonar de forma explícita sobre las compensaciones de rendimiento entre las generaciones.
Recompensa el éxito parcial por sobre los resultados escasos
Recompensa el éxito parcial en lugar de depender por completo de los resultados finales o binarios. Siempre prefiere un indicador de puntuación denso en lugar de uno disperso.
Un objetivo binario o de baja resolución (por ejemplo, hacer un seguimiento de las partidas ganadas en un juego basado en torneos) crea estancamientos de rendimiento masivos en los que varios candidatos empatan. Este comportamiento impide que AlphaEvolve distinga un casi acierto de una solución deficiente, lo que detiene los bucles de selección de padres.
Para mantener la dirección del gradiente de búsqueda, haz lo siguiente:
Agrega un indicador secundario detallado: Mide el progreso incremental hacia el objetivo final (como los puntos individuales obtenidos en una partida) para que AlphaEvolve pueda clasificar a los candidatos que, de lo contrario, estarían empatados y avanzar hacia espacios de soluciones prometedores.
Alinea con cuidado la alineación y los pesos: Asegúrate de que el indicador secundario esté alineado de forma monótona con el objetivo real y que tenga un peso seguro por debajo de él. Si no se pondera correctamente, AlphaEvolve optimizará la métrica de proxy a expensas del objetivo real (lo que provocará un hackeo de recompensas).
Por ejemplo, construye una función objetivo escalar con puntos como desempate lógico: use score = matches_won + w * (points_scored / points_possible).
Configura la restricción de peso en w < 1 para que una victoria adicional en la terminal siempre supere cualquier acumulación de puntos dentro de la coincidencia, lo que tratará la señal secundaria estrictamente como un desempate.
Comienza con un solo objetivo
Considera comenzar la implementación con una sola función objetivo. Si bien la optimización de varios objetivos con un seguimiento integral de la frontera de Pareto se admite de forma nativa en la base de datos, donde MAP-Elites hace un seguimiento del mejor programa por métrica y el sistema mantiene una frontera de Pareto en ejecución en todas las métricas, un solo objetivo escalar es mucho más fácil de analizar y depurar durante la implementación inicial. Si tu problema requiere varios objetivos, puedes combinarlos en un solo escalar ponderado o aprovechar las herramientas de seguimiento de varias métricas desde el principio.
Cambia la escala y normaliza antes de combinar
Aplica un balanceo de escala estricto en todas tus métricas para evitar el sesgo de optimización:
Cambia la escala en los rangos: Normaliza las métricas a rangos comparables antes de combinarlas. Combinar puntuaciones limitadas (que van de
0a1) y puntuaciones ilimitadas (que van de0ainfinity) sin un cambio de escala explícito hace que la métrica ilimitada domine el panorama de aptitud.Prefiere las estructuras aditivas en lugar de las combinaciones multiplicativas: Los objetivos multiplicativos pueden volverse hipersensibles a las variaciones menores en el denominador, lo que compromete la exactitud y la estabilidad de la búsqueda. En su lugar, implementa sumas ponderadas aditivas:
w1*A - w2*L - w3*M. Este formato permite realizar ajustes de peso sencillos por parámetro de rendimiento.Normaliza en relación con los valores iniciales: Para evitar que las diferencias de escala sesguen tu ruta de búsqueda, divide cada métrica por su valor de referencia inicial respectivo, de modo que todas las métricas comiencen en un valor de referencia de
1.0antes de aplicar ponderaciones y combinarlas.
Amplificar las diferencias numéricas mínimas
Es posible que las pequeñas diferencias en las puntuaciones numéricas no proporcionen una señal de optimización útil para el LLM subyacente. Si un candidato sólido obtiene una puntuación de 1e-7 y uno más débil,
de 1e-8, es posible que el LLM no los distinga de forma significativa
cuando revise el contexto. Vuelve a ajustar tus puntuaciones finales a un rango obvio y legible por humanos (como de 0 a 100) para que las mejoras incrementales del código se vuelvan numéricamente evidentes dentro de la instrucción de generación.