El equipo ERNIE de Baidu publicó el 9 de noviembre en su blog técnico el sistema de investigación automática ERNIE Evolve. Según el blog, hace que varios agentes se repartan el trabajo de una investigación: elegir la dirección, plantear hipótesis, modificar el código, ejecutar evaluaciones y revisar los resultados. El equipo lo aplicó a cuatro tareas públicas de optimización y en tres superó las mejores marcas existentes; además, realizó tres optimizaciones en el despliegue de inferencia de su propio ERNIE-5.5-Flash.
Cinco roles, dos bucles
El sistema se divide en un bucle externo y otro interno. El blog lo resume así:
«El bucle externo decide qué investigar; el interno se encarga de hacer bien una dirección.»
El Director, en el bucle externo, elige de la base de experiencia y la base de conocimiento la siguiente dirección que validar y decide desde qué código partir: el código original, la mejor versión histórica, una versión intermedia o el último commit del repositorio upstream. En el bucle interno, el Selector elige en cada ronda una versión candidata como punto de partida y redacta la hipótesis de la ronda; para ello se apoya no solo en la puntuación, sino también en los cambios de código, las causas de los fallos y los resultados anteriores. El Executor modifica el código en un entorno aislado.
Los otros dos roles hacen de control de calidad. El Evaluator está fuera del repositorio que se optimiza, invisible para todos los agentes, y una mejora solo se acepta si supera el umbral de ruido; el Reviewer comprueba si el cambio se ha desviado de la dirección de la ronda y si el resultado aprovecha alguna laguna de la evaluación. Una versión desviada no puede convertirse en la mejor, y una que explota una laguna se anula directamente. El defecto más habitual de los sistemas de optimización automática es aprender a complacer a la puntuación sin que el código mejore de verdad; estos dos filtros apuntan justo a eso.
Resultados en las tareas públicas
| Tarea | Mejor marca anterior | ERNIE Evolve |
|---|---|---|
| NanoChat AutoResearch (BPB en validación, cuanto menor, mejor) | 0,8878 | 0,8763 |
| NanoGPT Speedrun Track 1 (tiempo de entrenamiento hasta la meta) | 39,9 segundos | 38,9 segundos |
| NanoGPT Speedrun Track 3 (pasos de entrenamiento hasta la meta) | 2690 pasos | 2590 pasos |
| SOL-ExecBench (puntuación SOL media, cuanto mayor, mejor) | 0,827 | 0,819 |
En SOL-ExecBench no logró el primer puesto, pero supera a Recursive (0,676) y a Hyra-1.0 (0,736). Los resultados de optimización de las tareas públicas están en el repositorio de GitHub ernie-research/ERNIE-Evolve-Results; si el propio sistema ERNIE Evolve será de código abierto, el blog no lo menciona.
Una cuenta sobre la optimización de inferencia
En las tareas industriales las cifras son mayores. En el escenario de baja latencia del Kunlunxin P800, el sistema ejecutó cuatro rondas con cuatro direcciones de investigación, llevó la velocidad de generación al 623,6 % de la línea base y superó todas las comprobaciones de corrección. El blog menciona un hallazgo clave: la ruta de comunicación original en realidad no tenía activada la comunicación de baja latencia DeepEP. De la aceleración de más de seis veces, cuánto procede de dar con esta configuración que no estaba en efecto y cuánto de los nuevos métodos de optimización, el blog no lo desglosa.
En el apartado de inferencia determinista, el rendimiento aumentó un 33,7 %, el tiempo de generación por token se acortó un 26 %, la latencia del primer token se redujo un 12 % y el determinismo se mantuvo, en unos 3 días. En el de decodificación extrema en GPU, el sistema propuso 7 direcciones, 3 aportaron mejora, la velocidad de decodificación subió un 14,9 % y la precisión coincide con la línea base.
Una cuenta a ojo: con un 33,7 % más de rendimiento, la misma carga de peticiones necesita aproximadamente el 75 % de las tarjetas de antes (1 ÷ 1,337). Si esta optimización pudiera trasladarse íntegra a un clúster en producción, lo ahorrado sería cerca de una cuarta parte de la capacidad de cómputo de inferencia. Cuántas horas de GPU costó cada una de las tres tareas, el blog no lo divulga; por ahora la cuenta solo se puede hacer del lado del beneficio, y el lado del coste está vacío.
El blog es muy directo sobre la dificultad:
«La línea base ya incluye optimizaciones específicas de los ingenieros para la inferencia determinista; las mejoras restantes suelen ser de solo un 1 % – 2 % cada una, comparables a la fluctuación de la medición.»
Muchas hipótesis fueron refutadas por los experimentos; por ejemplo, una sola comunicación entre tarjetas ya está cerca del límite inferior de latencia, y esa dirección se detuvo ahí.
Al final del texto, el equipo señala que la ampliación de la automejora recursiva (RSI) debe ser controlable y pausable, y someterse a evaluaciones de seguridad y supervisión humana. Por las tareas divulgadas, ERNIE Evolve modifica por ahora scripts de entrenamiento y código de inferencia, y aún no toca el proceso de entrenamiento del propio modelo.
Fuentes: blog técnico ERNIE de Baidu, repositorio de código abierto ERNIE-Evolve-Results, CocoLoop; se verificaron los resultados de las cuatro tareas públicas y el alcance de las tres optimizaciones de inferencia de ERNIE-5.5-Flash.