Aller au contenu
Fondamentaux

Prompt (instruction générative)

Le texte que le modèle a sous les yeux au moment de répondre, et le seul levier qui reste une fois qu'il est entraîné.

6 min de lecture
  • #usage
  • #consigne
  • #contexte
  • #sécurité

Un prompt, c’est tout le texte que le modèle a sous les yeux au moment de répondre — ta question, mais aussi les consignes, les exemples et les documents qu’on y a glissés sans te le dire — et c’est la seule chose que tu peux encore changer une fois le modèle entraîné.

Tu laisses un mot à la personne qui te remplace au comptoir pendant que tu déjeunes. Elle est compétente, mais elle ne te connaît pas, n’a pas vécu la matinée, et ne te posera aucune question : elle fera exactement ce que le mot dit, et rien d’autre.

« Occupe-toi des clients » et « Si un client demande un remboursement, note son nom sur le carnet et dis-lui de repasser à 14 h » ne produisent pas la même journée. Le prompt, c’est ce mot — le modèle ne sait rien de ce que tu n’as pas écrit.

Rôle système, historique de la conversation, documents remontés par une recherche et question finale : tout est concaténé en une seule séquence, découpée en tokens, et repassée au modèle à chaque tour.

Trois conséquences, qui expliquent presque tout le reste.

  • Aucune mémoire entre deux requêtes. C’est l’application qui recolle l’historique. Le modèle, lui, repart de zéro chaque fois.
  • La place est comptée. C’est la fenêtre de contexte, et quand elle déborde, quelque chose est coupé ou résumé.
  • Rien ne distingue techniquement une consigne d’une donnée. Les deux sont du texte, dans la même séquence. C’est la porte d’entrée de l’injection de prompt, plus bas.

Les modèles de conversation attendent un gabarit : des tokens spéciaux délimitent qui parle. Le prompt système y tient la place des consignes durables — le ton, les interdits, le format.

Ce n’est pas un règlement que la machine appliquerait. C’est du texte que l’entraînement par instructions a rendu plus appuyé que le reste. Il pèse lourd, il ne verrouille rien, et il se contourne.

  • Donner le contexte et le format attendu. Qui tu es, à quoi ça va servir, en combien de lignes. Le modèle ne devine pas l’implicite d’une situation qu’il n’a pas vécue.
  • Montrer des exemples. Deux ou trois paires entrée/sortie valent souvent mieux qu’un paragraphe de consignes. Brown et ses co-auteurs ont décrit ce phénomène en 2020 sous le nom d’apprentissage en contexte : le modèle s’ajuste à la tâche sans qu’un seul de ses poids ne bouge.
  • Demander les étapes. Wei et al. en 2022, puis Kojima et al. avec leur célèbre « réfléchissons étape par étape », ont montré qu’obliger le modèle à dérouler son raisonnement améliorait les tâches à plusieurs temps. Nuance importante aujourd’hui : sur les modèles de raisonnement, ce gain a largement fondu — ils le font déjà d’eux-mêmes, et le leur redemander ne sert plus à grand-chose.
  • Autoriser explicitement « je ne sais pas ». Un modèle à qui on n’a pas donné cette issue préfère répondre.

C’est la partie inconfortable. Sclar et ses co-auteurs ont mesuré en 2023 qu’un changement purement cosmétique dans le gabarit — un séparateur, une majuscule, un espace — faisait bouger la performance de dizaines de points sur la même tâche, avec le même modèle.

Corollaire pratique : un prompt qui a marché une fois n’est pas une preuve. Deux essais sur un exemple bien choisi ne disent rien de ce qui se passera sur cent cas réels.

Puisque consignes et données partagent un seul canal, un texte de données peut se faire passer pour une consigne.

  • Directe : quelqu’un tape « ignore les instructions précédentes ».
  • Indirecte, la plus sérieuse : la consigne est cachée dans une page web, un document remonté par un RAG, un e-mail. Personne ne l’a tapée, elle arrive par le contenu.
  • Multimodale : écrite dans une image.

L’OWASP classe l’injection de prompt au premier rang de ses risques pour les applications à base de LLM, deuxième édition consécutive, et écrit lui-même qu’aucune parade complète n’est connue. L’enjeu devient concret dès qu’un agent tient des outils : là, un texte piégé ne fait plus dire une bêtise, il fait faire une action.

  • Le prompt système d’un assistant grand public fait des centaines de lignes, et plusieurs ont fuité — ce sont des documents éditoriaux, pas du code.
  • Avec un RAG, le prompt réellement envoyé n’est pas celui que tu as tapé : des extraits de documents ont été insérés au-dessus de ta question, et tu ne les vois pas.
  • La boucle d’un agent est une boucle de réécriture de prompt : à chaque tour, le résultat de l’outil est recollé dans la séquence.
  • La facturation se fait au token, historique compris, à chaque tour. Une longue conversation coûte de plus en plus cher à chaque message.
  • Le vocabulaire officiel existe : depuis la liste publiée au Journal officiel du 6 septembre 2024, l’équivalent français recommandé est « instruction générative », et « invite » y est explicitement déconseillé dans ce sens — il reste valable pour l’invite de commande. Les agents de l’État sont tenus de l’employer.
  • « Le modèle se souvient de notre conversation. » Il ne se souvient de rien : à chaque tour, l’application recolle tout l’historique dans le prompt et le repaie en tokens. Quand ça déborde, quelque chose est coupé ou résumé — et ce qui a disparu n’a jamais existé pour lui.
  • « Le prompt système est une règle que le modèle ne peut pas enfreindre. » C’est du texte, posé dans la même séquence que le reste, et rien dans la machine ne le marque comme supérieur. L’OWASP classe l’injection de prompt au premier rang de ses risques depuis deux éditions, précisément parce que consignes et données partagent un seul canal.
  • « Le prompt engineering est une astuce qui disparaîtra avec les modèles plus intelligents. » Ce qui disparaît, ce sont les formules magiques. Le canal, lui, reste : un modèle est entraîné une fois et interrogé des millions de fois, donc la seule variable au moment de la question sera toujours ce qu’on lui donne à lire.

Voir aussi