Un modelo escribe, un modelo distinto revisa
Nunca dejes que la IA califique su propia tarea. El modelo que escribió tu código comparte sus propios puntos ciegos: pídele que revise su propia salida y tiende a aprobar sus propios errores. La solución es estructural, no un mejor prompt: un modelo escribe, un modelo distinto revisa, el primero corrige y un humano toma la decisión final.
Por qué falla la auto-revisión
No es una corazonada; está medido.
- Sesgo de auto-mejora. El estudio de MT-Bench que popularizó el LLM-as-a-judge documentó que los modelos jueces pueden favorecer sus propias salidas — GPT-4 calificó sus propias respuestas más alto en configuraciones de evaluación (Zheng et al., 2023).
- La auto-preferencia está ligada al auto-reconocimiento. Un paper de NeurIPS 2024 mostró que los evaluadores LLM puntúan sus propias generaciones por encima de las ajenas incluso cuando anotadores humanos las califican igual — y modelos como GPT-4 reconocen su propio texto con una precisión no trivial, con una correlación lineal entre auto-reconocimiento y auto-preferencia (Panickssery et al., 2024).
- La auto-corrección intrínseca rinde poco. Sin retroalimentación externa, pedirle a un modelo "verifica tu respuesta" suele dejar el desempeño de razonamiento igual o peor; las mejoras anteriores venían en gran parte de etiquetas oráculo que el modelo no tendría en la práctica (Huang et al., ICLR 2024).
La intuición coincide con los datos: los mismos pesos que produjeron una suposición errónea volverán a aplicarla durante la revisión. Un modelo, un solo conjunto de puntos ciegos.
El ciclo de roles separados
- El Modelo A escribe. Contexto completo de la tarea: spec, restricciones, convenciones del codebase.
- El Modelo B revisa. Una familia de modelos distinta recibe el diff más la spec y revisa corrección, casos borde y arquitectura. Señala — no reescribe.
- El Modelo A corrige. Devuélvele al escritor los hallazgos de B. Límite: 1–2 rondas.
- Un humano decide. Hacer merge, revisar o rechazar. Los modelos aconsejan; la decisión es tuya.
Un prompt de revisión que mantiene los roles limpios:
You are a senior code reviewer. You did not write this code.
Review the diff below against the attached spec for correctness,
edge cases, and architecture. List findings as numbered items
with file:line references. Do not rewrite the code.
Reglas prácticas
| Situación | Haz esto |
|---|---|
| Elegir al revisor | Una familia de modelos distinta, no el mismo modelo con otra temperatura |
| Salida del revisor | Una lista de hallazgos con file:line — nunca un parche reescrito |
| Ciclo de correcciones | El escritor aplica los arreglos; detente tras 1–2 rondas |
| Escritor y revisor coinciden al instante | Bien — pero verifica por muestreo; coincidir no es prueba |
| Escritor y revisor discrepan | Eso es señal — lee ese código tú mismo primero |
| Merge final | Siempre un humano |
Trucos avanzados
- Cambiar de familia gana a cambiar de versión. Dos versiones de la misma línea de modelos comparten datos de entrenamiento y hábitos; un revisor de otro proveedor trae un conjunto genuinamente distinto de puntos ciegos — y modelos distintos pasan por alto cosas distintas.
- Priva al revisor del contexto del escritor. Dale al Modelo B el diff y la spec, no la conversación de escritura. El historial de chat carga las racionalizaciones del escritor, y un revisor que las lee empieza a heredarlas.
- Automatiza la separación que ya tienes. Si un asistente de IA escribió el código, pedir una revisión a una herramienta separada — por ejemplo GitHub Copilot code review en el pull request — te da un segundo modelo en el ciclo sin trabajo de pipeline.
- Exige a ambos modelos el estándar humano de revisión. La guía para revisores de las prácticas de ingeniería de Google (¿el cambio mejora la salud general del código? ¿es correcto, probado, entendible?) es una buena lista de verificación para lo que le pides al Modelo B — y para tu pasada final.
Recursos
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (Zheng et al., 2023) — documenta el sesgo de auto-mejora en modelos jueces
- LLM Evaluators Recognize and Favor Their Own Generations (Panickssery et al., NeurIPS 2024) — el sesgo de auto-preferencia y su vínculo con el auto-reconocimiento
- Large Language Models Cannot Self-Correct Reasoning Yet (Huang et al., ICLR 2024) — por qué la auto-corrección intrínseca rinde poco
- Using GitHub Copilot code review — un segundo revisor listo para usar en pull requests
- How to do a code review — Google engineering practices — el estándar humano al que ambos modelos deben responder
¿Construyendo una función con IA? Yeda AI diseña, audita y entrega sistemas LLM de producción.