GPT Diffusion

UniEvo-VL: auto-mejora de imagen sin profesor sobre Qwen-Image-2512

2026-10-01 · Devs #qwen#open-weights#modelos#optimizacion#analisis

UniEvo-VL: el modelo como su propio profesor — autodestilación on-policy sobre Qwen-Image-2512, con letra pequeña

TL;DR

  • Cotejado verbatim contra el abstract y el HTML completo del paper (arXiv 2609.38721, publicado el 30/09/2026, equipo con base en Stanford): UniEvo-VL entrena la parte generadora de un modelo multimodal usando su propia crítica visual como información privilegiada. El mismo modelo hace de profesor (ve un prompt corregido) y de alumno (solo ve el prompt original), y el entrenamiento minimiza la divergencia entre las transiciones de denoising de ambos, paso a paso, sobre las trayectorias del propio alumno.
  • El titular es real pero el abstract mezcla configuraciones. El 0.747→0.808 en GenEval sale con un crítico propio (Qwen3-VL-8B). El 32.97→35.53 en GenEval2 Soft-TIFA sale con un crítico externo (GPT-5.6-Luna); con el crítico propio, GenEval2 no sube: 32.86→32.37. Esto no es interpretación nuestra: son la Tabla 1 y la sección 3.4.2 del paper.
  • Sin RLHF, sin anotadores, sin imágenes corregidas como objetivo: solo LoRA r16 sobre el generador, 4×H200, y un filtro de prompts que descarta entre el 79% y el 90% de los intentos de adquisición.
  • La auto-mejora no es uniforme: los prompts que el modelo ya hacía bien bajan 1–4 puntos, el text rendering va mixto (con crítico propio, OCR cae de 0.771 a 0.761 sin verificación) y un intento paralelo de SFT con las mismas parejas fracasó (Apéndice E).
  • No hay repo de código ni pesos publicados en las fuentes consultadas (01/10/2026). Es un paper de receta, no una herramienta que puedas descargar hoy.

El problema que ataca: corregir no es lo mismo que generar

Los modelos multimodales unificados (generación y entendimiento en el mismo sistema) permiten algo que antes exigía anotadores: que el modelo mire su propia imagen, detecte que pidió dos tazas rojas y salieron tres, y lo diga. La línea previa de auto-mejora aprovechaba esa crítica con fine-tuning supervisado sobre sus mejores salidas o con recompensas tipo RL (Flow-GRPO y compañía). El equipo de UniEvo-VL señala el hueco: una crítica como “restaura el objeto que falta” describe la corrección deseada, pero no dice cómo cambiar las predicciones intermedias del denoising en el paso 7 de 20.

La apuesta parte de una hipótesis razonable: verificar es más fácil que generar. Si el modelo sabe diagnosticar el fallo, esa información vale oro como condición de entrenamiento — aunque nunca se convierta en imagen objetivo ni en recompensa escalar.

Si vienes de la familia Qwen de imagen, ojo con una confusión evitable: el modelo base aquí es Qwen-Image-2512, la release abierta de diciembre de 2025, no la Qwen-Image-2.1 con RGBA nativo que analizamos la semana pasada. Misma familia, otro checkpoint.

Cómo funciona: dos roles, un modelo, un prompt privilegiado

El bucle, verificado contra la sección 2 y el Apéndice A del paper:

  1. Generar. El alumno produce una imagen desde el prompt original.
  2. Criticar por ejes. Un crítico fijo (Qwen3-VL-8B-Thinking en la receta verificada) revisa la imagen en tres ejes: semántico (objetos, cantidades, posiciones), texto y calidad visual. Si no hay fallo, emite KEEP y el ejemplo se descarta.
  3. Sintetizar el prompt revisado. Un segundo modelo (Qwen3-VL-8B-Instruct) convierte crítica + prompt original en un prompt nuevo que describe la escena como debió pedirse. Ese prompt es la información privilegiada.
  4. Filtrar (opcional, “post-revision verification”). Se regenera con el prompt revisado y la misma semilla, y se vuelve a evaluar contra el prompt original. Solo se acepta si la segunda evaluación aprueba. En los experimentos con verificación, se acepta entre el 10% y el 21% de los intentos — de cinco a diez intentos por pareja de entrenamiento.
  5. Destilar. Profesor (EMA del modelo, decay 0.999) condiciona con el prompt revisado; alumno, con el original. Se igualan sus predicciones de transición a un paso (MSE en la implementación flow-based) solo en los estados ruidosos que visita el alumno — el 30% más ruidoso de los 20 pasos. Solo se actualizan los LoRA del generador (rank 16); el crítico queda congelado.
ElementoQué esEstado
Crítica como información privilegiadaEl profesor ve la corrección, el alumno noDiseño del paper, verificado en el algoritmo 1
Objetivo de entrenamientoMSE entre transiciones de un paso, sobre estados del alumnoVerificado (sección 2.3)
Imágenes corregidas como objetivoNo se usan; la regenerada del filtrado nunca es targetVerificado (Apéndice A.2)
RLHF / recompensa del evaluadorAusente; las métricas de evaluación no entran en el objetivoVerificado (sección 3.1)
Que el gain se traslada a tu carga realNo probado por nadie de fueraClaim pendiente de reproducción

Los números, cada uno con su configuración

Primera lección de lectura escéptica: el paper usa tres líneas base distintas para GenEval2 según el experimento (32.58 promediando semillas en la Tabla 1; 32.97 en el experimento con Luna; 32.86 en el de Qwen-VL). El abstract elige el emparejamiento que mejor lee. Con eso claro, lo que dicen las tablas:

Tabla 1 del paper (métricas nativas, generación directa):

Configuración (crítico)GenEval (0–1)GenEval2 Soft-TIFA (0–100)OCR (0–1)
Base (Qwen-Image-2512)0.74732.580.771
UniEvo-VL (Qwen3-VL-8B)0.80832.370.761
UniEvo-VL (GPT-5.6-Luna)0.88235.530.775
UniEvo-VL (Qwen + verificación)0.81835.070.790

Léelo bien: el salto estrella del abstract (GenEval +0.061) sale con crítico propio; en GenEval2 ese mismo crítico baja la métrica nativa, y el 35.53 solo aparece al enchufar un juez frontier como crítico. La conclusión honesta del paper es que la calidad de tu crítico pone el techo de la auto-mejora — y ahí sí que es consistente: position pasa de 6.85 a 8.79 con Qwen-VL y hasta 9.88 con Luna; counting de 7.86 a 9.29 y 9.58.

¿La crítica en inferencia sigue valiendo después de entrenar? (Tabla 2, config con verificación):

CondiciónGenEvalGenEval2OCR
Base, directa0.74831.920.769
Base, +1 reflexión0.82642.520.783
UniEvo-VL, directa0.81835.070.790
UniEvo-VL, +1 reflexión0.84846.230.803

Aquí está el resultado que a mí me parece el más sólido del paper: el modelo evolucionado con reflexión supera al base con reflexión en las tres tareas (0.848 vs 0.826; 46.23 vs 42.52; 0.803 vs 0.783). Es decir, el entrenamiento internaliza capacidad que no se explica solo por reescribir el prompt en inferencia. En GenEval la reflexión aporta menos que antes (de +0.078 a +0.030: beneficio parcialmente solapado), pero en GenEval2 el gap de reflexión sigue siendo enorme (de +10.60 con el base a +11.17 con el modelo entrenado).

¿Y contra otros modelos? (Apéndice D.3, evaluador oficial GenEval, 553 prompts):

MétodoOverall
Qwen-Image-2512 (base)0.75
UniEvo-VL directa (sin verificación)0.81
UniEvo-VL directa (con verificación)0.82
UniEvo-VL + 1 crítica (ambas configs)0.85
BAGEL / HiDream-I1 / Z-Image / LongCat0.82 / 0.83 / 0.84 / 0.87
SD3.5-L / SANA-1.50.71 / 0.81

El 0.85 con una crítica en inferencia es el segundo mejor de la tabla, por detrás de LongCat (0.87). Matiz que el propio paper disclose: las filas con verificación se evaluaron con 4 imágenes por prompt (2.212 imágenes) y el base con 1. No es una comparación a la par.

La letra pequeña que el abstract no ordena igual

  • Auto-mejora con regresión incluida. En subconjuntos de 500 prompts, las ganancias se concentran en los prompts que el base suspendía, pero los “fáciles” bajan 1–4 puntos en escala normalizada 0–100. El mecanismo lo explica: los drafts aprobados se saltan, así que casi todo el señal de entrenamiento viene de fallos.
  • Text rendering, mixto. Con crítico propio sin verificación, OCR cae de 0.771 a 0.761; con verificación sube a 0.790. Nada de “mejora uniforme”.
  • El riesgo in-distribution. Los prompts de entrenamiento salen de metadatos en formato GenEval y de una colección aparte para GenEval2. Que el gain se mantenga fuera de prompts tipo benchmark no está demostrado en el paper.
  • Sesgo estético del feedback. Los autores reportan salidas con colores apagados y fondos claros lisos, trazables al diseño del prompt de crítica. Pequeños sesgos que se acumulan en un bucle que se retroalimenta.
  • El SFT con las mismas parejas fracasó. El Apéndice E documenta que no consiguieron mejorar la generación entrenando sobre la imagen corregida aceptada. La destilación de transiciones —no la imagen objetivo— es lo que funciona aquí. Honesto por su parte publicarlo.
  • El evaluador no es verdad absoluta. GenEval se apoya en detección de objetos y reglas geométricas que penalizan imágenes correctas; el propio paper cita el caso de Gemini 2.5 Flash Image: 96.7% de corrección humana frente a 82.1% automático. Un 0.808 no significa “el 81% de las imágenes son perfectas”.
  • Coste de adquisición real. Con verificación, 79–90% de los intentos se descartan tras generar y criticar dos veces. El coste wall-clock depende de la latencia del crítico; el paper no da horas totales.

Qué cuesta replicarlo (según la receta publicada)

Parámetros verbatim de la Tabla 5 (receta con verificación): generador Qwen-Image-2512, LoRA 16/16 con AdamW a 3×10⁻⁴, imágenes 1024² con 20 pasos y CFG 4.0, profesor EMA 0.999, 6 de los 20 pasos (los más ruidosos) como supervisión, y 4×H200 para entrenar. El crítico es un Qwen3-VL-8B (Thinking critica, Instruct sintetiza); Gemini-2.5-Flash solo evalúa. Si has montado LoRA caseros con Unsloth, la escala es otra liga: esto no corre en tu 4090.

Falta la parte que hace ejecutable la receta: en las fuentes consultadas a 01/10/2026 no hay repo de código ni adaptadores publicados. Las plantillas del crítico están descritas en el Apéndice G, pero no hay nada que clonar.

Cuándo te sirve y cuándo no

Dónde sí. Si sirves generación de imágenes con un modelo unificado y ya haces pass de crítica en inferencia, la idea exportable es que parte de esa corrección puede internalizarse en el generador y ahorrarte la reflexión — con el matiz de que en tareas duras (GenEval2) la reflexión sigue aportando bastante después de entrenar. La combinación entrenamiento + reflexión es lo mejor de las dos manos en las tres tareas medidas.

Dónde no. No hay producto que instalar, ni pesos, ni garantía de que el gain sobreviva fuera de prompts estilo GenEval. Y el resultado con crítico propio en GenEval2 (32.86→32.37) es un aviso: el mismo mecanismo que sube GenEval puede estancar o empeorar otra métrica sin que el abstract lo grite.

Qué haría yo. Si puedes esperar, espera a que caiga el código y a una reproducción independiente — la pieza envejece rápido si aparece. Si vas a montar el loop por tu cuenta, empieza por el eje donde el paper muestra ganancias grandes y medibles (counting y position) y mide explícitamente la regresión en tus prompts fáciles antes de fiarte. Y elige crítico con cuidado: en este paper, el techo de la auto-evolución lo marcó el juez, no el alumno. Esta tensión entre lo que un modelo genera y lo que puede evaluar de sí mismo es la misma que vimos en MaLiang-Harness por otro camino: el cuello de botella se mueve del generador al verificador.

Qué falta por medir

  1. Reproducción independiente. Sin código ni pesos publicados a 01/10/2026, todo lo anterior es lo que dicen los autores.
  2. Generalización fuera del formato benchmark. Entrenar con prompts tipo GenEval y evaluar en GenEval deja la duda in-distribution abierta.
  3. El coste wall-clock completo del bucle de adquisición con verificación (5–10 intentos por pareja aceptada) en hardware asequible.
  4. Acumulación del sesgo estético del prompt de crítica a más iteraciones.
  5. Escalado a más pasos y resoluciones: todo el estudio vive en 1024² y 20 pasos.

Fuentes

Cargando comentarios...