Techniques

Optimisation de prompts : une méthode itérative

L’optimisation de prompts consiste à améliorer un prompt par la mesure. Une boucle reproductible d’optimisation de prompts pour LLM, avec raffinement, jeux de tests et quand s’arrêter.

Traduit de l’original anglais. Le code, les prompts et les sorties de modèle restent en anglais.

L’optimisation de prompts est le processus d’amélioration d’un prompt par rapport à un objectif défini : de meilleures réponses, moins de tokens, une latence plus faible ou un format plus cohérent. Ce qui la distingue du bricolage, c’est la mesure. Vous décidez de ce que « mieux » veut dire, vous changez une chose et vous vérifiez.

Décidez ce que vous optimisez

Un prompt peut être optimisé selon plusieurs axes, qui tirent dans des sens opposés.

Objectif Mesuré par Coûte souvent
Qualité Taux de réussite sur un jeu de tests Des tokens
Cohérence Même entrée, même forme de sortie De la flexibilité
Coût Tokens d’entrée et de sortie par appel Du contexte, des exemples
Latence Temps jusqu’au premier et au dernier token De la profondeur de raisonnement
Sécurité Résistance à l’injection et aux fuites Un peu d’utilité

Choisissez un objectif principal et une limite pour les autres, par exemple « augmenter le taux de réussite sans dépasser 800 tokens d’entrée ».

La boucle d’optimisation

1. Corrigez d’abord les problèmes statiques

Certains défauts n’ont pas besoin de modèle pour être trouvés : pas d’objectif, mots vagues, tailles sans chiffres, instructions contradictoires, pas de format de sortie, phrases répétées, variables non délimitées. Éliminez-les avant de dépenser des appels de modèle. L’analyseur de prompts PromptFlowEngine les liste, chacun avec une correction suggérée.

2. Constituez un jeu de tests

Réunissez de 20 à 50 entrées représentatives de l’usage réel. Incluez :

  • Les cas typiques.
  • Les cas limites : vides, très longs, multilingues, mal formés.
  • Les cas adverses : du texte qui cherche à modifier les instructions.
  • Les échecs passés. Chaque bogue devient un test.

Pour chaque entrée, notez ce qu’une sortie correcte doit contenir ou satisfaire.

3. Établissez une référence

Exécutez le prompt actuel sur chaque entrée et consignez les résultats. Ce chiffre sert de comparaison à chaque changement. Sans lui, vous ne distinguez pas une amélioration du bruit.

4. Lisez les échecs

Regroupez-les. Dix échecs ont généralement deux ou trois causes. Cherchez le motif : sont-ce toujours les entrées longues, toujours une catégorie, toujours le même champ manquant ?

5. Formulez une hypothèse et faites un changement

« Le modèle ajoute des commentaires parce que le prompt ne dit pas de renvoyer uniquement du JSON. » Faites ce changement et rien d’autre.

6. Relancez tout le jeu

Vérifiez que les échecs sont corrigés et, tout aussi important, que rien de ce qui passait avant n’échoue maintenant. Une correction pour un cas qui en casse deux autres est une régression.

7. Gardez ou annulez, puis recommencez

Consignez ce que vous avez changé et pourquoi. Voir la gestion des prompts pour le versionnement.

Gestes de raffinement qui fonctionnent généralement

Symptôme Raffinement
La sortie varie en longueur Remplacez les mots de taille par des nombres
La sortie varie en forme Ajoutez un format explicite ou un schéma
Ignore une règle Sortez-la d’un paragraphe vers une liste ; supprimez les conflits
Trop générique Ajoutez le contexte de public et de domaine
Faux sur les cas limites Ajoutez une règle ou un exemple pour ce cas
Invente des faits Fournissez des sources et exigez « non indiqué » en leur absence
Verbeux Donnez une limite de mots et dites quoi omettre

Gestes de raffinement qui ne fonctionnent généralement pas

  • Ajouter de l’emphase (majuscules, « très important ») à chaque ligne.
  • Répéter la même instruction à plusieurs endroits.
  • Ajouter une nouvelle règle de cas particulier pour chaque échec sans vérifier les conflits.
  • Changer la formulation de quelque chose qui n’était pas la cause.

Optimiser les tokens

Une fois la qualité acceptable, réduisez le coût sans changer le comportement :

  1. Retirez salutations, politesse et remplissage.
  2. Supprimez les phrases répétées et quasi répétées.
  3. Coupez le contexte qui ne change aucune réponse du jeu de tests.
  4. Réduisez le nombre d’exemples et retestez.
  5. Placez d’abord la partie stable du prompt pour que le cache du fournisseur s’applique.

Les étapes 1 et 2 sont mécaniques et peuvent être automatisées sans risque. L’optimiseur de prompts PromptFlowEngine les réalise puis vérifie que chaque phrase d’origine, chaque exigence et chaque segment protégé est toujours présent, de sorte que le prompt plus court demande exactement ce que demandait le plus long. Détails dans l’optimisation des tokens.

Optimisation automatisée

Il existe des outils qui cherchent automatiquement de meilleurs prompts, en faisant proposer des variantes par un modèle et en les notant sur votre jeu de tests. Ils peuvent trouver des améliorations que les humains manquent. Ils ont besoin de trois choses pour fonctionner : un bon jeu de tests, une fonction de notation fiable et une relecture du prompt gagnant, car un optimiseur exploitera toute faiblesse de la métrique.

Une mise en garde voisine vaut pour demander à un modèle de chat d’« améliorer ce prompt ». Il produira quelque chose qui se lit mieux. Il peut aussi omettre une contrainte ou ajouter une hypothèse. Comparez le résultat à l’original et confirmez que chaque exigence a survécu.

Quand s’arrêter

Arrêtez-vous lorsque le prompt atteint l’objectif sur le jeu de tests et que d’autres changements font bouger les résultats dans le bruit. Au-delà, les gains viendront d’un meilleur contexte, d’une autre technique comme l’enchaînement de prompts ou d’un autre modèle.

Ce qu’un score à base de règles peut et ne peut pas vous dire

Un score de qualité statique, comme celui de l’évaluation de prompts, mesure le prompt tel qu’il est écrit : clarté, exhaustivité, cohérence et sécurité. Il est rapide et reproductible, il convient donc à chaque modification et à chaque commit. Il ne mesure pas ce qu’un modèle fait du prompt. Utilisez-le pour garder le prompt sain, et un jeu de tests pour confirmer la sortie. Les deux sont traités dans le test et l’évaluation de prompts.

Passer à la pratique

Essayez avec l’outil « Optimiseur de prompts »

Réduisez les tokens et ajoutez de la structure, avec la preuve que chaque exigence est conservée. C’est gratuit, déterministe et sans compte.

Outils PromptFlowEngine associés

Autres guides : Techniques

Parcourir tous les guides d’ingénierie de prompts