Enfoques de puntuación

Aplica los siguientes principios de arquitectura cuando determines cómo calificar, normalizar y penalizar las entradas de código candidatas dentro de tu plataforma de evaluación.

Maximizar los objetivos directamente

AlphaEvolve realiza exclusivamente búsquedas de maximización y trata 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 final calculado: score = -latency_ms # AE maximizes -> minimizes latency.

Mantener la monotonía estricta de la función

Asegúrate de implementar solo funciones de puntuación monótonas. La puntuación numérica que se devuelve debe aumentar de forma constante a medida que mejoran las soluciones candidatas. La incorporación de puntuaciones no monotónicas degrada el rendimiento de la búsqueda y genera inconsistencias lógicas en la ruta de optimización.

Proporcionar métricas detalladas y específicas

Las puntuaciones detalladas mejoran directamente la calidad general de la búsqueda. Incluso cuando se optimiza para un solo objetivo comercial principal, la incorporación de métricas secundarias o sustitutas 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 en las diferentes generaciones.

Recompensa el éxito parcial por sobre los resultados dispersos

Recompensa el éxito parcial en lugar de depender por completo de los resultados terminales o binarios. Siempre prefiere un indicador de puntuación denso a uno disperso.

Un objetivo binario o de baja resolución (por ejemplo, hacer un seguimiento de los partidos ganados en un problema de juego basado en torneos) crea mesetas de rendimiento masivas en las que varios candidatos quedan empatados. Este comportamiento impide que AlphaEvolve distinga una solución casi correcta de una deficiente, lo que detiene los bucles de selección de elementos superiores.

Para mantener la dirección del gradiente de búsqueda, haz lo siguiente:

  • Agrega un subindicador 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 otro modo, estarían empatados y realizar una búsqueda de optimización hacia espacios de solución prometedores.

  • Alinea la correlación y los pesos con cuidado: Asegúrate de que el subindicador esté correlacionado de forma monótona con el objetivo real y ponderado de forma segura 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 la recompensa).

Por ejemplo, construye una función objetivo escalar usando puntos como un 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 terminal adicional siempre supere cualquier acumulación de puntos dentro del partido, y trata el subindicador estrictamente como un desempate.

Comienza con un solo objetivo

Considera comenzar tu implementación con una sola función objetivo. Si bien la optimización multiobjetivo con un seguimiento integral del frente 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 un frente de Pareto en ejecución en todas las métricas, un solo objetivo escalar es considerablemente más simple 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.

Ajusta la escala y normaliza los datos antes de combinarlos

Aplica un equilibrio estricto de la escala en todas tus métricas para evitar el sesgo de optimización:

  • Ajusta la escala en diferentes rangos: Normaliza las métricas en rangos comparables antes de combinarlas. La combinación de puntuaciones acotadas (de 0 a 1) y no acotadas (de 0 a infinity) sin un reescalado explícito hace que la métrica no acotada domine el panorama de adecuación.

  • Prefiere las estructuras aditivas a 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. Implementa sumas ponderadas aditivas en su lugar: w1*A - w2*L - w3*M. Este formato permite 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 respectivo valor de referencia inicial, de modo que todas las métricas comiencen con un valor de referencia de 1.0 antes de que apliques pesos y las combines.

Amplifica las diferencias numéricas mínimas

Las pequeñas diferencias en las puntuaciones numéricas pueden no proporcionar un indicador de optimización útil para el LLM subyacente. Si un candidato sólido obtiene una puntuación de 1e-7 y un candidato más débil obtiene una puntuación de 1e-8, es posible que el LLM no los distinga de manera significativa cuando revise el contexto. Ajusta la escala de tus puntuaciones finales a un rango obvio y legible para las personas (como 0 a 100) para que las mejoras incrementales del código se hagan evidentes numéricamente en la instrucción de generación.