Surya Narreddi, junto con Cameron Franz y Alex Wang, describe en marzo de 2026 un proyecto para entrenar a un modelo de lenguaje a pintar con código. El punto de partida es una observación: con un modelo de imagen, la única forma de participar es a través del prompt, y la imagen no se puede editar directamente. Aquí, el modelo escribe un programa p5.brush en JavaScript que renderiza una acuarela; el código es el artefacto, editable con mayor precisión que un prompt. La pregunta de fondo es hacer aprendizaje por refuerzo sobre tareas creativas: el RL funciona cuando la recompensa es verificable, y la estética no lo es.
El bucle se repite miles de veces. El modelo (Qwen 3.5 35B) recibe un prompt —por ejemplo, un hibisco melocotón en acuarela— y escribe el boceto completo; este se renderiza como PNG en un entorno Puppeteer aislado; un modelo juez compara el render con dos referencias extraídas de un conjunto evaluado manualmente; el juicio se convierte en recompensa; GRPO actualiza el modelo.
La primera rejilla de recompensa tenía nueve señales: una puerta de compilación, el uso de p5.brush, una rampa de longitud alrededor de 3000 tokens, HPSv3 (un modelo de preferencia humana), la adherencia al prompt juzgada por GPT-5.4 y Gemini, y cuatro jueces de calidad. El modelo se estancó en 0,65, con todas las salidas siendo flores planas, de estilo clip-art. Examinar las subrecompensas por separado mostró que cinco jueces estaban correlacionados entre 0,85 y 0,95, que la longitud (un tercio del total) se había saturado hacia el paso 30, y que HPSv3, la única señal con varianza real, tenía un peso de apenas 0,10.
La solución: un juicio pairwise (el juez elige la mejor acuarela entre el render y dos referencias; la recompensa es la fracción de comparaciones ganadas), que dispersa las puntuaciones más que una puntuación absoluta comprimida, además de un conjunto de referencias de 581 imágenes extraídas de 1664 generaciones calificadas como "love", "okay" o "nope" (117 "love"). La rejilla se reduce a cuatro componentes: puerta de compilación y uso del pincel (0,05), longitud (0,05), HPSv3 (0,30), juez pairwise (0,60). Con el mismo modelo y los mismos datos, el antiguo estancamiento se alcanza tres veces más rápido, el progreso continúa, y el código se reduce de 13500 a menos de 2000 tokens. Todas las imágenes del conjunto son salidas del modelo, a falta de ejemplos humanos.
El system prompt también se reelaboró con GEPA: una referencia de API de 400 líneas provocaba que el modelo inventara métodos inexistentes; tras 200 iteraciones frente a un juez de siete ejemplos, la mejor versión resultó ser una lista cerrada de ocho métodos, sin documentación. El autor concluye que las referencias largas en un prompt favorecen la alucinación y que una lista corta y estrictamente delimitada restringe mejor al modelo.
En conclusión, el autor escribe que el RL subjetivo requiere diseñar la recompensa a mano: si es demasiado específica, el modelo copia los ejemplos; si es demasiado laxa, no aprende nada. No presenta el método como una mejor manera de producir imágenes, sino como una forma de actuar sobre el prompt, el modelo y el artefacto. Se anuncia una pasada de entrenamiento final y un informe técnico para junio de 2026.