Self-Refine Prompting (FR)

From Systems analysis Wiki
Jump to navigation Jump to search

Self-Refine (auto-affinement ou auto-correction) est une approche dans le domaine de l'ingénierie de prompt (prompt engineering), permettant aux grands modèles de langage (LLM) d'améliorer itérativement une réponse générée en se basant sur leur propre feedback[1]. L'idée a été proposée par un groupe de chercheurs dirigé par Aman Madaan en 2023 et repose sur l'observation que, à l'instar des humains, les modèles de langage ne génèrent pas toujours le meilleur résultat du premier coup.

Dans cette méthode, un même LLM joue successivement trois rôles :

  1. Générateur (Generator) : crée une ébauche de réponse initiale à la requête.
  2. Critique (Critic) : évalue sa propre réponse et fournit un feedback constructif.
  3. Éditeur (Refiner) : utilise ce feedback pour créer une version améliorée de la réponse.

Ce cycle itératif « génération → feedback → amélioration » peut être répété plusieurs fois, jusqu'à ce que la qualité requise soit atteinte ou qu'une condition d'arrêt soit remplie.

Il est important de noter que Self-Refine ne nécessite pas d'entraînement supplémentaire du modèle, de réglage fin (fine-tuning) ou de données externes — l'ensemble du processus est contrôlé exclusivement par des prompts lors de la phase d'inférence (inference)[1].

Mécanisme de mise en œuvre

La méthode Self-Refine est mise en œuvre via une séquence de prompts spécialement conçus qui guident le comportement du modèle.

  1. Génération initiale. Le modèle reçoit le prompt initial et génère une ébauche de réponse.
  2. Création du feedback. Le modèle reçoit l'instruction d'analyser sa propre réponse précédente et d'y identifier les lacunes. Par exemple, il peut noter que la réponse n'est pas assez détaillée ou qu'elle contient une erreur logique. Le résultat est un feedback textuel avec des remarques et des recommandations spécifiques.
  3. Amélioration itérative. Le modèle reçoit comme nouveau prompt la requête initiale, sa réponse originale et le feedback généré. Sur cette base, il crée une version améliorée de la réponse.

Ce cycle en deux étapes « critique → rédaction » peut être exécuté plusieurs fois. Le contexte de chaque nouvelle itération inclut les versions précédentes de la réponse et les commentaires, ce qui aide le modèle à éviter de répéter les erreurs[2]. Pour guider le comportement du modèle, on utilise souvent des techniques de few-shot prompting, où le prompt inclut des exemples du format souhaité pour le feedback et les corrections.

Efficacité et applications

La méthode Self-Refine a démontré son efficacité sur un ensemble de tâches nécessitant un affinement multiple, telles que :

  • La génération de réponses conversationnelles.
  • La continuation créative d'histoires.
  • La résolution de problèmes mathématiques par un raisonnement étape par étape.
  • L'optimisation de code logiciel.

Dans l'étude originale, les réponses obtenues avec Self-Refine se sont avérées en moyenne ~20 % plus appréciées, selon les évaluations humaines et les métriques automatiques, par rapport à une génération en une seule étape[1]. Une amélioration a été observée même pour les modèles les plus avancés, tels que GPT-4, ce qui indique que même les LLM puissants n'ont souvent besoin que d'une étape de réflexion supplémentaire pour corriger leurs propres erreurs.

Des approches similaires, comme RCI (Recursive Criticism and Improvement), ont également montré une grande efficacité dans des tâches interactives, par exemple, dans la gestion d'un ordinateur et la résolution de problèmes logiques. La combinaison de RCI avec la technique de la « chaîne de pensée » (Chain-of-Thought) a produit un effet synergique, améliorant notablement la capacité du modèle à résoudre des problèmes complexes grâce à une étape d'auto-vérification intégrée[3].

Limites et recherches actuelles

Malgré des succès encourageants, les recherches montrent que l'amélioration auto-itérative présente plusieurs limites.

  • Biais d'auto-évaluation (self-bias) : Les modèles ont du mal à juger leurs propres réponses de manière impartiale. Les LLM ont tendance à percevoir favorablement leur propre texte généré et à l'évaluer de manière insuffisamment critique, ce qui peut entraîner une stagnation, voire une dégradation de la qualité après plusieurs itérations[4].
  • Excès de confiance : Il a été observé qu'avec l'augmentation du nombre d'itérations d'auto-correction, le modèle peut devenir excessivement confiant dans ses réponses, même si elles ne sont pas devenues plus précises. Cela entraîne une augmentation de l'indicateur Expected Calibration Error (ECE) — l'écart entre la confiance du modèle et sa précision réelle[5].
  • Coûts de calcul : La méthode nécessite plusieurs appels au LLM pour obtenir une seule réponse finale, ce qui augmente considérablement la latence et le coût par rapport à une génération en une seule passe.

Les recherches actuelles visent à résoudre ces problèmes. Une des pistes consiste à intégrer des mécanismes de calibration de la confiance à chaque étape de l'itération. Une autre consiste à faire appel à des sources d'information ou des outils externes (par exemple, l'exécution de code, la recherche de données) pour une auto-évaluation plus objective[6].

Comparaison avec d'autres techniques

  • Chain-of-Thought (CoT) : CoT se concentre sur la génération d'une chaîne de raisonnement linéaire pour parvenir à une réponse. Self-Refine, quant à lui, se concentre sur l'amélioration itérative d'une réponse déjà générée (qui peut elle-même inclure un raisonnement CoT).
  • Tree of Thoughts (ToT) : ToT explore plusieurs chemins de raisonnement parallèles sous forme d'arbre, tandis que Self-Refine améliore un seul chemin de manière itérative. ToT est une technique d'exploration de l'espace des solutions, tandis que Self-Refine est une technique d'optimisation d'une solution spécifique.

Liens externes

Bibliographie

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

Références

  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». Site officiel du projet. [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]