Accueil / Articles / Ingénierie des prompts : diriger les LLM sans fine-tuning

Ingénierie des prompts : diriger les LLM sans fine-tuning

Utilisez les rôles, les exemples de few-shot, la méthode chain-of-thought ainsi que les contraintes de format pour guider les modèles — et sachez quand l’usage uniquement de prompts atteint ses limites par rapport au fine-tuning.

748 mots

Le fine-tuning adapte un modèle pré-entraîné en le formant davantage à l’aide d’exemples étiquetés. Cette approche reste puissante, mais elle n’est pas toujours nécessaire. Les modèles de langage modernes et volumineux répondent souvent bien à des instructions soigneusement formulées seules — sans entraînement, sans corpus étiqueté, sans GPU. Cette pratique s’appelle l’ingénierie de prompts et elle est devenue l’une des compétences les plus pratiques au sein des stacks NLP actuels.

Deux manières de diriger un modèle

Le fine-tuning et l’usage de prompts visent le même objectif — un comportement utile du modèle — mais par des moyens opposés.

Le fine-tuning modifie les poids du modèle. L’usage de prompts laisse les poids inchangés et fournit plutôt des instructions et un contexte plus clairs afin que le modèle applique avec plus de précision ce qu’il sait déjà. Des modèles tels que les systèmes de type GPT ont absorbé un volume si important de texte que de nombreuses capacités y sont déjà latentes ; les prompts servent souvent à débloquer la partie appropriée de ces capacités. L’implication pratique est la vitesse : les équipes peuvent tester des changements de comportement en quelques minutes, sans avoir à attendre le résultat d’un processus de fine-tuning.

from openai import OpenAI
client = OpenAI()response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a helpful sentiment classifier. Respond with only 'positive' or 'negative'."},
        {"role": "user", "content": "I loved this movie"}
    ]
)print(response.choices[0].message.content)

Prompting zéro-exemple vs Prompting peu d’exemples

L’une des premières décisions de conception concerne le nombre d’exemples, s’il y en a, à présenter avant la tâche réelle.

Un prompt zéro-shot définit la tâche en s’appuyant uniquement sur l’entraînement préalable. Cette approche fonctionne de manière surprenante bien pour des tâches courantes telles que l’étiquetage des émotions ou la simple synthèse. Un prompt few-shot montre d’abord quelques paires entrée-sortie, ce qui guide le format, le ton et la gestion des cas limites — en particulier pour des tâches inhabituelles ou spécifiques à un domaine. Chaque exemple consomme des tokens, ce qui augmente les coûts et réduit l’espace disponible pour la véritable entrée. Préférer des ensembles few-shot courts et représentatifs est généralement plus efficace que d’ajouter de nombreuses paires presque identiques.

prompt = """
Classify the sentiment of each review as positive or negative.
Review: "Absolutely fantastic, exceeded expectations!"
Sentiment: positiveReview: "Complete waste of money, broke in a week."
Sentiment: negativeReview: "I loved this movie"
Sentiment:
"""response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": prompt}]
)print(response.choices[0].message.content)

Anatomie d’un bon prompt

Outre le choix entre zéro-shot et few-shot, une structure fiable est utile lorsque les prompts servent des applications réelles plutôt que des questions ponctuelles.

Attribuer un rôle clair définit le ton et la perspective. Une instruction précise élimine toute ambiguïté quant au résultat attendu. Séparer le contexte ou les données d’entrée des instructions aide le modèle à distinguer les deux. Des règles de format explicites — par exemple du JSON avec des clés nommées — rendent les réponses plus faciles à parser que de s’attendre à une prose libre et cohérente. Quelques exemples bien choisis peuvent encore affiner le comportement du modèle lorsque la tâche est inhabituelle.

Techniques de formulation à connaître

Plusieurs modèles se distinguent pour les tâches plus complexes :

  • La formulation par chaîne de réflexion — demander au modèle de raisonner étape par étape avant de donner la réponse finale ; cela est souvent utile pour les problèmes mathématiques et les raisonnements en plusieurs étapes.
  • La formulation par rôle — attribuer une personnalité (“Vous êtes un auditeur de sécurité senior”) pour influencer la profondeur et le style de la réponse.
  • Des contraintes de format de sortie — exiger du JSON ou du XML lorsque un autre système doit traiter la réponse.
  • Auto-cohérence — générer plusieurs réponses à la même demande et retenir le résultat le plus fréquent lorsque les réponses diffèrent.
  • Lorsque les prompts ne suffisent pas

    Les prompts ont des limites strictes. Ils ne peuvent inventer de faits que le modèle n’a jamais vus, ils sont limités par la fenêtre de contexte, et pour des tâches spécifiques à grande échelle, un modèle affiné est souvent moins coûteux et plus cohérent qu’un prompt complexe exécuté des millions de fois. De nombreux systèmes en production combinent les deux : ils affinent la tâche principale répétée, puis ajoutent des prompts pour assurer de la flexibilité et gérer les cas limites. Considérez les prompts comme un outil de contrôle et l’affinage comme une amélioration des capacités lorsque le simple contrôle ne permet plus d’augmenter l’échelle.

    Où cela mène

    L’ingénierie des prompts raccourcit le chemin entre une idée et un prototype fonctionnel — des tâches qui nécessitaient autrefois des données étiquetées et un entraînement peuvent souvent être résolues en quelques minutes grâce à un prompt bien conçu. Cependant, l’utilisation seule de prompts présente encore des limites, surtout lorsque les réponses doivent faire appel à des informations sur lesquelles le modèle n’a jamais été entraîné.

    Cette étape suivante — la recherche par sens plutôt que par mots-clés, puis l’insertion du texte récupéré dans le processus de génération — relève du domaine des embeddings et de la génération améliorée par la récupération d’informations (RAG).