Self-Refine Prompting (ES)

From Systems analysis wiki
Jump to navigation Jump to search

Self-Refine (autorrefinamiento o autocorrección) es un enfoque en el campo de la ingeniería de prompts que permite a los modelos de lenguaje grandes (LLM) mejorar iterativamente una respuesta generada basándose en su propia retroalimentación[1]. La idea fue propuesta por un grupo de investigadores liderado por Aman Madaan en 2023 y se basa en la observación de que, al igual que los humanos, los modelos de lenguaje no siempre generan el mejor resultado en el primer intento.

En este método, el mismo LLM desempeña secuencialmente tres roles:

  1. Generador (Generator): crea un borrador de respuesta inicial a la solicitud.
  2. Crítico (Feedback): evalúa su propia respuesta y proporciona retroalimentación constructiva.
  3. Refinador (Refiner): utiliza esta retroalimentación para crear una versión mejorada de la respuesta.

Este ciclo iterativo «generación → retroalimentación → mejora» puede repetirse varias veces hasta que se alcance la calidad deseada o se cumpla una condición de parada.

Es importante destacar que Self-Refine no requiere entrenamiento adicional del modelo, ajuste fino o datos externos; todo el proceso se gestiona exclusivamente a través de prompts en la etapa de inferencia (inference)[1].

Mecanismo de implementación

El método Self-Refine se implementa a través de una secuencia de prompts especialmente diseñados que guían el comportamiento del modelo.

  1. Generación inicial. El modelo recibe el prompt original y genera un borrador de respuesta.
  2. Creación de retroalimentación. El modelo recibe la instrucción de analizar su propia respuesta anterior e identificar sus deficiencias. Por ejemplo, puede señalar que la respuesta no es lo suficientemente detallada o que contiene un error lógico. El resultado es una retroalimentación textual con comentarios y recomendaciones específicas.
  3. Mejora iterativa. El modelo recibe como nuevo prompt la solicitud original, su respuesta inicial y la retroalimentación generada. Basándose en esto, crea una versión mejorada de la respuesta.

Este ciclo de dos pasos «crítica → refinamiento» puede ejecutarse varias veces. En el contexto de cada nueva iteración, se incluyen las versiones anteriores de la respuesta y los comentarios, lo que ayuda al modelo a evitar repetir errores[2]. Para guiar el comportamiento del modelo, a menudo se utilizan técnicas de few-shot prompting, donde el prompt incluye ejemplos del formato deseado para la retroalimentación y las correcciones.

Efectividad y aplicación

El método Self-Refine ha demostrado su efectividad en una serie de tareas que requieren refinamiento múltiple, tales como:

  • Generación de respuestas en diálogos.
  • Continuación creativa de historias.
  • Resolución de problemas matemáticos con razonamiento paso a paso.
  • Optimización de código de software.

En la investigación original, las respuestas obtenidas con Self-Refine fueron, en promedio, un ~20% más preferidas según las evaluaciones humanas y las métricas automáticas en comparación con la generación en una sola pasada[1]. La mejora se logró incluso con los modelos más avanzados, como GPT-4, lo que indica que incluso a los LLM potentes a menudo solo les falta un paso adicional de reflexión para corregir sus propios errores.

Enfoques similares, como RCI (Recursive Criticism and Improvement), también han demostrado una alta efectividad en tareas interactivas, como el control de tareas en computadoras y la resolución de problemas lógicos. La combinación de RCI con la técnica de «cadena de pensamiento» (Chain-of-Thought) produjo un efecto sinérgico, mejorando notablemente la capacidad del modelo para resolver problemas complejos gracias a un paso de autoverificación incorporado[3].

Limitaciones e investigación actual

A pesar de sus prometedores resultados, la investigación muestra que la mejora autoiterativa tiene varias limitaciones.

  • Autosesgo (self-bias): Los modelos tienen dificultades para juzgar imparcialmente sus propias respuestas. Los LLM tienden a percibir favorablemente el texto que han generado y a evaluarlo de manera poco crítica, lo que puede llevar a un estancamiento o incluso a un deterioro de la calidad después de varias iteraciones[4].
  • Exceso de confianza: Se ha observado que, a medida que aumenta el número de iteraciones de autocorrección, el modelo puede volverse excesivamente confiado en sus respuestas, incluso si no se han vuelto más precisas. Esto conduce a un aumento en el indicador de Error de Calibración Esperado (ECE) — la discrepancia entre la confianza del modelo y su precisión real[5].
  • Costes computacionales: El método requiere múltiples llamadas al LLM para obtener una única respuesta final, lo que aumenta significativamente la latencia y el coste en comparación con la generación en una sola pasada.

La investigación actual se centra en resolver estos problemas. Una línea de trabajo es la implementación de mecanismos de calibración de la confianza en cada paso de la iteración. Otra es la incorporación de fuentes de información o herramientas externas (como la ejecución de código o la búsqueda de datos) para una autoevaluación más objetiva[6].

Comparación con otras técnicas

  • Chain-of-Thought (CoT): CoT se centra en generar una cadena de razonamiento lineal para llegar a una respuesta. Self-Refine, por su parte, se enfoca en la mejora iterativa de una respuesta ya generada (que puede incluir un CoT).
  • Tree of Thoughts (ToT): ToT explora múltiples rutas de razonamiento paralelas en forma de árbol, mientras que Self-Refine mejora una única ruta de forma iterativa. ToT es una técnica para explorar el espacio de soluciones, mientras que Self-Refine es una técnica para optimizar una solución específica.

Enlaces

Bibliografía

  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Kim, G. et al. (2023). Language Models Can Solve Computer Tasks. arXiv:2303.17491.
  • Gou, Z. et al. (2023). CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing. arXiv:2305.11738.
  • Huang, J. et al. (2023). Large Language Models Cannot Self-Correct Reasoning Yet. arXiv:2310.01798.
  • Pan, L. et al. (2023). Automatically Correcting Large Language Models: Surveying the Landscape of Diverse Self-Correction Strategies. arXiv:2308.03188.
  • Jiang, C. et al. (2024). Importance Weighting Can Help Large Language Models Self-Improve. arXiv:2408.09849.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Zhu, D. et al. (2025). Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models. arXiv:2504.02902.
  • Hao, Q. et al. (2025). RL of Thoughts: Navigating LLM Reasoning with Inference-time Reinforcement Learning. arXiv:2505.14140.
  • Cui, Y. et al. (2023). Check Your Facts and Try Again: Improving Large Language Models by Reducing Hallucination. arXiv:2302.12813.
  • Wei, Z. et al. (2024). ReSearch: Iterative Self-Reflection for Better LLM Calibration. arXiv:2405.13022.

Referencias

  1. 1.0 1.1 1.2 Madaan, Aman; et al. «Self-Refine: Iterative Refinement with Self-Feedback». arXiv. [1]
  2. «Self-Refine: Iterative Refinement with Self-Feedback». Sitio web oficial del proyecto. [2]
  3. Kim, Geunwoo; et al. «Language Models can Solve Computer Tasks». arXiv. [3]
  4. Huang, Jie; et al. «Large Language Models Cannot Self-Correct Reasoning Yet». arXiv. [4]
  5. Zhu, D., et al. (2025). «Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models». arXiv. [5]
  6. «Beyond Accuracy: The Role of Calibration in Self-Improving Large Language Models». arXiv. [6]