# narreddi-training-ai-paint-with-code-2026-03-01

## Veille

Estudio de caso de **Surya Narreddi** (con **Cameron Franz** y **Alex Wang**) en su sitio web personal, fechado en **marzo de 2026** (día no especificado; ~1500 palabras), titulado *Training AI to Paint with Code*. Los autores entrenan un modelo de lenguaje (**Qwen 3.5 35B**) mediante aprendizaje por refuerzo (**GRPO**) para producir pinturas en acuarela como código JavaScript de **p5.brush**, siendo el propio código el artefacto editable. La pregunta de fondo: cómo hacer RL cuando la recompensa —estética— no es verificable.

## Titre Article

Training AI to Paint with Code (RLing Qwen to paint with code)

## Date

2026-03-01

## URL

https://surya.website/rling-qwen-to-paint-with-code

## Keywords

aprendizaje por refuerzo, GRPO, función de recompensa, juez pairwise, recompensa subjetiva, tareas creativas, Qwen, p5.brush, acuarela, generación de código, HPSv3, GEPA, optimización de prompts, conjunto de referencias, alucinación de API, estancamiento de la recompensa, señales correlacionadas, RLHF, Puppeteer, diseño de recompensas

## Authors

Surya Narreddi — designer et développeur, auteur du projet (site personnel) ; collaborateurs Cameron Franz (infrastructure d'entraînement) et Alex Wang.

## Ton

Narrativa en primera persona sobre un proyecto, a medio camino entre un diario de diseño y notas de investigación. El texto avanza a través del fracaso y luego el diagnóstico: el estancamiento, la lectura de las subrecompensas "por separado", la solución. Las decisiones se explican de forma concreta, sin jerga innecesaria, y las limitaciones se enuncian con franqueza (todas las imágenes del conjunto son generadas por el modelo, el paso de RLHF "al que no llegamos", el método siendo más lento que la generación de imágenes convencional). La conclusión defiende la intención: participar en la creación más allá del prompt, actuando sobre el modelo y sobre el artefacto.

## Pense-betes

- **El problema**: una imagen generada por un modelo solo puede editarse volviendo a hacer el prompt; generar **código** hace que el artefacto sea editable con precisión. El RL requiere una recompensa, y la estética no es ni correcta ni incorrecta.
- **Diagnóstico de la primera rejilla**: cinco señales (reconocibilidad, estética, técnica, profundidad, adherencia al prompt) correlacionadas entre 0,85 y 0,95 estaban "midiendo lo mismo cinco veces"; la longitud, cerca de un tercio de la recompensa, dejó de aportar gradiente alguno después del paso 30; la única señal con varianza real, **HPSv3**, tenía un peso de 0,10.
- **Dos soluciones**: un juicio **pairwise** (el juez compara el render con dos referencias; la recompensa es la proporción de victorias) en lugar de una puntuación de 0 a 10 comprimida cerca de cero; un **conjunto de referencias** evaluado manualmente.
- **Conjunto**: 581 referencias (117 "love", 266 "okay", 198 añadidas para cubrir colores poco representados), todas producidas por modelos (AutoResearch con Opus 4.6, GPT-5.4 y Gemini 3.1 Pro; un lote con Gemini 3.1 Pro), a falta de ejemplos humanos para esta herramienta de nicho.
- **System prompt vía GEPA**: una referencia de API de 400 líneas provocaba que el modelo inventara métodos; la versión con ocho métodos permitidos, sin documentación ni ejemplos, produjo por primera vez una salida utilizable en tres generaciones de tres.
- ⚠️ **Limitaciones**: la propuesta de entrenar un pequeño modelo de recompensa a partir de las calificaciones (**RLHF** propiamente dicho) no se llevó a cabo; se anuncia una pasada de entrenamiento final, con un informe técnico en junio de 2026.

## RésuméDe400mots

**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.

## GrapheDeConnaissance

- Surya Narreddi —publie→ article Training AI to Paint with Code (DOCUMENT, 0.97)
- Surya Narreddi —collabore_avec→ Cameron Franz (PERSONNE, 0.95)
- projet Paint with Code —utilise→ Qwen 3.5 35B (TECHNOLOGIE, 0.93)
- projet Paint with Code —utilise→ GRPO (METHODOLOGIE, 0.97)
- projet Paint with Code —utilise→ p5.brush (TECHNOLOGIE, 0.97)
- jugement par paires —résout→ plateau de récompense (CONCEPT, 0.92)
- jugement par paires —améliore→ grille de récompense (CONCEPT, 0.9)
- jugement par paires —utilise→ pool de références (CONCEPT, 0.93)
- grille de récompense —mesure→ plateau à 0,65 avec neuf signaux, juges corrélés à 0,85-0,95 (MESURE, 0.95)
- grille de récompense —mesure→ code réduit de 13 500 à moins de 2 000 jetons (MESURE, 0.93)
- GEPA —réduit→ hallucination d'API (CONCEPT, 0.9)
- Surya Narreddi —affirme_que→ une documentation d'API longue dans le prompt système favorise l'hallucination (AFFIRMATION, 0.88)
- Surya Narreddi —affirme_que→ le RL sur tâches créatives est un problème de design de la récompense (AFFIRMATION, 0.92)
- projet Paint with Code —s_oppose_à→ RLVR (METHODOLOGIE, 0.75)
- HPSv3 —fait_partie_de→ grille de récompense (CONCEPT, 0.93)

---
Canonical: https://www.thekb.eu/es/fiches/narreddi-training-ai-paint-with-code-2026-03-01/
