EvoX v2.0.0a1 es la primera alfa de una reescritura completa basada en EvoX Compiler (evoxc).
Versión preliminar experimental: la nueva API es incompatible con 1.x y no permite una actualización directa. Para producción sigue recomendada la serie estable 1.x. Probad la alfa en un entorno separado.
Un proceso de compilación explícito
EvoX Compiler permite inspeccionar y transformar los grafos de tensores, separando trazado, transformaciones, bajada de nivel, compilación y ejecución. Ofrece transformaciones combinables como vectorize/vmap, grad, jvp, vjp y batch_functions, con backends NumPy, IREE, TVM y XLA/PJRT. StableHLO proporciona una frontera común de bajada de nivel para los backends compilados.
EvoX 2.0 ya no depende de PyTorch ni de JAX. NumPy es la única dependencia de ejecución obligatoria de EvoX Compiler; los backends compilados son opcionales.
Nueva API funcional
- Los algoritmos utilizan
init(config, key)ystep(config, state, evaluate). - Los problemas utilizan
evaluate(config, state, candidates). - Las configuraciones son inmutables, el estado tensorial es explícito y la aleatoriedad utiliza claves PRNG reproducibles.
StdWorkflowtraza un paso evolutivo, lo compila con el backend elegido y ejecuta el bucle de optimización.
Incluido en esta alfa
- 32 clases de algoritmos y 15 operadores evolutivos.
- Pruebas numéricas básicas, DTLZ, CEC2022 y neuroevolución virtual.
- Métricas GD, IGD e hipervolumen; visualización con Plotly y trazas
.exv. - Optimización de hiperparámetros en el host y descubrimiento de extensiones mediante
evox_ext.
La publicación original informa de 552 pruebas superadas en el backend NumPy. Esto no demuestra una cobertura equivalente de los backends compilados o las GPU.
Instalación
Requiere Python 3.11+. En un entorno separado, elegid una opción de instalación:
pip install --pre "evox==2.0.0a1"
Para añadir soporte opcional de compiladores:
pip install --pre "evox[iree]==2.0.0a1"
pip install --pre "evox[compilers]==2.0.0a1"
Limitaciones actuales
Los flujos distribuidos, Brax/MuJoCo, la integración de redes neuronales PyTorch y los kernels Triton aún no se han portado. Los backends compilados y la ejecución GPU siguen siendo experimentales; algunos operadores y patrones de control no son compatibles con todos los backends. La monitorización, la visualización, las métricas y HPO se ejecutan actualmente fuera de los grafos compilados. Las API pueden cambiar durante las versiones preliminares.
Podéis enviar informes de errores, resultados de pruebas de rendimiento y comentarios sobre la API en GitHub Issues.
Publicación: v2.0.0a1